最新C语言学生成绩管理系统报告.docx
- 文档编号:25475060
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:31
- 大小:197.13KB
最新C语言学生成绩管理系统报告.docx
《最新C语言学生成绩管理系统报告.docx》由会员分享,可在线阅读,更多相关《最新C语言学生成绩管理系统报告.docx(31页珍藏版)》请在冰豆网上搜索。
最新C语言学生成绩管理系统报告
C语言课程设计报告
题目:
学生成绩管理系统
学院:
计算机与信息工程学院
专业:
信息管理与信息系统
班级:
09级1班
学号:
094631105
姓名:
阿布都许克尔·尔肯
指导老师:
达新民
成绩:
2012年5月18日
C语言程序设计课程设计报告
一.课程设计题目:
<<学生成绩管理系统>>.
二.课程设计内容:
1.成绩录入
可以保存每个学生的多门课成绩;
成绩一边录入,一边统计每个学生各门课程的总成绩;
录入成绩的时候自动保存,不必手动保存。
2.成绩查询
提供“按学号查询”和“按姓名查询”等两种查询。
用户看自己的情况可以调选进行有关的成绩查询;
如果查询成功的话,分别输出学生的“学号”、“姓名”、“各门课程的成绩”、“各门课程的总成绩”和“平均成绩”;
如果查询失败,输出“没有这个同学”并返回查询界面;
如果再不想查询输入“0”可以返回主页面。
3.成绩排序
提供“按学号排序”、“按姓名排序”、“按成绩排序”的三种排序。
用户看自己的情况可以调选进行有关的排序;
进行某个排序的时候,电脑自动执行排序功能快速的排序;
缺点是一次智能执行一种排序,不能同时执行多种排序;
排序完毕后,自动返回主页面。
4.建立文件
存储文件使用指定文件名;
自动保存输入记录在文件里面;
如果已有文件,不保存文件。
5.成绩读取
进行“读取成绩”操作的时候,提示您输入文件名,输入文件名以后计算机自动搜索文件,如果找到屏幕上显示文件里面的数据,如入没有那样的文件输出文件不存在。
注意:
读取的文件是您“建立文件“方式建立的文件。
6.显示成绩和打印文件
1)显示成绩
该功能是打印前面准备;
执行“显示成绩”命令之后屏上显示现在打印的成绩报表;
显示的内容是每个学生的学号”、姓名、各门课程的成绩、各门课程的总成绩和平均成绩。
2)打印成绩
该功能是用打印文件里保存的的学生信息和学生成绩;
打印准备好后执行该功能,打印出文件保存的每个学生的学号、姓名、各门课程的成绩、各门课程的总成绩和平均成绩;
如果打印机没准备好,屏幕上输出“打印机没准备好”。
7.退出
该功能用使用完后退出程序。
三.课程设计要求:
1.整体功能:
1)可以随时添加、检索、排序、保存、读取、打印记录。
2)默认的学生总数100,课程总数10。
这两个数字看情况可以改。
3)是学号可由10位字符(10位数字、10个英文字母或10个混合编码)组成的。
4)使姓名可由20位字符(20位数字、20个英文字母或20个混合编码)组成的。
5)使课程名称可由20位字符(20位数字、20个英文字母或20个混合编码)组成的。
6)学生成绩按照学生总数和课程总数确定。
7)录入学生成绩的时候,一边录入成绩,一边计算机自动计算总成绩和平均成绩。
8)将输出学生信息和成绩栏,例如
姓名学号accessC语言数据结构总成绩平均成绩
李四123496798526086.7
9)使用菜单实现功能的正确的选择
10)所有节点信息和成绩都是动态生成。
2.测试程序:
应列出测试大纲对程序进行测试;
应保证测试用例测试到程序的各种边缘情况.
四.课程设计的总体设计(包含的功能模块):
1.函数声明部分和全局变量定义部分:
#defineMAXN100
#defineMAXM10
charkecheng_mingcheng[MAXM][12];
charxuehao[MAXN][10];
charxingming[MAXN][20];
floatkecheng_chengji[MAXN][MAXM];
floatzongchengji[MAXN];
intm,n;
voidshuru();
voidchaxun();
voidpaixu();
voidbaocun();
voidduqu();
voiddayin_chengji();
voidtuichu();
2.成绩录入功能:
voidshuru();
3.成绩查找功能:
voidchaxun();
4.成绩排序功能:
voidpaixu();
5.成绩保存功能:
voidbaocun();
6.成绩读取功能:
voidduqu();
7.成绩打印功能:
voiddayin_chengji();
8.退出功能:
voidtuichu();
[系统功能模块结构图]
五.详细设计(功能模块的具体实现)相关图如下:
1.成绩录入功能:
2.成绩查询功能:
3.成绩排序功能:
4.成绩保存功能
5.成绩读取功能:
6.成绩打印功能:
六.各模块(函数)的功能介绍,设计描述。
1.模块的功能介绍:
主函数:
voidmain()
成绩录入:
voidshuru();
成绩查找:
voidchaxun();
按学号查找:
voidchaxun1();
按姓名查找:
voidchaxun2();
成绩排序:
voidpaixu();
按学号排序:
voidpaixu1();
按姓名排序:
voidpaixu2();
按成绩排序:
voidpaixu3();
成绩保存:
voidbaocun();
成绩读取:
voidduqu();
成绩打印:
voiddayin_chengji();
显示报表:
voiddayin_chengji1();
打印成绩:
voiddayin_chengji2();
退出功能:
voidtuichu();
2.数组设计描述:
#defineMAXN100
#defineMAXM10
charkecheng_mingcheng[MAXM][12];
charxuehao[MAXN][10];
charxingming[MAXN][20];
floatkecheng_chengji[MAXN][MAXM];
floatzongchengji[MAXN];
intm,n;
这是一个二维数组,其中MAXN表示班级人数的最大值,MAXM表示课程门数的最大值,xingming表示学生的姓名,xuehao表示学生的学号,kecheng_mingcheng表示每门课程的名称,kecheng_chengji表示学生每门课程的成绩,zongchengji表示学生每门课程的总成绩,n表示我们当前输入的学生人数,m表示我们当前输入的课程门数。
七.实验结果:
1.录入成绩:
请输入全班人数:
2↙
请输入课程门数:
2↙
请输入2门课程名称:
第1门课程名称:
access↙
第2门课程名称:
C语言↙
请输入2个学生的数据:
请输入第1个学生的数据:
学号:
094631101↙
姓名:
许克尔↙
2门课程的成绩:
Access:
98↙
C语言:
97↙
请输入第2个学生的数据:
学号:
094631102↙
姓名:
阿吉↙
2门课程的成绩:
Access:
94↙
C语言:
93↙
输入成功。
2.查询成绩:
选1:
请输入要查询的学号:
094631101↙
学号:
094631105
姓名:
许克尔
Access:
98
C语言:
97
总成绩:
195.00
平均成绩:
97.50
<如果>
094631108↙
没有这个同学。
选2:
请输入你要查询的姓名:
阿吉↙
学号:
094631102
姓名:
阿吉
Access:
94
C语言:
93
总成绩:
187.00
平均成绩:
93.50
<如果>
麦麦提↙
没有这个同学。
选0:
返回主页面。
3.成绩排序:
选1:
排序完毕。
选2:
排序完毕。
选3:
排序完毕。
选0:
返回主页面。
4.成绩保存:
请输入文件名:
信管091↙
保存完毕。
5.成绩读取:
请输入文件名:
信管091↙
学号姓名accessC语言总成绩平均成绩
094631101许克尔9897195.0097.50
094631102阿吉9493187.0093.50
读取完毕。
<如果>
信管081↙
文件不存在。
6.显示和打印成绩:
选1:
成绩总表
学号姓名accessC语言总成绩平均成绩
094631101许克尔9897195.0097.50
094631102阿吉9493187.0093.50
显示完毕。
选2:
请准备打印机,按任意键继续……
<如果打印机没准备>
打印机没有准备好!
<如果准备好>
成绩总表
学号姓名accessC语言总成绩平均成绩094631101许克尔9897195.0097.50
094631102阿吉9493187.0093.50
打印完毕。
八.体会及总结:
这次的课程设计总体来说,比前段时期的C语言综合实验难度大了好多,而且综合性更强,少了综合实验是老师给我们提供的那些函数,所有的函数都要自己去想,自己去找,翻阅好多的书,上机自己动手体验,极大的促进了自己的动手能力及独立思考能力,,总体上完成了老师要求的基本功能,没有完成其他的扩展功能,有待改进的地方就是未能设置很好的界面。
九.参考文献:
《C语言程序设计》第二版主编:
占跃华出版社:
北京邮电大学出版社
班次:
2011年6月第二次印刷
十.程序清单:
#include
#include
#include
#defineMAXN100//班里的最多人数
#defineMAXM10//最多课程门数
charkecheng_mingcheng[MAXM][12];//保存所有课程的名称
charxuehao[MAXN][10];//保存学号
charxingming[MAXN][20];//保存姓名
floatkecheng_chengji[MAXN][MAXM];//保存全班所有课程名称
floatzongchengji[MAXN];//保存总成绩
intm,n;//全局变量n,m保存全班实际人数和课程数
voidshuru();
voidchaxun();
voidpaixu();
voidbaocun();
voidduqu();
voiddayin_chengji();
voidtuichu();
voidshuru()//输入成绩模块
{
inti,j;
printf("\n\n\n");
printf("\t\t请输入全班人数:
");
scanf("%d",&n);
printf("\t\t请输入课程门数:
");
scanf("%d",&m);
printf("\t\t请输入%d门课程名称:
\n",m);
for(j=0;j { printf("\t\t第%d门课程名称: ",j+1); scanf("%s",&kecheng_mingcheng[j]); } printf("\n\t\t请输入%d个学生的数据: \n",n); for(i=0;i { printf("\n\t\t请输入%d个学生的数据: \n",i+1); printf("\t\t学号: "); scanf("%s",&xuehao[i]); printf("\t\t姓名: "); scanf("%s",xingming[i]); printf("\n\t\t%d门课程的成绩: \n",m); zongchengji[i]=0;//边输入边统计总成绩 for(j=0;j { printf("\t\t%s: ",kecheng_mingcheng[j]); scanf("%f",&kecheng_chengji[i][j]); zongchengji[i]=zongchengji[i]+kecheng_chengji[i][j]; } } printf("\n\n\n\t\t\t输入成功。 \n"); } voidchaxun()//查询成绩模块 { intj; intchaxun1(); intchaxun2(); intxuanze,suoyin; while (1) { printf("\n\n\n\n\n"); printf("\t\t>>>>>>XX班学生成绩管理系统<<<<<<\n\n\n"); printf("\t\t*****************************************\n"); printf("\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("\t\t1.——————按学号查询\n"); printf("\t\t2.——————按姓名查询\n"); printf("\t\t0.——————返回\n"); printf("\t\t_____________________\n"); printf("\t\t*****************************************\n"); printf("\n\t\t请输入您的选择编号: "); scanf("%d",&xuanze); switch(xuanze) { case1: suoyin=chaxun1();break; case2: suoyin=chaxun2();break; case0: return; } if(suoyin! =-1) { printf("\n\n\t*******************************************"); printf("\n\n\t\t学号: %5s\n\n",xuehao[suoyin]); printf("\t\t姓名: %5s\n",xingming[suoyin]); for(j=0;j { printf("\n\t\t%s: ",kecheng_mingcheng[j]); printf("%12.1f\n",kecheng_chengji[suoyin][j]); } printf("\n\t\t总成绩: %10.2f",zongchengji[suoyin]); printf("\n\n\t\t平均成绩: %10.2f",zongchengji[suoyin]/m); } else printf("\n\n\n\t\t\t没有这个同学。 \n\n\n"); } } intchaxun1()//按学号查询模块 { inti; chars_xuehao[10]; printf("\n\t\t请输入要查询的学号: "); scanf("%s",s_xuehao); for(i=0;i if(strcmp(xuehao[i],s_xuehao)==0) break; if(i returni; elsereturn-1; } intchaxun2()//按姓名查询模块 { inti; chars_xingming[20]; printf("\n\t\t请输入要查询的姓名: "); scanf("%s",s_xingming); for(i=0;i<=n;i++) if(strcmp(xingming[i],s_xingming)==0) break; if(i returni; elsereturn-1; } voidpaixu()//排序模块 { voidpaixu1(); voidpaixu2(); voidpaixu3(); intxuanze; while (1) { printf("\n\n\n\n\n"); printf("\t\t>>>>>>XX班学生成绩管理系统<<<<<<\n\n\n"); printf("\t\t*****************************************\n"); printf("\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("\t\t1.——————按学号排序\n"); printf("\t\t2.——————按姓名排序\n"); printf("\t\t3.——————按总成绩排序\n"); printf("\t\t0.——————返回\n"); printf("\t\t_____________________\n"); printf("\t\t*****************************************\n"); printf("\n\t\t请输入您的选择编号: "); scanf("%d",&xuanze); switch(xuanze) { case1: paixu1();break; case2: paixu2();break; case3: paixu3();break; case0: return; } } } voidpaixu1()//按学号排序模块 { inti,j,k; charx_xuehao[10]; charx_xingming[20]; floatx; for(i=0;i { k=i; for(j=i+1;j if(strcmp(xuehao[j],xuehao[k])<0) k=j; if(k! =i) { strcpy(x_xuehao,xuehao[i]); strcpy(xuehao[i],xuehao[k]); strcpy(xuehao[k],x_xuehao); strcpy(x_xingming,xingming[i]); strcpy(xingming[i],xingming[k]); strcpy(xingming[k],x_xingming); for(j=0;j { x=kecheng_chengji[i][j]; kecheng_chengji[i][j]=kecheng_chengji[k][j]; kecheng_chengji[k][j]=x; } x=zongchengji[i]; zongchengji[i]=zongchengji[k]; zongchengji[k]=x; } } printf("\n\n\n\n\n"); printf("\t\t\t排序完毕。 \n"); } voidpaixu2()//按姓名排序 { inti,j,k; charx_xuehao[10]; charx_xingming[20]; floatx; for(i=0;i { k=i; for(j=i+1;j if(strcmp(xingming[j],xingming[k])<0) k=j; if(k! =i) { strcpy(x_xuehao,xuehao[i]); strcpy(xuehao[i],xuehao[k]); strcpy(xuehao[k],x_xuehao); strcpy(x_xingming,xingming[i]); strcpy(xingming[i],xingming[k]); strcpy(xingming[k],x_xingming); for(j=0;j { x=kecheng_chengji[i][j]; kecheng_chengji[i][j]=kecheng_chengji[k][j]; kecheng_chengji[k][j]=x; } x=zongchengji[i]; zongchengji[i]=zongchengji[k]; zongchengji[k]=x; } } printf("\n\n\n\n\n"); printf("\t\t\t排序完毕。 \n"); } voidpaixu3()//按总成绩排序模块 { inti,j,k; charx_xuehao[10]; charx_xingming[20]; floatx; for(i=0;i { k=i; for(j=i+1;j if(zongchengji[j] k=j; if(k! =i) { strcpy(x_xuehao,xuehao[i]); strcpy(xuehao[i],xuehao[k]); strcpy(xuehao[k],x_xuehao); strcpy(x_xingming,xingming[i]); strcpy(xingming[i],xingming[k]); strcpy(xingming[k],x_xingming); for(j=0;j { x=kecheng_chengji[i][j]; kecheng_chengji[i][j]=kecheng_chengji[k][j]; kecheng_chengji[k][j]=x; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 语言 学生 成绩管理系统 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)