C语言学籍管理系统文档格式.docx
- 文档编号:18064041
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:18
- 大小:17.52KB
C语言学籍管理系统文档格式.docx
《C语言学籍管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《C语言学籍管理系统文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
/*以下是对函数的声明*/
voidSysInfo();
voidMenuOfMain(structStuMessagestu[]);
voidAppend(structStuMessagestu[]);
voidModify(structStuMessagestu[]);
voidDelet(structStuMessagestu[]);
voidMenuOfSear(structStuMessagestu[]);
voidSearNum(structStuMessagestu[]);
voidSearGrade(structStuMessagestu[]);
voidListAll(structStuMessagestu[]);
voidLiseOne(structStuMessagelist);
intNumOfSear(structStuMessagestu[],charstuNum[]);
intDelList(structStuMessagestu[],inti);
voidPrintHead();
voidQuit();
/*以下是主函数*/
intmain()
intn;
SysInfo();
MenuOfMain(stu);
scanf("
%d"
&
n);
while(n)
{
switch(n)
case1:
Append(stu);
break;
case2:
Modify(stu);
case3:
Delet(stu);
case4:
MenuOfSear(stu);
case5:
ListAll(stu);
case0:
Quit();
default:
printf("
非法操作\n"
);
}
getch();
//执行完再次显示菜单页面
return0;
}
/*以下是实现各功能的小函数*/
voidMenuOfMain(structStuMessagestu[])//主菜单函数
system("
cls"
printf("
\n\n\n\n\n"
\t\t|----------学生管理系统---------|\n"
\t\t|\t|\n"
\t\t|\t1.录入学生信息|\n"
\t\t|\t2.修改学生信息|\n"
\t\t|\t3.删除学生信息|\n"
\t\t|\t4.查找学生信息|\n"
\t\t|\t5.输出学生信息|\n"
\t\t|\t0.退出系统|\n"
\n"
\t\t请选择数字0-5相对应的功能:
"
voidSysInfo()//系统信息函数
\n\n\n\n"
\t\t************************************\n"
\t\t*******\n"
\t\t***这是一个学籍管理系统****\n"
\t\t***制作人:
软件1113班张新香****\n"
\t\t***指导教师:
邓泓****\n"
\n\n"
请按任意键进入!
voidAppend(structStuMessagestu[])//录入学生信息函数
inti,length=0;
charch[2];
FILE*fp;
//定义文件指针
if((fp=fopen("
data.txt"
"
a+"
))==NULL)//打开指定文件,判断是否存在
指定文件不存在!
return;
while(!
feof(fp))//如果未遇到文件结束的标志,文件存在
if(fread(&
stu[length],sizeof(structStuMessage),1,fp)==1)//读取成功则返回读入的数据块个数
length++;
//统计当前记录条数
fclose(fp);
//关闭文件
if(length==0)
原文件中没有学生记录!
if((fp=fopen("
wb"
{
printf("
for(i=0;
i<
length;
i++)
fwrite(&
stu[i],sizeof(structStuMessage),1,fp);
//将磁盘文件数据写入
录入学生信息?
(y/n):
//询问是否录入学生信息
%s"
ch);
while(strcmp(ch,"
y"
)==0)
请输入学生信息:
学号:
stu[length].stuNo);
//输入学号
if((strcmp(stu[i].stuNo,stu[length].stuNo))==0)//判断是否已经有该学号
printf("
该学号已经存在!
fclose(fp);
按任意键返回!
getch();
return;
}
姓名:
stu[length].name);
专业:
stu[length].spec);
年级:
stu[length].grade);
性别:
fflush(stdin);
//清楚输入缓存
%c"
stu[length].sex);
出生日期(形如2012,05,01):
%d,%d,%d"
stu[length].birthday.year,&
stu[length].birthday.month,&
stu[length].birthday.day);
if(fwrite(&
stu[length],sizeof(structStuMessage),1,fp)!
=1)
无法保存数据!
else
保存成功!
是否继续?
//清楚输入缓存
}
fclose(fp);
请按任意键返回!
voidModify(structStuMessagestu[])//修改学生信息函数
charnum[11];
r+"
))==NULL)//以读写方式打开指定文件,判断是否存在
feof(fp))//如果未遇到文件结束的标志,文件存在
stu[length],sizeof(structStuMessage),1,fp)==1)//读取成功则返回读入的数据块个数
请按任意键返回\n"
请输入要修改的学生学号:
num);
if((strcmp(stu[i].stuNo,num))==0)
{printf("
成功找到该学生信息!
该学生信息为:
//判断是否找到该学生学号
PrintHead();
//输出表头
%s\t"
stu[i].stuNo);
stu[i].name);
stu[i].spec);
%d\t"
stu[i].grade);
%c\t"
stu[i].sex);
%d,%d,%d\n"
stu[i].birthday.year,stu[i].birthday.month,stu[i].birthday.day);
break;
if(i==length)
该学生不存在!
//该学生不存在
请输入修改后的学生信息!
修改后的学号:
修改后的姓名:
修改后的专业:
修改后的年级:
stu[i].grade);
修改后的性别:
//清空缓存
stu[i].sex);
修改后的出生年月(形如2012,05,01):
stu[i].birthday.year,&
stu[i].birthday.month,&
stu[i].birthday.day);
修改学生信息成功!
))==NULL)//以只写方式打开二进制文件
该文件不存在!
return;
stu[i],sizeof(structStuMessage),1,fp)!
=1)//将修改后数据写入磁盘
保存数据失败!
getch();
voidDelet(structStuMessagestu[])//删除学生信息函数
inti,j,length=0;
charch[2],num[11];
//关闭文件
进行删除学生信息?
)==0)//确定是否进行删除操作
请输入要删除的学生学号:
/*输出该学生信息*/
for(j=i;
j<
j++)
stu[j]=stu[j+1];
//将后一个记录移到前一个记录的位置
length--;
//记录的总个数减一
删除学生信息成功!
))==NULL)//以只写方式打开二进制文件
=1)//将删除后数据写入磁盘
是否继续删除?
(y/n)"
voidMenuOfSear(structStuMessagestu[])//查找学生信息函数
voidSearNum(structStuMessagestu[]);
voidSearGrade(structStuMessagestu[]);
charm;
1.按学号查询\n"
2.按年级查询\n"
0.返回主菜单\n"
请选择:
case1:
SearNum(stu);
case2:
SearGrade(stu);
case0:
非法操作!
是否重新操作?
y重新操作,n返回主菜单:
m);
if(m=='
y'
)
n'
voidSearNum(structStuMessagestu[])
rb"
))==NULL)//只读方式打开指定文件,判断是否存在
feof(fp))//如果未遇到文件结束的标志,即文件存在
请输入要查找的学生学号:
成功找到该学生学号!
if(i==length)//由i的大小判断该学生存在性
没有找到该学生信息!
voidSearGrade(structStuMessagestu[])//按年级查找函数
intn,count=0;
请输入要查找的年级:
以下为该年级学生信息:
//输出表头
i++)//判断为该年级
if(n==stu[i].grade)
count++;
/*输出学生信息*/
if(count>
0)
找到%d条该年级学生记录!
count);
没有找到该年级学生记录!
voidListAll(structStuMessagestu[])
if(fr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学籍 管理 系统