学生成绩管理系统C++文档格式.docx
- 文档编号:6190972
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:30
- 大小:447.60KB
学生成绩管理系统C++文档格式.docx
《学生成绩管理系统C++文档格式.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C++文档格式.docx(30页珍藏版)》请在冰点文库上搜索。
功能设计:
1.学生基本信息及成绩所选科目成绩的录入。
2.基本信息的查询与修改。
3.对该班各科成绩进行分析(即求平均成绩);
4.对所开课程的成绩分析(求最高分和及格人数);
三、设计内容
学生成绩管理系统
本《学生成绩管理系统》程序是一个具有对学生信息进行录入、添加、删除、根据学号进行学生信息的查询、显示已有学生信息的显示、对学生成绩进行统计(包括最高分,最低分,及格率和需要补考的学生),可以对已有的学生信息进行修改,保存和读取输入的数据等功能。
一切功能都可以在运行的软件中运行。
四、系统功能介绍:
通过主函数显示程序的主界面,通过输入的数字不同,函数会进入不同功能的函数继续运行。
输入1时,
进入学生资料管理的界面!
选择1-5数字
选择各个不同的小功能。
进行学生资料的录入,
输入2时,
进行学生资料的删除
输入3时,
进行学生资料的添加
输入4时,
进行学生资料的修改
输入5时,
进行学生资料的读取
输入0时,可以返回主界面
回到主界面后,输入2时,进入学生成绩统计管理功能的界面
可以输入0-8任意数字选择各个不同的小功能。
进行学生成绩总分排名
进行学生高数分数排名
进行学生英语分数排名
进行学生C++分数排名
输入5时,显示学生最高总分
输入6时显示学生最低总分
输入7时,进行学生平均分排名
输入8时,进行及格率计算
回到主界面后,输入3时,进入学生成绩统计管理功能的界面。
可以输入0-3的任意数字,选择各个不同的功能
输入1时,进行按学号查询学生资料的功能
输入2时,进行按姓名查询学生资料的功能
输入3时,进行按所在班级查询学生资料的功能
回到主界面后,输入4时,进入关于系统信息的界面
回到主界面后,输入0时,可以退出主界面,结束系统运行
五、实验总结
附件:
(程序代码)
#include<
iostream>
fstream>
//输入输出文件
string>
iomanip>
//输出格式控制
usingnamespacestd;
charpress;
intchoose;
intn;
classStudent
{public:
intnum;
stringname;
intbj;
charsex;
floatMath;
floatEnglish;
floatCjj;
floatsum;
floataverage;
};
Studentstud[100];
//————————————————读取资料——————————————————
voidread()
{charfilename[20];
cout<
<
"
从文件中读取信息!
endl;
请输入文件名:
cin>
>
filename;
ifstreaminfile(filename,ios:
:
in|ios:
out);
//定义输入文件流对象,以输出方式打开用户自定义的磁盘文件
if(!
infile)
{cerr<
openerror!
exit
(1);
}//输出出错信息
do{inti=0;
infile>
stud[i].num>
stud[i].name>
stud[i].sex>
stud[i].bj;
//从磁盘读取学生的信息
stud[i].Math>
stud[i].English>
stud[i].Cjj;
学生的学号:
stud[i].num<
"
//向显示器输出学生的信息
姓名:
stud[i].name<
<
性别:
stud[i].sex<
班级:
stud[i].bj<
高数成绩:
stud[i].Math<
大学英语成绩:
stud[i].English<
C++成绩:
stud[i].Cjj<
i++;
}
while(!
infile.eof());
//判断是否为文件尾
infile.close();
cout<
读取成功!
//————————————————保存资料——————————————————voidsave()
{inti;
charfilename[20];
for(i=0;
i<
n;
i++)
{cout<
将记录保存在文件夹!
;
cin>
ofstreamoutfile(filename);
outfile){cerr<
for(i=0;
{outfile<
outfile<
}
outfile.close();
保存成功!
//————————————————输入资料——————————————————
voidSR()
{cout<
请根据你的需要输入学生的个数:
for(inta=0;
a<
a++)
请输入第"
a+1<
个学生资料:
学号:
'
'
stud[a].num;
姓名:
stud[a].name;
性别:
stud[a].sex;
班级:
stud[a].bj;
高数成绩:
stud[a].Math;
大学英语成绩:
stud[a].English;
C++成绩:
stud[a].Cjj;
stud[a].sum=stud[a].Math+stud[a].English+stud[a].Cjj;
stud[a].average=(stud[a].Math+stud[a].English+stud[a].Cjj)/3;
输入成功,学生资料是否保存?
(y/n)"
press;
switch(press)
{case'
y'
:
save();
break;
default:
不保存!
}}
//————————————————删除资料——————————————————
voidSC()
{do{stringSC_name;
请输入你要删除的学生名字:
inti=0;
SC_name;
while(stud[i].name!
=SC_name&
&
n)i++;
//查找判断
if(stud[i].name==SC_name)
{for(intj=i;
j<
n-1;
j++)
{stud[i].num=stud[i+1].num;
stud[i].name=stud[i+1].name;
stud[i].sex=stud[i+1].sex;
stud[i].bj=stud[i+1].bj;
stud[i].Math=stud[i+1].Math;
stud[i].English=stud[i+1].English;
stud[i].Cjj=stud[i+1].Cjj;
删除成功!
n=n-1;
elseif(i==n){cout<
can'
tfindthisname"
该信息不存在,无法删除!
}
(是否继续操作?
(y/n))"
}while(press=='
||press=='
Y'
);
//————————————————添加资料——————————————————
voidTJ()
{do{cout<
请添加新的学生信息"
新的学生学号:
stud[n].num;
新学生姓名:
stud[n].name;
新学生性别:
stud[n].sex;
新学生班级:
stud[n].bj;
新学生的高数成绩:
stud[n].Math;
新学生的大学英语成绩:
stud[n].English;
新学生的C++成绩:
stud[n].Cjj;
stud[n].sum=stud[n].Math+stud[n].English+stud[n].Cjj;
stud[n].average=(stud[n].Math+stud[n].English+stud[n].Cjj)/3;
n++;
while(press=='
);
添加成功,学生资料是否保存?
//————————————————修改资料——————————————————
voidXG()
{begin:
stringfind_name;
inti;
请输入你要修改的学生名字:
find_name;
if(stud[i].name==find_name)
hasbeenfound:
if(stud[i].name!
=find_name)
请重新查找!
gotobegin;
for(intj=0;
请输入新的信息:
stud[j].num;
stud[j].name;
stud[j].sex;
stud[j].bj;
stud[j].Math;
stud[j].English;
stud[j].Cjj;
stud[i].num=stud[j].num;
stud[i].name=stud[j].name;
stud[i].sex=stud[j].sex;
stud[i].bj=stud[j].bj;
stud[i].Math=stud[j].Math;
stud[i].English=stud[j].English;
stud[i].Cjj=stud[j].Cjj;
修改成功,是否保存?
switch(press){case'
//————————————————按总分排名—————————————————
voidzf()
{intm,t;
stringna;
floatz,h,e,c,p;
chars;
j++)//选择法排序
for(inti=0;
n-1-j;
i++)//以下的按各单科成绩和平均分也是运用选择法排序
if(stud[i].sum>
stud[i+1].sum)
{m=stud[i].num;
stud[i].num=stud[i+1].num;
stud[i+1].num=m;
na=stud[i].name;
stud[i+1].name=na;
s=stud[i].sex;
stud[i+1].sex=s;
t=stud[i].bj;
stud[i+1].bj=t;
h=stud[i].Math;
stud[i+1].Math=h;
e=stud[i].English;
stud[i+1].English=e;
c=stud[i].Cjj;
stud[i+1].Cjj=c;
z=stud[i].sum;
stud[i].sum=stud[i+1].sum;
stud[i+1].sum=z;
p=stud[i].average;
stud[i].average=stud[i+1].average;
stud[i+1].average=p;
学生按总分排名:
学号"
姓名"
性别"
班级"
总分"
stud[i].sum<
//—————————————————按高数分数排名——————————————
voidgs()
{intg,t;
j++)
if(stud[i].Math>
stud[i+1].Math)
{g=stud[i].num;
stud[i+1].num=g;
学生按高数分数排名:
高数分数"
}}
//—————————————————按英语分数排名——————————————
voidyy()
if(stud[i].English>
stud[i+1].English)
学生按英语分数排名:
英语分数"
//—————————————————按C++分数排名———————————————
voidcy()
if(stud[i].Cjj>
stud[i+1].Cjj)
t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 C+