




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象的程序设计课程设计报告姓 名: 学 号: 班 级: 院 系 日期: 目录1 课程设计目的2 项目要求与简介3 设计题目 题目 学生成绩管理系统4 测试运行的结果.5 心得体会与进一步的改进6 参考书目7 源代码 程序设计语言(C+)课程设计 一 设计目的1.进一步掌握用进行类的定义和操作 2.进一步掌握类的继承和派生3.掌握在Visual C+6进行编程的技术4.综合利用上述知识,编写面向对象的简单程序5.培养团结合作能力和自主学习的能力二 项目要求与简介1.要求系统具备一定的存储记忆功能 2.要求系统能够处理常见异常并作出反映3.系统具备常用的学生信息处理功能4.本系统还处于1.1版本,还会发布后续版本三 设计题目题目 学生成绩管理系统(一).系统的主要功能1.增加学生系统可以提示用户输入增加的学生个数,添入到student.dat2.删除首先由用户输入要删除的位置,然后系统调用删除函数3.查找系统提示用户输入要查找的学号,成绩,姓名然后系统再传递用户选择的项目分别调用以上三个函数4.修改系统提示用户要修改的位置,然后传递给修改函数。接着系统出现提示提示用户修改的项目,可以修改学号,姓名或者成绩5.成绩信息用户选择该功能以后,系统出现提示。总共有六项,求平均成绩,成绩排序低于平均成绩的学生信息,高于90分的学生信息,低于60分的学生信息或退出该功能6.显示所有学生信息调用此功能,系统读取文件中当前所有内容输出7.当前学生总数读取long.txt中保存的信息并输出8.交换两个学生信息调用函数交换两个学生的信息9.插入学生信息在指定位置新建一个学生信息,位置由用户输入(二).系统总体框架开始界面主要提示的菜单界面查找信息修改信息成绩信息交换信息学生总数删除学生信息新建学生信息(三).系统数据结构定义class student/这是数据节点public:student();student(student &c)this-number=c.getnumber(); this-setname(c.getname(); this-setsex(c.getsex();this-grade=c.getgrade();void setname(char *name1)strcpy(this-name,name1);void setnumber(int num)this-number=num;void setgrade(double grade1)this-grade=grade1;void setsex(char *sex1)strcpy(this-sex,sex1);char *getname()return this-name;double getgrade()return this-grade;int getnumber()return this-number;char *getsex()return this-sex;private:char name20;char sex5;double grade;int number;四 测试运行的结果测试新建学生信息功能测试查看学生总数功能测试插入学生信息功能测试显示所有学生信息功能测试学生成绩信息功能测试交换学生信息功能测试删除学生信息功能测试修改学生信息功能测试查找学生信息功能五 心得体会与进一步改进通过此次VC课程设计,我了解了Visual C6的调试和找错基本方法。系统的设计基本实现了老师所要求的功能,同时还增添加了交换学生信息的新功能。同时在设计过程中,对于系统的功能还有许多不完善的地方,例如为了是对输入信息的限制,没有在系统中做限制用户可以随意输入,由此可能导致系统出错。另外对于删除没有实现按学号删除,因此还需要更多的设计来完善对于表达式的处理;设计一开始是以链表为基础的,后来进行不下去了。重新用了现在C中对文件处理的知识;界面风格只是使用默认的,没有创新,这个需要在以后的设计中加以改进。此次的课程设计让自己在学习新知识上有了更高的理解,有些只是只有在你想到要用时才会自己去学,同时自己在编程上的理解更深一层,逐步了解编程在实际中的运用,掌握了更多编程方法和思想,拓宽了知识面,为进一步的学习继续打牢根基。六 参考书目Visualc+入门到精通七 源代码class list:public studentpublic:void display()ifstream infile;int a=1;infile.open(student.dat,ios:binary);student c;while(infile.read(char *)&c,sizeof(c)cout 第a个学生信息endl;cout姓名:c.getname()endl;cout性别:c.getsex()endl;cout成绩:c.getgrade()endl;cout学号:c.getnumber()endl;a+;coutendl;infile.close();/显示学生信息void write(int i)int a,t,b=0;char name120;char sex15;int number1;double grade1; ofstream outfile;outfile.open(student.dat,ios:app);student c;for(a=1;a=i;a+)coutname1;c.setname(name1);coutnumber1;c.setnumber(number1);coutsex1;c.setsex(sex1);coutgrade1;c.setgrade(grade1);outfile.write(char * )&c,sizeof(c);outfile.close();ifstream infile;/infile.seekg(0,ios:end); infile.open(long.txt); if(infile.is_open() while(!infile.eof() char temp50; infile.getline(temp,50); b=atoi(temp); else b=0; infile.close();ofstream outfile1(long.txt);t=i+b;outfile1cap1; infile.close();student c;ifstream infile1(student.dat);ofstream outfile(temp.dat);int a;for(a=1;ai;a+)infile1.read(char *)&c,sizeof(c);outfile.write(char *)&c,sizeof(c);outfile.close();infile1.close();ifstream infile2(student.dat);infile2.seekg(sizeof(c)*(i-1);infile2.read(char *)&c,sizeof(c);char name120;coutname1;c.setnumber(c.getnumber();c.setgrade(c.getgrade();c.setname(name1);c.setsex(c.getsex();ofstream outfile1(temp.dat,ios:app);outfile1.write(char *)&c,sizeof(c);outfile1.close();ifstream infile3(student.dat); infile3.seekg(sizeof(c)*i);ofstream outfile2(temp.dat,ios:app);for(a=i+1;a=cap1;a+)infile3.read(char *)&c,sizeof(c);outfile2.write(char *)&c,sizeof(c);outfile2.close();infile3.close();ifstream infile4(temp.dat);ofstream outfile3(student.dat);for(a=1;acap1; infile.close();student c;ifstream infile1(student.dat);ofstream outfile(temp.dat);int a;for(a=1;ai;a+)infile1.read(char *)&c,sizeof(c);outfile.write(char *)&c,sizeof(c);outfile.close();infile1.close();ifstream infile2(student.dat);infile2.seekg(sizeof(c)*(i-1);infile2.read(char *)&c,sizeof(c);int number1;coutnumber1;c.setnumber(number1);c.setgrade(c.getgrade();c.setname(c.getname();c.setsex(c.getsex();ofstream outfile1(temp.dat,ios:app);outfile1.write(char *)&c,sizeof(c);outfile1.close();ifstream infile3(student.dat); infile3.seekg(sizeof(c)*i);ofstream outfile2(temp.dat,ios:app);for(a=i+1;a=cap1;a+)infile3.read(char *)&c,sizeof(c);outfile2.write(char *)&c,sizeof(c);outfile2.close();infile3.close();ifstream infile4(temp.dat);ofstream outfile3(student.dat);for(a=1;acap1; infile.close();student c;ifstream infile1(student.dat);ofstream outfile(temp.dat);int a;for(a=1;ai;a+)infile1.read(char *)&c,sizeof(c);outfile.write(char *)&c,sizeof(c);outfile.close();infile1.close();ifstream infile2(student.dat);infile2.seekg(sizeof(c)*(i-1);infile2.read(char *)&c,sizeof(c);char sex15;coutsex1;c.setnumber(c.getnumber();c.setgrade(c.getgrade();c.setname(c.getname();c.setsex(sex1);ofstream outfile1(temp.dat,ios:app);outfile1.write(char *)&c,sizeof(c);outfile1.close();ifstream infile3(student.dat); infile3.seekg(sizeof(c)*i);ofstream outfile2(temp.dat,ios:app);for(a=i+1;a=cap1;a+)infile3.read(char *)&c,sizeof(c);outfile2.write(char *)&c,sizeof(c);outfile2.close();infile3.close();ifstream infile4(temp.dat);ofstream outfile3(student.dat);for(a=1;acap1; infile.close();student c;ifstream infile1(student.dat);ofstream outfile(temp.dat);int a;for(a=1;ai;a+)infile1.read(char *)&c,sizeof(c);outfile.write(char *)&c,sizeof(c);outfile.close();infile1.close();ifstream infile2(student.dat);infile2.seekg(sizeof(c)*(i-1);infile2.read(char *)&c,sizeof(c);double grade1;coutgrade1;c.setnumber(c.getnumber();c.setgrade(grade1);c.setname(c.getname();c.setsex(c.getsex();ofstream outfile1(temp.dat,ios:app);outfile1.write(char *)&c,sizeof(c);outfile1.close();ifstream infile3(student.dat); infile3.seekg(sizeof(c)*i);ofstream outfile2(temp.dat,ios:app);for(a=i+1;a=cap1;a+)infile3.read(char *)&c,sizeof(c);outfile2.write(char *)&c,sizeof(c);outfile2.close();infile3.close();ifstream infile4(temp.dat);ofstream outfile3(student.dat);for(a=1;acap1; infile.close(); student c; ifstream infile1(student.dat); if(i=cap1) int j=1; while(j!=0) cout _endl; cout |* 请输入你想执行的操作*|endl; cout |* 1.修改学生学号 *|endl; cout |* 2.修改学生姓名 *|endl; cout |* 3.修改学生性别 *|endl; cout |* 4.修改学生成绩 *|endl; cout |* 5.显示该学生信息 *|endl; cout |* 0.退出操作 *|endl; cout j; switch(j) case 1: this-modify1(i,j); break; case 2: this-modify2(i,j);break; case 3: this-modify3(i,j); break; case 4: this-modify4(i,j); break; case 5: infile1.seekg(sizeof(c)*(i-1); infile1.read(char *)&c,sizeof(c); cout 第i个学生信息endl; cout姓名:c.getname()endl; cout性别:c.getsex()endl; cout成绩:c.getgrade()endl; cout学号:c.getnumber()endl; break; case 0: break; else cout你修改的位置有误j) t=i; i=j; j=t; student b; ifstream infile; infile.open(long.txt); infilecap1; infile.close(); if(i!=j) if(i=cap1&jDelete(i); this-insert(j-1,b); b=this-Delete(j); this-insert(i,b); /交换两学生信息 void sort() int cap1,i,j; student a,b; ifstream infile; infile.open(long.txt); infilecap1; infile.close(); for(i=0;icap1-1;i+) for(j=i+1;jcap1;j+) ifstream infile1(student.dat); ifstream infile2(student.dat); infile1.seekg(sizeof(a)*(i); infile1.read(char *)&a,sizeof(a); infile2.seekg(sizeof(b)*(j); infile2.read(char *)&b,sizeof(b); if(a.getgrade()change(i+1,j+1); infile1.close(); infile2.close(); /从大到小排列成绩 void insert(int i,student b) int cap1; ifstream infile;infile.open(long.txt);infilecap1;infile.close();if(i=cap1)student c;ifstream infile1(student.dat);ofstream outfile(temp.dat);int a;for(a=1;ai;a+)infile1.read(char *)&c,sizeof(c);outfile.write(char *)&c,sizeof(c);outfile.close();infile1.close();ofstream outfile1(temp.dat,ios:app);outfile1.write(char * )&b,sizeof(b);outfile1.close();ifstream infile2(student.dat);infile2.seekg(sizeof(c)*(i-1);ofstream outfile2(temp.dat,ios:app);for(a=i;a=cap1;a+)infile2.read(char *)&c,sizeof(c);outfile2.write(char *)&c,sizeof(c);outfile2.close();infile2.close();ifstream infile3(temp.dat);ofstream outfile3(student.dat);for(a=1;a=cap1+1;a+)infile3.read(char *)&c,sizeof(c);outfile3.write(char *)&c,sizeof(c);remove(temp.dat);cap1+;infile3.close();outfile3.close();ofstream outfile4(long.txt);outfile4cap1;outfile4.close();elsecout你输入的插入位置有误cap1;infile1.close();student c,b;ifstream infile2(student.dat,ios:binary); int a;ofstream outfile1(temp1.dat);for(a=1;ai;a+)infile2.read(char *)&c,sizeof(c);outfile1.write(char *)&c,sizeof(c); infile2.seekg(sizeof(c)*(i-1);infile2.read(char *)&c,sizeof(c); b=c; infile2.seekg(sizeof(c)*(i);ofstream outfile2(temp1.dat,ios:app);for(a=i+1;a=cap1;a+)infile2.read(char *)&c,sizeof(c);outfile2.write(char *)&c,sizeof(c);infile2.close();outfile1.close();outfile2.close();ofstream outfile3(student.dat);ifstream infile3(temp1.dat);for(a=1;a=cap1-1;a+)infile3.read(char *)&c,sizeof(c);outfile3.write(char *)&c,sizeof(c);infile3.close();outfile3.close();cap1-;ofstream outfile4(long.txt);outfile4cap1;outfile4.close();remove(temp1.dat);return b;/删除学生信息 void find_number(int number1) student c; ifstream infile;infile.open(student.dat);while(infile.read(char *)&c,sizeof(c)if(c.getnumber()=number1) cout 学号为number1的学生信息endl; cout姓名:c.getname()endl; cout性别:c.getsex()endl; cout成绩:c.getgrade()endl; cout学号:c.getnumber()endl;infile.close();void find_grade(double grade1) student c; ifstream infile;infile.open(student.dat);while(infile.read(char *)&c,sizeof(c)if(c.getgrade()=grade1) cout 成绩为grade1的学生信息endl; cout姓名:c.getname()endl; cout性别:c.getsex()endl; cout成绩:c.getgrade()endl; cout学号:c.getnumber()endl;infile.close();void find_name(char *name1) student c; ifstream infile;infile.open(student.dat);while(infile.read(char *)&c,sizeof(c)if(!strcmp(c.getname(),name1) cout 姓名为name1的学生信息endl; cout姓名:c.getname()endl; cout性别:c.getsex()endl; cout成绩:c.getgrade()endl; cout学号:c.getnumber()a;return a;/学生总数double average()int cap1;ifstream infile; infile.open(long.txt); infilecap1;int i;double total=0,average;student c;ifstream infile1(student.dat);for(i=1;iaverage();ifstream infile1(student.dat);while(infile1.read(char *)&c,sizeof(c)if(c.getgrade()average)cout姓名:c.getname()endl; cout性别:c.getsex()endl; cout成绩:c.getgrade()endl; cout学号:c.getnumber()average();ifstream infile1(student.dat);while(infile1.read(char *)&c,sizeof(c)if(c.getgrade()90)cout姓名:c.getname()endl; cout性别:c.getsex()endl; cout成绩:c.getgrade()endl; cout学号:c.getnumber()average();ifstream infile1(student.dat);while(infile1.read(char *)&c,sizeof(c)if(c.getgrade()60)cout姓名:c.getname()endl; cout性别:c.getsex()endl; cout成绩:c.getgrade()endl; cout学号:c.getnumber()endl;infile1.close();list();void show()int j=1,cap1;char name120;char sex15;int number1;double grade1;student d;list c;int a,b;cout 欢 迎 使 用 学 生 管 理 系 统endl;while(j!=0)cout _endl;cout |* 请输入你想执行的操作*|
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025浙江金华智园至尚资产经营有限公司招聘17人笔试参考题库附带答案详解
- 2025济钢集团有限公司校园招聘(48人)笔试参考题库附带答案详解
- 2025江西新鸿人力资源服务有限公司招募见习人员3人笔试参考题库附带答案详解
- 2025新疆兵团金融发展服务中心招聘事业单位工作人员(1人)笔试历年参考题库附带答案详解
- 2025年浙江金华市轨道交通集团运营有限公司第一批招考4人笔试参考题库附带答案详解
- 2025年国网中兴有限公司高校毕业生招聘(第二批)调剂笔试参考题库附带答案详解
- 2025山东中胶阿胶有限公司招聘19人笔试参考题库附带答案详解
- 2025四川自贡华荟文化产业发展有限公司招聘3人笔试参考题库附带答案详解
- 2025中国华冶科工集团有限公司校园招聘280人笔试参考题库附带答案详解
- 地铁工程安全培训内容课件
- 《公共数据安全评估规范》
- 杨梅综合产业园基础设施建设项目可行性研究报告-杨梅产业发展前景广阔配套需求日益凸显
- 2024年下半年辽宁事业单位管理单位遴选500模拟题附带答案详解
- 农产品直播带货策略
- 2024年化学检验员(中级工)技能鉴定考试题库(附答案)
- 2021版十八项医疗质量安全核心制度附流程图
- 精神科护理饮食宣教
- 人教版六年级数学上册第一单元测试卷
- 函数图像 课件-2025届高三数学一轮复习
- 2024北师大版新教材初中数学七年级上册内容解读课件(深度)
- 应收应付明细表模板
评论
0/150
提交评论