学生成绩管理系统
(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;
}
}