C++学生成绩管理系统设计程序.docx

上传人:b****5 文档编号:8597037 上传时间:2023-02-01 格式:DOCX 页数:19 大小:18.67KB
下载 相关 举报
C++学生成绩管理系统设计程序.docx_第1页
第1页 / 共19页
C++学生成绩管理系统设计程序.docx_第2页
第2页 / 共19页
C++学生成绩管理系统设计程序.docx_第3页
第3页 / 共19页
C++学生成绩管理系统设计程序.docx_第4页
第4页 / 共19页
C++学生成绩管理系统设计程序.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C++学生成绩管理系统设计程序.docx

《C++学生成绩管理系统设计程序.docx》由会员分享,可在线阅读,更多相关《C++学生成绩管理系统设计程序.docx(19页珍藏版)》请在冰豆网上搜索。

C++学生成绩管理系统设计程序.docx

C++学生成绩管理系统设计程序

#include 

#include 

#include 

#include 

using namespace std;

class Student//定义一个学生类;

{public:

Student(long n=100000,string na="无",string se="男",int a=18,float m=0,float e=0,float c=0):

num(n),name(na),sex(se),age(a),math(m),english(e),cpp(c){};

long num;

string name;

string sex;

int age;

float math;

float english;

float cpp;

};

//显示所有学生的信息与成绩;

void display()

{

Student stud[80];

 int i;

 ifstream infile("学生信息.dat",ios:

:

in);//已输入的方式打开文件“学生信息.dat”;

 if(!

infile)

 {cerr<<"open error!

"<

  exit

(1);

 }

 cout<

:

left);//设置输出格式为左对齐;

 cout<<"_____________________________________________________________"<

 cout<

 for(i=0;i<80;i++)

 { 

 infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].age>>stud[i].math>>stud[i].english>>stud[i].cpp;

if(stud[i].num==100000) continue;

else

{ cout<

:

left);

 cout<

 cout<

 }cout<<"_____________________________________________________________"<

 infile.close();

}

//按学生学号查看单个学生信息;

void search_by_num()

{Student stud[80];

int i;

long n;

 ifstream infile("学生信息.dat",ios:

:

in);

 if(!

infile)

 {cerr<<"open error!

"<

 exit

(1);

 }

 cout<<"请输入学生的学号:

"<

 cin>>n;

 cout<<"该学生信息如下:

"<

 for(i=0;i<80;i++)

 {infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].age>>stud[i].math>>stud[i].english>>stud[i].cpp;

 }

 for(i=0;i<80;i++)

 {

 if(stud[i].num==n) 

 

  

  {cout<<"    * * * * * * * * * * * * * * "<

   cout<<"    学号:

"<

   cout<<"    姓名:

 "<

   cout<<"    性别:

 "<

   cout<<"    年龄:

"<

   cout<<"    数学:

"<

   cout<<"    英语:

"<

   cout<<"    C++ :

 "<

   cout<<"    * * * * * * * * * * * * * * "<

 

 }

 infile.close();

}

//按学生姓名查看单个学生的信息

void search_by_name()

{Student stud[80];

int i;

 string name1;

  ifstream infile("学生信息.dat",ios:

:

in);

 if(!

infile)

 {cerr<<"open error!

"<

 exit

(1);

 }

 cout<<"请输入学生的名字:

"<

 cin>>name1;

 for(i=0;i<80;i++)

  {infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].age>>stud[i].math>>stud[i].english>>stud[i].cpp;

 }

 for(i=0;i<80;i++)

{ if(stud[i].name==name1)

  

  {cout<<"    * * * * * * * * * * * * * * "<

   cout<<"    学号:

"<

   cout<<"    姓名:

 "<

   cout<<"    性别:

 "<

   cout<<"    年龄:

"<

   cout<<"    数学:

"<

   cout<<"    英语:

"<

   cout<<"    C++ :

 "<

   cout<<"    * * * * * * * * * * * * * * "<

  } 

 

 }

 infile.close();

}

//增加学生信息与成绩;

