C学生成绩统计管理系统.docx
- 文档编号:8747941
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:27
- 大小:552.54KB
C学生成绩统计管理系统.docx
《C学生成绩统计管理系统.docx》由会员分享,可在线阅读,更多相关《C学生成绩统计管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
C学生成绩统计管理系统
湖南科技学院
课程设计报告
课程名称:
计算机高级语言(C++)课程设计
课程设计题目:
学生通讯管理系统
系:
数学与计算科学系
专业:
信息与计算科学
年级、班:
信计0801
姓名:
谭鄱仑
学号:
2109
指导教师:
牛志毅
职称:
讲师
2010年12月
课程实验报告--------------------------------3
一、需求分析---------------------------------------------3
二、概要设计---------------------------------------------3
三、程序实现思路-----------------------------------------7
四、设计总结---------------------------------------------7
五、参考文献---------------------------------------------7
六、源代码-----------------------------------------------8
七、运行情况…………………………………………………………16
C++语言程序设计报告
一、需求分析
用C++编写下面程序
学生成绩统计管理系统(*****)
要求实现如下功能:
①成绩的输入(学号、姓名、英语、数学、C++语言…)。
②成绩统计(各科平均成绩、各科成绩“优秀”、“良好”、“中等”、“及格”、“不及格”的人数及其所占比例)。
③总成绩统计(学生的总成绩、平均成绩及成绩排名)。
④成绩的统计结果显示。
⑤学生数据的添加、修改、与删除。
⑥学生数据的读取与存储。
二、概要设计
主要数据定义以及各程序模块的功能:
Student类中:
classStudent
{
private:
intid;C++程序设计.清华大学出版社,
六源程序
/*****************************************
课程设计题目:
学生信息管理系统
班级:
0901
学号:
2109
姓名:
谭鄱仑
*****************************************/
#include""
intmain()
{
inti=0;
charok;
Studentifostuifo;
Studentifo*ifo=&stuifo;
ShowMenu();
cout<<"选择对应数字进行操作:
";
while(i!
=9)
{
cin>>i;
system("cls");
ShowMenu();
DoMenu(i,ifo);
ShowTip();
}
if(flag)
cout<<"数据已改动,是否保存Y/N";
cin>>ok;
if(ok=='Y'||ok=='y')
{
ifo->MakeAll();
ifo->ClearRank();
ifo->MakeRank();
Save(ifo);
cout<<"数据已保存...按任意键安全退出";
}
else
cout<<"已安全退出...按任意键返回";
}
#ifndefSTUDENT_H_INCLUDED
#defineSTUDENT_H_INCLUDED
#include
#include
#include
#include
#include
#include
usingnamespacestd;
classStudent
{
private:
intid;etStudentID(n);
}
voidStudentifo:
:
LoadName(intn,stringname)
{
stu[n].SetStudentName(name);
}
voidStudentifo:
:
LoadScore(intn,doubley,doubles,doublec)
{
stu[n].SetStudentScore(y,s,c);
}
voidStudentifo:
:
Setifo()
{
intn;
cout<<"输入学号:
";
cin>>n;
if(stu[n].StudentX()==1||n<=0)
cout<<"该学号已有或者学号信息错误"< else { stu[n].SetStudentID(n); stu[n].SetStudentName("\0"); stu[n].SetStudentScore(0,0,0); stu[n].SetStudentX (1); num++; cout< } } voidStudentifo: : Putifo() { inti,s1=0,y1=0,c1=0,y2=0,s2=0,c2=0,y3=0,s3=0,c3=0,y4=0,s4=0,c4=0,y5=0,s5=0,c5=0; doubleY=0,S=0,C=0; if(num==0) cout<<"没有学生数据"< else { cout<<"|***************************学生综合信息**************************|"< cout<<"|学号"<<"\t"<<"姓名"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"C++"<<"\t"<<"总成绩"<<"\t"<<"名次"<<"\t"<<"等级|"< cout<<"|*****************************************************************|"< for(i=1;i<=100;i++) { if(stu[i].StudentX()==1) { Y+=stu[i].StudentYscore(); S+=stu[i].StudentSscore(); C+=stu[i].StudentCscore(); cout<<"|"< cout< cout< cout< cout< stu[i].Getall(); cout< cout< cout< cout<<"\t|"< cout<<"|*****************************************************************|"< } if(stu[i].StudentX()==1) { if(stu[i].StudentYscore()>=0&&stu[i].StudentYscore()<60) y1++; elseif(stu[i].StudentYscore()>=60&&stu[i].StudentYscore()<70) y2++; elseif(stu[i].StudentYscore()>=70&&stu[i].StudentYscore()<80) y3++; elseif(stu[i].StudentYscore()>=80&&stu[i].StudentYscore()<90) y4++; else y5++; if(stu[i].StudentSscore()>=0&&stu[i].StudentSscore()<60) s1++; elseif(stu[i].StudentSscore()>=60&&stu[i].StudentSscore()<70) s2++; elseif(stu[i].StudentSscore()>=70&&stu[i].StudentSscore()<80) s3++; elseif(stu[i].StudentSscore()>=80&&stu[i].StudentSscore()<90) s4++; else s5++; if(stu[i].StudentCscore()>=0&&stu[i].StudentCscore()<60) c1++; elseif(stu[i].StudentCscore()>=60&&stu[i].StudentCscore()<70) c2++; elseif(stu[i].StudentCscore()>=70&&stu[i].StudentCscore()<80) c3++; elseif(stu[i].StudentCscore()>=80&&stu[i].StudentCscore()<90) c4++; else c5++; } } cout<<"___________________________________________________"< cout<<"|********************各科成绩信息*******************|"< cout<<"\t|\t"<<"\t"<<"英语"<<"\t\t"<<"数学"<<"\t\t"<<"C++\t|"< cout<<"\t|平均成绩\t"< cout<<"\t|不及格\t"<<100*double(y1)/num<<"%"<<"\t\t"<<100*double(s1)/num<<"%"<<"\t\t"<<100*double(c1)/num<<"%"<<"\t|"< cout<<"\t|及格\t"< cout<<"\t|中等\t"< cout<<"\t|良好\t"< cout<<"\t|优秀\t"< cout<<"|___________________________________________________|"<<"\n"< cout<<"*********************************各等级人数*********************************"< cout<<"成绩"<<"\t"<<"优秀"<<"\t"<<"良好"<<"\t"<<"中等"<<"\t"<<"及格"<<"\t"<<"不及格为"< cout<<"英语"<<"\t"< cout<<"数学"<<"\t"< cout<<"C++"<<"\t"< cout<<"****************************************************************************"< } } voidStudentifo: : PutifoRank() { if(num==0) cout<<"没有学生数据"< else { cout<<"名次"<<"\t"<<"姓名"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"C++"<<"\t"<<"总成绩"<<"\t"<<"学号"<<"\t"<<"等级"< for(intn=1;n<=num;n++) { for(inti=1;i<=100;i++) if(stu[i].StudentX()==1&&stu[i].Rank()==n) { stu[i].Getall(); cout< cout< cout< cout< cout< cout< cout< cout< cout< } } } } voidStudentifo: : PutID() { intn,i,k=0; stringstr2; pick: { cout<<"**************"< cout<<"*1: 按学号查找*"< cout<<"*2: 按姓名查找*"< cout<<"*3: 退出查找*"< cout<<"**************"< cout<<"请选择: "; } cin>>i; switch(i) { case1: { cout<<"输入学号: "; cin>>n; if(stu[n].StudentX()==2) { cout<<"错误! 不存在该学生"< gotopick; } else { cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"C++"<<"\t"<<"总成绩"<<"\t"<<"名次"<<"\t"<<"等级"< { cout< cout< cout< cout< cout< stu[n].Getall(); cout< cout< cout< cout< } } } break; case2: { cout<<"输入姓名: "; cin>>str2; cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"C++"<<"\t"<<"总成绩"<<"\t"<<"名次"<<"\t"<<"等级"< for(intj=1;j<=100;j++) if(stu[j].StudentName()==str2&&stu[j].StudentX()==1) { cout< cout< cout< cout< cout< stu[n].Getall(); cout< cout< cout< cout< k++; } if(k==0) { cout<<"错误! 不存在该学生请重新输入: "< gotopick; } break; case3: break; } } } voidStudentifo: : ClearID() { intn; cout<<"输入学号: "; cin>>n; if(stu[n].StudentX()==1) { stu[n].SetStudentX (2); --num; } else cout<<"无此人"< } voidStudentifo: : Clear() {for(inti=0;i<=100;i++) stu[i].SetStudentX (2); num=0; cout<<"数据已清空"; } voidStudentifo: : ClearRank() { for(inti=1;i<=100;i++) stu[i].RankClear(); } voidStudentifo: : MakeRank() { for(inti=1;i<100;i++) for(intj=i+1;j<=100;j++) { if(stu[i].StudentX()==1&&stu[j].StudentX()==1) { if(stu[i].All() stu[i].SetRank(); elseif(stu[i].All()>stu[j].All()) stu[j].SetRank(); } } } voidStudentifo: : ReSetifo() { intn,x,y; fixinfo: cout<<"请输入需要修改学生的学号: "; cin>>n; if(stu[n].StudentX()==2) { cout<<"没有该学号学生信息,重试请按1,退出请按其他数字"< intz; cin>>z; if(z==1) gotofixinfo; else gotoend; } else fix: { cout<<"$$$$$$$$$$$$$$"<<'\n'; cout<<"$1: 修改学号$"<<'\n'; cout<<"$2: 修改姓名$"<<'\n'; cout<<"$3: 修改成绩$"<<'\n'; cout<<"$4: 退出修改$"<<'\n'; cout<<"$$$$$$$$$$$$$$"; cout< cout<<"请选择: "; cin>>x; switch(x) { case1: { cout<<"请输入新学号: "; loop: cin>>y; for(inti=1;i<=num;i++) if(stu[i].StudentID()==y) { cout<<"该学号已存在,请重新输入: "; gotoloop; } stu[n].SetStudentID(y); cout<<"学号修改成功! \n"; gotofix; } break; case2: { stu[n].SetStudentName("\0"); cout<<"姓名修改成功\n"; gotofix; } break; case3: { stu[n].SetStudentScore(0,0,0); cout<<"成绩修改成功\n"; gotofix; } break; end: case4: break; } } } voidStudentifo: : MakeAll() { for(inti=1;i<=100;i++) for(i=1;i<=100;i++) if(stu[i].StudentX()==1) stu[i].Getall(); } voidStudentifo: : Xfix(intn) { stu[n].SetStudentX (1); } intStudentifo: : X(intn) { intx=stu[n].StudentX(); returnx; } intStudentifo: : ID(intn) { intx=stu[n].StudentID(); returnx; } stringStudentifo: : Name(intn) { stringstr1=stu[n].StudentName(); returnstr1; } doubleStudentifo: : Yscore(intn) { doublex=stu[n].StudentYscore(); r
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩 统计 管理 系统