📄 ak47.cpp
字号:
int ab;
cout<<"请输入要删除的学生的学号:";
cin>>ab;
panduan();
for(int i=0;i<number;i++)
{
if(qq[i]==ab) {m=i;break;}
}
if(m!=521)
{
for(int j=m;j<number-1;j++)//把后一个学生的资料赋给前一个
{
qq[j]=qq[j+1];
strcpy(name[j].na,name[j+1].na);
b[j][0]=b[j+1][0];
b[j][1]=b[j+1][1];
b[j][2]=b[j+1][2];
b[j][3]=b[j+1][3];
}
number--;a=0;cout<<"===========已删除成功============"<<endl;
}
else
{cout<<" ===========该生不存在============"<<endl;break;}
}
}
void score::print()//各科成绩的查询
{
int x,a=2;
cout<<"==================================================================="<<endl;
cout<<" 1>体育 2>数学 3>英语 4>C++"<<endl;
cout<<"==================================================================="<<endl;
while(a)
{
cout<<"请输入查询的科目(1~4):";
cin>>x;
panduan();
if(x>0&&x<5)
{
switch(x)
{
case 1:cout<<"体育:"<<endl;break;
case 2:cout<<"数学:"<<endl;break;
case 3:cout<<"英语:"<<endl;break;
case 4:cout<<" C++:"<<endl;break;
}
for(int i=1;i<number;i++)//冒泡排序
{
for(int j=0;j<number-i;j++)
{
if(b[j][x-1]<b[j+1][x-1])
{
double t=b[j][x-1];
b[j][x-1]=b[j+1][x-1];
b[j+1][x-1]=t;
int tt1=qq[j];
qq[j]=qq[j+1];
qq[j+1]=tt1;
strcpy(name1[j].na,name[j].na);
strcpy(name[j].na ,name[j+1].na);
strcpy(name[j+1].na,name1[j].na);
}
}
}
int f=1;
cout<<"******************************************************************"<<endl;
cout<<" 学号"<<" 姓名"<<" 成绩"<<" 排名"<<endl;
for(int q=0;q<number;q++)
{
if(q!=0&&b[q][x-1]==b[q-1][x-1]) f--;//控制两个总分一样的学生排名一样
cout<<setw(4)<<qq[q]<<setw(8)<<name[q].na<<setw(8)<<b[q][x-1]<<setw(8)<<f++<<endl;
}
cout<<"******************************************************************"<<endl;
a=0;
}
else
cout<<" ===============输入^v^错误================"<<endl;
}
}
void score::aver()//各科平均成绩,各科成绩各等级人数及比例
{
cout<<"====================================================================="<<endl;
for(int j=0;j<4;j++)
{
double a=0,f=0,c=0,d=0,e=0;
double s(0);
switch(j)
{
case 0:cout<<"体育:"<<endl;break;
case 1:cout<<"数学:"<<endl;break;
case 2:cout<<"英语:"<<endl;break;
case 3:cout<<"C++:"<<endl;break;
}
for(int i=0;i<number;i++)
{
s+=b[i][j];
if(b[i][j]>=90)a++;
else if(b[i][j]>=80)f++;
else if(b[i][j]>=70)c++;
else if(b[i][j]>=60)d++;
else e++;
}
cout<<"平均成绩"<<" 优秀"<<" 良好"<<" 中等"<<" 及格"<<" 不及格"<<endl;
cout<<setprecision(3)<<setw(6)<<s/number<<setw(6)<<a<<setw(9)<<f<<setw(6)<<c<<setw(6)<<d<<setw(6)<<e<<endl;
cout<<setw(6)<<"比例"<<setprecision(3)<<setw(6)<<a/number*100<<"%"<<setw(6)<<f/number*100<<"%"<<setw(6)<<c/number*100<<"%"<<setw(6)<<d/number*100<<"%"<<setw(6)<<e/number*100<<"%"<<endl;
cout<<"==================================================================="<<endl;
}
}
void score::count()//总成绩统计,学生的总成绩,平均成绩及成绩排名
{
double sum[max];
for(int w=0;w<number;w++)
{sum[w]=b[w][0]+b[w][1]+b[w][2]+b[w][3];}
for(int e=1;e<number;e++)//用冒泡进行排序
{
for(int k=0;k<number;k++)
{
if(sum[k]<sum[k+1])
{
double t=sum[k];
sum[k]=sum[k+1];
sum[k+1]=t;
int tt=qq[k];
qq[k]=qq[k+1];
qq[k+1]=tt;
strcpy(name1[k].na,name[k].na);
strcpy(name[k].na,name[k+1].na);
strcpy(name[k+1].na,name1[k].na);
}
}
}
int g=1;
cout<<"*****************************************************************"<<endl;
cout<<" 学号"<<" 姓名"<<" 总分"<<" 平均分"<<" 排名"<<endl;
for(int f=0;f<number;f++)
{
if(f!=0&&sum[f]==sum[f-1]) g--;//控制两个总分一样的学生排名一样
cout<<setw(4)<<qq[f]<<setw(6)<<name[f].na<<setw(6)<<sum[f]<<setw(6)<<setprecision(3)<<sum[f]/4.0<<setw(6)<<g++<<endl;
}
cout<<"*****************************************************************"<<endl;
}
void score::zong()//成绩的统计结果显示
{
double sum[max];
for(int w=0;w<number;w++)
{sum[w]=b[w][0]+b[w][1]+b[w][2]+b[w][3];}
for(int e=1;e<number;e++)
{
for(int k=0;k<number;k++)
{
if(sum[k]<sum[k+1])
{
double t=sum[k];
sum[k]=sum[k+1];
sum[k+1]=t;
int tt=qq[k];
qq[k]=qq[k+1];
qq[k+1]=tt;
strcpy(name1[k].na,name[k].na);
strcpy(name[k].na,name[k+1].na);
strcpy(name[k+1].na,name1[k].na);
}
}
}
int f=1;
cout<<"┌───┬───┬───┬───┬───┬───┬───┬───┬───┒"<<endl;
cout<<" 学号"<<" 姓名"<<" 体育"<<" 数学"<<" 英语"<<" C++"<<" 总分"<<" 平均分"<<" 排名"<<endl;
for(int d=0;d<number;d++)
{
cout<<"├───┼───┼───┼───┼───┼───┼───┼───┼───┤"<<endl;
if(d!=0&&sum[d]==sum[d-1]) f--;//控制两个总分一样的学生排名一样
cout<<setw(8)<<qq[d]<<setw(8)<<name[d].na<<setw(8)<<b[d][0]<<setw(8)<<b[d][1]<<setw(8)<<b[d][2]<<setw(8)<<b[d][3]<<setw(8)<<sum[d]<<setw(8)<<sum[d]/4.0<<setw(8)<<f++<<endl;
}
cout<<"└───┴───┴───┴───┴───┴───┴───┴───┴───┘"<<endl;
}
void score::display()//扩展功能菜单
{
cout<<"====================================================================="<<endl;
cout<<endl;
cout <<"扩展功能: 1:查询 2:添加 3:修改 4:删除 5:读取 6:存储 7:退出 ==>>>";
cout<<endl;
cout<<"====================================================================="<<endl;
cout<<"请输入你的选择(0~5):";
}
void score::extend()//扩展功能实现
{
int flag=0,a=2;
while(a)
{
display();
cin>>flag;
panduan();
if(flag>0&&flag<8) a=0;
else
cout<<" ============输入^v^错误============"<<endl;
}
while(flag!=7)
{
switch(flag)
{
case 1:search();break;
case 2: addx();break;
case 3:modify();break;
case 4:dele();break;
case 5:ifile();break;
case 6:ofile();break;
default:cout<<" ===============输入^v^错误================ "<<endl;
}
cout<<"*****************************************************************"<<endl;
cout<<endl;
display();
cin>>flag;
panduan();
}
}
void meun()//主菜单
{
cout<<"服务菜单如下:"<<endl;
cout<<"1> 各科成绩的输入"<<endl;
cout<<"2> 成绩的统计(各科平均成绩、各科成绩各等级的人数、及所占比例 )"<<endl;
cout<<"3> 各科成绩排名查询;"<<endl;
cout<<"4> 总成绩统计(学生的总成绩、平均成绩及成绩排名)"<<endl;
cout<<"5> 成绩的统计结果显示;"<<endl;
cout<<"6> 扩展功能"<<endl;
cout<<"7> 退出系统"<<endl;
cout<<"=*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*="<<endl;
cout<<"请输入您的选择(1~7):";
}
void main()//主函数
{
int flag=0,a=2;
score abc;
abc.number=0;
while(a)
{
meun();
cin>>flag;
abc.panduan();
if(flag>0&&flag<8&&flag!=2) a=0;
else
cout<<" ============输入^v^错误============"<<endl;
}
while(flag!=7)
{
switch(flag)
{
case 1: abc.set();break;
case 2:abc.aver();break;
case 3:abc.print();break;
case 4:abc.count();break;
case 5:abc.zong();break;
case 6:abc.extend();break;
default:cout<<" ============输入^v^错误==========="<<endl;
}
cout<<"=*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*="<<endl;
cout<<endl;
meun();
cin>>flag;
abc.panduan();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -