24小时热门版块排行榜    

查看: 1099  |  回复: 0

1210576281

金虫 (小有名气)

[求助] 有没有用类的继承和STL写的学生管理系统

我这是用C写的,有没有高手愿意帮我个忙用C++的类的继承和STL写的,必有重谢
#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
struct student
{
char name[15];
int number;
float chinese,math,English;
};
student s[50];
int i=0,n=0;
double allscore[50];
void insert();
void delete1();
void find();
void xiugai();
void tongji();
void sort();
void input();
void output();
void contin()
{
cout<<"是否继续操作(y/n)";
char a; int j;
cin>>a;
while(a!='y'&&a!='n')
  cin>>a;
if(a=='y')
{
  cout<<"你想继续做什么:";
  cin>>j;
  while(!(j<=8&&j>=1))
  {
  cout<<"The number is too big or small,please input it again.";
  cin>>j;
  }
    switch(j)
    {
     case 1:cout<<"1、按顺序输入若干个学生的信息"<<endl<<endl;input();break;
     case 2:cout<<"2、插入一个学生信息"<<endl<<endl;insert();break;
     case 3:cout<<"3、删除一个学生信息"<<endl<<endl;delete1();break;
     case 4:cout<<"4、修改一个学生信息(按学号来找)"<<endl<<endl;xiugai();break;
        case 5:cout<<"5、查找一个学生信息(按姓名来找)"<<endl;find();break;
     case 6:cout<<"6、统计学生的总分成绩"<<endl<<endl;tongji();break;
     case 7:cout<<"7、按总分从高到低排序"<<endl<<endl;sort();break;
     case 8:cout<<"8、显示所有学生信息"<<endl<<endl;output();break;
    }
}
else if(a=='n') cout<<"操作结束!!!"<<endl;
}

void input()                                       //1、按顺序输入若干个学生的信息
{
cout<<"你想输入多少个学生信息:";
cin>>n;
for(i=0;i<n;i++)
{
cout<<"学号:";
cin>>s.number;
cout<<"姓名:";
cin>>s.name;
cout<<"语文成绩:";
cin>>s.chinese;
cout<<"数学成绩:";
cin>>s.math;
cout<<"英语成绩:";
cin>>s.English;
}
for(i=0;i<n;i++)
{
  allscore=s.chinese+s.English+s.math;
}
contin();
}
void output()                              //8、显示所有学生信息
{
if(n<=0)
{
  cout<<"请先输入学生的信息,";
  input();
}
cout<<"每位学生的信息分别为:"<<endl;
cout<<"---------------------------------------------------------------------------"<<endl;
cout<<setw(15)<<"姓名"<<setw(10)<<"学号"<<setw(12)<<"语文成绩"<<setw(12)<<"数学成绩"<<setw(12)
  <<"英语成绩"<<setw(12)<<"总分为:"<<endl;
for(i=0;i<n;i++)
   cout<<setw(15)<<s.name<<setw(10)<<s.number<<setw(12)
  <<s.chinese<<setw(12)<<s.math<<setw(12)<<s.English<<setw(12)<<allscore<<endl;
contin();

}

