学生成绩统计系统.doc
文本预览下载声明
学生成绩统计系统
一 目的
用面向对象的方法建立一个成绩类管理所有成绩信息,其中包括以下功能:查询各科及总分最高分,查询各科及总分最低分,查询各科及总分平均分,以及查询总分按分数段统计信息。相应成绩信息从文件中读取并进行初始化,保留初始化的学生成绩信息于文件中,并且可以向文件中添加学生成绩信息。
二 需求分析
根据学生成绩统计的需要,而建立一个“学生成绩统计系统”,以方便对成绩的各项管理操作。
①查询班级所有学生成绩;
②查询班级最高分、最低分;
③查询班级平均分;
④添加学生信息。
三 概要设计
定义student类
定义student的数据成员和成员函数
void showbase()
void input()
string getname(){return name;};
string getsex(){return sex;};
int getnumber(){return number;};
int getscore(){return score;};
int number,score;
string name;
string sex;
2.构造input()函数,用于输入学生信息及成绩
3.构造showbase()函数,显示学生信息
4.int findmaxscore(int score[],int n) 查询班级最高分
5.int findminscore(int score[],int n) 查询班级最低分
6.double averscore(int score[],int n) 求班级平均分
四 详细设计
1.student类
student();
student(int number1,string name1,string sex1,int score1)
{
number=number1;//学生学号
name=name1; //学生姓名
sex=sex1; //学生性别
score=score1; //学生成绩
}
void showbase();
void input();
string getname(){return name;};//获得学生姓名
string getsex(){return sex;}; //获得学生性别
int getnumber(){return number;};//获得学生学号
int getscore(){return score;};//获得学生成绩
protected:
int number,score;
string name;
string sex;
};
2.//查询最高分使用循环结构将学生成绩一个一个比较,直至找出最高分
int findmaxscore(int score[],int n)
{
int i,maxscore;
maxscore=score[0];
for(i=0;in;i++) //for循环将数组的数据一个一个进行比较
{
if(score[i]maxscore)
maxscore=score[i];//判断语句寻找最高分
}
return maxscore;//最后返回最高分
}
3.求班级平均分:数组累加,最后在return处求出平均值,返回
double averscore(int score[],int n)
{
int i;
double aver; //全部人的分数总和
aver=score[0];
for(i=0;in;i++) //for循环将学生的分数一个一个累加
{
aver=aver+score[i];
}
return aver/n; //最后返回平均值
}
4.文本文件的读写
int k,m;
int l=0;
cout 请输入添加学生信息的个数:endl;
cink;
ofstream gh(f1.text,ios::out|ios::app);//定义输出文件流fi
for( l;lk;l++)
{
coutendl;
a[l].input();
gha[l].number a[l].name a[l].sex a[l].scoreendl; //将输入的学生信息用for循环写入输出文件中
}
gh.close();
五 调试分析
最重要的是文件操作部分的内容,这是本次课程设计中的难点。当时,我是依据课本上的一
显示全部