void add()

 {Student studx;

 ofstream outfile1("增加信息.dat");//建立一个“增加信息.dar”文件;

 if(!

outfile1)                       

  {cerr<<"open error!

"<

   exit

(1);

  }

 cout<<"添加成绩记录:

"<

 cout<<"学号:

";

 cin>>studx.num;

 cout<<"姓名:

";

 cin>>studx.name;

 cout<<"性别:

";

 cin>>studx.sex;

 cout<<"年龄:

";

 cin>>studx.age;

 cout<<"数学:

";

 cin>>studx.math;

 cout<<"英语:

";

 cin>>studx.english;

 cout<<"C++:

";

 cin>>studx.cpp;

 //将增加的学生信息先存入“增加文件.dar”中;

 outfile1<<" "<

 outfile1.close();

}

//将增加的学生信息保存到“学生信息.dat”中;

void save_to_information()

{Student studx;

ifstream infile("增加信息.dat");       

 if(!

infile)

  {cerr<<"open error!

"<

   exit

(1);

  }

  ofstream outfile("学生信息.dat",ios:

:

app);//以文件输出的方式打开”学生信息.dat“并将写入的信息保存到原文件的末尾; 

  if(!

outfile)

   {cerr<<"open error!

"<

   exit

(1);

  }

  infile>>studx.num>>studx.name>>studx.sex>>studx.age>>studx.math>>studx.english>>studx.cpp;

  outfile<<" "<

  infile.close();

outfile.close();

cout<<"增加信息成功!

"<

//按学生学号修改信息;

void change_by_num()

{Student stud[80];

int i;

long num1;

long nu;

string se;

int ag;

float ma;

float en;

float cp;

ifstream infile("学生信息.dat",ios:

:

in);

 if(!

infile)

 {cerr<<"open error!

"<

  exit

(1);

 }

  cout<<"请输入你想修改信息的学生学号:

"<

  cin>>num1;

 for(i=0;i<80;i++)

 {infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].age>>stud[i].math>>stud[i].english>>stud[i].cpp;

 }

 infile.close();

 ofstream outfile("学生信息.dat",ios:

:

out);

 if(!

outfile){cerr<<"open file error!

";exit

(1);}

 cout<<"请输入修改数据:

"<

 cout<<"学号:

";

 cin>>nu;

 cout<<"性别:

";

 cin>>se;

 cout<<"年龄:

";

 cin>>ag;

 cout<<"数学:

";

 cin>>ma;

 cout<<"英语:

";

 cin>>en;

 cout<<"C++:

";

 cin>>cp;

 for(i=0;i<80;i++)

 {if(stud[i].num==num1&&stud[i].num!

=100000)

 {stud[i].num=nu;stud[i].sex=se;stud[i].age=ag;stud[i].math=ma;stud[i].english=en;stud[i].cpp=cp;}//当输入的数字等于某个学生的学号并且学号不能等于100000时,将输入的信息赋值给该学生;

 

 

 if(stud[i].num!

=100000) outfile<<" "<

 

 } cout<<"修改成功!

"<

}

//按学生姓名修改学生信息;

 void change_by_name()

 {Student stud[80];

 int i;

string name1;

long nu;

string na;

string se;

int ag;

float ma;

float en;

float cp;

ifstream infile("学生信息.dat",ios:

:

in);

 if(!

infile)

 {cerr<<"open error!

"<

  exit

(1);

 }

  cout<<"请输入学生姓名:

"<

  cin>>name1;

   for(i=0;i<80;i++)

 {infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].age>>stud[i].math>>stud[i].english>>stud[i].cpp;

   }

 infile.close();

 ofstream outfile("学生信息.dat",ios:

:

out);

 if(!

outfile){cerr<<"open file error!

";exit

(1);}

 cout<<"请输入修改数据:

"<

 cout<<"学号:

";

 cin>>nu;

 cout<<"性别:

";

 cin>>se;

 cout<<"年龄:

";

 cin>>ag;

 cout<<"数学:

";

 cin>>ma;

 cout<<"英语:

";

 cin>>en;

 cout<<"C++:

";

 cin>>cp;

 for(i=0;i<80;i++)//这两条语句的作用同按学号修改数据;

 {if(stud[i].name==name1&&stud[i].num!

=100000){stud[i].num=nu;stud[i].sex=se;stud[i].age=ag;stud[i].math=ma;stud[i].english=en;stud[i].cpp=cp;}

 

  if(stud[i].num!

=100000) outfile<<" "<

  

 }cout<<"修改成功!

