学生成绩管理系统C++Word文件下载.docx
- 文档编号:14319822
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:28
- 大小:594.32KB
学生成绩管理系统C++Word文件下载.docx
《学生成绩管理系统C++Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C++Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。
若输入错误可进行修改;
要求可以先查找,再修改。
(4)查找:
可以根据姓名(或学号)查找某个学生的课程成绩,查找某门课程成绩处
于指定分数段内的学生名单等等。
(5)统计分析:
对某个班级学生的单科成绩进行统计,求出平均成绩;
求平均成绩要
求实现函数的重载,既能求单科的平均成绩,又能求三科总分的平均成绩。
求出
一门课程标准差和合格率;
(6)排序功能:
要求按总分进行排序(从高到低),若总分相同,则按数学排序;
若总
分和数学相同,则按物理排序;
若总分和各科成绩都相同,则按学号排序;
(7)文件操作:
可以打开文件,显示班级的所有学生信息;
可以将增加或修改后的成
绩重新写入文件;
可以将排序好的信息写入新的文件。
【较高要求】
查找可以实现模糊查询,即输入名字的一部分,可以列出满足条件的所有记录。
再从这
个记录中进行二次选择。
二需求分析
【问题描述】
在编写过程中,主要的困难有:
1.模糊搜索(不能使用string中的find函数)需要自定义一个函数。
2.排序,需要自己学习算法。
【系统环境】
VisualC++
三概要设计
流程图如下:
四详细设计"
【增加记录】:
【删除记录】:
先查找出要删除的信息,然后再删除。
删除前要求用户是否确认删除。
确认则在数据库中删除然后会主菜单。
否则回主菜单。
【成绩修改】:
查找出用户所要修改的信息。
然后在数据库中将信息提取出来,修改前要求用户是否确认修改,若要修改,修改后回主菜单。
否则直接会主菜单。
【查找】:
查找分为某门成绩分数段查找和个人信息查找,个人信息查找支持模糊搜索。
可根据学号或姓名进行查找,查找后支持二次搜索。
【统计分析】:
统计分析主要是了解各科的总体情况,平均分、及格率、以及标准差。
即可查询单科也可查询全科。
【排序】
在主菜单中选择排序,然后系统先根据总成绩排序。
若总成绩相等,比较数学则按数学排序;
若总成绩和数学相同,则按物理排序;
【退出系统】:
在主菜单中选择退出系统。
择结束程序。
【设计的类的代码】:
classmanagement{
private:
vector<
student>
stu;
public:
voidaddtxt();
voiddeletetxt();
voidchangetxt();
voidfindtxt();
voidfindtxt1();
voidptxt();
voidotxt();
voiditxt();
voidshow();
voidttxt();
voidttxt(int,int);
};
classstudent{
stringm_id,m_name;
intm_math,m_eng,m_phy;
student(string,string,int,int,int);
student(conststudent&
);
~student(){};
stringgetId();
stringgetName();
intgetMath();
intgetEng();
intgetPhy();
inttotal();
studentoperator=(conststudent&
法比较粗糙。
七附录
#ifndefSTUDENT_H
#defineSTUDENT_H
#include<
iostream>
vector>
fstream>
string>
iomanip>
cmath>
usingnamespacestd;
etId())&
&
()==stu[i].getName())){
cout<
<
"
数据库已有此人!
不能再添加!
endl;
p++;
}
}
if(p==0){
(s);
otxt();
cout<
是否继续增加
(继续回复1。
否则回复0.)"
cin>
>
m;
if(m==0)break;
}
}
voidmanagement:
:
itxt(){etId()<
setw(6)<
stu[i].getName()<
stu[i].getMath()<
stu[i].getEng()<
stu[i].getPhy()<
();
}
show(){
cout<
学号"
'
\t'
姓名"
数学"
英语"
物理"
总分"
for(inti=0;
i<
();
i++){
stu[i].getId()<
;
stu[i].total()<
findtxt(){etId()[j])break;
if(j==()){
(stu[i]);
p++;
cout<
for(k=0;
k<
k++){
if(m[k]!
=stu[i].getName()[k])break;
if(k==()){
if(p==0)cout<
"
对不起,没有您所查找的信息!
<
endl;
是否进行二次搜索(
回复1进行。
cin>
x;
if(x==1){
请输入您二次查找学生的学号或姓名:
n;
for(a=0;
a<
a++){
for(b=0;
b<
b++){
if(n[b]!
=s[a].getId()[b])break;
if(b==()){
q++;
s[a].getId()<
s[a].getName()<
s[a].getMath()<
s[a].getEng()<
s[a].getPhy()<
for(c=0;
c<
c++){
if(n[c]!
=s[a].getName()[c])break;
if(c==()){
if(q==0)cout<
findtxt1(){etMath()>
=a&
=b){
if(p==0)cout<
对不起,没有您所查范围的分数!
elseif(m=="
){
for(intj=0;
j<
j++){
if(stu[j].getEng()>
stu[j].getEng()<
stu[j].getId()<
stu[j].getName()<
stu[j].getMath()<
stu[j].getPhy()<
for(intk=0;
if(stu[k].getPhy()>
stu[k].getPhy()<
stu[k].getId()<
stu[k].getName()<
stu[k].getMath()<
stu[k].getEng()<
elsecout<
没有其他的课程成绩!
deletetxt(){etId()||m==stu[i].getName()){
break;
是否确定删除(
是回复1.否回复0.)"
vector<
iteratorit=()+i;
(it);
otx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 C+