《c++大作业学生实验报告.pdf》由会员分享,可在线阅读,更多相关《c++大作业学生实验报告.pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学学 生生 实实 验验 报报 告告实 验 课 名 称:C+程序设计实验项目名称:综合大作业学生成绩管理系统专 业 名 称:电子信息工程班学级:号:学 生 姓 名:同 组 成 员:教 师 姓 名:2011年年6 月月23 日日题目:学生成绩管理系统一、一、实验目的:实验目的:(1)对 C+语法、基础知识进行综合的复习。(2)对C+语法、基础知识和编程技巧进行综合运用,编写具有一定综合应用价值的稍大一些的程序。培养学生分析和解决实际问题的能力,增强学生的自信心,提高学生学习专业课程的兴趣。(3)熟悉掌握 C+的语法和面向对象程序设计方法。(4)培养学生的逻辑思维能力,编程能力和程序调试能力以及工程
2、项目分析和管理能力。二、二、设计任务与要求:设计任务与要求:(1 1)只能使用只能使用/C+/C+语言,源程序要有适当的注释,使程序容易阅读语言,源程序要有适当的注释,使程序容易阅读。(2 2)至少采用文本菜单界面(如果能采用图形菜单界面更好)至少采用文本菜单界面(如果能采用图形菜单界面更好)。(3)要求划分功能模块,各个功能分别使用函数来完成。三、三、系统需求分析:系统需求分析:1.需求分析:为了解决学生成绩管理过程中的一些简单问题,方便对学生成绩的管理(录入,输出,查找,增加,删除,修改。)系统功能分析:(1):学生成绩的基本信息:学号、姓名、性别、C+成绩、数学成绩、英语成绩、总分。(2
3、):具有录入信息、输出信息、查找信息、增加信息、删除信息、修改信息、排序等功能。2.系统功能模块(要求介绍各功能)(1)录入信息(Input):录入学生的信息。(2)输出信息(Print):输出新录入的学生信息。(3)查找信息(Find):查找已录入的学生信息。(4)增加信息(Add):增加学生信息。(5)删除信息(Remove):在查找到所要删除的学生成绩信息后进行删除并输出删除后其余信息。(6)修改信息(Modify):在查到所要修改的学生信息后重新输入新的学生信息从而进行修改,然后输出修改后的所有信息。(7)排序(Sort):按照学生学号进行排序。3.模块功能框架图主函数(main)删除
4、信息修改信息(Modify)排序(Sort)(Remove)四、四、系统设计与实现系统设计与实现1.菜单设计与实现:菜单将所有功能划入一个简单而又醒目的功能区,再通过分行及分列从而将各功能巧妙划分开来,方便操作,也会让人觉得界面简单别致而不单调。(界面如下)2.功能设计与实现:录入信息、输出信息、查找信息、增加信息、删除信息、修改信息、排序等功能。调试过程:调试过程:1.1.输入信息输入信息2.输出信息输出信息3.3.查找信息查找信息4.4.增加信息增加信息5.5.删除信息删除信息6.6.修改信息修改信息7 7排序排序8.8.清屏清屏9.9.退出系统退出系统五、五、系统有待改进的地方系统有待改
5、进的地方1.未能实现数据的写入、读出,每次要重新输入数据,可以应用文件流来实现。2.源程序有点复杂,可以应用链表加以简化。六、设计心得与体会设计心得与体会通过这次大作业,我熟悉了类的一些应用,还熟悉了循环语句以及条件语句的组合使用。而且通过团结合作,可以减少自己许多工作量,而这也体现了C+的优越性。可以在同学所做的基础上来完善程序。七、七、参考资料参考资料C+程序设计大学教程源程序:源程序:/学生成绩管理系统学生成绩管理系统#include#include#include#include#include/#include/用用 getch();getch();using namespace s
6、td;using namespace std;class Studentclass Student private:private:int Cnum;int Cnum;/C/C 课程得分课程得分int Mnum;int Mnum;/数学课程得分数学课程得分int Enum;int Enum;/英语课程得分英语课程得分int sum;int sum;/总分总分char num10;char num10;char name20;char name20;char sex5;char sex5;int age;int age;public:public:static int i;static int
7、i;static int k;static int k;static int Count;static int Count;int x;int x;void Input();void Input();void Print();void Print();void Find();void Find();void Add();void Add();void Remove();void Remove();void Modify();void Modify();void Sort(Student*stu);void Sort(Student*stu);void ShowMenu();void ShowM
8、enu();Student(char*name,char*num,char*sex,int Cnum,int Mnum,int Enum,intStudent(char*name,char*num,char*sex,int Cnum,int Mnum,int Enum,intsum,int age);sum,int age);Student();Student();virtual Student();virtual Student();int Student:k=0;int Student:k=0;int Student:i=0;int Student:i=0;int Student:Coun
9、t=0;int Student:Count=0;Student stu200;Student stu200;/菜单菜单void Student:ShowMenu()void Student:ShowMenu()coutcout学学 生生 成成 绩绩 管管 理理 系系统统endl;endl;coutcout1.1.录入学生成绩录入学生成绩endl;endl;coutcout2.2.显示学生成绩显示学生成绩endl;endl;coutcout3.3.查找学生成绩查找学生成绩endl;endl;coutcout4.4.增加学生成绩增加学生成绩endl;endl;coutcout5.5.删除学生成绩删
10、除学生成绩endl;endl;coutcout6.6.修改学生信息修改学生信息endl;endl;coutcout7.7.排序统计成绩排序统计成绩endl;endl;coutcout8.8.清清屏屏endl;endl;coutcout0.0.安全退出系统安全退出系统endl;endl;coutnttnttcoutnttntt 请选择:请选择:;/构造函数构造函数Student:Student()Student:Student()strcpy(name,);strcpy(num,);strcpy(sex,);Cnum=90;Mnum=90;Enumstrcpy(name,);strcpy(num
11、,);strcpy(sex,);Cnum=90;Mnum=90;Enum=90;sum=270;age=20;=90;sum=270;age=20;Student:Student(char*name1,char*num1,char*sex1,int Cnum1,int Mnum1,intStudent:Student(char*name1,char*num1,char*sex1,int Cnum1,int Mnum1,intEnum1,int sum1,int age1)Enum1,int sum1,int age1)strcpy(name,name1);strcpy(name,name1);
12、strcpy(num,num1);strcpy(sex,sex1);Cnum=Cnum1;Mnum=Mnum1;Enum=strcpy(num,num1);strcpy(sex,sex1);Cnum=Cnum1;Mnum=Mnum1;Enum=Enum1;sum=sum1;age=age1;Enum1;sum=sum1;age=age1;Count+;Count+;/析构函数析构函数Student:Student()Student:Student()/录入函数录入函数void Student:Input()void Student:Input()int n;int n;coutcout输入学生
13、的人数输入学生的人数:endl;:n;k=n;cinn;k=n;for(i=0;in;i+)for(i=0;in;i+)coutcout输入第输入第i+1i+1个学生的学号、姓名、性别、年龄、个学生的学号、姓名、性别、年龄、C C 课程得课程得分、数学课程得分、英语课程得分分、数学课程得分、英语课程得分:endl;:stui.numstui.namestui.sexstui.agestui.Cnumstui.cinstui.numstui.namestui.sexstui.agestui.Cnumstui.Mnumstui.Enum;Mnumstui.Enum;stui.sum=stui.Cn
14、um+stui.Mnum+stui.Enum;stui.sum=stui.Cnum+stui.Mnum+stui.Enum;coutcout录入成功录入成功!endl;!endl;/输出函数输出函数void Student:Print()void Student:Print()coutcout学号学号t t 姓名姓名t t 性别性别t t 年龄年龄tc+ttc+t 高数高数t t 英语英语t t 总分总分endl;endl;for(i=0;ik;i+)for(i=0;ik;i+)coutstui.numtstui.nametstui.sextstui.agecoutstui.numtstui.
15、nametstui.sextstui.agetstui.Cnumtstui.Mnumtstui.Enumtstui.sutstui.Cnumtstui.Mnumtstui.Enumtstui.sumendl;mendl;/查找函数查找函数void Student:Find()void Student:Find()coutcout请输入所查学生学号、姓名请输入所查学生学号、姓名endl;numname;cinnumname;for(i=0;ik;i+)for(i=0;ik;i+)if(strcmp(stui.num,num)=0)&(strcmp(stui.name,name)=0)if(str
16、cmp(stui.num,num)=0)&(strcmp(stui.name,name)=0)x=1;x=1;break;break;if(x=1)if(x=1)coutcout学号学号t t姓名姓名t t性别性别t t年龄年龄tC+ttC+t高数高数t t英语英语t t总分总分endl;endl;coutstui.numtstui.nametstui.sextstui.agecoutstui.numtstui.nametstui.sextstui.agetstui.Cnumtstui.Mnumtstui.Enumtstui.sutstui.Cnumtstui.Mnumtstui.Enumts
17、tui.sumendl;mendl;elseelse coutttcouttt 没有找到该学生!没有找到该学生!nendl;nendl;coutcout输入任意字符!继续输入任意字符!继续endl;endl;getch();getch();/*/*/增加信息增加信息void Student:Add()void Student:Add()int n,j,i;int n,j,i;coutcout输入学生的人数输入学生的人数:endl;:n;cinn;for(i=k,j=0;in+k;i+,j+)for(i=k,j=0;in+k;i+,j+)coutcout输入第输入第j+1j+1个学生的学号、姓名
18、、性别、年龄、个学生的学号、姓名、性别、年龄、C C 课程得课程得分、数学课程得分、英语课程得分分、数学课程得分、英语课程得分:endl;:stui.numstui.namestui.sexstui.agestui.Cnumstui.cinstui.numstui.namestui.sexstui.agestui.Cnumstui.Mnumstui.Enum;Mnumstui.Enum;stui.sum=stui.Cnum+stui.Mnum+stui.Enum;stui.sum=stui.Cnum+stui.Mnum+stui.Enum;coutcout录入成功录入成功!endl;k+=n;
19、!endl;k+=n;/删除信息删除信息void Student:Remove()void Student:Remove()Student:Find();Student:Find();/*/*Student a;Student a;a.Find();a.Find();if(x=1)if(x=1)*/*/for(int z=i;zk;z+)for(int z=i;zk;z+)stuz=stuz+1;stuz=stuz+1;coutcout删除成功删除成功!endl;!endl;coutcout删除后信息删除后信息:endl;:endl;for(z=0;zk-1;z+)for(z=0;zk-1;z
20、+)coutstuz.numtstuz.nametstuz.sextstuz.agecoutstuz.numtstuz.nametstuz.sextstuz.agetstuz.Cnumtstuz.Mnumtstuz.Enumtstuz.sumtstuz.Cnumtstuz.Mnumtstuz.Enumtstuz.sumendl;endl;/修改信息修改信息void Student:Modify()void Student:Modify()Student t;Student t;t.Find();t.Find();if(x=1)if(x=1)coutcout输入新信息输入新信息:endl;:en
21、dl;coutcout请输入学号、请输入学号、姓名、姓名、性别、性别、年龄、年龄、C+C+、高数、高数、英语英语endl;t.numt.namet.sext.age;cint.numt.namet.sext.age;strcpy(stui.name,t.name);strcpy(stui.name,t.name);strcpy(stui.num,t.num);strcpy(stui.num,t.num);strcpy(stui.sex,t.sex);strcpy(stui.sex,t.sex);stui.age=t.age;stui.age=t.age;stui.Cnum=t.Cnum;stu
22、i.Cnum=t.Cnum;stui.Mnum=t.Mnum;stui.Mnum=t.Mnum;stui.Enum=t.Enum;stui.Enum=t.Enum;coutcout修改成功修改成功!endl;!endl;coutcout修改后信息修改后信息:endl;:endl;coutcout学号学号t t 姓名姓名t t 性别性别t t 年龄年龄tC+ttC+t 高数高数t t 英语英语t t 总分总分endl;endl;for(int a=0;ak;a+)for(int a=0;ak;a+)coutstua.numtstua.nametstua.sextstua.agecoutstua.
23、numtstua.nametstua.sextstua.agetstutstua.Cnumtstua.Mnumtstua.Enumtstua.sumendla.Cnumtstua.Mnumtstua.Enumtstua.sumendl;/排序函数排序函数void Student:Sort(Student*stu)void Student:Sort(Student*stu)for(int i=1;ik;i+)for(int i=1;ik;i+)for(int j=0;jk-i;j+)for(int j=0;j0)if(strcmp(stuj.num,stuj+1.num)0)Student t;
24、Student t;t=stuj;t=stuj;stuj=stuj+1;stuj=stuj+1;stuj+1=t;stuj+1=t;coutcout排序后信息排序后信息!endl;!endl;coutcout学号学号t t 姓名姓名t t 性别性别t t 年龄年龄endl;endl;for(int j=0;jk;j+)for(int j=0;jk;j+)coutstuj.numtstuj.nametstuj.sextstuj.agecoutstuj.numtstuj.nametstuj.sextstuj.agetstuj.Cnumtstuj.Mnumtstuj.Enumtstuj.ststuj
25、.Cnumtstuj.Mnumtstuj.Enumtstuj.sumendl;umendl;/主函数主函数int main()int main()int w;int f;int w;int f;bool quit=false;bool quit=false;coutttcouttt endl;endl;for(f=0;f3;f+)for(f=0;f3;f+)coutttcoutttttttttttttttendl;endl;coutttcouttt【欢迎进入学生成绩管理系统欢迎进入学生成绩管理系统】endl;endl;for(f=0;f3;f+)for(f=0;f3;f+)coutttcout
26、ttttttttttttttendl;endl;coutttcouttt nendl;nendl;Student s;Student s;coutcout按任意键开始按任意键开始endl;w;cinw;switch(w)switch(w)case 0:quit=true;break;case 0:quit=true;break;case 1:s.Input();break;case 1:s.Input();break;case 2:s.Print();break;case 2:s.Print();break;case 3:s.Find();break;case 3:s.Find();break;case 4:s.Add();break;case 4:s.Add();break;case 5:s.Remove();break;case 5:s.Remove();break;case 6:s.Modify();break;case 6:s.Modify();break;case 7:s.Sort(stu);break;case 7:s.Sort(stu);break;case 8:system(cls);break;case 8:system(cls);break;default:coutdefault:cout选择错误选择错误endl;endl;return 0;return 0;