1、课 程 实 训 报 告课程名称 C语言程序设计 系 别: 工程技术系 专业班级: 计应1101 组 号: 第四组 姓 名: 姚勤富 实训题目: 学生信息管理系统 实训日期: 2012年6月21日 指导老师: 刘 影 2012年6月20日实 训 目 的1、通过C语言课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和多态的概念。2、通过这次课程设计掌握C语言程序设计的编程思想,为后续课程打下基础。3、培养我实际操作能力和实践能力,为以后的工作打下坚实的基础。课程设计的要求 ; 利用
2、学到的编程知识和编程技巧,要求学生: 1、对系统进行功能模块分析、控制模块分析正确。 2、系统设计要能完成题目所要求的功能。 3、编程简练,可用,尽可能的使系统的功能更加完善和全面。 4、使用说明书、流程图要清楚。实 训 内 容1、课程设计的题目及简介有新生来报到,要逐个录入其信息,如:姓名、性别、籍贯、民族、生日、政治面貌、身份证号、高数成绩。要求设计链表类来实现,并统计学生信息。2、设计说明总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。也可根据自己对题目的理解增加新的功能模块。实 训 简 单 操 作 步 骤1、录入学生信息录入学生的个人信息,例
3、如姓名、性别、籍贯、民族、生日、政治面貌、身份证号、高数成绩、大学英语成绩、C+成绩、大学物理成绩、马克思主义成绩、总分。2、显示学生信息显示学生的个人信息。3、查找学生信息查找录入学生的个人信息。4、删除学生信息删除学生的个人信息。5、修改学生信息修改学生的个人信息。6、统计学生成绩统计学生的个人信息,例如高数成绩的总分,平均分,及格率。7、保存学生信息0、退出系统实 训 结 果录入和显示学生信息界面;统计学生的个人信息成绩界面;实 训 心 得 体 会这一周的C语言课程实训,时间上说长不长,说短也不短,却让我学到了很多!第一点:C语言,我们需要学习的知识还有很多。在这次的实训过程中,我们遇到
4、的许多难题,我们翻阅了大量的书籍资料,我想只有努力勤奋的学习,才可以取得最后的成功!第二点:团队合作是非常重要的。独木不成林,在成功的道路上不可能是一帆风顺的,在团队合作中,我们应该相互帮助,共同合作,才能最终取得成功。想要成功就必须付出艰辛的努力,不断用知识的力量来武装自己,感染他人,这样我们才能胜利。实训评语及成绩评 语成 绩指导教师(签 名)2012年6月 24 日附录:1、录入学生信息 流程图学生信息管理系统1:录入学生信息2:显示学生信息3:查找学生信息4:删除学生信息5:修改学生信息6:统计学生成绩7:保存学生信息0:退出系统输入学生的信息,例如姓名,年龄判断是否重复学生信息YN退
5、出1继续录入学生成绩返回主界面功能模块图显示学生的各类信息按学号或者姓名查找学生信息统计学生的各类科目的总成绩,平均分和及格率退出系统菜单0按照学号或者姓名修改学生的信息按照学号删除学生的信息判断是否继续(1),返回(0)保存学生信息录入学生信息继续录入学生成绩二、程序清单#include#include#include#include using namespace std;class student protected: int number; char name20; char sex6; char place20; char nation6; char birth20; char pa
6、rty10; char id20; float score4;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+score3+score4); void input() int e=1; coutttt按提示输入:endl; coutnumber; coutname; do labl
7、e:coutsex; if(strcmp(sex,男)=0 | strcmp(sex,女)=0) coutplace; coutnation; coutbirth; coutparty; coutid; coutscore0; coutscore1; coutscore2; coutscore3; coutscore4; e=0; else coutttt无此类型性别!重新输入!numbernamesexplacenationbirthpartyid score0score1score2score3score4; is.get(); void output() cout学生基本信息如下:end
8、l; cout学号:number 姓名:name 性别:sex 籍贯:place 民族:nation 生日:birth 政治面貌:partyendl 身份证号:id 高数:score0 大学英语:score1 c+语言程序设计:score2 大学物理:score3 马克思列宁主义哲学:score4 总分:getg()endl; void output(ofstream & os) ossetw(6)number setw(15)name setw(6)sex setw(20)place setw(6)nation setw(20)birth setw(20)party setw(20)id s
9、etw(6)score0 setw(6)score1 setw(6)score2 setw(6)score3 setw(6)score4next=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() r
10、eturn key; void setkey(int k) key=k; private: 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 *p
11、n) student *p; p=head; while(p-next) (*p1)=p; 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找不到你要查找的
12、内容!next)-output();/删除函数void school:del() student *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() stude
13、nt *p; int num=-1,n; char name20=; do coutn; 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) (
14、p-next)-output(os); p=p-next; coutttt文件已保存! num; 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 g5=0,0,0,0,0; float j5=0,0,0,0,
15、0; while(p-next) p=p-next; n+; for(int i=0;igetscore(i) ); (p-getscore(i) )=60? ji+ : 0 ; coutttbbbb高数总分:g0 平均分:g0/n 及格率:j0/nendlttbbbb大学英语总分:g1 平均分:g1/n 及格率:j1/nendl ttbbbbc+语言程序设计总分: g2 平均分: g2/n 及格率:j2/nendl ttbbbb大学物理总分:g3 平均分:g3/n 及格率:j3/nendl ttbbbb马克思列宁主义哲学总分: g4 平均分: g4/n 及格率:j4/nendl;/主选菜单函数char school:mainmenu() char n6; coutnn (00)/欢迎进入学生学籍管理系统(00)/endlendl; cout endlendl endl endl 1: 录入学生信息 endl 2: 显示学生信息 endl 3: 查找学生信息 endl 4: 删除学生信息 endl 5: 修改学生信息 endl 6: 统计学生成绩 endl 7: 保存学生信息 endl 0: 退出系统 endl endl endl n; return n0;/