1、佛山科学技术学院试验汇报试验名称 小型学生信息管理系统 试验项目 编写一学生信息管理系统,用来管理学生基础信息及成绩信息专业班级 姓名 XXX 学号 指导老师 成绩 日期 一、 试验目标本试验为学生提供了一个既动手又动脑,上机实践机会。学生经过分析和处理该试验,将书本上理论知识和实际有机地结合起来,锻炼学生分析、处理较复杂问题能力,提升学生编写综合系统程序能力。二、 试验内容编写一个学生信息管理系统,关键用来管理学生基础信息及成绩信息。系统功效模块以下图:显 示主菜单数据输入数据修改数据输出退出数据处理查询排序统计平均分不及格科 目具体要求为:1. 建立学生信息,每个学生信息应包含:学号、姓名
2、、性别、班级、最少3门课程成绩;2. 数据输入:输入学生各项信息;3. 数据修改:依据输入学生学号能够选择修改该学生信息;4. 数据处理:能够选择处理方法为:排序、查询、统计。其中:a) 排序:按学号排序b) 查询:依据学号查询成绩c) 统计:能够选择统计各学生平均成绩或统计全部存在不及格科目标学生;5. 数据输出:输出学生对应结果信息;6. 退出:退出整个学生信息管理系统。7. 输出结果截屏第一条统计一定要反应出你自己真实信息。三、 程序组织结构图、函数调用关系图四、 程序清单#include#include#includestruct studentchar num10;char name
3、10;char sex4;char clas20;int yw,sx,yy;float ave;stu100;int i,j;void InputData()char x;while(1)printf(t学号:);scanf(%s,stui.num); printf(t姓名:); scanf(%s,stui.name); printf(t性别:); scanf(%s,stui.sex); printf(t班级:); scanf(%s,stui.clas); printf(t语文:); scanf(%d,&stui.yw); printf(t数学:); scanf(%d,&stui.sx); p
4、rintf(t英语:); scanf(%d,&stui.yy);stui.ave=float(stui.yw+stui.sx+stui.yy)/3.0);i+;printf(t是否继续输入数据(Y.N);cinx;if(x=n|x=N) break;void EditData()int count=0;char str10;printf(n请输入学生学号:);cinstr;while (count=i)printf(n查无此人);elseprintf(nt修改数据:n); printf(t学号:);scanf(%s,stui.num); printf(t姓名:); scanf(%s,stui.
5、name); printf(t性别:); scanf(%s,stui.sex); printf(t班级:); scanf(%s,stui.clas); printf(t语文:); scanf(%d,&stui.yw); printf(t数学:); scanf(%d,&stui.sx); printf(t英语:); scanf(%d,&stui.yy);stucount.ave=float(stucount.yw+stucount.sx+stucount.yy)/3.0); void sx()struct student temp;int a,b,c;for(a=0;ai-1;a+)c=a;fo
6、r(b=a+1;bstuc.ave)c=b;temp=stub;stub=stuc;stuc=temp;printf(排序后结果为:n); printf(学号 姓名 性别 班级 语文 数学 英语n); printf(-n);for(c=0;cstr;while (count=i)printf(n无该学号学生);elseprintf(n);void tjpjf() int count=0; stui.ave=float(stui.yw+stui.sx+stui.yy)/3.0); printf(学号 姓名 平均分 n);printf(-n); for(j=0;ji;j+)while(counti
7、) for(j=0;ji;j+) printf(%-21s,stucount.num); printf(%-21s,stucount.name);printf(%-6.2f,stucount.ave);count+; printf(n);printf(-n); void tjbhgrs() int j,count=0;printf(有不及格科目标学生是:n);printf(学号 姓名 性别 班级 语文 数学 英语n);printf(-n);for(j=0;ji;j+)if(stuj.yw60|stuj.sx60|stuj.yyx;printf(n); switch(x) case 1:tjpj
8、f();break; case 2:tjbhgrs();break; case 3:break;if(x=3)break;printf(n);void DataProc()char x;while(1)printf(t n); printf(t 处 理 数 据 n); printf(t n); printf(t n); printf(t 1.按学号排序 n); printf(t 2.查询 n); printf(t 3.统计 n); printf(t 4.返回主菜单 n); printf(t n); printf(t n); printf(nt请选择具体处理内容:);cinx; printf(n
9、);switch(x) case 1:sx();break; case 2:cx();break; case 3:tj();break; case 4:break;if(x=4)break;printf(n);void DataOutput() int count=0; printf(学号 姓名 性别 班级 语文 数学 英语n);printf(-n);while(countx; printf(n); switch (x) case 1:InputData();break; case 2:EditData();break; case 3:DataProc();break; case 4:Data
10、Output();break; case 5:printf(谢谢使用!n);break; if(x=s) break; printf(n);五、 运行结果六、 试验总结(调试分析、体会、致谢)从这一次综合试验中,我感慨很深能够这么说,为了这个试验花费比较功夫。就我个人来说,其实我很害怕和电脑,程序相关东西,可能因为一直以来极少接触电脑吧,对于相关东西比较难了解。很认真去学,还是感觉很吃力。每次上课或做试验,发觉自己在这方面很跟上大家脚步。比如说,我去做了题,不过不能了解,也记不住。不过,这次综合试验二做起来相对之前,我发觉自己有了进步。从开始着手做,我就发觉这个试验所需要知识在前面试验已经做过
11、了。尤其是综合试验一。我是像做试验一那样去完成这个试验。首先把整个函数结构,关系图先写出来。在把程序写出来时,先写主函数,然后把第一层函数空函数写出来,调试主函数和第一层空函数。第二步就是根据主菜单次序,把第一层函数写出来,输入数据函数很快就写好,调试也没有任何问题。在写修改数据函数就没那么轻易,我参考了老师程序,不过很奇怪,调试没问题,可当我输入数据后,进行第二修改数据时,出现数据一直是学号为1学生数据。我找了一天是哪问题,却完全没头绪,然后我就求援舍友了,舍友帮我看了很久,她也找不到。等我返回去看步骤图,才发觉原来少了“if(strcmp(str,stucount.num)=0)”这条件。
12、接下来就是处理数据函数,我个人感觉这里,既简单又比较难。这个函数里面又包含里按学号排序,查询,统计这三个函数,而统计里面又有统计平均分及统计不及格学生信息两个函数。像之前一样,我先把第三层函数写好,再写第四层。按学号排序那个因为刚好老师讲到相关那节课很认真听了;做起来即使有点磕磕碰碰,它程序调试完全没问题。在调试查询时候,我犯了一个尤其低级错误,在没有把上一次运行窗口关掉就编译,运行,发觉程序连接有错误。我第一反应认为代码犯错,就一在代码上找错,但找不到,当我眼光放到电脑任务栏,才恍然大悟,没有把上次运行后窗口关掉。而且,这种错误在做综合试验过程中犯了不止一次。这也提醒着我对于C语言很不熟练。
13、做统计函数时我花费了比较长时间。其实统计里面两个函数相对来讲不是尤其难,不过因为前面全部忘了,所以在调试老是犯错。以后,函数写出来了,编译,运行也没犯错,可是统计出来平均分就是不正确。看了又看,全部找不到哪里有问题。我又去求援了问一个同学,找不到,又回来问舍友了。最终发觉了,原来在输入数据那个求平均值那里,我把stui.ave=float(stui.yw+stui.sx+stui.yy)/3.0);写成了stui.ave=float(stui.yw+stui.sx+stui.yy/3.0);也就是括号放错地方了。到这里为止,我已经完成了整个系统,开始全方面调试,随便输了几组数据,一步一步往下进行操作,整个系统运行正常。我很快乐,最少在自己努力和老师,同学帮助下完成整个试验。在这里,我从心里深深表示,感谢在我有困难时 ,文娴和王瑶对我帮助,感谢老师在课上耐心指导,让我对学习C语言有了爱好和动力。我在完成这个系统后,我愈加认识到:没什么是学不会,只在于你自己去不去努力学,我很后悔之前碰到一点小困难就放弃行为,不过,我不会再如此轻易放弃了,碰到困难要迎难而上。在这里,再一次对老师和同学表示真心感谢!