资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
合 肥 学 院程序设计与算法语言课程设计报 告 书题 目 学生信息管理系统 院 系 名 称 合肥学院数学与物理系专 业 (班 级) 信息与计算科学姓 名 (学 号) 何乐(1107011004)指 导 教 师 钱泽强完 成 时 间 2013-01-101一、问题描述在学校对学生的管理中,要掌握每个班级学生的一些基本信息,需要建立一个基本的学生管理系统。这个系统可以管理学生的一些基本信息姓名,学号,学生科目的成绩;可以对学生的姓名、学号基本信息录入,修改,注销,成绩的录如,和信息的修改。二、基本要求1、利用结构体数组实现学生信息的数据结构设计2、系统的各个功能模块要求用函数形式实现3、使用学生管理系统对学生一些基本信息的管理4、结构体成员中包括学生的学号、年龄、名字、所学的科目5、学生信息管理系统应该提供以下功能a、学生基本信息的录入b、学生基本信息的修改c、学生成绩的录入d、修改成绩e、浏览f、退出三、算法思想本程序中包括了 11 个函数和一个清屏函数1、 student-new2、 student-del3、 student-edit4、 score-input5、 score-edit6、 brower7、 page-title8、 return-confirm9、 search-id10、sort-it11、main在函数 page-title 中形参 menu-item 被声明为 char *类型的指针变量,其中函数 page-title 在函数 1、 2、3、4、5、 6,和主函数 11 中被调用。调用函数 7 时,函数分别将实参(字符串的首地址)传递给 menu-item,使 menu-item 指向字符串的首地址,在函数中输出字符串。函数 return-confirm 中定义是一个无形参的函数,其中函数 return-confirm 在函数 1、2、3、4、5 被调用。函数 student-new 是无形参的函数,在函数student-new 中,当学号不等于 0,n 不大于班级学生的总人数是执行函数,采用遍历分别实现学号、姓名、年龄的录入。在录入学生的基本信息后执行函数 8,返回主菜单。函数 search-id 函数定义为 int 型无形参,定义变量 i 为当前输入的学号,采用遍历法实现当前的学号与系统已保存的学号比较,当输入的学号已在在系统保存中并且输入的学号不等于 0 时显示学生的信息再返回学号,否者就显示错误或者学号不存在返回-1,其中 search-id 在函数 2、3、5 中被调用。函数 student-del 是无形参函数,定义 n 为 int 型,调用 search-id 函数并将返回值赋值给 n,如果 n 不等于-1, ,将 0 赋值2给 studentn.id(学号) ,实现这个学号学生信息的注销。在实现学生信息的注销后,执行函数 8,返回主菜单。函数 student-edit 是无形参的函数,定义 n 为 int 型,调用search-id 函数并将返回值赋给 n。如果 n 不等于-1 实现学生新信息的输入,依次录入学号、姓名、年龄。在新信息录入后调用函数 8,返回主菜单。函数 score-input 为无形参的函数,当 studentn.id 不等于 0 时执行 swith 语句,从键盘上输入一个数字,并赋给变量 s,swtich 得到 s 的值并把它和各 case 中的值比较,如果和其中之一相同,则执行该 case 后面的语句,分别进行各个科目成绩的录入。然后调用函数 8 返回主菜单。函数 score-edit 是无形参的函数,定义 n 为 int 型,调用 search-id 函数并将返回值赋给n。如果 n 不等于-1 重新进行此学号学生成绩的录入,实现成绩的修改。然后调用函数 8 返回主菜单。函数 sort-it 形参定义为 char 型函数,采用 for 语句进行遍历,执行swith 语句,分别讲学生的学号,各科目的成绩,和总成绩分别赋给数组 tn,再使用选着排序对数组按学号从前到后,成绩从高到底进行重新排序,先使用 for 进行遍历,先输入一个数组 tn的一个下标,当下标小于总人数时,将 0 先赋给 x,-1 先赋给 p,此后再套用一个 for 语句再进行一次遍历,当下标小于总人数时先判断此数组的元素是否大于 x,如果大于 x 再将 x 的值赋给数组元素,将数组元素的下标赋给 p,直到找到数组元素中最大的值,之后将-1 赋给数组 tp,将 p 赋给 INDEXn再进行下一次的比较。函数 browser 是无形参函数,先调用 sort-it 函数并将实参字符1传递给形参 nn,进行一次学号的排序。再进行永真循环,采用 for 语句进行一次遍历,如果INDEXn不等于-1,将 INDEXn赋给 x,分别输出学生的学号,姓名,年龄,各科成绩和总分。再从键盘上输入一个字符赋给 k,如果 k 在字符0到6之间调用sort-it 函数并将实参 k 传递给形参 nn 进行其他方式的排序,否则退出。在主函数中,采用一个 swith 语句,从键盘上输入一个字符,并把它赋值给 case 中给定的值相比较如果与其中之一相同,则执行该 case 后面的语句(调用函数) 。四 系统模块图和模块划分操 作 选 单录入学生信息 修改学生信息 注销学生信息 录入学生成绩 修改学生成绩 浏览学生信息 退出管理系统1、page-title 函数主 菜 单3功能:显示字符串参数:无2、return-confirm功能:显示字符串,并提示按任意键返回函数主菜单参数:无3、student-new 函数功能:实行学生信息学号、姓名、年龄的录入参数:n 为 int 型表示学生的人数4、search-id 函数功能:得到一个函数的返回值参数:n,i 都为 int 型,其中 n 是系统已录入的学生人数,i 是重新输入的学号5、student-edit 函数功能:注销学生的基本信息参数:n 为 int 型,n 为系统已存在的学生人数6、student-edit 函数功能:重新编辑学生的基本信息参数:n 为 int 型,n 系统已存在的学生人数7、score-input 函数功能:学生成绩的录入参数:s,n,t 都为 int 型,s 代表的科目,n 是系统已存在的学生人数,t 代表的是要录入的学生科目的成绩8、score-edit 函数功能:学生成绩的修改参数:n 为 int 型,n 是已录入系统的学生人数9、sort-it 函数功能:按学号从高到低进行选择排序参数:n、m、p、 x、t53 为 int 型,n 是已录入系统的学生人数,t53为储存学号的数组10、browser 函数功能:浏览已录入的学生信息参数:n,x 为 int 型,k 为 char 型,n 是已录入系统的学生人数,x 为学号所对应的数组的下标,k 是当调用 sort-it 函数时传递为形参的值,进行 swith 语句选择五 源程序#include #include #include int INDEX53;struct STUDENTint id;4int age;int chinese,math,english;char name21;students53; /结构体void page_title(char *menu_item) printf(学 生 管 理 系 统 n %s,menu_item);void return_confirm(void) printf(按任意键返回);getch();void student_new(void) /录入学生信息 int n;page_title(录入学生基本信息);for(n=0;nx)x=tm;7p=m;tp=-1;INDEXn=p; /void browser(void) /浏览 int n,x;char k;sort_it(1);while(1)page_title(浏览);printf(按数字键选择排序方式或按 0 返回n);printf(学号-1t 姓名 t 年龄t 语文-2t 数学-3t 英语-4t 总分-5n);for(n=0;n0) sort_it(k);else if(k=0) break;else continue; /6void main(void) /主函数 menu: page_title(操作选单 n);printf(请用数字键选择操作n);printf(1 录入学生基本信息n2 修改学生基本信息n);printf(3 注销学生基本信息n4 录入成绩n5 修改成绩n);printf(6 浏览n0 退出n);switch(getch()case 1 : student_new();break;8case 2 : student_edit();break;case 3 : student_del();break;case 4 : score_input();break;case 5 : score_edit();break;case 6 : browser();break;case 0 : exit(0);system(cls);goto menu;六 测试数据和结果1、学生信息的基本录入1)学号:01、02、032)姓名:张某某、李某某、王某某3)年龄:21、20、192、修改学生的基本信息1)学号:012)修改为:02 张某某 193、注销学生的基本信息1) 学号:014、录入成绩1)学号:02 语文成绩 1002)学号:03 语文成绩 995、修改学生成绩6、浏览程序执行页面1、 学生信息的基本录入2、 学生信息的修改9错误为3、 注销学生基本信息4、 录入成绩5、 修改成绩、浏览10七、参考文献1、严蔚敏.数据结构( C 语言版) .清华大学出版社,2、谭浩强.C 语言程序设计.清华大学出版社,11小结课程设计是培养学生综合运用所学知识,发现, 提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程. 随着科学技术发展的日新日异,当今计算机应用在是生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术十分重要的。我的题目是学生管理系统的设计,对于我们这些新手来说,这是很大的考验,我一千次一万次的问自己,怎么才能找到课堂所学与实际应用的最佳结合点?怎么才能让自己的程序在篇幅上简单,在使用价值上丰富?怎样让自己的业余更靠近专业?怎样让自己的计划更具有序性,而不会忙无一用?机会是老师,学校,以及无数代教育工作者给的,而能力是自己的,耐性是需要的。经过自己的琢磨,听取了师姐,师兄们的建议,还查阅了很多书籍,才做到了心中有数,才了解了 C 语言课程设计的真正用意培养自学能力,养成程序编辑的好习惯。我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的借口,我要积极,要把握,要努力。回顾起此次课程设计,至今我仍感慨颇多。12 月 24 号我拿到了我的题目的确,从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号