C语言学生成绩管理系统设计.docx
- 文档编号:2783609
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:24
- 大小:235.35KB
C语言学生成绩管理系统设计.docx
《C语言学生成绩管理系统设计.docx》由会员分享,可在线阅读,更多相关《C语言学生成绩管理系统设计.docx(24页珍藏版)》请在冰豆网上搜索。
C语言学生成绩管理系统设计
沈阳航空航天大学
课程设计报告
大作业名称:
C语言课程设计
大作业题目:
学生成绩管理系统设计
院(系):
计算机学院
专业:
计算机科学与技术
班级:
学号:
姓名:
指导教师:
完成日期:
2016年12月24日
第1章概要设计
1.1题目的内容与要求
内容:
学生成绩信息包括:
姓名、学号、语文、数学、英语。
实现的主要功能有:
1)信息维护。
包括学生成绩的输入、按学号删除、按学号修改等。
2)信息查询。
输入学号或姓名,显示出该生三个科目的成绩,计算出三科总分
并显示,按总分将所有学生成绩排序,显示出该生的名次。
3)成绩统计。
先输入任意一个科目,接着选择a或b来分别显示平均分或统计
分数段学生,若选择a,则直接显示出该科目的平均分;若选择b,则提示
用户输入一个分数段,显示所有该科目属于该分数段内的学生信息,并给出
学生总数。
要求:
1)系统以菜单方式工作。
在不同的界面为用户给出具体提示。
2)系统利用C语言实现,源程序要有适当的注释。
3)采用VC环境进行运行调试。
1.2总体结构
本程序主要分为七个模块(功能模块图见图1.1):
结构体模块,输入模块,显示模块,修改模块,删除模块,查询模块,统计模块。
结构体模块:
建立一个结构体模块,为链表存信息用。
输入模块:
键盘输入每个学生的信息,并保存在文件中。
显示模块:
显示全部学生的具体信息。
修改模块:
修改某个学生的成绩信息。
删除模块:
删除某个学生的全部信息。
查询模块:
查询某个学生的具体信息。
统计模块:
通过功能选择,统计并显示某一科目的平均分或某分数段学生的具体信息。
图1.1功能模块图
第2章详细设计
2.1主模块
控制整个程序的运行,控制菜单操作,通过主函数模块分别调用各个模块,实现各项功能,流程如图2.1所示。
Y
NN
Y
图2.1主模块流程图
注释:
1.显示主菜单;
2.选择不同序号执行不同功能;
2.2输入模块
输入所有学生信息并保存,流程如图2.2所示。
图2.2输入模块流程图
注释:
1.循环输入每个学生的信息;
2.保存所有信息
2.3显示模块
显示所有学生的具体信息,流程图如2.3所示。
图2.3显示模块流程图
注释:
1.选择号好功能;
2.显示全部学生的具体信息。
2.4修改模块
修改某个学生各个科目的成绩,流程图如2.4所示。
Y
N
图2.4修改模块流程图
注释:
1.输入要修改学生的学号;
2.输入要修改的科目信息;
3.修改成功,是否要继续修改。
是,继续;否,回到主菜单。
2.5删除模块
按学号删除某学生的全部信息,流程图如图2.5所示。
Y
N
N
图2.5删除模块流程图
注释:
1.输入要删除的学生的学号;
2.显示该生信息,是否删除。
是,删除;否,是否继续操作。
3.是否继续删除。
是,重复上述操作;否,退出回到主菜单。
2.6查询模块
输入要查询学生的学号,显示该生具体信息,流程图如图2.6所示。
Y
N图2.6查询模块流程图
注释:
1.输入要查询的学生的学号;
2.显示该生的具体信息;
3.是否继续查询。
是,继续查询下一位;否,回到主菜单。
2.7统计模块
通过选择不同功能,显示某个科目的平均分或某分数段学生的具体信息,流程图如图2.7所示。
case‘a’:
case‘b’:
Y
N
图2.7统计模块流程图
注释:
1.通过菜单选择科目;
2.通过菜单选择a或b功能,分别显示该科目平均分或某分数段学生信息;
3.是否继续查询?
是,继续;否,回到主菜单。
第3章调试分析
在这次课程设计中,程序编写的过程中遇到了很多问题,主要是函数实现方面问题较多。
问题1:
查询函数chaxun()中,会造成数据混乱,原因是for循环中某行代码运用错误,如下:
for(i=0;i { if(stu[i].num==x) { k=i;/*找到要查询的同学学号,并用k记下其下标*/ } OutputOneStudent(k); } 将OutputOneStudent(k);拿出后,查询功能正常实现。 正确编写如下: for(i=0;i { if(stu[i].num==x) { k=i;/*找到要查询的同学学号,并用k记下其下标*/ } } OutputOneStudent(k); 问题2: 统计函数tongji(),功能实现完后不能回到主菜单。 解决方法是,把功能函数gongneng()其中的while循环删掉。 第4章使用说明 运行截图如下: 1.输入成绩 2.信息显示 3.修改信息 4.删除信息 5.查询信息 6.1统计信息----科目平均分 6.2统计信息----科目某分数段学生信息 7.退出系统 参考文献 1.王敬华,《C语言程序设计教程(第二版)》,清华大学出版社,2009年8月 2.谭浩强,《C语言程序设计教程(第二版)》,清华大学出版社,1999年12月 3.谭浩强,《C语言程序设计题解与上机指导》,清华大学出版社,2000年11月 4.田淑清,《C语言程序设计辅导与习题集》,中国铁道出版社,2000年1月 5.张荣梅、梁晓林,《VisualC++实用教程》,冶金工业出版社,2004年 附录(程序清单) 程序代码: #include #include #include #defineN3 structstudent { intnum;//学号 charname[20];//姓名 floatscore[3];//三门课成绩 floatsum;//总分 floataver;//平均分 }stu[N]; voidmenu();//主菜单功能 voidinput();//输入信息到结构体中 voidsave(intx);//保存stud.dat文件函数 voidprint();//输出显示所有学生信息 voidSaveAllStudent(intn);//保存全部学生信息 voidxiugai(intn);//按学号修改成绩 intshanchu(intn);//按学号删除 voidOutputOneStudent(inti);//查询一个学生的信息 voidchaxun(intn);//按学号查询成绩 voidtongji();//统计科目信息 voidgongneng(intx);//a或b功能分别显示科目平均分或分数段学生信息 intmain() { printf("***********************************************************\n"); printf("**\n"); printf("*Hwadee&学生成绩管理系统&Hwadee*\n"); printf("**\n"); printf("******************************************************\n\n\n"); printf("****************●●欢迎使用●●*******************\n"); while (1) { menu(); } return0; } /*主菜单***********************************************************/ voidmenu() { intchoice; intn=N; printf("\n请选择功能: \n"); printf("\n1: 输入成绩\n2: 显示信息\n3: 修改成绩\n4: 删除信息\n5: 查询成绩\n6: 成绩统计\n0: 退出系统\n\n"); printf("\n请选择序号: \n"); scanf("%d",&choice); switch(choice) { case1: input(); save(N); break; case2: print(); break; case3: xiugai(n); break; case4: shanchu(n); break; case5: chaxun(n); break; case6: tongji(); break; case0: printf("\n谢谢使用,再见! \n\n"); exit(-1); break; default: printf("输入错误! \n"); break; } } /*写入函数****************************************************/ voidinput() { inti,j; printf("\n输入信息\n"); for(i=0;i { printf("输入学号: "); scanf("%d",&stu[i].num); printf("输入姓名: "); scanf("%s",&stu[i].name); for(j=0;j { printf("第%d门成绩的分数: ",j+1); scanf("%f",&stu[i].score[j]); } stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]; stu[i].aver=stu[i].sum/3; printf("\n"); } } /*写入文件***********************************************************/ voidsave(intx) { FILE*fp;/*定义文件指针用于向文件读入数据*/ inti; if((fp=fopen("student.dat","rb+"))==NULL)/*以二进制读,写方式打开文件*/ { printf("cannotopenfile\n"); exit (1); } for(i=0;i { if(fwrite(&stu[i],sizeof(structstudent),1,fp)! =1) { printf("filewriteerror\n"); } } fclose(fp); printf("\n\n信息保存成功! 恭喜! ! \n\n"); } /*显示全部学生信息**************************************************/ voidprint() { inti; printf("学号姓名语文数学英语总分平均分\n"); fo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生 成绩管理系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)