用C++学生成绩管理系统 急急急!!!

学生成绩管理系统
系统的基本功能
利用类的相关知识设计一个学生成绩管理系统,实现以下功能:
① 定义学生类Student,每个学生包括学号、姓名、性别、三门功课及总分等数据成员。为存储一批学生数据,可以采用数组等方式存储数据。
② 加载功能,从指定文件中读入学生的信息。
③ 保存功能,将最新的学生信息保存到指定的文件中。
④ 查找功能,查找指定学号的学生信息。
⑤ 对学生信息的增加、删除、修改等功能。
⑥ 统计显示功能,提供按总分从低到高、总分从高到低、按学号等方式在屏幕输出信息。
⑦ main()函数中设计一个菜单对以上模块选择执行,实现一个完整的学生成绩管理系统。
⑧ 可自行设计其它的实用功能。

第1个回答  2011-05-26

#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);
}追问

这个程序有错误啊

相似回答