您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 教务系统C程序实验报告
一个模拟的小型教务管理系统实验报告姓名:黄新发班别:信息技术类创新实验111班学号:1107300504学校:广西大学一、实验目的通过小型教务管理系统的设计,培养学生综合利用C语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。二、实验要求该系统用于管理学生的基本信息、课程成绩及毕业资格审查。要求实现以下功能:①通过此模块来管理课程信息,包括查询,添加,修改,删除等功能。在进行课程信息添加时,系统会自动监测所添加的信息是否已经存在,如果存在,会提示已经存在。在进行课程信息删除时,同样要求再次确定。②实现对学生信息、课程成绩及毕业资格审查的文件存取(分别存储在StudentInfo.txt、StudentScore.txt和GraduateCheck..txt文件中),实现对学生信息、课程成绩的记录增加、删除及修改;③实现输入学生学号或姓名查询并显示学生的课程成绩;④实现输入学生学号或姓名,根据该学生的课程成绩,显示毕业资格审查结果。学生的基本信息记录,如:学号姓名性别出生日期专业20050999张三男1980年6月1日软件工程…………………………学生的课程成绩记录,如:学号课程名称课程性质学分成绩20050999毛泽东思想概论公共必修46020050999高级语言程序设计专业必修37020050999WEB程序设计专业选修28020050999IT企业管理素质课190…………………………毕业资格审查结果,显示信息如下:学号课程性质应修学分数已获学分数是否通过20050999公共必修1010是20050999专业必修3029否20050999专业选修2528是20050999素质课1516是提示及说明(1)学生记录、生日请用结构体完成存储,课程性质及专业请用枚举类型存储。(2)学生信息、课程成绩、毕业资格审查的管理可用结构体数组或链表实现。(3)请注意分配好时间,完成系统设计与实现,同时认真填写大作业报告!按时提交大作业报告、可运行的程序及代码,逾期不交,期末成绩以0分记。三、程序设计1、设计思想我严格的按照实验的要求来写,学生的基本信息用链表来实现,其结构成员为学号、姓名、性别、出生日期的结构体(其成员为年、月、日)、专业;课程成绩也用链表实现,其结构成员为学号、课程名称、课程性质、学分、成绩;毕业资格审查用链表实现,其结构成员为学号、4个结构体的结构数组(结构数组包含课程性质、应修学分、已修学分、审查结果)。其中学生基本信息和课程成绩的数据靠从键盘的输入,毕业资格审查的数据是从课程成绩的数据自动的计算赋值的,无需手动输入。将赋了值的链表依次的读入相应的txt文件中。在main函数中先定义了不同结构类型的head_1,head_2,head_3三个表头,开始就运行read_1,read_2,read_3三个函数从相应的txt文件中读出数据,建成链表,返回值分别赋给head_1,head_2,head_3三个表头。主菜单中有1、学生的基本信息,2、学生的课程成绩,3、毕业资格审查,4、退出。而学生的基本信息和学生的课程成绩又有二级菜单1、全显,2、查找,3、添加,4、修改,5、删除,6、保存,7、返回,8、退出。序号1~6都建立了函数。毕业资格审查又有1、全显,2、查找,3、更新,4、保存,5、返回,6、退出。序号1~4建立了函数。而“更新”这个函数属于建立链表,数据是根据学生的课程成绩这一链表的数据逐一赋值的。2、程序框图教务管理系统1、学生的基本信息2、学生的课程成绩3、毕业资格审查4、退出1、全显2、查找3、添加4、修改5、删除6、保存7、返回8、退出1、全显2、查找3、添加4、修改5、删除6、保存7、返回8、退出1、全显2、查找3、更新4、保存5、返回6、退出3、关键技术实现1)运行界面的视觉效果建立了带有int返回值的主菜单和二级菜单函数,在函数中写上system(cls)运行前清屏,在打印。另外灵活的运用了换码符”\t”的水平制表以及字符的输出长度,使数据的输出像表格一样整齐。我是用menu_main()函数表示主菜单,menu_minor_1()、menu_minor_2()、menu_minor_3()函数表示二级菜单的。2)数据在相应的txt文件中的读入读出开始的文字(如fputs(学¡ì号?\t\t姓?名?\t性?别Àe\t出?生¦¨²日¨?期¨²\t专Á¡§°¦Ì\n,fp);)运用了fgets(),fputs(),读入读出,然后通过fscanf(),fprintf()读入读出链表中每一个结构体的成员。文件读出是以txt文件中的数据赋值给结构体建立成链表,然后返回表头。我是用read_1()、read_2()、read_3()和save-1(head)、save_2(head)、save_3(head)函数分别读出和读入的。3)毕业资格审查链表的建立毕业资格审查的数据不能手动的从键盘输入、添加、修改、删除,而是从课程成绩的链表数据中根据学号、课程性质、学分、成绩的不同,经过计算在一一的赋值给毕业资格审查的结构体成员并建成链表。我是用一个“更新”的函数来完成的。四、总结在此次的大作业中,我选择了一个难度较大,具有挑战性和综合性的题目——设计实现一个模拟的小型教务管理系统。在这个大作业中我写了一千行语句左右的代码,不仅实现了各种功能、实现智能化,还优化的运行界面,挺高了视觉效果,使屏幕上的数据更直观了。为了完成此次大作业,我实行了三步走战略。首先,我多次审题、思考,寻找思路,在脑海里形成了一个程序框架,在对可能用到的技术或要实现的效果进行了多次试验;其次,我开始写大作业的代码程序,用函数来实现所需要实现的效果(之前已试验成功);最后,我再修改程序,简化代码。通过做这个大作业,我看程序的视野更加开阔了,全局观念更加强烈了。五、附录、程序代码#includestdio.h#includestdlib.h#includestring.hstructbirthday//定义生日的结构体{intyear;intmonth;intday;};structstu_check1//定义毕业资格审查结果的部分的结构体{charcourse_nature[9];intcredit1;intcredit2;charresult[3];};structstu_infor//定义学生的基本信息记录的结构体{charnum[11];charname[9];charsex[3];·structbirthdaybirth;charmajor[21];structstu_infor*next;};structstu_score//定义学生的课程成绩记录的结构体{charnum[11];charcourse[21];charcourse_nature[9];intcredit;intgrate;structstu_score*next;};structstu_check//定义学生毕业资格审查结果的结构体{charnum[11];structstu_check1check[4];structstu_check*next;};intmenu_main()//主菜单选择{charch;do{system(cls);//运行前清屏printf(\n\t\t\t欢迎使用教务管理系统\n\t\t\t\t\t\t\t作者:黄新发、何双燕\n);printf(\t————————————————————————————————\t);printf(\t\t请\t1:学生的基本信息\n);printf(\t\t\t2:学生的课程成绩记录\n);printf(\t\t选\t3:毕业资格审查结果\n);printf(\t\t\t4:学生个人信息\n);printf(\t\t择\t0:退出\n);printf(\t————————————————————————————————\t);printf(\t\t\t请输入您的选择(0~4):);ch=getchar();//读入选择}while(ch'0'||ch'4');return(ch-'0');//返回选择}intmenu_minor_1(){charch;do{system(cls);printf(\n\t\t\t欢迎使用教务管理系统\n\t\t\t\t\t\t\t作者:黄新发、何双燕\n);printf(\t————————————————————————————————\t);printf(\t\t请\t1:学生的基本信息\n);printf(\t\t\t2:学生的课程成绩记录\n);printf(\t\t选\t3:毕业资格审查结果\n);printf(\t\t\t4:学生个人信息\n);printf(\t\t\t0:退出\n);printf(\t————————————————————————————————\t);printf(\t\t\t请输入您的选择(0~4):1\n);printf(\t————————————————————————————————\t);printf(\t\t\t学生的基本信息\n\n);printf(\t1:全显\t\t2:查找\t\t3:添加\t\t4:修改\n\t5:删除\t\t6:保存\t\t7:返回\t\t0:退出\n);printf(\t————————————————————————————————\t);printf(\t\t\t请输入您的选择:);ch=getchar();}while(ch'0'||ch'7');return(ch-'0');}intmenu_minor_2(){charch;do{system(cls);printf(\n\t\t\t欢迎使用教务管理系统\n\t\t\t\t\t\t\t作者:黄新发、何双燕\n);printf(\t————————————————————————————————\t);printf(\t\t请\t1:学生的基本信息\n);printf(\t\t\t2:学生的课程成绩记录\n);printf(\t\t选\t3:毕业资格审查结果\n);printf(\t\t\t4:学生个人信息\n);printf(\t\t\t0:退出\n);printf(\t————————————————————————————————\t);printf(\t\t\t请输入您的选择(0~4):2\n);printf(\t————————————————————————————————\t);printf(\t\t\t学生的课程成绩记录\n\n);printf(\t1:全显\t\t2:查找\t\t3:添加\t\t4:修改\n\t5:删除\t\t6:保存\t\t7:返回\t\t0:退出\n);printf(\t————————————————————————————————\t);printf(\t\t\t请输入您的选择:);ch=getchar();}while(ch'0'||ch'7');return(ch-'0');}intmenu_minor_3(){charch;do{system(cls);//运行前清屏printf(\n\t\t\t欢迎使用教务管理系统\n\t\t\t\t\t\t\t作者:黄新发、何双燕\n);printf(\t————————————————————————————————\t);printf(\t\t请\t1:学生的基本信息\n);printf(\t\t\t2:学生的课程成绩记录\n);printf(\t\t选\t3:毕业资格审查结果\n);printf(\t\t\t4:学生个人信息\n);printf(\t\t\t0:退出\n);printf(\t————————————————————————————————\t);printf(\t\t\t请输入您
本文标题:教务系统C程序实验报告
链接地址:https://www.777doc.com/doc-6411479 .html