您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 课程设计报告学生信息管理系统
C++新生管理湖北工业大学一、课程设计目的1.通过C++课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和多态的概念。2、通过这次课程设计掌握《C++语言程序设计》的编程思想,为后续课程打下基础。3、培养我实际操作能力和实践能力,为以后的工作打下坚实的基础。课程设计的要求利用学到的编程知识和编程技巧,要求学生:1、对系统进行功能模块分析、控制模块分析正确2、系统设计要能完成题目所要求的功能。3、编程简练,可用,尽可能的使系统的功能更加完善和全面4、使用说明书、流程图要清楚。5、特别要求自己独立完成。二、课程设计的内容1、课程设计的题目及简介有新生来报到,要逐个录入其信息,如:学生姓名,性别,专业,出生日期,家庭地址、英语入学成绩。要求设计链表类来实现,并统计学生人数。文本界面为:1.新增学生信息2.删除学生信息3.导入学生信息(已经保存于的文件信息)4.学生信息搜索(按姓名)5.学生信息统计(按专业或性别或年龄---年龄要自动计算)6.按英语成绩排序7.学生信息保存8.退出2、设计说明总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。也可根据自己对题目的理解增加新的功能模块。系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行(1)首先,看题目要求,每一条记录包括一个学生的姓名、性别、专业、出生日期、家庭住址、英语成绩。同时,应具备以下功能:1、输入功能:一次可以完成自定义学生人数的学生信息记录的输入。2、删除功能:对指定学生的信息进行删除。3、修改功能:对指定学生的信息进行修改。4、查询功能:选择某种方式并输入该信息查询符合条件的学生信息。5、统计功能:对某几个专业的人数、男女性别学生信息进行统计。6、排序功能:以英语课程的分数为依据对学生信息进行排序。7、显示功能:将以上功能操作后的学生信息显示出来。8、退出主菜单。3程序流程图各功能模块的实现流程图:1增加学生信息调用函数Node*Create()判断gg是否等于一如果是可创建链表输入相应的学生信息如果不是则需要运用Insert(p)函数插入结点增加学生信息的,并通过chundang(p)函数进行存档,具体流程如下图所示流程图2删除学生信息调用函数Node*Delete(Node*head,intnum)删除学生的信息则必须对链表结点进行删除意味着将某个要删除结点前后的连续打断,去掉该结点,使前后指针变量重新连接,完成链表结点的删除任务流程图3.导入学生信息打开存档文件ifstreamFilein(out.txt);输出说存档的学生信息输入要删除信息的编号该生信息已删除,显示其他同学的信息输出所有学生的信息新增学生信息按提示:输入学个的各种信息按格式显示输入的学生信息退出该功能,返回主菜单,继续选择退出该功能,返回主菜单,继续选择导入学生信息显示学生的信息退出该功能,返回主菜单,继续选择判断以前是否存储了学生信息是新增信息输入要删除学生信息24、学生信息的搜索调用函数Node*sousuo(Node*head,charna[20]),按学生的姓名进行搜索流程图:5信息的统计调用函数Node*tongji(Node*head)运用一个for循环,将输入的相应的学生信息用strcmp()函数与对应的数组进行比较,然后再进行统计。6、按英语成绩进行排序:调用函数Node*paixu(Node*head)完成排序功能它的主要思想的:首先设置英语成绩的最大值100,最小值0(也可以使150或者其他)然后让输入的学生信息英语成绩一次比较进行比较,(如果有相等的就输出排名1,然后排名加1),否则最大值减1,然后再次进行比较(如果等于99且上次没有等于100的,就输出排名1,然后排名加1,如果上次有等于100的排名为2),如果没有与99相等的.,则继续循环……流程图:搜索学生信息4按照提示输入学生的姓名进行搜索输出所以查询的学生信息退出该功能,返回主菜单,继续选择信息的统计:5统计所设定的专业人数和男女性别的人数,计算学生的年龄并统计输出统计的信息退出该功能,返回主菜单,继续选择对英语成绩进行排序输出排序之后的学生信息退出该功能,返回主菜单,继续选择总功能模块图:2、输入要删除的学生的编号,删除学生信息。1输入学生的信息:姓名、性别、专业、出生日期、家庭地址、英语成绩菜单1.新增学生信息2.删除学生信息3.导入学生信息4.学生信息搜索5.学生信息统计6.按英语成绩排序7.学生信息保存8.退出5统计各种专业、男女、相应年龄的人数6按英语成绩降序排列,输出学生的姓名排名和英语成绩7保存学生信息:提示保存成功4、输入你要查找你学生姓名3、输出学生的编号、姓名、性别、专业、出生日期、家庭地址、英语成绩8、退出系统学生管理系统功能模块图按学生信息进行排序5各功能显示效果模块图:增加学生信息和导入学生信息保存学生信息统计电子、建筑、通信、三个专业的人的个数,按英语成绩进行排名并输出删除相应学生的信息4、程序清单#includestdafx.h#includestdafx.h#includeiostream.h#includestring.h#includefstream#includecassertusingnamespacestd;intnn=0;structNode{intnum;charname[20];charxb[20];charzy[20];intnian,yue,ri;chardz[20];intmark;Node*next;};//*********************************************************************************Node*Create()//链表创建{cout请输入学生信息(输入0退出):endl;intn=0;Node*p1,*p2,*head;p1=p2=newNode;p1-num=1;head=NULL;n++;while(p1-num!=NULL){if(n==1){head=p1;}elsep2-next=p1;p2=p1;p1=newNode;inta;nn++;p1-num=nn;cout姓名:;cinp1-name;a=(int)p1-name[0]-48;if(a==0)break;cout性别:;cinp1-xb;cout专业:;cinp1-zy;cout出生日期:;cinp1-nian;cinp1-yue;cinp1-ri;cout家庭地址:;cinp1-dz;cout英语入学成绩:;cinp1-mark;n++;}p2-next=NULL;returnhead;}//***********************************************************************************//***********************************************************************************voidchundang(Node*head)//存档{Node*p=head;p=p-next;ofstreamFileout(out.txt);Fileout学生资料endl;Fileout-------------------------------------------------------------------endl;while(p){Fileout--编号:p-num姓名:p-name性别:p-xb专业:p-zy出生日期:p-nian/p-yue/p-ri/地址:p-dz英语入学成绩:p-markendl;p=p-next;}Fileout-------------------------------------------------------------------endl;Fileout.close();}//********************************************************************************//*********************************************************************************Node*Insert(Node*head)//插入节点{Node*p0,*p1,*p2;p1=head;p0=newNode;p0-num=nn;cout姓名:;cinp0-name;cout性别:;cinp0-xb;cout专业:;cinp0-zy;cout出生日期:;cinp0-nian;cinp0-yue;cinp0-ri;cout家庭地址:;cinp0-dz;cout英语入学成绩:;cinp0-mark;if(head==NULL){head=p0;p0-next=NULL;returnhead;}while(p1-nump0-num&&p1-next){p2=p1;p1=p1-next;}if(p1-num=p0-num){if(p1==head)head=p0;elsep2-next=p0;p0-next=p1;}else{p1-next=p0;p0-next=NULL;}returnhead;}//*****************************************************************************//*****************************************************************************Node*Delete(Node*head,intnum)//删除节点{if(head==NULL){cout不存在此编号endl;returnhead;}Node*p1,*p2;p1=head;while(p1-num!=num&&p1-next){p2=p1;p1=p1-next;}if(p1-num==num){if(p1==head){head=p1-next;}elsep2-next=p1-next;}elsecout没找编号为num的学生!endl;//********************nn--;p1=head;intkk=0;p1=p1-next;//整顿编号while(p1){kk++;p1-num=kk;p1=p1-next;}//*******************returnhead;}//*********************************************************************************//*********************************************************************************Node*sousuo(Node*head,charna[20])//搜索{Node*p1=head;while(p1!=NULL){if(!strcmp(p1-name,na)){cout编号:p1-num姓名:p1-name性别:p
本文标题:课程设计报告学生信息管理系统
链接地址:https://www.777doc.com/doc-2075618 .html