您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C语言学生成绩管理系统
题目:学生成绩管理系统院系:专业:姓名:学号:指导教师:日期:实训报告目录学生成绩管理系统.............................................................................................................................21.问题定义……………………………………………………………………………………22.系统设计..…………………………………………………………………………………32.1总体设计………………………………………………………………………….43.系统实现………………………………………………………………………………..43.1.1程序头文件……………………………………………………………………43.1.2主函数main()……………………………………………………………………43.1.3主菜单界面………………………………………………………………………53.1.4增加学生成绩……………………………………………………………………63.1.5删除学生成绩…………………………………………………………………....73.1.6查找学生成绩……………………………………………………………………73.1.7排序统计成绩……………………………………………………………………83.1.8显示学生成绩……………………………………………………………………84归纳总结………………………………………………………………………………94.1开发经验………………………………………………………………………………94.2实训中遇到的问题及解决方法……………………………………………………94.3设计中的不足之处……………………………………………………………………94.4感想和心得体会……………………………………………………………………95参考资料…………………………………………………………………………………9学生成绩管理系统1.问题定义创建学生成绩。假设系统中每个学生只包括姓名性别学号成绩等信息。程序的运行效果如下图所示,选择任意菜单后,实现相应功能。在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。图1.1学生成绩管理系统功能需求2.系统设计2.1总体设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。图2.1学生成绩管理系统功能模块图如图2.1所示,它由如下七大功能模块组成:下面依次分析各模块应具备的功能。学生成绩显示学生成绩增加学生成绩排序统计成绩查找学生成绩删除学生成绩修改学生成绩安全退出系统1.增加学生成绩模块增加学生成绩功能应该能够实现新增学生成绩。2.显示学生成绩模块将系统运行过程中的所有学生成绩信息全部输出。3排序统计成绩模块该模块主要为了对学生的成绩进行排序。4.查找学生成绩模块查找学生成绩功能应该能够实现查找学生信息,要求输入学生姓名或学号,再根据姓名或学号查找所有符合条件的信息。5.删除学生成绩模块该模块主要完成删除学生成绩的操作。在删除学生成绩时需要输入将要删除的学生的姓名或学号。6.修改学生信息模块该模块主要完成修改学生成绩的操作。为了将学生的信息进行修改,在修改时需要输入将要修改的学生姓名。7.退出模块退出学生成绩管理系统。3.系统实现3.1编码3.1.1程序头文件#includeiostream#includefstream#includestring.h#includeconio.h//用getch();usingnamespacestd;3.1.2主函数main()Main()函数主要实现了对整个程序的运行控制,以及相关功能模块的调用。intmain(){intx,i=0;boolquit=false;cout\t\tendl;cout\t\t欢迎进入学生成绩管理系统endl;cout\t\tendl;StudentmassageGrade;cout\t\tendl;cout\t\tendl;cout按任意键开始……;getch();while(!quit){system(cls);Grade.ShowMenu();cinx;switch(x){case0:quit=true;break;case1:Grade.AddItem();break;case2:Grade.Display();break;case3:Grade.Sort();break;case4:Grade.Find();break;case5:Grade.RemoveItem();break;case6:Grade.ModifyItem();break;}}return0;}3.1.3主菜单界面用户进入学生成绩管理系统时,需要显示主菜单,提示用户进行选择,完成相应任务。voidStudentmassage::ShowMenu(){coutendl;cout学生成绩管理系统endl;coutendl;cout1.增加学生成绩endl;cout2.显示学生成绩endl;cout3.排序统计成绩endl;cout4.查找学生成绩endl;cout5.删除学生成绩endl;cout6.修改学生信息endl;cout0.安全退出系统endl;coutendl;cout\n\t\t\n\t\t请选择:;}3.1.4增加学生成绩信息选择增加学生成绩信息后,程序会提示输入学生相关信息。voidInput(){cout\t\t请输入学生的姓名:;cinname;cout\t\t请输入学生的学号:;cinId;cout\t\t请输入学生的性别:;cinSex;cout\t\t请输入C++课程的成绩:;cinCnum;cout\t\t请输入计算机网络课程的成绩:;cinMnum;cout\t\t请输入大学英语课程的成绩:;cinEnum;sum=Cnum+Mnum+Enum;}voidReadFile(istream&in){innameIdSexCnumMnumEnumsum;}voidShow(){cout姓名:nameendl学号:Idendl性别:SexendlC++:Cnumendl计算机网络:Mnumendl大学英语:Enumendl总成绩:sumendlendlendl;}};voidAddItem(){End-Input();End-Next=newStudent;End=End-Next;cout添加成功!endl;cout输入任意字符!继续……;getch();}}3.1.5删除学生信息选择删除学生信息后,程序会提示输入要删除的学生姓名。voidStudentmassage::RemoveItem()//删除信息{charname[20];Student*p=NULL,*temp=NULL;cout\t\t请输入要删除的学生的姓名:endl;cinname;if(p=FindItem(name)){temp=p-Next;p-Next=p-Next-Next;deletetemp;cout\t\t删除成功!endl;cout输入任意字符!继续……;getch();}else{cout\t\t没有找到!endl;cout输入任意字符!继续……;getch();}}3.1.6查找学生成绩当用户执行此查询任务时,系统会提示用户是按姓名或学号查询voidStudentmassage::Find(){charname[20],Id[10];intx;Student*p=NULL;cout\n\t\t*********************************\n;cout\t\t※1.按学生的姓名查找\n\t\t※2.按学生学号查找;cout\n\t\t*********************************\n请选择:;cinx;switch(x){case1:{cout\t\t请输入要查找的学生的姓名:;cinname;if(p=FindItem(name)){p-Next-Show();cout输入任意字符!继续……;getch();}else{cout\t\t没有找到该姓名的学生!'\n'endl;cout输入任意字符!继续……;getch();}}break;case2:{cout\t\t请输入要查找的学生的学号:;cinId;if(p=FindID(Id)){p-Next-Show();cout输入任意字符!继续……;getch();}else{cout\t\t没有找到该学好的学生!'\n'endl;cout输入任意字符!继续……;getch();}}break;}}3.1.7排序统计函数对学生的成绩进行排序统计。voidStudentmassage::Sort()//对当前链表进行排序{coutSorting...endl;Student*p=NULL,*p1=NULL,*k=NULL;intn=Studentmassage::ListCount();if(n2)return;for(p=Head-Next;p!=End;p=p-Next)for(k=p-Next;k!=End;k=k-Next){if(p-sumk-sum){Studentmassage::Swap(p,k);}}cout排序完成!endl;getch();return;}3.1.8显示学生成绩显示所有学生成绩的操作就是将保存的学生信息输出到屏幕上voidShow(){cout姓名:nameendl学号:Idendl性别:SexendlC++:Cnumendl计算机网络:Mnumendl大学英语:Enumendl总成绩:sumendlendlendl;}};4.归纳总结4.1开发经验本系统的重点就是要会建立两个类。一个是学生类student,用来存放一个学生的成绩记录,相当于一个结构体的功能吧。另一个类是学生成绩记录系统类Studentmassage,该类用来存放多个学生的成绩记录。难点就是Studentmassage类里的各个功能的实现。总的来说,添加,显示,查找,这三个功能比较容易,但是,删除,保存,加载这三个功能就需要花点心思了,可能是平时用的比较少吧,生疏了。可见只有通过平时多加练习,才能有助于自己巩固知识点。4.2设计中尚存的不足之处这是一个综合性较强,很实际的一个编程实例。刚学C++时候,感觉类和对象还挺有意思的,刚接触到这个题目时,觉得应该没什么大问题吧。因为,我自认为一些基本知识点都已经掌握了。可是,真的当我动手编程的时候,才发现并没有想象中的那么简单。单个知识点是弄清了,但是,将所有的知识点综合起来运用时,就碰到了各种各样的问题了。有时候,一个错误得找好久,才能发现。。4.3设计中尚存的不足之处程序复杂,美化不足。4.4感想和心得体会通过这次实训,我了解到学习知识不是光光是用在考试上而是真正的去实践和理解,我也学到了很多东西,特别是加深了对类和对象理解和应用方面
本文标题:C语言学生成绩管理系统
链接地址:https://www.777doc.com/doc-5962398 .html