10计本《数据结构课程设计报告》.docx
- 文档编号:23485803
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:16
- 大小:266.44KB
10计本《数据结构课程设计报告》.docx
《10计本《数据结构课程设计报告》.docx》由会员分享,可在线阅读,更多相关《10计本《数据结构课程设计报告》.docx(16页珍藏版)》请在冰豆网上搜索。
10计本《数据结构课程设计报告》
安徽省巢湖学院计算机与信息工程学院
课程设计报告
课程名称《数据结构》
课题名称学生成绩管理系统
专业计算机科学与技术
班级10计本2班
学号
姓名
联系方式
指导教师江家宝
2011年12月26
目录
1、数据结构课程设计任务书1
1.1、题目1
1.2、要求1
2、总体设计1
2.1、功能模块设计1
2.2、所有功能模块的流程图1
3、详细设计1
3.1、程序中所采用的数据结构及存储结构的说明1
3.2、算法的设计思想2
4、调试与测试:
2
4.1、调试方法与步骤:
2
4.2、测试结果的分析与讨论:
2
4.3、测试过程中遇到的主要问题及采取的解决措施:
3
5、源程序清单和执行结果3
6、C程序设计总结7
7、致谢7
8、参考文献7
1、数据结构课程设计任务书
1.1、题目
成绩管理系统
1.2、要求
对一个班级的多门课程的成绩进行管理,能够实现一个班级学生信息的输入、输出、查找、删除、修改、排序、求平均分和及格率等操作。
2、总体设计
2.1、功能模块设计
根据课程设计题目的功能要求,各个功能模块的组成框图如下
2.2、所有功能模块的流程图
3、详细设计
3.1、程序中所采用的数据结构及存储结构的说明
定义一个学生类,其中包括学生的个人信息等私有成员,含有输入信息,查询信息等成员函数。
classstudent{
public:
student();
student(inta,stringb,stringc,intd,inte,intf,intg);
student(student&s);
intgetstudent();
intchange();
voidinput();
staticintgetcountp(){returncountp1;}
intgetnumber(){returnnumber;}
intgetsub(){returnChinese+Math+English;}
staticvoidswap(student&s1,student&s2);
private:
staticintcountp1;
intnumber;
stringname;
stringgender;
intage;
intChinese;
intMath;
intEnglish;
};
3.2、算法的设计思想
1、首先建立一个学生类,包含他的所有信息,比如学(number)、姓名(name)、性别(gender)、年龄(age)和各科的成绩(Chinese,math,English);
2、然后在编写相应的各个小的函数段,主要有添加(student(inta,stringb,stringc,intd,inte,intf,intg)),查找(intgetstudent()),修改(intchange()),排序等;
3、最后在main()函数中再利用switch()的选择功能对所需要执行的操作进行选择,主要有:
1、添加一个学生的信息
2、查询一个学生的信息
3、更改一个学生的信息
4、查看所有学生的信息
5、查看一个学生的总成绩
6、查看全班的平均分
7、查看排名后的结果
8、查看该班的及格率
9、退出该操作系统
4、调试与测试:
4.1、调试方法与步骤:
第一步:
添加学生信息
第二步:
查询一个学生信息
第三步:
更改一个学生信息
第四步:
查看所有学生信息
第五步:
查看一个学生的总成绩
第六步:
查看全班平均分
第七步:
查看排名后结果
第八步:
查看全班的及格率
第九步:
退出该操作系统
4.2、测试结果的分析与讨论:
(见下页)
4.3、测试过程中遇到的主要问题及采取的解决措施:
1、所输入的格式不符合要求,可能会导致输出的错误,这时应该重新输入
2、当输入的学号有重复的时候,在查找过程中就会发现,故而希望不要输入相同的学号
3、改程序还只是一些简单的处理过程的程序,若要想将其变得更加的完美,还希望大家多多帮忙
5、源程序清单和执行结果
#include
#include
usingnamespacestd;
classstudent{//类的定义
public:
student();//默认构造函数
student(inta,stringb,stringc,intd,inte,intf,intg);//构造函数
student(student&s);//复制构造函数
intgetstudent();//读取学生信息
intchange();//更改学生信息
voidinput();//输入学生信息
staticintgetcountp(){returncountp1;}//计算学生数
intgetnumber(){returnnumber;}//读取学生学号
intgetsub(){returnChinese+Math+English;}//读取学生总成绩
staticvoidswap(student&s1,student&s2);//交换学生信息
private:
staticintcountp1;//计数器(学生数)
intnumber;//学号
stringname;//姓名
stringgender;//性别
intage;//年龄
intChinese;//语文成绩
intMath;//数学成绩
intEnglish;//英语成绩
};
intstudent:
:
countp1=0;//静态常量
student:
:
student(){//默认构造函数的实现
number=0;name="wang";gender="nan";age=21;Chinese=0;Math=0;English=0;
}
student:
:
student(inta,stringb,stringc,intd,inte,intf,intg){//构造函数的实现
number=a;name=b;gender=c;age=d;Chinese=e;Math=f;English=g;
}
student:
:
student(student&s){//复制构造函数的实现
number=s.number;name=s.name;gender=s.gender;age=s.age;Chinese=s.Chinese;Math=s.Math;English=s.English;
}
intstudent:
:
change(){//更改学生信息函数的实现
charxx;
cout<<"请输入要改变的数据"< cout<<"a代表number,b代表name,c代表gender,"< cout<<"d代表age,e代表Chinese,f代表Math,g代表English"< cin>>xx; cout<<"将信息更改为: "; switch(xx){ case'a': cin>>number;break; case'b': cin>>name;break; case'c': cin>>gender;break; case'd': cin>>age;break; case'e': cin>>Chinese;break; case'f': cin>>Math;break; case'g': cin>>English;break; } return0; } intstudent: : getstudent(){//读取学生信息函数的实现 cout< return0; } voidstudent: : input(){//输入学生信息函数的实现 cin>>number>>name>>gender>>age>>Chinese>>Math>>English; countp1++; } voidstudent: : swap(student&s1,student&s2){//交换学生信息函数的实现 students3; if(s1.getsub() s3=s1; s1=s2; s2=s3; } } intmain(){//主函数 inti,n,ava=0;//定义变量 intcountp=0; floatava1; doublek=0; studenta[100]; cout<<"*************************************************"< cout<<"☆欢迎来到学生成绩管理系统☆"< cout<<"*************************************************"< for(i=0;n! =9;i++){//循环的实现 cout<<"*************************************************"< cout<<"请选择您要执行的操作: "< cout<<"1、添加一个学生的信息2、查询一个学生的信息"< cout<<"3、更改一个学生的信息4、查看所有学生的信息"< cout<<"5、查看一个学生的总成绩6、查看全班的平均分"< cout<<"7、查看排名后的结果8、查看该班的及格率"< cout<<"9、退出该操作系统"< cout<<"*************************************************"< cin>>n; switch(n){//switch语句的实现 case1: //添加一个学生的信息 if(countp<100){ cout<<"学号"<<"姓名"<<"性别"<<"年龄"<<"语文成绩"<<"数学成绩"<<"英语成绩"< a[countp].input(); countp=student: : getcountp(); } break; case2: //查询一个学生的信息 intm1,p; cout<<"请输入你要查看的学生的学号: "; cin>>m1; for(p=0;p if(m1==a[p].getnumber()) a[p].getstudent(); if(p>countp) cout<<"您所输入的信息不对,无法查询"< break; case3: //更改一个学生的信息 intm2,p1; cout<<"请输入你要修改的学生的学号: "; cin>>m2; for(p1=0;p1 if(m2==a[p1].getnumber()) a[p1].change(); if(p1>countp) cout<<"您所输入的信息不对,无法查询"< break; case4: //查看所有学生的信息 intm3; for(m3=0;m3 a[m3].getstudent(); break; case5: //查看一个学生的总成绩 intm4,p2; cout<<"请输入你要查看的学生的学号: "; cin>>m4;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构课程设计报告 10 数据结构 课程设计 报告