"<

 outfile.close();

 }

 //按学号删除学生信息;

 void del_by_num()

 {Student stud[80];

 int i;

long num1;

ifstream infile("学生信息.dat",ios:

:

in);

 if(!

infile)

 {cerr<<"open error!

"<

  exit

(1);

 }

  cout<<"请输入学生学号:

"<

  cin>>num1;

   for(i=0;i<80;i++)

 {infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].age>>stud[i].math>>stud[i].english>>stud[i].cpp;

   }

 infile.close();

 ofstream outfile("学生信息.dat",ios:

:

out);

 if(!

outfile){cerr<<"open file error!

";exit

(1);}

  for(i=0;i<80;i++)

  {if(stud[i].num!

=num1&&stud[i].num!

=100000)//如果学生学号不等于输入的学号和100000,才保存信息;

  {outfile<<" "<

 }

  

 } cout<<"删除成功!

"<

 outfile.close();

 }

 //按学生姓名删除学生信息;

  void del_by_name()

 {Student stud[80];

  int i;

string name1;

ifstream infile("学生信息.dat",ios:

:

in);

 if(!

infile)

 {cerr<<"open error!

"<

  exit

(1);

 }

  cout<<"请输入学生姓名:

"<

  cin>>name1;

   for(i=0;i<80;i++)

 {infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].age>>stud[i].math>>stud[i].english>>stud[i].cpp;

  

   }

 infile.close();

 ofstream outfile("学生信息.dat",ios:

:

out);

 if(!

outfile){cerr<<"open file error!

";exit

(1);}

  for(i=0;i<80;i++)

  {if(stud[i].name!

=name1&&stud[i].num!

=100000)//作用同按学号删除学生信息;

  outfile<<" "<

  }

  cout<<"删除成功!

"<

  

 outfile.close();

 }

  //按总分进行排名;

 void Ranked_by_total_score() 

 {int i,j;

 Student stud[80];

  float total[80];

  float temp;

  long temp_num;

  string temp_name;

  string temp_sex;

  float temp_math;

  float temp_english;

  float temp_cpp;

  fstream infile("学生信息.dat",ios:

:

in);

  if(!

infile)

  {cerr<<"open error!

"<

  exit

(1);

  }

  for(i=0;i<80;i++)

  {infile>>stud[i].num>>stud[i].name>>stud[i].sex>>stud[i].age>>stud[i].math>>stud[i].english>>stud[i].cpp;

  total[i]=stud[i].math+stud[i].english+stud[i].cpp;

  }

 for(j=0;j<80;j++)

 for(i=0;i<79-j;i++)

 if(total[i]

 {temp=total[i];total[i]=total[i+1];total[i+1]=temp;

 temp_name=stud[i].name; stud[i].name=stud[i+1].name; stud[i+1].name=temp_name;

 temp_num=stud[i].num; stud[i].num=stud[i+1].num; stud[i+1].num=temp_num;

 temp_sex=stud[i].sex; stud[i].sex=stud[i+1].sex; stud[i+1].sex=temp_sex;

 temp_math=stud[i].math; stud[i].math=stud[i+1].math; stud[i+1].math=temp_math;

 temp_english=stud[i].english; stud[i].english=stud[i+1].english;stud[i+1].english=temp_english;

 temp_cpp=stud[i].cpp; stud[i].cpp=stud[i+1].cpp;stud[i+1].cpp=temp_cpp;

 }

 cout<<"---------------------------------------------------------------"<

 cout<<"名次      姓名    学号    性别   数学    英语   C++   总分"<

  for(i=0;i<80;i++)

  {if(stud[i].num==100000)break;

  cout<

:

left);

  cout<

  

  }

   cout<<"---------------------------------------------------------------"<

  

   infile.close();}

 //按数学成绩排名;

 void Ranked_by_math()

 {Student stud[80];

 int i,j;

 long temp_num;

  string temp_name;

  string temp_sex;

  float temp_math;

 fstream infile("学生信息.dat",ios:

:

in);

  if(!

infile)

  {cerr<<"open error!

"<

  exit(1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1