📄 邢容梅.cpp
字号:
#include<iostream.h>
#include<string.h>
#include<fstream.h>
class student
{
private:
char name[8];
double math,english,cjj,average,sum;
public:
student(){};
student(char n[8],double ma,double en,double cj)
{strcpy(name,n);
math=ma;english=en;cjj=cj;}
double getsum()
{sum=english+cjj+math;
return sum;}
double getaver()
{average=sum/3;
return average;}
friend void main();
};
void main()
{
cout<<"欢迎进入学生管理系统\n";
cout<<"请选取所要进行的操作\n";
cout<<"学生数据输入请按0\n";
cout<<"按姓名查询请按1\n";
cout<<"成绩统计:\n";
cout<<"输出各科平时成绩,各等级人数,及比例请按2\n";
cout<<"排名:\n";
cout<<"按总成绩排名请按3\n";
cout<<"按高数排名请按4\n";
cout<<"按C++排名请按5\n";
cout<<"修改学生请按6\n";
cout<<"添加学生请按7\n";
cout<<"删除学生请按8\n";
student *stu[10];
int t;
char v;
int i=0;
int j=0;
ofstream *file[20];
bool flag2=0;
do
{
do
{
cin>>t;
if((t>='0')&&(t<='8'))
flag2=1;
else
{
cout<<"指令错误,请从新输入:"<<endl;
}
}while(flag2=0);
switch(t)
{
case 0:
{
char name[8];double math,english,cjj;
for(i=0,j=0;i<10;i++,j++)
{
cout<<"输入姓名:.\n";
cin>>name;
cout<<"输入数学成绩:.\n";
cin>>math;
cout<<"输入英语成绩:.\n";
cin>>english;
cout<<"输入C++成绩:.\n";
cin>>cjj;
file[j]=new ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"英语成绩"<<english<<"C++成绩"<<cjj<<endl;
stu[i]=new student(name,math,english,cjj);
cout<<"数据录入成功"<<endl;
}
break;
}
case 1:
{
char n[8];
char c;
bool flag1=0;
do
{
cout<<"请输入所要查询学生的姓名:"<<endl;
cin>>n;
for(int j=0;j<10;j++)
if(strcmp(n,(*stu[j]).name)==0)
{
flag1=1;
cout<<"您要查询学生是:"<<(*stu[j]).name<<endl;
cout<<"他的平均成绩:"<<(*stu[j]).getaver()<<"总成绩:"<<(*stu[j]).getsum()<<"数学成绩:"<<(*stu[j]).math<<"英语成绩:"<<(*stu[j]).english<<"C++成绩:"<<(*stu[j]).cjj<<endl;
}
if(flag1==0)
{
cout<<"对不起您要查询学生不存在."<<endl;
cout<<"还要继续查询吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误,请从新输入"<<endl;
cin>>c;
}
}
}while(c=='y');
break;
}
case 6:
{
char name[8];
double mat,eng,cjjj;
char c;
bool flag=0;
do
{
cout<<"请输入您要修改学生的姓名:";
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,stu[h]->name)==0)
{
flag=1;
cout<<"请输入新的英语成绩:"<<endl;
cin>>eng;
cout<<"请输入新的数学成绩"<<endl;
cin>>mat;
cout<<"请输入新的C++成绩"<<endl;
cin>>cjjj;
stu[h]->english=eng;
stu[h]->math=mat;
stu[h]->cjj=cjjj;
cout<<"数据修改成功";
}
}
if(flag==0)
cout<<"你要修改的学生不存在,请检查从新输入"<<endl;
cout<<"想继续修改(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误,请从新输入"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 4:
{
student a;
bool flag3=0;
do
{
flag3=1;
cout<<"所有学生按数学成绩排名如下:"<<endl;
for(int x=0;x<9;x++)
for(int y=x;y<10-x;y++)
{
if(stu[y]->math<stu[y+1]->math)
{
a=*stu[y];
*stu[y]=*stu[y+1];
*stu[y+1]=a;
}
}
}while(flag3==0);
if(flag3==0)
cout<<"管理系统里没有录入者或者录入者已被删除";
for(int k=0;k<10;k++)
cout<<k+1<<"姓名"<<stu[k]->name<<"平均成绩"<<stu[k]->average<<"英语:"<<stu[k]->english<<"C++:"<<stu[k]->cjj<<"数学:"<<stu[k]->math<<"总成绩:"<<stu[k]->sum<<endl;
}
break;
case 5:
{
student a;
bool flag3=0;
do
{
flag3=1;
cout<<"所有学生按C++成绩排名如下:"<<endl;
for(int x=0;x<9;x++)
for(int y=x;y<10-x;y++)
{
if(stu[y]->cjj<stu[y+1]->cjj)
{
a=*stu[y];
*stu[y]=*stu[y+1];
*stu[y+1]=a;
}
}
}while(flag3==0);
if(flag3==0)
cout<<"管理系统里没有录入者或者录入者已被删除";
for(int k=0;k<10;k++)
cout<<k+1<<"姓名"<<stu[k]->name<<"平均成绩"<<stu[k]->average<<"英语:"<<stu[k]->english<<"C++:"<<stu[k]->cjj<<"数学:"<<stu[k]->math<<"总成绩:"<<stu[k]->sum<<endl;
}
break;
case 3:
{
student a;
bool flag3=0;
do
{
flag3=1;
cout<<"所有学生按总成绩成绩排名如下:"<<endl;
for(int x=0;x<9;x++)
for(int y=x;y<10-x;y++)
{
if(stu[y]->sum<stu[y+1]->sum)
{
a=*stu[y];
*stu[y]=*stu[y+1];
*stu[y+1]=a;
}
}
}while(flag3==0);
if(flag3==0)
cout<<"管理系统里没有录入者或者录入者已被删除";
for(int k=0;k<10;k++)
cout<<k+1<<"姓名"<<stu[k]->name<<"平均成绩"<<stu[k]->average<<"英语:"<<stu[k]->english<<"C++:"<<stu[k]->cjj<<"数学:"<<stu[k]->math<<"总成绩:"<<stu[k]->sum<<endl;
}
break;
case 7:
{
char name[8];
double math,english,cjj;
char c;
do
{
cout<<"请输入你所要添加学生的姓名:"<<endl;
cin>>name;
cout<<"数学成绩:"<<endl;
cin>>math;
cout<<"英语成绩:"<<endl;
cin>>english;
cout<<"C++成绩:"<<endl;
cin>>cjj;
file[j]=new ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"英语成绩"<<english<<"C++成绩"<<cjj<<endl;
j++;
stu[i]=new student(name,math,english,cjj);
i++;
cout<<"数据录入成功,想输入数据吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误,请从新输入"<<endl;
cin>>c;
}
}while(c=='y');
}
break;
case 8:
{
char name[20];bool flag3=0;
char c;
do
{
cout<<"请输入您要删除学生的姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,stu[h]->name)==0)
{
flag3=1;
i--;
do{
stu[h]=stu[h+1];
h++;
}while(h<=i);
}
}
if(flag3==0)
cout<<"您要删除对象不存在,请检查"<<endl;
cout<<"要继续删除吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误,请从新输入"<<endl;
cin>>c;
}
}while(c=='y');
}
break;
case 2:
{ int b(0),x(0),y(0),z(0),m(0),w(0);
double su=0;
for(int j=0;j<i;j++)
su+=stu[j]->english;
double en_aver=0;
en_aver=su/i;
for(b=0;b<i;b++)
{
if(stu[b]->english>=90)
x+=x;
else if(stu[b]->english>=80)
y+=y;
else if(stu[b]->english>=70)
z+=z;
else if(stu[b]->english>=60)
w+=w;
else
m+=m;
cout<<"英语平均成绩:"<<en_aver<<"优秀人数及比例:"<<x<<x/i<<"良好人数及比例:"<<y<<y/i<<"中等人数及比例:"<<z<<z/i<<"及格人数及比例:"<<w<<w/i<<"不及格人数及比例:"<<m<<m/i<<endl;
}
for(j=0;j<i;j++)
su=stu[j]->math;
double aver_ma=0;
aver_ma=su/i;
for(b=0;b<i;b++)
{
if(stu[b]->math>=90)
{
x=0;
x+=x;
}
else if(stu[b]->math>=80)
{
y=0;
y+=y;
}
else if(stu[b]->math>=70)
{
z=0;
z+=z;
}
else if(stu[b]->math>=60)
{
w=0;
w+=w;
}
else
{
m=0;
m+=m;
}
cout<<"数学平均成绩:"<<aver_ma<<"优秀人数及比例:"<<x<<x/i<<"良好人数及比例:"<<"中等人数及比例:"<<y<<y/i<<"中等人数及比例:"<<z<<z/i<<"及格人数及比例:"<<w<<w/i<<"不及格人数及比例:"<<m<<m/i<<endl;
}
for(j=0;j<i;j++)
su=stu[j]->cjj;
double aver_cj=0;
aver_cj=su/i;
for(b=0;b<i;b++)
{
if(stu[b]->cjj>=90)
{
x=0;
x+=x;
}
else if(stu[b]->cjj>=80)
{
y=0;
y+=y;
}
else if(stu[b]->cjj>=70)
{
z=0;
z+=z;
}
else if(stu[b]->cjj>=60)
{
w=0;
w+=w;
}
else
{
m=0;
m+=m;
}
cout<<"C++平均成绩:"<<aver_cj<<"优秀人数及比例:"<<x<<x/i<<"良好人数及比例:"<<"中等人数及比例:"<<y<<y/i<<"中等人数及比例:"<<z<<z/i<<"及格人数及比例:"<<w<<w/i<<"不及格人数及比例:"<<m<<m/i<<endl;
}
break;
}
}
cout<<"你想在进行其他的操作吗?(y/n)\n";
bool flag5=0;
do
{
cin>>v;
if(v!='y'&&v!='n')
cout<<"指令错误!重新输入!\n";
else
flag5=1;
}while(flag5==0);
if(v=='y')
{
cout<<"学生数据输入0/添加人员7/删除人员8/\
修改人员6/按姓名查询1/输出各科平时成绩,各等级人数,及比例请按2/\
按总成绩排名3/按C++排名请按5/按数学排名按4\n";
cout<<"请选择你要进行的操作\n";
}
}while(v=='y');
for(int k=0;k<i;k++)
{
delete stu[k];
cout<<"删除所有数据!"<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -