#include <iostream>
#include <string>
#include "fstream"
using namespace std;
ofstream out("student.dat");
string a[12];
struct Student //声明一个名为student的结构体类型
{
string name; //姓名
long number; //学号
string xingbie; //性别
double zf; //总分
double pjf; //平均分
double chji[12]; //成绩
};
class SYSTEM //声明类system
{public:
SYSTEM() //构造函数
void add(); //输入科目
void xinxi(); //添加学生信息
void xianshi(); //显示信息
void chaxun(); //查询
void shanchu(); //删除科目
void tianjia(); //添加科目
void paixu(); //排序
private:
Student stu[1000];//定义一个结构体类型student的变量stu,其最大值为100
int n,m;
};
//------------------------------------
void SYSTEM::add()//添加科目
{
cout<<"添加的科目数量:"<<endl;
cin>>n;
cout<<"输入你添加的科目:"<<endl;
for(int i=0;i<n;i++)
cin>>a[i];
}
//----------------------------------
void SYSTEM::xinxi() //添加学生信息
{
int mm;
cout<<"请输入学生的人数:"<<endl;
cin>>m;
for(int i=0;i<m;i++)
{
mm=0;
cout<<"输入第"<<i+1<<"个学生的信息。"<<endl;
cout<<"学号:"<<endl;
cin>>stu[i].number;out<<stu[i].number<<" ";
cout<<"姓名:"<<endl;
cin>>stu[i].name;out<<stu[i].name<<" ";
cout<<"性别:"<<endl;
cin>>stu[i].xingbie;out<<stu[i].xingbie<<" ";
for(int j=0;j<n;j++)
{ cout<<a[j]<<":"<<endl;
cin>>stu[i].chji[j];
out<<stu[i].chji[j]<<" ";
mm=mm+stu[i].chji[j];
}
stu[i].zf=mm;
stu[i].pjf=mm/n;
}
}
//----------------------------
void SYSTEM::xianshi() //显示信息
{
cout<<"学号 姓名 性别 ";
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<"总分 平均分"<<endl;
for(i=0;i<m;i++)
{
cout<<stu[i].number<<" "<<stu[i].name<<" "<<stu[i].xingbie<<" ";
for(int j=0;j<n;j++)
cout<<stu[i].chji[j]<<" ";
cout<<stu[i].zf<<" "<<stu[i].pjf<<" "<<endl;
}
}
//===================================
void SYSTEM::chaxun()//查询
{
cout<<"请选择查询方式:"<<endl;
cout<<"1.按学号查询"<<endl;
cout<<"2.按姓名查询"<<endl;
int c,aa;
cin>>c;
switch (c)
{
case 1://按照学号查询
{
long num;
cout<<"请输入要查询的学号:"<<endl;
cin>>num;
for(aa=0;aa<m;aa++)
if(stu[aa].number==num)
{ cout<<"学号 姓名 性别 ";
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<"总分 平均分"<<endl;
cout<<stu[aa].number<<" "<<stu[aa].name<<" "<<stu[aa].xingbie<<" ";
for(int j=0;j<n;j++)
cout<<stu[aa].chji[j]<<" ";
cout<<stu[aa].zf<<" "<<stu[aa].pjf<<" "<<endl;
break;}
if(stu[aa].number!=num)
cout<<"未找到该学生信息!!"<<endl;
break;}
case 2://按照学号查询
{
string name1;
cout<<"请输入要查询的姓名:"<<endl;
cin>>name1;
for(aa=0;aa<m;aa++)
if(stu[aa].name==name1)
{ cout<<"学号 姓名 性别 ";
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<"总分 平均分"<<endl;
cout<<stu[aa].number<<" "<<stu[aa].name<<" "<<stu[aa].xingbie<<" ";
for(int j=0;j<n;j++)
cout<<stu[aa].chji[j]<<" ";
cout<<stu[aa].zf<<" "<<stu[aa].pjf<<" "<<endl;
break; }
if(stu[aa].name!=name1)
cout<<"未找到该学生信息!!"<<endl;
break;}
}
}
//=================================================
void SYSTEM::shanchu()//删除科目
{
string mm;
cout<<"输入你要删除的科目:"<<endl;
cin>>mm;
for(int i=0;i<n;i++)
{
if(a[i]==mm)
{
for(int j=i;j<n-1;j++)
a[j]=a[j+1];
}
n--;
}
}
//======================================
void SYSTEM::tianjia()//添加科目
{
string mm;
cout<<"输入你要添加的科目:"<<endl;
cin>>mm;
a[n]=mm;
cout<<"添加成绩:"<<endl;
for(int i=0;i<m;i++)
{cin>>stu[n].chji[i];
stu[n].zf=stu[n].zf+stu[n].chji[i];
stu[n].pjf=stu[n].zf/n;
}
++n;
}
//-------------------------------------
void SYSTEM::paixu() //排序
{
Student mm;
for(int i=0;i<m-1;i++)
for(int j=i+1;j<m;j++)
if(stu[i].zf<stu[j].zf)
{
mm=stu[j];
stu[j]=stu[i];
stu[i]=mm;
}
}
//====================================
void main()
{
SYSTEM person;
int b;
do
{
cout<<"〓〓〓〓〓〓〓〓〓〓 ☆ 学 生 成 绩 管 理 系 统 ☆ 〓〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓★★★★★ ★★★★★★★ ★★★★★〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 1.输入科目 5.删除科目 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 2.输入信息 6.添加科目 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 3.显示 7.排序 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 4.查询 8.退 出 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"请请根据你的需要选择(1~10):";
cin>>b;
switch(b)
{
case 1:
person.add();
break;
case 2:
person.xinxi();
break;
case 3:
person.xianshi();
break;
case 4:
person.chaxun();
break;
case 5:
person.shanchu();
break;
case 6:
person.tianjia();
break;
case 7:
person.paixu();
break;
case 8:
cout<<"谢谢使用本系统!!!"<<endl;
}
}while(b<8);
}
追问这个程序有错误啊