C语言学生学籍信息管理系统设计.docx
- 文档编号:17751783
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:15
- 大小:16.52KB
C语言学生学籍信息管理系统设计.docx
《C语言学生学籍信息管理系统设计.docx》由会员分享,可在线阅读,更多相关《C语言学生学籍信息管理系统设计.docx(15页珍藏版)》请在冰点文库上搜索。
C语言学生学籍信息管理系统设计
学生学籍信息管理系统设计
1、需求分析
学生基本信息、学生成绩基本信息要存入文件当中,因而要提供文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要现删除操作;排序功能要现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。
2、总体设计
整个系统可以设计为数据录入模块、数据查询模块、数据删除模块和数据排序模块。
3、详细设计
设计学生基本信息和学生成绩基本信息结构体数组。
Struct
{
intstuNo;//学号
charname[20];//
charsex[2];//性别
intdomNum;//宿舍号
inttel;//
}StuInfo;//学生基本信息结构体
Struct
{
intstuNo;//学号
charcourseNo;//课程编号
charcourseName;//课程名称
intcreditHour;//学分
InttriGrade;//平时成绩
IntexperiGrade;//实验成绩
IntexamGrade;//卷面成绩
FloattotalGrade;//综合成绩
FloatfinalCreHour;//实得学分
}StuGraInfo;//学生成绩基本信息结构体
(1)数据录入模块
学生基本信息文件可以在磁盘建立,采用写文件方式录入学生成绩基本信息。
综合成绩和实得学分通过计算得到。
(2)查询模块
通过菜单选择查询功能,再选择学生基本情况查询和成绩查询,若选择前者,再通过菜单选择学号、或宿舍,按照基本查找算法查找A.TXT,然后把查找结果输出若选择后者,则先在A.TXT中查找学号对应的,再在B.TXT中查找该学生的课程情况,并统计科目和实得总学分,输出结果。
(3)删除模块
通过菜单选择删除学生的功能,输入要删除学生的学号,则分别在A.TXT和B.TXT中查找该生信息,删除之;或者输入学生的,先在A.TXT中得到该生的学号,删除该生信息,再在B.TXT中删除该学号对应的信息。
注意:
C语言中没有直接删除信息的函数,需要自己实现,可以采取读出数据,判断数据(如果不删除,则进入缓冲区,否则删除),写入数据(把缓冲区中的数据写入文件)的步骤进行。
(4)排序模块
通过菜单选择排序依据,采用排序算法(冒泡、插入、选择等)对数据进行排序并输出结果。
#include
#include
#include
#include
#include
voidinput();
voiddisplay();
voidfind();
voiddelmodify();
voiddelfile();
voidsave();
#defineMAX100;
structemploye
{
charjobno[10];//职工号
charname[20];//
charsex[10];//性别
intage;//年龄
charedulevel[10];//学历
charsalary[10];//工资
charaddr[20];//地址
chartel[11];//
};//职工信息结构体
structemployea[100];
intnumber=0;
main()
{
intn;
start:
printf("\t\t\t\t欢迎使用职工信息管理系统\n");
do
{
printf("\t\t\t1.职工信息输入\n");
printf("\t\t\t2.职工信息浏览\n");
printf("\t\t\t3.职工信息查询\n");
printf("\t\t\t4.职工信息删除修改\n");
printf("\t\t\t5.删除文件中的职工信息\n");
printf("\t\t\t6.保存职工信息\n");
printf("\t\t\t7.退出\n");
printf("\t\t\t选择功能选项:
");
fflush(stdin);
scanf("%d",&n);
switch(n)
{
case1:
system("cls");input();break;
case2:
system("cls");display();break;
case3:
system("cls");find();break;
case4:
system("cls");delmodify();break;
case5:
system("cls");delfile();break;
case6:
system("cls");save();break;
case7:
system("exit");exit(0);
default:
system("cls");gotostart;
}
}while
(1);
}
voidinput()
{inti=0;
charj;
do
{printf("\t\t\t\t录入职工信息\n输入第%d个职工的信息:
\n",i+1);
printf("输入职工号:
");
fflush(stdin);
gets(a[i].jobno);
printf("输入职工:
");
fflush(stdin);
gets(a[i].name);
printf("输入职工性别:
");
fflush(stdin);
scanf("%s",a[i].sex);
printf("输入职工年龄:
");
fflush(stdin);
scanf("%d",&a[i].age);
printf("输入职工学历:
");
fflush(stdin);
gets(a[i].edulevel);
printf("输入职工工资:
");
fflush(stdin);
gets(a[i].salary);
printf("输入职工地址:
");
fflush(stdin);
gets(a[i].addr);
printf("输入职工:
");
fflush(stdin);
gets(a[i].tel);
i++;
number=i;
printf("是否继续录入?
(YorN):
");
fflush(stdin);
scanf("%s",&j);
}
while(j!
='n'&&j!
='N');
}
voiddisplay()
{inti=0;
charch;
do
{printf("\n\n");
for(i=0;i {printf("\t\t第%d个职工的信息: \n",i+1); printf("\t职工号%s\n",a[i].jobno); printf("\t%s\n",a[i].name); printf("\t性别%s\n",a[i].sex); printf("\t年龄%d\n",a[i].age); printf("\t学历%s\n",a[i].edulevel); printf("\t工资%s\n",a[i].salary); printf("\t地址%s\n",a[i].addr); printf("\t%s\n",a[i].tel); } printf("\t\t按任意键返回主菜单"); fflush(stdin); ch=getchar(); } while(! ch); system("cls"); } voidfind() {voidfind1(); voidfind2(); intm; charch; start: printf("\n\n"); printf("\t\t\t选择查询职工信息的模式\n"); do {printf("\t\t\t1.通过职工号\n"); printf("\t\t\t2.通过职工学历\n"); printf("\t\t\t选择功能选项: "); fflush(stdin); scanf("%d",&m); switch(m) {case1: system("cls");find1();break; case2: system("cls");find2();break; default: system("cls");gotostart; } printf("\t\t按任意键返回主菜单"); fflush(stdin); ch=getchar(); } while(! ch); system("cls"); } voidfind1() {inti; charstr[20],ch; do { printf("输入要查询的职工号: "); fflush(stdin); gets(str); for(i=0;i if(! strcmp(a[i].jobno,str)) { printf("\t职工号%s\n",a[i].jobno); printf("\t%s\n",a[i].name); printf("\t性别%s\n",a[i].sex); printf("\t年龄%d\n",a[i].age); printf("\t学历%s\n",a[i].edulevel); printf("\t工资%s\n",a[i].salary); printf("\t地址%s\n",a[i].addr); printf("\t%s\n",a[i].tel); } printf("\t\t按任意键返回查询菜单"); fflush(stdin); ch=getchar(); } while(! ch); system("cls"); } voidfind2() {inti; charstr[20],ch; do { printf("输入要查询的职工学历: "); gets(str); for(i=0;i if(! strcmp(a[i].edulevel,str)) { printf("\t职工号%s\n",a[i].jobno); printf("\t%s\n",a[i].name); printf("\t性别%s\n",a[i].sex); printf("\t年龄%d\n",a[i].age); printf("\t学历%s\n",a[i].edulevel); printf("\t工资%s\n",a[i].salary); printf("\t地址%s\n",a[i].addr); printf("\t%s\n",a[i].tel); } printf("\t\t按任意键返回查询菜单"); fflush(stdin); ch=getchar(); } while(! ch); system("cls"); } voiddelmodify() {voiddel(); voidmodify(); charch; intp; start: printf("\t\t\t职工信息的删除? 修改? \n"); do {printf("\t\t\t1.删除\n"); printf("\t\t\t2.修改\n"); printf("选择功能选项: "); fflush(stdin); scanf("%d",&p); switch(p) {case1: system("cls");del();break; case2: system("cls");modify();break; default: system("cls");gotostart; } printf("\t\t按任意键返回主菜单"); fflush(stdin); ch=getchar(); } while(! ch); system("cls"); } voiddel() {charstr[20]; inti; printf("\t\t\t1.输入要删除职工的: \n"); fflush(stdin); scanf("%s",&str); for(i=0;i { if(! strcmp(a[i].name,str)) { if(i==number)number-=1; else {a[i]=a[number-1]; number-=1; } break; } } system("cls"); } voidmodify() {inti; charstr[20]; printf("\t\t\t2.输入要修改职工的: \n"); fflush(stdin); scanf("%s",&str); for(i=0;i if(! strcmp(a[i].name,str)) {system("cls"); printf("\t\t\t2.输入新插入职工的信息: \n"); printf("输入职工号: "); fflush(stdin); gets(a[i].jobno); printf("输入职工: "); fflush(stdin); gets(a[i].name); printf("输入职工性别: "); fflush(stdin); scanf("%s",a[i].sex); printf("输入职工年龄: "); fflush(stdin); scanf("%d",&a[i].age); printf("输入职工学历: "); fflush(stdin); gets(a[i].edulevel); printf("输入职工工资: "); fflush(stdin); gets(a[i].salary); printf("输入职工地址: "); fflush(stdin); scanf("%s",a[i].addr); printf("输入职工: "); fflush(stdin); gets(a[i].tel); printf("\n\n"); break; } system("cls"); } voidsave() {FILE*fp; inti; charfilepath[20]; printf("输入要保存的文件路径: "); fflush(stdin); gets(filepath); if((fp=fopen(filepath,"w"))==NULL) { printf("\n保存失败! "); exit(0); } for(i=0;i fprintf(fp,"%s%s%s%d%s%d%s%s",a[i].jobno,a[i].name,a[i].sex,a[i].age,a[i].edulevel,a[i].salary,a[i].addr,a[i].tel); fclose(fp); printf("职工信息已保存在%s中! \n",filepath); fclose(fp); printf("职工信息已保存在%s中! \n",filepath); system("pause"); system("cls"); } voiddelfile() {FILE*fp; charfilepath[20]; printf("输入要删除的文件路径: "); fflush(stdin); gets(filepath); fp=fopen(filepath,"w"); fclose(fp); printf("保存在文件%s中的所有信息已经删除! \n",filepath); system("pause"); system("cls"); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生 学籍 信息管理 系统 设计