当前位置:
文档之家› C++课程设计 学生成绩排名系统
C++课程设计 学生成绩排名系统
学
生
成
生
成
绩
成
绩
排
绩
序
统
查
计
询
学
学
生
生
成
成
绩
绩
保
退
存
出
学
系
生
统
成
绩
三.系统流程图
menu
n
N
n=1
Y
add()
N
n=2
Y paixu()
N n=3
Y
N n=4
Y
delet()
c7 Y
search()
baocun()
tuichu
C++程序设计课程设计报告 (二)详细设计(各模块流程图) 各功能模块设计思路及流程图:
"<<endl; cout<<"注意要先实行第一步!"<<endl;
menu();
return 0;
}
void menu() //进行数据操作的选择
{
void choose(); cout<<"********************************* 主菜单 *********************************"<<endl;
i++ N
输入 i=0 j=n-1
i<a Y
j>i Y
i++ N
stu[j].mscore >stu[j].msco re stu[j-1].numY
>> 输入 s
S=stu[j]; j++
stu[j]= stu[j-1]; stu[j-1]=s;j++
输入 i=0 j=0
i<a Y
j>i Y
stu[j].escore> stu[j-1].escore
cout<<"
**
(1)添加学生成绩
**
"<<endl;
cout<<"
******
(2)对学生成绩进行排序
******
"<<endl;
cout<<"
**********
(3)删除学生成绩
**********
"<<endl;
cout<<" **************
(4)统计学生成绩
**************
流程图:
C++程序设计课程设计报告
第 8 页 共 30 页
主菜单
输入 a
Y
输入 name 输入 i
i<n
i++
Y N
n=stu[i].num Y
输出信息
Y a=1
N
a=2
输入 num 输入 i
i<n Y
n=stu[i].num Y
输出信息
i++ N
a=3
输入 b
N b=gaode
ngshuxu
e
Y
"<<endl;
cout<<"
**********
(5)查询学生成绩
**********
"<<endl;
cout<<"
******
(6)保存学生成绩
******
"<<endl;
cout<<"
**
(7)退出系统
**
"<<endl;
cout<<"****************************************************************************"<<endl;
}
void delet() //删除学生信息 {
void back(); int i,a,j,p; cout<<"你要删除的学生的学号:"; cin>>a;
第 11 页 共 30 页
C++程序设计课程设计报告
for(i=0;i<n;i++) if(a==stu[i].num) { j=i; for(p=j+1;p<n;p++) stu[p-1]=stu[p]; cout<<"删除成功!!"; n=n-1; break; }
第 12 页 共 30 页
C++程序设计课程设计报告
第 13 页 共 30 页
}
} void num() //学号排序
{
void back2();
int i;
Student s; cout<<"学生姓名"<<setw(15)<<"学号"<<setw(10)<<"高等数学"
<<setw(15)<<"大学英语"<<setw(15)<<"大学语文"<<endl;
2) 总体设计:包括模块说明、模块结构图和系统流程图;
3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;
4) 源程序代码及设计成果:完整源程序清单和设计成果;
5)总结: 调试分析过程描述:包括测试数据、测试输出结果以及对程序调试过程中存在问题的思考(列出 主要问题的出错现象、出错原因、解决方法及效果等)包括课程设计过程中的学习体会与收获、对 C++和本 次课程设计的认识等内容.;
流程图:
主菜单
输入 i=0 Y
i<n Y
stu[i].total=stu[i].cscore+stu[i]. mscore+stu[i].escore
输出 stu【i】.total
输出 stu【i】.total/3
i++
i++
输入 min
输入 r
min=stu【0】.total 输入 i=0
stu【i】>=60 i<n
Y
N
c=0
c=0
N Y
【2】模块二:
对学生成绩进行排序 这一模块首先通过 switch 语句选出对学生进行排序的方式,主要方式有按学号进行排序,按高等数学
的成绩按从高到低进行排序,按英语成绩按从高到低进行排序,按 C++成绩按从高到低进行排序这四种排序 方式,选择方式之后,根据是否返回小菜单和主菜单进行 1 和 0 的选泽。 流程图:
>> Y
输入 s
S=stu[j]; stu[j]= stu[j-1]; stu[j-1]=s;j++
【3】模块三:
C++程序设计课程设计报告
第 6 页 共 30 页
删除学生信息
这个模块通过输入学号找出你要删除的学生,然后通过循环语句将它后面的数一个一个的赋值给前面 的数,从而把这个是给替代掉。达到删除的功能。
(1)巩固和加深学生对 C++课程的基本知识的理解和掌握; (2)掌握 C++编程和程序调试的基本技能; (3)利用 C++进行简单软件设计的基本思路和方法; (4)提高运用 C++解决实际问题的能力; (5)掌握书写程序设计说明文档的能力。
2.课程设计任务与要求:
要求: 1) 设计题目、设计要求以及系统功能需求分析;
第 4 页 共 30 页
【1】模块一:
添加学生信息 这一模块首先先输入你要输入的学生人数,然后通过键盘输入学生姓名,学生的班级,学生的学号,学 生的高等数学的成绩,大学英语的成绩以及 C++的成绩,然后将其读入文件中。 流程图:
主菜单
输入 n=1 输入 a
Y 输入学 生属性
i++
i<a
N 不返回
输入 c
if(i==n && a!=stu[i].num) {
cout<<"你要删除的学生不在列表中"<<endl; delet(); } back(); }
void paixu() //对学生信息进行排序 {
cout<<"A.按照学号进行排序"<<endl; cout<<"B.按照数学成绩从高到低进行排序"<<endl; cout<<"C.按照英语成绩从高到低进行排序"<<endl; cout<<"D.按照语文成绩从高到低进行排序"<<endl; cout<<"请选择进行排序的方式?(用 A,B,C,D 进行选择):"; char a; cin>>a; switch(a) {
r++;
N r=n =n
N Y
Y
stu[i].total<min Y
min=stu[i].total; i++;
输出信息
【5】模块五:
查询学生信息 这个模块主要是通过三种方式进行学生信息的查询,分别是姓名查询,学号查询,课程名查询;找到学