void insert()             //2、插入一个学生信息
{
if(n<=0)
{
  cout<<"请先输入学生的信息,";
  input();
}
cout<<"请输入你要插入的位置:";
int k;
cin>>k;
while(!(k>0&&k<=n))
{
  cout<<"操作错误,请重新操作:";
  cin>>k;
}
if(k<=n)
{
  n++;
   for(int i=n-1;i>=k;i--)
   {
    s=s[i-1];
   }
}
cout<<"学号:";
cin>>s[k-1].number;
cout<<"姓名:";
cin>>s[k-1].name;
cout<<"语文成绩:";
cin>>s[k-1].chinese;
cout<<"数学成绩:";
cin>>s[k-1].math;
cout<<"英语成绩:";
cin>>s[k-1].English;
contin();
}
void delete1()              //3、删除一个学生信息
{
if(n<=0)
{
  cout<<"请先输入学生的信息,";
  input();
}
cout<<"请输入你要删除的位置:";
int k;
cin>>k;
while(!(k>=0&&k<n))
{
  cout<<"你输入的位置不存在,请重新输入";
  cin>>k;
}
for(i=k-1;i<n;i++)
{
  s=s[i+1];
}
n--;
contin();
}
void xiugai()                      //4、修改一个学生信息(按学号来找)
{
if(n<=0)
{
  cout<<"请先输入学生的信息,";
  input();
}
int num;char c;
do{
cout<<"请输入需要修改的学生的学号:";
cin>>num;
for(int i=0;i<n;i++)
{
  if(s.number==num)
  {
   cout<<"学号:";
         cin>>s.number;
         cout<<"姓名:";
         cin>>s.name;
         cout<<"语文成绩:";
          cin>>s.chinese;
         cout<<"数学成绩:";
          cin>>s.math;
         cout<<"英语成绩:";
         cin>>s.English;
  }
  else {cout<<"没有这个学生."<<endl;break;}
}
cout<<"是否还要修改(y/n)";
cin>>c;
while(c!='y'&&c!='n')
  cin>>c;
}while(c=='y');
contin();
}
void find()                      //5、查找一个学生信息(按姓名来找)
{
if(n<=0)
{
  cout<<"请先输入学生的信息,";
  input();
}
char na[15];
cin>>na;
for(int i=0;i<n;i++)
{
  if(strcmp(s.name,na)==0)
  {
   cout<<setw(30)<<"所查找的学生信息为:"<<endl;
   cout<<"---------------------------------------------------------------------------"<<endl;
         cout<<setw(15)<<"姓名:"<<s.name<<setw(10)<<"学号:"
    <<s.number<<setw(12)<<"语文成绩:"<<s.chinese<<setw(12)<<"数学成绩:"
    <<s.math<<setw(12)<<"英语成绩:"<<s.English<<setw(12)<<"总分为:"<<allscore<<endl;
   cout<<"---------------------------------------------------------------------------"<<endl;
  }
  else cout<<"没有这个学生."<<endl;
}
contin();
}
void tongji()                  //6、统计学生的总分成绩
{
if(n<=0)
{
  cout<<"请先输入学生的信息,";
  input();
}
for(i=0;i<n;i++)
  allscore=s.chinese+s.math+s.English;
cout<<"各位学生的总分分别是";
for(i=0;i<n;i++)
{
  cout<<"第"<<i+1<<"位同学是:"<<s.name<<"总分是:"<<allscore<<endl;
}
contin();
}
void sort()                  //7、按总分从高到低排序
{
if(n<=0)
{
  cout<<"请先输入学生的信息,";
  input();
}
student temp;
for(i=0;i<n;i++)
  for(int j=i;j<n;j++)
  if(allscore<allscore[j])
  {
   temp=s;
   s=s[j];
   s[j]=temp;
  }
cout<<"已经排好序了,是否需要输出(y/n):";
char yn;
cin>>yn;
while(yn!='y'&&yn!='n')
{
  cout<<"操作错误!!!请重新输入:";
  cin>>yn;
}
if(yn=='y')
{
     cout<<"所有学生的成绩按总分从低到高的排名是:"<<endl;
  output();
}
else contin();
}
void main()
{
cout<<setw(30)<<"学生管理系统"<<endl;
for(int s=1;s<=67;s++)
cout<<"*";
cout<<endl;
cout<<"        在这个学生管理系统中,你可以做以各方面的内容:"<<endl;
cout<<"-------------------------------------------------------------------"<<endl;
cout<<" 1、按顺序输入若干个学生的信息;"<<endl;
cout<<" 2、插入一个学生信息"<<endl;
cout<<" 3、删除一个学生信息"<<endl;
cout<<" 4、修改一个学生信息(按学号来找)"<<endl;
cout<<" 5、查找一个学生信息(按学号来找)"<<endl;
cout<<" 6、统计学生的总分成绩"<<endl;
cout<<" 7、按总分从低到高排序"<<endl;
cout<<" 8、显示所有学生信息。"<<endl;
cout<<"-------------------------------------------------------------------"<<endl;
cout<<"你想要做什么:";
int k;
cin>>k;
while((k<=0||k>9))
{
  cout<<"The number is too big or small,please input it again.";
  cin>>k;
}
switch(k)
{
case 1:cout<<"1、按顺序输入若干个学生的信息"<<endl<<endl;input();break;
case 2:cout<<"2、插入一个学生信息"<<endl<<endl;insert();break;
case 3:cout<<"3、删除一个学生信息"<<endl<<endl;delete1();break;
case 4:cout<<"4、修改一个学生信息(按学号来找)"<<endl<<endl;xiugai();break;
case 5:cout<<"5、查找一个学生信息(按姓名来找)"<<endl<<endl;find();break;
case 6:cout<<"6、统计学生的总分成绩"<<endl<<endl;tongji();break;
case 7:cout<<"7、按总分从高到低排序"<<endl<<endl;sort();break;
case 8:cout<<"8、显示所有学生信息"<<endl<<endl;output();break;
case 9:cout<<"9、操作結束!"<<endl;break;
}
}
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 1210576281 的主题更新
信息提示
请填处理意见