1、C+学生信息管理系统课程设计报告42596 面向对象的程序设计课程设计报告姓 名: 学 号: 班 级: 院 系 日期: 1课程设计目的2项目要求与简介3设计题目 题目 学生成绩管理系统4测试运行的结果.5心得体会与进一步的改进6参考书目7源代码 程序设计语言(C+)课程设计 一设计目的1.进一步掌握用进行类的定义和操作 2.进一步掌握类的继承和派生3.掌握在Visual C+6进行编程的技术4.综合利用上述知识,编写面向对象的简单程序5.培养团结合作能力和自主学习的能力二项目要求与简介1.要求系统具备一定的存储记忆功能 2.要求系统能够处理常见异常并作出反映3.系统具备常用的学生信息处理功能4
2、.本系统还处于1.1版本,还会发布后续版本三设计题目题目 学生成绩管理系统(一).系统的主要功能1.增加学生系统可以提示用户输入增加的学生个数,添入到student.dat2.删除首先由用户输入要删除的位置,然后系统调用删除函数3.查找系统提示用户输入要查找的学号,成绩,姓名然后系统再传递用户选择的项目分别调用以上三个函数4.修改系统提示用户要修改的位置,然后传递给修改函数。接着系统出现提示提示用户修改的项目,可以修改学号,姓名或者成绩5.成绩信息用户选择该功能以后,系统出现提示。总共有六项,求平均成绩,成绩排序低于平均成绩的学生信息,高于90分的学生信息,低于60分的学生信息或退出该功能6.
3、显示所有学生信息调用此功能,系统读取文件中当前所有内容输出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 set
4、name(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()
5、 return this-sex; private: char name20; char sex5; double grade; int number;四测试运行的结果测试新建学生信息功能测试查看学生总数功能测试插入学生信息功能测试显示所有学生信息功能测试学生成绩信息功能测试交换学生信息功能测试删除学生信息功能测试修改学生信息功能测试查找学生信息功能五心得体会与进一步改进通过此次VC课程设计,我了解了Visual C6的调试和找错基本方法。系统的设计基本实现了老师所要求的功能,同时还增添加了交换学生信息的新功能。同时在设计过程中,对于系统的功能还有许多不完善的地方,例如为了是对输入信息的限制,
6、没有在系统中做限制用户可以随意输入,由此可能导致系统出错。另外对于删除没有实现按学号删除,因此还需要更多的设计来完善对于表达式的处理;设计一开始是以链表为基础的,后来进行不下去了。重新用了现在C中对文件处理的知识;界面风格只是使用默认的,没有创新,这个需要在以后的设计中加以改进。此次的课程设计让自己在学习新知识上有了更高的理解,有些只是只有在你想到要用时才会自己去学,同时自己在编程上的理解更深一层,逐步了解编程在实际中的运用,掌握了更多编程方法和思想,拓宽了知识面,为进一步的学习继续打牢根基。六参考书目Visualc+入门到精通七源代码class list:public studentpubl
7、ic: 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
8、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,siz
9、eof(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 infil
10、e1(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.setnumb
11、er(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.re
12、ad(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
13、,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(); ofstre
14、am 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.cl
15、ose(); 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(); ifstrea
16、m 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(); ifstrea
17、m 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.clo
18、se(); 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); dou
19、ble 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)
20、; 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 _e
21、ndl; 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;
22、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();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1