《C++--课程设计报告-学生学籍管理系统(共15页).docx》由会员分享,可在线阅读,更多相关《C++--课程设计报告-学生学籍管理系统(共15页).docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 程序设计基础课程设计报告设计题目C+学生学籍管理系统学生姓名廖泽坚学生班级计科1142学生学号9指导教师叶晓霞完成时间: 2014年 12月 23日目 录第1章 内容摘要,关键字【摘要】 学籍管理系统设计涉及学生信息的录入,显示,查找,删除,修改,统计,保存,退出等功能,从而能够对信息进行处理。程序中运用了相关类的知识,同时定义了一定数量的数据及成员函数。程序使用了数组记录统计的相关数据,运用了指针实现相应功能函数的功能,运用了student ,school两个类实现面向对象的要求。程序的完成涉及到程序的分析,模块的分解,程序的控制,程序的调试。【关键词】 学籍管理
2、,vc+6.0,面向对象,程序控制,类【Abstract】school management system design involves the student information input, display, search, delete, modify, statistic, save, exit and other functions, which can process the information. To use the procedures related to such knowledge, and defines the data and member functio
3、ns of a certain number of. Procedures for the use of relevant data array record statistics, using the pointer function to realize the corresponding function, the use of student, School of two types of implementation of object oriented requirements. Completion of the process involved in program analy
4、sis, module decomposition, program control, program debugging.【keyword】Student status management vc+6.0 object oriented process controlclass 第2章 需求分析1. 学籍管理现状:目前国内大中专院校众多,在校的学生人数占据了社会人口很大一部分,是社会群体中的新生力量;对学生学籍的管理是各大院校日常管理中不可忽视的一个重要环节;随着计算机等高新科技的发展,对学籍的管理早已不能仅仅满足于纸质文件。因此,开发出一套计算机学生学籍管理系统显得很有必要。2. 本系统存
5、在的价值:满足了各大院校对学籍管理的强烈要求;力图用最少的代码完成最多的功能,代码简洁没有冗余;系统操作简便明了,根据提示即可进行简便常用的日常学籍管理;占用资源少、需求大、简便易操作,多彩的可视化界面。综合以上众多优势,证明了本系统存在的价值。 3. 课程设计的任务: 制作一个小型的学生学籍管理系统,要求制作一个菜单,实现数据的录入,数据的显示,数据查找,数据的删除,数据的保存,数据的统计,数据的修改,系统的退出。4. 基本功能:学生基本信息(编号,姓名,性别,籍贯,民族,生日,政治面貌,省份证,数学成绩,英语成绩,计算机成绩)成绩统计(各科总成绩,各科平均成绩,各科的及格率)5. 扩展功能
6、:学生数据的添加、修改、与删除,读取与存储。6. 系统特点:系统要能够对相应的数据进行很好的测试,系统的统计对每一科的总成绩,平均成绩,及格律都进行了统计;系统数据的录入 除可以手工录入外,还可以采用文件的录入;系统统计学生的基本信息较全面,包括学号,姓名,民族,政治面貌,身份证号,生日,性别,数学、英语、计算机的成绩;程序中查找运用了两种查找方式即学号查找和姓名查找。第3章 总体设计一、 系统实现方案:第一步:分析题目。 第二步:画出流程。 第三步:上机调试程序(使用单步调试,设置断点、分块调试的方法)。 第四步:及时整理资料,撰写课程设计报告中有关这个题目的内容。二、 现行系统组织结构图:
7、主程序采简单程序初初始化程序退输出统统计修修改删删除查查找显显示输输入三、 类设计(参考)类:student 数据成员:编号,姓名,性别,籍贯,民族,生日,政治面貌,省份证,数学成绩,英语成绩,计算机成绩类:school成员函数:录入函数Input():输入编号到计算机的成绩;统计函数count():统计各科的总成绩,计算平均成绩,统计各科的及格率;查询函数found():按学号或姓名查找学生的记录;修改函数mend():修改指定学号学生成绩记录;删除函数del():删除指定学号学生记录;输出函数show():输出班级所有学生成绩记录;四、 输入输出的设计1界面的设计、界面设计程序运行后会出现
8、一个简捷的窗口,便于用户查询数据。、功能设计通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。2数据输出设计:系统主界面:输入信息界面:全部信息显示界面:查找界面:修改界面:保存界面:统计界面:第4章 系统实现代码:#include#include#include#include using namespace std; class student /定义类-student protected: /类中的私有成员 int number; char name20;char sex6; char place20;char nation6; char birth20;char party10
9、; char id20;float score3;public: /类中的公有成员 student *next; student() student() char* getname() return name; /返回值的函数 int getnumber() return number; double getscore(int i) return scorei; float getg() return (score0+score1+score2); /求总成绩void input() /输入信息的函数 int e=1; coutttt按提示输入:endl; coutnumber; coutna
10、me;do coutsex;/*strcmp为库函数,当前不等于后时,返回值为非零,当前等于后时,返回值0*/ if(strcmp(sex,男)=0 | strcmp(sex,女)=0) coutplace; coutnation; coutbirth; coutparty; coutid; coutscore0; coutscore1; coutscore2; e=0; else coutttt无此类型性别!重新输入!numbernamesexplacenationbirthpartyid score0score1score2; is.get(); void output() /输出学生的基
11、本信息的函数 cout学生基本信息如下:endl; cout编号:number 姓名:name 性别:sex 籍贯:place 民族:nation 生日:birth 政治面貌:partyendl身份证号:id 数学:score0 英语:score1 计算机:score2 总分:getg()endlendl;void output(ofstream & os) /输出文件流类 ossetw(6)number setw(15)namesetw(20)place setw(6)nationsetw(20)birthsetw(20)party setw(20)idsetw(6)score0setw(6
12、)score1setw(6)score2next=NULL; key=0; school() delete head; void input(); void mend(); void del(); int find(student *p,int num,char *pn=); void found(); void show(); void count(); void save(); void begin(); void clear(); char mainmenu();int getkey() return key;void setkey(int k) key=k; private: /私有成
13、员 student *head; int key;/录入函数void school:input()student *p,*p2=NULL; p=head; int n;while(p-next)p=p-next;while(n) p2=new student; p2-input(); p-next=p2; p2-next=NULL; p=p-next; school:setkey(1); coutn; /*子查找函数*/int school:find(student *p1,int num,char *pn) student *p; p=head;while(p-next) (*p1)=p;
14、if( (p-next)-getnumber()=num|!strcmp( (p-next)-getname(),pn ) ) return 1; p=p-next;return 0; /*查找函数*/void school:found() student *p; int num=-1,n=9; char name20=;do coutn;while(n2);if(n=1) coutnum;if(n=2) coutname; if(!find(&p,num,name) ) couttt找不到你要查找的内容!next)-output();/*删除函数*/void school:del() stu
15、dent *p,*p2; int num; coutnum;if( !find(&p,num,) ) couttt找不到你要删除的内容!next)-output(); p2=p-next; p-next=p2-next; delete p2;school:setkey(1); void school:show() /显示函数 student *p; p=head;while(p-next) (p-next)-output(); p=p-next;/*修改函数*/void school:mend() student *p; int num=-1,n; char name20=;do coutn;
16、while(n2);if(n=1) coutnum;if(n=2) coutname;if( !find(&p,num,name) ) couttt找不到你要修改的内容!next)-output(); (p-next)-input(); school:setkey(1);void school:save() /保存函数 student *p; p=head; ofstream os(student.txt,ios:out);if (school:getkey()=1) while(p-next) (p-next)-output(os); p=p-next; coutttt文件已保存! num;
17、is.seekg(t); if(numinput(is); p-next=p2; p2-next=NULL; p=p-next; void school:clear()/清空函数 student *p,*p2; p=head-next;while( p )p2=p; p=p-next;delete p2;void school:count()/统计函数 student *p; p=head;int n=0;double g3=0,0,0; float j3=0,0,0;while(p-next) p=p-next; n+; for(int i=0;igetscore(i) ); (p-gets
18、core(i) )=60.0? ji+ : 0 ;cout数学总分:g0 平均分:g0/n 及格率:j0/nendl英语总分:g1 平均分:g1/n 及格率:j1/nendl计算机总分: g2 平均分: g2/n 及格率:j2/nendl;/*主选菜单函数*/char school:mainmenu()char n6;coutnn 欢迎进入学籍管理系统endlendl * * * * * * * * * * * * * * * * * * * * * * * * *endl * * * * * * * * * * * * * * * * * * * * * * *endl * * 1: 录入学
19、生信息 * *endl * * 2: 显示学生信息 * *endl * * 3: 查找学生信息 * *endl * * 4: 删除学生信息 * *endl * * 5: 修改学生信息 * *endl * * 6: 统计学生成绩 * *endl * * 7: 保存学生信息 * *endl * * 0: 退出系统 * *endl * * * * * * * * * * * * * * * * * * * * * * *endl * * * * * * * * * * * * * * * * * * * * * * * * *endln;return n0;/*主函数*/void main()sch
20、ool pp;int k=1; char n; pp.begin();while(k=1) n=pp.mainmenu();switch(n) case 1:pp.input(); break; /pp.*为引用类中的函数的格式 case 2:pp.show(); break; case 3:pp.found(); break; case 4:pp.del(); break; case 5:pp.mend(); break; case 6:pp.count(); break; case 7:pp.save(); break; case 0: if(pp.getkey()=1) coutk; i
21、f(k=1) pp.save(); pp.clear(); k=0; break; 结论本程序基本完成了题目要求的功能。但是由于显示的限制,所罗列的学生成绩只给出了数学,英语,计算机的成绩。程序可通过改进,增加科目数。 程序在显示学生信息时输入过于繁杂,不够清晰明朗,若显示成类似表格的形式就好了。解决办法将输出函数的输出格式改一下,难点是计算输出点的控制。后记此次c+课程设计,我们学会了如何用C+编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。参考文献1C+语言程序设计教程与实验 第三版2C+相关视频3利用网上的资源。专心-专注-专业