学生成绩管理系统,每个学生是一个记录,包括学号,姓名,性别,3门课程成绩。系统
可以实现以下功能:
1、信息录入:录入学生成绩信息(包括学生学号、姓名、各门课程的成绩等);
2、信息查询:输入学号,查询学生各门课程的成绩,并显示。
3、排序:按各门课程的成绩平均分进行排序,并显示。
4、信息删除与修改——输入学号,删除该学生的成绩信息。
#include
#include
#include //setw()
#include //文件管理
using namespace std;
const int smax=20; //设置学生最大个数
class StudentData //定义基类StudentData
{
int number; //学号
string name; //名字
char sex; //性别
double chinese,math,english; //各科成绩
double average; //平均分
public:
StudentData(int num=0,string name=" ",char sex='f',double chin=0,double math=0,double eng=0,double ave=0); //构造函数
void set(int num,string name,char sex,double chin,double math,double eng,double ave); //设置数据成员的值
void input(); //输入数据成员的值
void output(); //输出数据成员的值
int getnumber() {return number;} //获取编号
string getname(){return name; } //获取姓名
char getsex(){return sex;} //获取性别
double getchinese(){return chinese;} //获取成绩
double getmath(){return math;}
double getenglish(){return english;}
double getaverage(){return average;} //获取平均分
};
//类外定义成员函数
StudentData::StudentData(int num,string name,char sex,double chin,double math,double eng,double ave)
{ number=num;
name=name;
sex=sex;
chinese=chin;
math=math;
english=eng;
average=ave;
}
void StudentData::set(int num,string name,char sex,double chin,double math,double eng,double ave)
{ number=num;
name=name;
sex=sex;
chinese=chin;
math=math;
english=eng;
average=ave;
}
void StudentData::input()
{ cout<<"学号(int):";
cin>>number;
cout<<"姓名(string):";
cin>>name;
cout<<"性别(男1/女2):";
cin>>sex;
cout<<"语文、数学、英语各科成绩(double):";
cin>>chinese>>math>>english;
average=(chinese+math+english)/3;
}
void StudentData::output()
{ cout<<"学号:"<=smax)
{cout<<"空间已满,不能添加!"<> a;
for (int i = 0; i < top; i++) {
if (a == s[i].getnumber())
{
s[i].output(); cout << endl; return;
}
if (a !=s[i].getnumber())
{
cout << "无数据请继续" << endl;
}
cout << endl;
}
}
void Management::total() //统计学生信息
{int n1=0;
int n2=0;
int n3=0;
int t;
for(int i=0;i=85) n1++;
for(int i=0;i=60) n2++;
for(int i=0;is[j+1].getaverage())
{
t=s[j].getaverage();
s[j].getaverage() ==s[j+1].getaverage();
s[j+1].getaverage() == t;
}
}
cout<<" "<>choice;
switch(choice)
{
case '1':change_number();
break;
case '2':change_name();
break;
case '0':cout<<"您已安全返回!"<>x1;
for(int i=0;i>h1;
for(int i=0;i>c;
if(c=='y')
{int n=s[i].getnumber();
s[i].output();
cout<>choice;
switch(choice)
{
case 1:Delete_number();
break;
case 2:Delete_name();
break;
case 0:cout<<"您已安全返回."<>bh;
for(i=0;i=top)
{
cout<<"无此编号学生!";
return ;
}
cout<>c1;
if(c1=='y')
{
for(int k=i;k>xm;
for(int i=0;i>c1;
if(c1=='y')
{for(int k=i;k>choice;
switch(choice)
{
case 1:save();
break;
case 2:read();
break;
case 0:cout<<"您已安全返回!"<>number>>name>>sex>>chinese>>math>>english>>average) //这种方法可以忽略文件最后的空行,避免while(!in.eof())产生的错误
{ s[i].set(number,name,sex,chinese,math,english,average);
i++;
}
top=i;
cout<<"读取成功!"<>choice;
switch(choice)
{
case 1:
cout<<"****您选择了:添加功能!****"<