C++语言课程设计报告模版.doc
C+课程设计说明书题 目: 学生成绩管理程序 课 程: C+课程设计院 (部): 计算机信息技术学院专 业: 软件工程班 级: 11级10班 学生姓名: 孙涛 学 号: 完成日期: 2012年6月4号 目 录1、课程设计目的12、课程设计任务与要求13、主要数据结构(类 函数)14、程序流程图15、测试数据和结果26、课程设计总结27、附件源代码21、 课程设计目的(1)巩固和加深学生对c+课程的基本知识的理解和掌握;(2)掌握c+编程和调试的基本技能;(3)利用c+进行简单软件设计的今本思路和方法,初步理解面性过程和面向对象编程思想;(4)提高运用c+解决实际问题的能力;(5)掌握书写程序设计报告的能力。(6)培养学生实际操作能力和团结协作能力,为以后的工作打下坚实基础。2、 课程设计任务与要求编写学生成绩管理程序,每个学生对象的数据包括id(学号)、name(姓名)、sex(性别)、score6(5门课的成绩和平均成绩)。程序能够实现学生成绩列表、查询、统计、修改、排序、退出等功能。主界面如下:3、 4、 学生成绩管理程序 5、 6、 设计人:XXXXXX 7、 2012年6月 8、 9、 功能选项(0-5): 10、 1输出成绩列表 11、 2查询学生成绩 12、 3输出最高成绩 13、 4修改学生成绩 14、 5成绩排序列表 15、 0退出 16、 17、 请选择(0-5):3、主要数据结构(类,函数)class Student private:long id;string name;char sex;float score6;public:Student();Student(long i,string nam,char s,float s1,float s2,float s3,float s4,float s5)id=i;name=nam;sex=s;score1=s1;score2=s2;score3=s3;score4=s4;score5=s5;average();void average()void display()void modify()long get_id()return id;float get_aver()return score0;float get_score(int n)return scoren;void surface()void table()void list(Student *p)void search(Student *p)void max_min(Student *p) void revise(Student *p)void sort(Student*p)void stat(Student *p) 4、程序流程图主函数开始à主界面à功能选择à选择功能1,输出成绩列表à功能选项à选择功能2,查询学生成绩à功能选项à选择功能3,输出最高成绩à功能选项à选择功能4,修改学生成绩à功能选项à选择功能5,成绩排序列表à功能选项à选择功能6,统计学生成绩à功能选项à选择功能0,退出5、测试数据及结果如图1:主界面图1如图2:输出成绩列表图2如图3:查询学生成绩图3如图4:输出最高成绩图4如图5:修改学生成绩图5如图6:成绩排序列表图6如图7:统计学生成绩图76、课程设计总结经过一年的课程学习,让我从一个对c+没有任何了解的门外人,把我领进了程序设计的门,让我感觉收获颇丰。特别是经过这一次的课程毕业设计,让我对c+,对程序设计有了更深一步的了解,程序设计不仅仅需要认真,更需要的是耐心经过一次又一次的修改才能达到最终目的。作为程序设计的基础,c+的学习不仅仅需要课上认真听讲,更需要自己的课下多做练习,多做上机实验,更需要多加思考认真研究各个语法,语句的深入了解。经过这一次的课程设计,我终于知道了程序设计不是那么好学的,所以以后要好好了解好好研究c+争取取得一些成就。另外还要对教了我们一年的老师说一声谢谢,老师每天不辞劳苦的对我们的教育,真诚的说一声,老师,你辛苦了!7、附件源代码#include<iostream>#include<iomanip>#include<string>using namespace std;class Studentprivate:long id;string name;char sex;float score6;public:Student()Student(long i,string nam,char s,float s1,float s2,float s3,float s4,float s5)id=i;name=nam;sex=s;score1=s1;score2=s2;score3=s3;score4=s4;score5=s5;average();void average()float sum=0;for(int k=1;k<6;k+)sum+=scorek;score0=sum/5;void display()cout<<setw(12)<<id<<setw(12)<<name<<" "<<sex<<setw(7)<<score1<<setw(7)<<score2<<setw(8)<<score3<<setw(8)<<score4<<setw(8)<<score5<<setw(8)<<score0<<endl;void modify() int w;cout<<"要修改第几门课成绩"cin>>w;cout<<"输入该门课的成绩"cin>>scorew;average();long get_id()return id;float get_aver()return score0;float get_score(int n)return scoren;void surface()cout<<" "<<endl;cout<<" 学生成绩管理程序 "<<endl;cout<<" "<<endl;cout<<" 设计人:孙涛 "<<endl;cout<<" 2012年6月 "<<endl;cout<<" "<<endl;cout<<" 功能选项(0-6): "<<endl;cout<<" 1-输出成绩列表 "<<endl;cout<<" 2-查询学生成绩 "<<endl;cout<<" 3-输出最高成绩 "<<endl; cout<<" 4-修改学生成绩 "<<endl; cout<<" 5-成绩排序列表 "<<endl;cout<<" 6-统计学生成绩 "<<endl;cout<<" 0-退出 "<<endl;cout<<" "<<endl;void table()cout<<setw(12)<<"Student id"<<setw(15)<<" Name sex"<<" score1 score2 score3 score4 score5 average"<<endl;void list(Student *p)table();for(int j=0;j<5;j+)pj.average();pj.display();cout<<endl;void search(Student *p)int i;long m;cout<<"输入要查询的学号"cin>>m;for(i=0;i<5;i+)if(pi.get_id()=m)pi.average();table();pi.display();break;if(i=5)cout<<"查无此生!"<<endl;void max(Student *p)p0.average();float m=p0.get_aver();int i,k;cout<<"The best score is: n"for(i=1;i<5;i+)pi.average();if(pi.get_aver()>m)m=pi.get_aver();k=i;table();pk.display();void revise(Student *p) int i;long m;cout<<"输入要修改成绩学生的学号"cin>>m;for(i=0;i<5;i+)if(pi.get_id()=m)pi.average();table();pi.display();break;pi.modify(); table();pi.display();if(i=5)cout<<"查无此生!"<<endl;void sort(Student *p)Student s;int i,j,k;for(i=0;i<4;i+)k=i;for(j=i+i;j<5;j+)if(pi.get_aver()<pj.get_aver() k=j;if(k!=i)s=pi;pi=pk;pk=s;list(p);void stat(Student*p)int m;cout<<"统计第几门成绩?"int s9=0,s8=0,s7=0,s6=0,s0=0;cin>>m;for(int i=0;i<5;i+)float f=pi.get_score(m);if(f>=90)s9+;else if(f>=80)s8+;else if(f>=70)s7+;else if(f>=60)s6+;else s0+;cout<<"第"<<m<<"门课成绩统计:"<<endl;cout<<"分数段"<<"人数"<<endl;cout<<"90-100 "<<s9<<endl;cout<<"80-89 "<<s8<<endl;cout<<"70-79 "<<s7<<endl;cout<<"60-69 "<<s6<<endl;cout<<"<60 "<<s0<<endl;int main()Student stu5=Student(,"WangKai",'m',96,87,95,99,89),Student(,"TangLing",'f',98,79,74,65,80),Student(,"LiangFang",'f',85,98,99,100,76),Student(,"dengZhe",'m',100,98,99,96,95),Student(,"HuangYang",'m',75,60,63,68,66);surface();int n;while(2)cout<<"请选择(0-6):"cin>>n;switch(n)case 1:list(stu);break;case 2:search(stu);break;case 3:max(stu);break;case 4:revise(stu);break;case 5:sort(stu);break;case 6:stat(stu);if(n=0)break;return 0;