学生成绩管理系统

            学生成绩管理系统
(1)按顺序输入若干个学生信息
(2)插入一个学生信息(先输入插入位置,再输入学生信息)
(3)删除一个学生信息(先删除插入位置,再删除学生信息)
(4) 修改已知学号的学生信息(按学号来找)
(5) 查找已知学号的学生信息(按姓名来找)
(6)统计一个学生的总分成绩
(7) 按总分从高到低输出学生成绩表
(8)显示所有学生的信息
(9)退出。
代码如下:

 

#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[i].number;
 cout<<"姓名:";
 cin>>s[i].name;
 cout<<"语文成绩:";
 cin>>s[i].chinese;
 cout<<"数学成绩:";
 cin>>s[i].math;
 cout<<"英语成绩:";
 cin>>s[i].English;
 }
 for(i=0;i<n;i++)
 {
  allscore[i]=s[i].chinese+s[i].English+s[i].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[i].name<<setw(10)<<s[i].number<<setw(12)
  <<s[i].chinese<<setw(12)<<s[i].math<<setw(12)<<s[i].English<<setw(12)<<allscore[i]<<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[i]=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[i]=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[i].number==num)
  {
   cout<<"学号:";
         cin>>s[i].number;
         cout<<"姓名:";
         cin>>s[i].name;
         cout<<"语文成绩:";
          cin>>s[i].chinese;
         cout<<"数学成绩:";
          cin>>s[i].math;
         cout<<"英语成绩:";
         cin>>s[i].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[i].name,na)==0)
  {
   cout<<setw(30)<<"所查找的学生信息为:"<<endl;
   cout<<"---------------------------------------------------------------------------"<<endl;
         cout<<setw(15)<<"姓名:"<<s[i].name<<setw(10)<<"学号:"
    <<s[i].number<<setw(12)<<"语文成绩:"<<s[i].chinese<<setw(12)<<"数学成绩:"
    <<s[i].math<<setw(12)<<"英语成绩:"<<s[i].English<<setw(12)<<"总分为:"<<allscore[i]<<endl;
   cout<<"---------------------------------------------------------------------------"<<endl;
  }
  else cout<<"没有这个学生."<<endl;
 }
 contin();
}
void tongji()                  //6、统计学生的总分成绩
{
 if(n<=0)
 {
  cout<<"请先输入学生的信息,";
  input();
 }
 for(i=0;i<n;i++)
  allscore[i]=s[i].chinese+s[i].math+s[i].English;
 cout<<"各位学生的总分分别是";
 for(i=0;i<n;i++)
 {
  cout<<"第"<<i+1<<"位同学是:"<<s[i].name<<"总分是:"<<allscore[i]<<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[i]<allscore[j])
  {
   temp=s[i];
   s[i]=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<=30;s++)
  cout<<"*";
 cout<<" ***";
 for(s=1;s<=30;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;
 }
}

你可能感兴趣的:( 学生成绩管理系统)