?? 邢容梅.cpp
字號(hào):
#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<<"歡迎進(jìn)入學(xué)生管理系統(tǒng)\n";
cout<<"請(qǐng)選取所要進(jìn)行的操作\n";
cout<<"學(xué)生數(shù)據(jù)輸入請(qǐng)按0\n";
cout<<"按姓名查詢請(qǐng)按1\n";
cout<<"成績統(tǒng)計(jì):\n";
cout<<"輸出各科平時(shí)成績,各等級(jí)人數(shù),及比例請(qǐng)按2\n";
cout<<"排名:\n";
cout<<"按總成績排名請(qǐng)按3\n";
cout<<"按高數(shù)排名請(qǐng)按4\n";
cout<<"按C++排名請(qǐng)按5\n";
cout<<"修改學(xué)生請(qǐng)按6\n";
cout<<"添加學(xué)生請(qǐng)按7\n";
cout<<"刪除學(xué)生請(qǐng)按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<<"指令錯(cuò)誤,請(qǐng)從新輸入:"<<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<<"輸入數(shù)學(xué)成績:.\n";
cin>>math;
cout<<"輸入英語成績:.\n";
cin>>english;
cout<<"輸入C++成績:.\n";
cin>>cjj;
file[j]=new ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"數(shù)學(xué)成績"<<math<<"英語成績"<<english<<"C++成績"<<cjj<<endl;
stu[i]=new student(name,math,english,cjj);
cout<<"數(shù)據(jù)錄入成功"<<endl;
}
break;
}
case 1:
{
char n[8];
char c;
bool flag1=0;
do
{
cout<<"請(qǐng)輸入所要查詢學(xué)生的姓名:"<<endl;
cin>>n;
for(int j=0;j<10;j++)
if(strcmp(n,(*stu[j]).name)==0)
{
flag1=1;
cout<<"您要查詢學(xué)生是:"<<(*stu[j]).name<<endl;
cout<<"他的平均成績:"<<(*stu[j]).getaver()<<"總成績:"<<(*stu[j]).getsum()<<"數(shù)學(xué)成績:"<<(*stu[j]).math<<"英語成績:"<<(*stu[j]).english<<"C++成績:"<<(*stu[j]).cjj<<endl;
}
if(flag1==0)
{
cout<<"對(duì)不起您要查詢學(xué)生不存在."<<endl;
cout<<"還要繼續(xù)查詢嗎(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯(cuò)誤,請(qǐng)從新輸入"<<endl;
cin>>c;
}
}
}while(c=='y');
break;
}
case 6:
{
char name[8];
double mat,eng,cjjj;
char c;
bool flag=0;
do
{
cout<<"請(qǐng)輸入您要修改學(xué)生的姓名:";
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,stu[h]->name)==0)
{
flag=1;
cout<<"請(qǐng)輸入新的英語成績:"<<endl;
cin>>eng;
cout<<"請(qǐng)輸入新的數(shù)學(xué)成績"<<endl;
cin>>mat;
cout<<"請(qǐng)輸入新的C++成績"<<endl;
cin>>cjjj;
stu[h]->english=eng;
stu[h]->math=mat;
stu[h]->cjj=cjjj;
cout<<"數(shù)據(jù)修改成功";
}
}
if(flag==0)
cout<<"你要修改的學(xué)生不存在,請(qǐng)檢查從新輸入"<<endl;
cout<<"想繼續(xù)修改(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯(cuò)誤,請(qǐng)從新輸入"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 4:
{
student a;
bool flag3=0;
do
{
flag3=1;
cout<<"所有學(xué)生按數(shù)學(xué)成績排名如下:"<<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<<"管理系統(tǒng)里沒有錄入者或者錄入者已被刪除";
for(int k=0;k<10;k++)
cout<<k+1<<"姓名"<<stu[k]->name<<"平均成績"<<stu[k]->average<<"英語:"<<stu[k]->english<<"C++:"<<stu[k]->cjj<<"數(shù)學(xué):"<<stu[k]->math<<"總成績:"<<stu[k]->sum<<endl;
}
break;
case 5:
{
student a;
bool flag3=0;
do
{
flag3=1;
cout<<"所有學(xué)生按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<<"管理系統(tǒng)里沒有錄入者或者錄入者已被刪除";
for(int k=0;k<10;k++)
cout<<k+1<<"姓名"<<stu[k]->name<<"平均成績"<<stu[k]->average<<"英語:"<<stu[k]->english<<"C++:"<<stu[k]->cjj<<"數(shù)學(xué):"<<stu[k]->math<<"總成績:"<<stu[k]->sum<<endl;
}
break;
case 3:
{
student a;
bool flag3=0;
do
{
flag3=1;
cout<<"所有學(xué)生按總成績成績排名如下:"<<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<<"管理系統(tǒng)里沒有錄入者或者錄入者已被刪除";
for(int k=0;k<10;k++)
cout<<k+1<<"姓名"<<stu[k]->name<<"平均成績"<<stu[k]->average<<"英語:"<<stu[k]->english<<"C++:"<<stu[k]->cjj<<"數(shù)學(xué):"<<stu[k]->math<<"總成績:"<<stu[k]->sum<<endl;
}
break;
case 7:
{
char name[8];
double math,english,cjj;
char c;
do
{
cout<<"請(qǐng)輸入你所要添加學(xué)生的姓名:"<<endl;
cin>>name;
cout<<"數(shù)學(xué)成績:"<<endl;
cin>>math;
cout<<"英語成績:"<<endl;
cin>>english;
cout<<"C++成績:"<<endl;
cin>>cjj;
file[j]=new ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"數(shù)學(xué)成績"<<math<<"英語成績"<<english<<"C++成績"<<cjj<<endl;
j++;
stu[i]=new student(name,math,english,cjj);
i++;
cout<<"數(shù)據(jù)錄入成功,想輸入數(shù)據(jù)嗎(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯(cuò)誤,請(qǐng)從新輸入"<<endl;
cin>>c;
}
}while(c=='y');
}
break;
case 8:
{
char name[20];bool flag3=0;
char c;
do
{
cout<<"請(qǐng)輸入您要?jiǎng)h除學(xué)生的姓名:"<<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<<"您要?jiǎng)h除對(duì)象不存在,請(qǐng)檢查"<<endl;
cout<<"要繼續(xù)刪除嗎(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令錯(cuò)誤,請(qǐng)從新輸入"<<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<<"優(yōu)秀人數(shù)及比例:"<<x<<x/i<<"良好人數(shù)及比例:"<<y<<y/i<<"中等人數(shù)及比例:"<<z<<z/i<<"及格人數(shù)及比例:"<<w<<w/i<<"不及格人數(shù)及比例:"<<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<<"數(shù)學(xué)平均成績:"<<aver_ma<<"優(yōu)秀人數(shù)及比例:"<<x<<x/i<<"良好人數(shù)及比例:"<<"中等人數(shù)及比例:"<<y<<y/i<<"中等人數(shù)及比例:"<<z<<z/i<<"及格人數(shù)及比例:"<<w<<w/i<<"不及格人數(shù)及比例:"<<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<<"優(yōu)秀人數(shù)及比例:"<<x<<x/i<<"良好人數(shù)及比例:"<<"中等人數(shù)及比例:"<<y<<y/i<<"中等人數(shù)及比例:"<<z<<z/i<<"及格人數(shù)及比例:"<<w<<w/i<<"不及格人數(shù)及比例:"<<m<<m/i<<endl;
}
break;
}
}
cout<<"你想在進(jìn)行其他的操作嗎?(y/n)\n";
bool flag5=0;
do
{
cin>>v;
if(v!='y'&&v!='n')
cout<<"指令錯(cuò)誤!重新輸入!\n";
else
flag5=1;
}while(flag5==0);
if(v=='y')
{
cout<<"學(xué)生數(shù)據(jù)輸入0/添加人員7/刪除人員8/\
修改人員6/按姓名查詢1/輸出各科平時(shí)成績,各等級(jí)人數(shù),及比例請(qǐng)按2/\
按總成績排名3/按C++排名請(qǐng)按5/按數(shù)學(xué)排名按4\n";
cout<<"請(qǐng)選擇你要進(jìn)行的操作\n";
}
}while(v=='y');
for(int k=0;k<i;k++)
{
delete stu[k];
cout<<"刪除所有數(shù)據(jù)!"<<endl;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -