24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1122  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿山东大学,085600,344 +3 魏子per 2026-04-02 4/200 2026-04-02 16:21 by Creta
[考研] 26考研调剂 +4 Wnz.20030617 2026-04-01 5/250 2026-04-02 16:11 by 1939136013狗壮
[考研] 310求调剂 +14 争取九点睡 2026-03-30 14/700 2026-04-02 15:43 by 不吃魚的貓
[考研] 化工调剂303分,过四级 +8 栖梧待风 2026-04-02 8/400 2026-04-02 15:42 by 不吃魚的貓
[考研] 265求调剂 +6 梁梁校校 2026-04-01 6/300 2026-04-02 14:29 by 客尔美德
[考研] 292求调剂 +14 是妍子也是研子 2026-03-30 14/700 2026-04-02 10:17 by sanrepian
[考研] 08工科275分求调剂 +13 AaAa7420 2026-03-31 13/650 2026-04-02 06:19 by 286640313
[考研] 江苏科技大学招材料研究生 +4 Su032713. 2026-04-01 5/250 2026-04-01 22:03 by cccchenso
[考研] 070300化学279求调剂 +15 哈哈哈^_^ 2026-03-31 17/850 2026-04-01 21:37 by 给你你注意休息
[考研] 303分 0807学硕求调剂 +3 TYC3632 2026-04-01 3/150 2026-04-01 19:24 by lwk2004
[考研] 286求调剂 +5 lim0922 2026-03-26 5/250 2026-04-01 19:08 by 客尔美德
[考研] 调剂 +5 好好读书。 2026-03-28 7/350 2026-04-01 15:32 by 王亮_大连医科大
[考研] 材料0856 英一数二 323 求调剂 +9 袁sy 2026-04-01 9/450 2026-04-01 14:30 by wangjy2002
[考研] 本2一志愿C9-333分,材料科学与工程,求调剂 +9 升升不降 2026-03-31 9/450 2026-03-31 18:01 by 无际的草原
[考研] 一志愿哈尔滨工业大学材料与化工方向336分 +13 辰沐5211314 2026-03-26 13/650 2026-03-31 14:37 by 记事本2026
[考研] 266分,求材料冶金能源化工等调剂 +8 哇呼哼呼哼 2026-03-27 10/500 2026-03-31 13:35 by Huaxue_Wang
[考研] 一志愿中海洋320化学工程与技术学硕求调剂 +8 披星河 2026-03-30 8/400 2026-03-31 08:53 by lbsjt
[考研] 抱歉 +3 田洪有 2026-03-30 3/150 2026-03-30 19:11 by 迷糊CCPs
[有机交流] 考研调剂 +8 watb 2026-03-26 8/400 2026-03-30 18:40 by 544594351
[考研] 数一英一271专硕(085401)求调剂,可跨 +7 前行必有光 2026-03-28 8/400 2026-03-28 23:22 by 小木虫tim
信息提示
请填处理意见