您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 最新课程设计――学生信息管理系统
设计题目:学生信息管理系统班级:计算机1006姓名:周言学号:20101221450完成日期:2011-9-4目录1.课程设计的目的和要求----------22.课程设计任务内容--------------33.详细设计说明------------------44.软件使用说明------------------65.课程设计心得与体会------------66.参考文献7.附录:部分程序清单(带有详细的注释)一:课程设计的目的和要求1.学生信息初始化:创建学生信息文件(包括学号,姓名,学院,班级,高数,英语,c语言成绩),然后计算总分和平均分,并将排序后的学生信息存入二进制文件中2.学生信息操作:(1)增加学生信息(增加后仍按学号排序,并保存)(2)删除学生信息(输入要删除的学号,如果存在则删除信息;若不存在,则输出提示信息)(3)修改学生信息(输入要修改的学号,如果存在,提示要修改的选项并保存;若无则输出提示信息)3.学生信息查询:(1)按学号查询学生信息(输入学号,输出学生信息)(2)按姓名查询学生信息(包括精确查询和模糊查询)(3)按学院查询学生信息(输入学院名称,输出学院学生信息)(4)按班级查询学生信息(输入班级,输出全部学生信息)4.按不同条件对学生信息进行查询:(1)按总分对学生信息进行排序(由高到低),输出排序后的信息并存放到一个新的二进制文件中。(2)按平均分统计各个分数段的学生人数(不及格,60-69,70-79,80-89,90-100)。(3)分别找出3门课程成绩最高的学生,并输出他们的信息。(4)分别统计出3门课程的不及格率,并输出。二:课程设计任务内容:三:详细设计说明:1.数据结构设计:根据需要,定义了一个结构体类型,即学生类型。包括学生的学号,姓名,学院,班级和三门成绩。定义如下:structstudent//定义结构体类型{intnum;//学号charname[12];//姓名charcollege[12];//学院charcla[20];//班级intscore[3];//三门课程成绩inttotal;//总分学生成绩管理系统主菜单信息查询信息删除信息修改信息增加信息统计姓名查询学号查询总分统计平均分统计三门课最高分三门课不及格班级查询信息输入学院查询按学号删除按学号修改信息显示信息保存floataverage;//平均分}stud[N];2.main函数的设计:由于学生信息都保存在文件中,因此系统首先调用LoadStuds()函数返回学生人数,并将值返给学生人数,然后登陆学生登陆系统,调用StudentLogin函数实现学生登录,从而实现功能选择3.学生信息处理:对学生信息处理主要调用一下函数,//学生信息管理模块的函数声明voidInputOnestud(inti);//输入一个学生信息的函数voidInputAllStuds(intsn);//输入全部学生信息的函数voidSaveOnestud(inti);//保存一个学生的信息voidsort(structstudentx[]);//对学生学号排序的函数intLoadStuds();//从文件载入全部学生信息的函数voidSaveAllStuds(intsn);//保存全部学生信息的函数intOriginalStud(void);//学生信息初始化的函数voidModifyStud(intsn);//修改学生信息的函数intAddStud(intsn);//添加学生信息的函数intDelStud(intsn);//删除学生信息的函数voidOutputAllStuds(intsn);//输出全部学生信息的函数voidOutputOnestud(inti);//输出一个学生信息的函数//学生信息查询模块的函数声明voidSearchMenu(intsn);//学生信息查询函数voidSearchSnum(intsn);//按学号查询函数voidSearchSname(intsn);//按姓名查询函数voidSearchScollege(intsn);//按学院查询函数voidSearchScla(intsn);//按班级查询函数//学生信息统计模块的函数声明voidCountMenu(intsn);//学生信息统计函数voidCountTotal(structstudentx[]);//学生总分从高到低排序统计函数voidCountAverage(structstudentx[],intsn);//按平均分统计各个阶段的学生人数的函数voidCountTop(structstudentx[],intsn);//统计三门课程分数最高的学生的信息的函数intSearch(structstudentx[],intn);//查找最高分的函数voidCountNopass(structstudentx[],intsn);//统计三门课程的不及格率的函数四:软件使用说明:该学生信息管理系统,通过学生用户进行操作,实现学生信息的初始化,并能计算总分和平均分;对学生信息进行删除、添加、删除操作;而且通过调用函数实现对学生信息通过学号、姓名、学院和班级的查询;并可以对学生信息进行统计:其中包括按从高到低进行排序;统计三门课程的最高分学生的信息;三门课程的不及格率和统计各分数段的人数五:课程设计心得与体会:通过这一星期的编程,发现了很多的问题:其中就有对以前知识的模糊认识,没有弄清楚结构体的使用。感觉学的东西很少,很零散,不知该怎么总和到一起,就要课程设计,是不是太难为我们了。上午基本上是看课本,毕竟一个暑假都没有看课本了有些生疏。后来对照课本后面的程序,自己慢慢地学着编译。先把程序中的几个模块编写出来,觉得还是有很大收获的。后来通过思考于对照课本,程序基本上算是编完了但一运行,那些错误我都不忍卒读啊!!后来在同学们得帮助下,我把错误一点点减少,并学到了很多以前我认为自己会的知识。短短的一周课程设计结束了,但是这段时间里,我又学到了更多C知识,如:数据结构体,函数调用时形参和实参的类型等等,总之这一周收获很大的。六:参考文献:C语言课本及学生信息管理系统七:附录:代码清单(带有详细解释)//fdasfas.cpp:Definestheentrypointfortheconsoleapplication.//#includestdio.h#includestdlib.h#includestring.h#defineN10#definestud_LENsizeof(stud)//学生类型占用存储空间的大小structstudent//定义结构体类型{intnum;charname[12];charcollege[12];charcla[20];intscore[3];inttotal;floataverage;}stud[N];//用户登录模块的函数声明voidStudentLogin(int*psn);//学生登录函数//学生信息管理模块的函数声明voidInputOnestud(inti);//输入一个学生信息的函数voidInputAllStuds(intsn);//输入全部学生信息的函数voidSaveOnestud(inti);//保存一个学生的信息voidsort(structstudentx[]);//对学生学号排序的函数intLoadStuds();//从文件载入全部学生信息的函数voidSaveAllStuds(intsn);//保存全部学生信息的函数intOriginalStud(void);//学生信息初始化的函数voidModifyStud(intsn);//修改学生信息的函数intAddStud(intsn);//添加学生信息的函数intDelStud(intsn);//删除学生信息的函数voidOutputAllStuds(intsn);//输出全部学生信息的函数voidOutputOnestud(inti);//输出一个学生信息的函数//学生信息查询模块的函数声明voidSearchMenu(intsn);//学生信息查询函数voidSearchSnum(intsn);//按学号查询函数voidSearchSname(intsn);//按姓名查询函数voidSearchScollege(intsn);//按学院查询函数voidSearchScla(intsn);//按班级查询函数//学生信息统计模块的函数声明voidCountMenu(intsn);//学生信息统计函数voidCountTotal(structstudentx[]);//学生总分从高到低排序统计函数voidCountAverage(structstudentx[],intsn);//按平均分统计各个阶段的学生人数的函数voidCountTop(structstudentx[],intsn);//统计三门课程分数最高的学生的信息的函数intSearch(structstudentx[],intn);//查找最高分的函数voidCountNopass(structstudentx[],intsn);//统计三门课程的不及格率的函数voidmain(void){intsn,select;int*psn;psn=&sn;sn=LoadStuds();//调用LoadStuds(),返回值为学生人数,将其赋值给snwhile(1){printf(\n);printf(\t--------------------------------\n);printf(\t*学生信息管理系统*\n);printf(\t\n);printf(\t1.学生\n);printf(\t0.退出系统\n);printf(\t请选择用户:);scanf(%d,&select);getchar();switch(select){case1:StudentLogin(&sn);break;case0:printf(\n谢谢使用!再见\n);exit(1);default:printf(\n按键错误,请重新选择!\n);}}}//功能:实现学生登录,显示学生用户菜单,进行功能选择//参数:psn为主函数中变量sn的地址//返回:无//主要思路:用if进行学号验证,用switch结构实现菜单功能选择voidStudentLogin(int*psn){intselect;while(1){printf(\n);printf(同学,你好!\n);printf(--------------------------------\n);printf(1.学生信息初始化5.学生信息查询\n);printf(2.修改学生信息6.学生统计\n);printf(3.添加学生信息7.输出全部学生信息\n);printf(4.删除学生信息\n);printf(0.返回主菜单\n);printf(\n请你选择需要的服务(0-7):);scanf(%d,&select);getchar();switch(select){case1:*psn=OriginalStud();break;case2:ModifyStud(*psn);break;case3:*psn=AddStud(*psn);break;case4:*psn=DelStud(*psn);break;case5:SearchMenu(*psn);break;case6:CountMenu(*psn);break;case7:OutputAllStuds(*psn);break;case0:return;default:printf(\n按键错误,请重新选择!\n);}}}//功能:实现学生信息的初始化//参数:无//返回:学生人数//主要思路:用for循环多次调用InputOnestud函数实现输入多个信息,并写入文件intOriginalStud(void){inti,j,sum,n;charc='y';for(n=0;c=='y
本文标题:最新课程设计――学生信息管理系统
链接地址:https://www.777doc.com/doc-4070051 .html