C语言学生管理系统综合实验报告.docx
- 文档编号:23649105
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:16
- 大小:56.52KB
C语言学生管理系统综合实验报告.docx
《C语言学生管理系统综合实验报告.docx》由会员分享,可在线阅读,更多相关《C语言学生管理系统综合实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
C语言学生管理系统综合实验报告
实验名称
小型学生信息管理系统
实验报告
实验项目
编写一学生信息管理系统,用来管理学生基本信息及成绩信息
试验目的
本实验为学生提供了一个既动手又动脑,上机实践的机会。
学生通过分析和解决该实验,将课本上的理论知识和实际有机地结合起来,锻炼学生分析、解决较复杂问题的能力,提高学生编写综合系统程序的能力。
实验内容
编写一个学生信息管理系统,主要用来管理学生基本信息及成绩信息。
系统功能模块如下图:
具体要求为:
1.建立学生信息,每个学生的信息应包括:
学号、姓名、性别、班级、至少3门课程的成绩;
2.数据输入:
输入学生的各项信息;
3.数据修改:
根据输入学生的学号可以选择修改该学生的信息;
4.数据处理:
可以选择处理方式为:
排序、查询、统计。
其中:
a)排序:
按学号排序b)查询:
根据学号查询成绩
C)统计:
可以选择统计各学生的平均成绩或统计所有存在不及格科目的学生;
5.数据输出:
输出学生的相应结果信息;
6.退出:
退出整个学生信息管理系统。
7.输出结果截屏的第一条记录一定要反映出你自己的真实信息。
四、
程序清单
程序组织结构图、函数调用关系图
#includevstdio.h>
#include
#includevstring.h>structstudent
charnum[10];
charname[10];
charsex[4];
charclas[20];
intyw,sx,yy;
floatave;
}stu[100];
inti,j;
voidInputDataO
charx;
while
(1)
scanf("%s",stu[i].num);
printf("\t
姓名:
");
seanf("%s",stu[i].name);
scanf("%s",stu[i].sex);
scanf("%s",stu[i].clas);
scanf("%d",&stu[i].yw);
printf("\t
英语:
");
scanf("%d",&stu[i].sx);
scanf("%d",&stu[i].yy);
stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy)/3.0);
if(x=='n'||x=='N')break;
voidEditDataO
intcount=0;
charstr[1O];
printf("\n请输入学生学号:
");
cin>>str;
while(count
if(strcmp(str,stu[count].num)==0)
printf("学号
姓名
性别
班级
语文数学
英语\n");
printf("%-11s",stu[count],num);
Pl1nff(=%—13s-「sucounq.name)八
prinff(=%—8s-「sfurcouna•sex)八
Pl1nff(=%—16s-「sucounq.c-as)八
Pl1nff(=%—6crguaounq.yw=
prinff(=%—6空sfuaounq•sx)-
Pl1m%—4crguaounq.yy=
prinmvrx
prin殳
break-
counf++八
if(counfvHi)
e-se
printf("\n\t修改数据:
\n");
printf("\t
学号:
");
seanf("%s",stu[i].num);
printf("\t
姓名:
");
seanf("%s",stu[i].name);
scanf("%s",stu[i].sex);
scanf("%s",stu[i].elas);
printf("\t
数学:
");
scanf("%d",&stu[i].yw);
scanf("%d",&stu[i].sx);
scanf("%d",&stu[i].yy);
stu[count].ave=float((stu[count].yw+stu[count].sx+stu[count].yy)/3.0);
voidsx()
structstudenttemp;
inta,b,c;
for(a=0;a c=a; for(b=a+1;b if(stu[b].ave>stu[c].ave) c=b; temp=stu[b]; stu[b]=stu[c]; sfurc一Hfemp八 Pl1nff(=盘E甸可璋;MR〔云) priw—— fo「(CHOqrc++) pl1mf(=%—1」s=guaLnum= prinff(=%—l3S=gurcLname)八 Pl1mf(=%—8s=gus.sex)- prinm.%二6s=gus.cas)- pl1mf(=%—6crguaLyw)- Pl1mf(=%—6crgus.sx)- Pl1mf(=%—4crgus.yy)- prinmvrx printf(" voidcx() intcount=0; charstr[1O]; printf("\n请输入要查询的学生学号: "); cin>>str; while(count printf("学号 姓名 性别 班级 语文数学 if(strcmp(str,stu[count].num)==0) 英语\n"); printf("%-11s",stu[count],num); printf("%-13s",stu[count],name); printf("%-8s",stu[count].sex); printf("%-16s",stu[count].clas); printf("%-6d",stu[count].yw); printf("%-6d",stu[count].sx); printf("%-4d",stu[count].yy); printf("\n"); printf(" break; count++; if(count>=i) printf("\n无该学号学生"); else printf("\n"); voidtjpjf() intcount=0; stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy)/3.0); printf(" 学号 姓名 平均分\n"); printf(" for(j=0;j while(count for(j=0;j printf("%-21s",stu[count].num); printf("%-21s",stu[count],name); printf("%-6.2f",stu[count].ave); count++; printf("\n");} \n"); printf(" voidtjbhgrsO printf(" 学号 姓名 性别 班级 语文数学英语\n"); intj,count=0; \n"); printf("for(j=0;j if(stu[j].yw<60||stu[j].sx<60||stu[j].yy<60) {printf("%-11s",stu[count],num); printf("%-13s",stu[count].name); printf("%-8s",stu[count].sex); printf("%-16s",stu[count].clas); printf("%-6d",stu[count].yw); printf("%-6d",stu[count].sx); printf("%-4d",stu[count].yy); printf("\n"); count++; \n"); printf("voidtj() charx; while (1) printf("\t1. 统计平均分2.统计不及格学生信息3.返回 { \n"); printf("\n\t请选择具体的统计内容: "); cin>>x; printf("\n"); switch(x) { case'1': tjpjf();break; case2: tjbhgrs();break; case3: break; }if(x==3) break; printf("\n"); } } voidDataProc() { charx; while (1) { printf("\t 处理数据 \n"); printf("\t printf("\t 4. 返回主菜单 \n"); \n"); printf("\t printf("\n\t 请选择具体的处理内容: "); cin>>x; printf("\n"); switch(x) case'1': sx();break; case'2': cx();break; case3: tj();break; case'4': break; if(x=='4') break; printf("\n"); voidDataOutput() intcount=0; printf(" 学号 姓名 性别 班级 语文数学英语 \n"); printf(" \n"); while(count printf("%-11s",stu[count],num); printf("%-13s",stu[count].name); printf("%-6d",stu[count].sx); printf("%-6d",stu[count].yy); count++; printf("\n"); \n"); printf(" voidmain() charx; while (1) {printf("\t********************************************\n"); printf("\t* 1. 输入数据 *\n"); printf("\t* 2. 修改数据 *\n"); printf("\t* 3. 处理数据 *\n"); printf("\t* 4. 输出数据 *\n"); printf("\t* 5. 退出 *\n"); printf("\t* *\n"); printf("\t********************************************\n"); printf("\n\t 请选择需要进行的操作: "); cin>>x;printf("\n"); switch(X) {case'1': InputData();break; case2: EditData();break; case3: DataProc();break; case'4': DataOutput();break; if(x=='s')break; 八、 实验总结(调试分析、体会、致谢) printf("\n"); 从这一次的综合实验中,我感触很深 可以这么说,为了这个实验花费比较的功夫。 就我个人来说,其实我很害怕与电脑,程序有 关的东西,可能因为一直以来很少接触电脑吧,对于相关的东西比较难理解。 很认真去学,还是感觉很吃力。 每次上课或做实验,发现自己在这方面很跟上大家的脚步。 比如说,我去做了题,但是不能理解,也记不住。 但是,这次的综合实验二做起来相对之前,我发现自己有了进步。 从开始着手做,我就发现这个实验所需要的知识在前面的实验已经做过了。 特别是综合实验一。 我是像做实验一那样去完成这个实验的。 首先把整个函数的结构,关系图先写出来。 在把程序写出来时,先写主函数,然后把第一层函数的空函数写出来,调试主函数与第一层的空函数。 第二步就是按照主菜单的顺序,把第一层函数写出来,输入数据的函数很快就写好,调试也没有任何问题。 在写修改数据的函数就没那么容易,我参照了老师的程序,但是很奇怪,调试没问题,可 当我输入数据后,进行第二的修改数据时,出现的数据一直是学号为1的学生的数据。 我找了一 天是哪的问题,却完全没头绪,然后我就求助舍友了,舍友帮我看了很久,她也找不到。 等我返 ”这条件。 接下来就是处 回去看流程图,才发现原来少了“if(strcmp(str,stu[count].num)==O) 理数据的函数,我个人感觉这里,既简单又比较难的。 这个函数里面又包含里按学号排序,查询,统计这三个函数,而统计里面又有统计平均分及统计不及格学生信息两个函数。 像之前一样,我先把第三层函数写好,再写第四层的。 按学号排序那个因为刚好老师讲到相关的那节课很认真听了;做起来虽然有点磕磕碰碰,它的程序调试完全没问题。 在调试查询的时候,我犯了一个特别低级的错误,在没有把上一次的运行窗口关掉就编译,运行,发现程序连接有错误。 我第一反应以为代码出错,就一在代码上找错,但找不到,当我目光放到电脑的任务栏,才恍然大悟,没有把上次运行后的窗口关掉。 并且,这种错误在做综合实验过程中犯了不止一次。 这也提醒着我对于C语言很不熟练。 做统计的函数时我花费了比较长的时间。 其实统计里面的两个函数相对来讲不是特别难,但是因为前面的都忘了,所以在调试老是出错。 后来,函数写出来了,编译,运行也没出错,可是统计出来的平均分就是不正确。 看了又看,都找不到哪里有问题。 我又去求助了问一个同学,找不到,又回来问舍友了。 终于发现了,原来在输入数据那个求平均值那里,我把 stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy)/3.0); 也就是括号放错地方了。 写成了stu[i].ave=float((stu[i].yw+stu[i].sx+stu[i].yy/3.0)); 到这里为止,我已经完成了整个系统,开始全面调试,随便输了几组数据,一步一步往下进行操作,整个系统运行正常。 我很开心,至少在自己努力和老师,同学的帮助下完成整个实验。 在这里,我从心里深深表示,感谢在我有困难时,文娴和王瑶对我的帮助,感谢老师在课上的耐心指导,让我对学习C语言有了兴趣与动力。 我在完成这个系统后,我更加认识到: 没什么是学不会的,只在于你自己去不去努力学,我很后悔之前遇到一点小困难就放弃的行为,不过,我不会再如此轻易放弃了,遇到困难要迎难而上。 在这里,再一次对老师和同学表示真心的感谢!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生 管理 系统 综合 实验 报告