1、1能够输入并浏览学生的基本信息;2能够实现对学生信息的查询和修改;3能够对成绩进行统计;4能够对学生的信息进行保存;现行的系统功能:资料维护:系统维护包括对各学生信息和成绩的录入操作。对数据表中的信息进行浏览。系统查询:可以对不同科目的总成绩、不及率、各科平均成绩相关信息。2.2现行系统分析现行系统组织结构图:第3章 系统设计3.1 系统功能设计系统功能结构图:3.2 类设计类:student 数据成员编号,性别,籍贯,民族,生日,政治面貌,省份证,数学成绩,英语成绩,计算机成绩school成员函数录入函数Input():输入编号到计算机的成绩;统计函数count():统计各科的总成绩,计算平
2、均成绩,统计各科的及格率;查询函数found():按学号或查找学生的记录;修改函数mend():修改指定学号学生成绩记录;删除函数del():删除指定学号学生记录;输出函数show():输出班级所有学生成绩记录;UML图:3.3 输入输出的设计1界面的设计、界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据。、功能设计通过主窗体调用其他窗体,具体实现可以参照系统分析相关容。应用系统主控界面包括学生信息录入,查找等功能模块。学生信息录入功能完成学生信息和成绩的输入。记录查询功能可以对数据各分类的记录进行查询。2数据输出设计系统主界面:统计界面:查找界面:显示界面:录入界面:修改界面:第4章
3、 系统实现1.代码#includestring.hfstream.hiomanip.hclass student protected:int number; char name20;char sex6; char place20;char nation6; char birth20;char party10; char id20;float score3;public:student *next;student() student() char* getname() return name; int getnumber() return number;double getscore(int i
4、) return scorei;float getg() return (score0+score1+score2); void input() int e=1;coutnumber;tt输入:name;docouttt输入性别:sex; if(strcmp(sex,男)=0 | strcmp(sex,女)=0) coutplace; couttt输入民族:nation;tt输入生日:birth;tt输入政治面貌:party;tt输入身份证号:id;tt输入数学分数:score0;tt输入英语分数:score1;tt输入计算机分数:score2; e=0; else coutnumbernam
5、esexplacenationbirthpartyid score0score1is.get(); void output()学生基本信息如下:编号:number :name 性别:sex 籍贯:place 民族:nation 生日:birth 政治面貌:partyendl身份证号:id 数学:score0 英语:score1 计算机:score2 总分:getg()endlvoid output(ofstream & os) ossetw(6)number setw(15)setw(20)next=NULL; key=0;school() delete head;void input();
6、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: student *head; int key;/录入函数void school:input()student *p,*p2=NULL;p=head; int n;wh
7、ile(p-next)p=p-next;while(n) p2=new student; p2-input(); p-next=p2; p2- p=p-school:setkey(1);ttt按1继续,按0返回 :n; /子查找函数int school:find(student *p1,int num,char *pn) student *p; p=head; (*p1)=p; if( (p-next)-getnumber()=num|!strcmp( (p-getname(),pn ) ) return 1; p=p-return 0;/查找函数found()int num=-1,n=9;
8、char name20= couttt1:按编号查找,2:按查找:while(n2);if(n=1)ttt输入编号:num;if(n=2)ttt输入:if(!find(&p,num,name) )tt找不到你要查找的容!return;(p-output();/删除函数del() student *p,*p2; int num;if( !p,num,) )tt找不到你要删除的容!p2=p-next=p2-delete p2;show() /显示函数 (p-/修改函数mend() int num=-1,n;char name20=按编号修改,2:按修改:tt找不到你要修改的容! (p-save()
9、 /保存函数ofstream os(student.txt,ios:out);if (school:getkey()=1) while(p- (p-output(os);ttt文件已保存!setkey(0);begin()/初始化函数 clear();long t;ifstream is(in);is) ofstream os(os.close();return ;int num=-1;while(1) num=-1; t=is.tellg(); isis.seekg(t); if(numclear()/清空函数 student *p,*p2;p=head-while( p )p2=p;cou
10、nt()/统计函数 student *p;int n=0;double g3=0,0,0; float j3=0,0,0; p=p- n+; for(int i=0;igetscore(i) );getscore(i) )=60.0? ji+ : 0 ;ttbbbb数学总分:g0 平均分:g0/n 及格率:j0/nttbbbb英语总分:g1g1/nj1/nttbbbb计算机总分:g2g2/nj2/n/主选菜单函数char school:mainmenu()char n6;nn 欢迎进入学籍管理系统 * * * * * * * * * * * * * * * * * * * * * * * *
11、* * * * * * 1: 录入学生信息 * * * * 2: 显示学生信息 * * * * 3: 查找学生信息 * * * * 4: 删除学生信息 * * * * 5: 修改学生信息 * * * * 6: 统计学生成绩 * * * * 7: 保存学生信息 * * * * 0: 退出系统 * * 请选择:return n0;/主函数void main()school pp;int k=1; char n; pp.begin();while(k=1) n=pp.mainmenu();switch(n) case 1pp.input(); break; case 2pp.show();3pp.f
12、ound();4pp.del();5pp.mend();6pp.count();7pp.save();0 if(pp.getkey()=1)ttt是否保存? 1 : 保存 0:不保存 :k; if(k=1) pp.save(); pp.clear(); k=0; 2.系统运行的结果结论本程序基本完成了题目要求的功能。但是由于显示的限制,所罗列的学生成绩只给出了数学,英语,计算机的成绩。程序可通过改进,增加科目数。 程序在显示学生信息时输入过于繁杂,不够清晰明朗,若显示成类似表格的形式就好了。解决办法将输出函数的输出格式改一下,难点是计算输出点的控制。后记此次c+课程设计,在指导教师的精心教导下
13、,我们学会了如何用C+编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。根据C+课程所学的概念、理论和方法,按照C+程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C+语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。参考文献1雪飞C+实例入门,中国青年,2004年5月出版2谭浩强编,C+面向对象程序设计,清华大学,2005年7月出版3师贤等译,C+精髓,机械工业,2002年8月出版4韩滨 魏海萍,C+类库使用手册,电子工业,2007年7月出版5灿煌,C+彻底研究 中国青年,2005年9月出版。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1