|
用Refactor做了一下
可以运行,有没有逻辑错误不知道:
C/C++ code
#include <iostream>
using namespace std;
char name[100];
void A(int point[100][100], int &i, int n, int &k)
{
for(i=0;i <n;i++)
{
cout <<"name: ";
cin>>name;
cout <<"1.物理成绩: ";
cin>>point[1];
cout <<"2.数学成绩: ";
cin>>point[2];
cout <<"3.英语成绩: ";
cin>>point[3];
cout <<"4.生物成绩: ";
cin>>point[4];
}
for(i=0;i <n;i++)
{
cout <<"学生" <<name <<"的成绩为: " <<point[1] <<" " <<point[2] <<" " <<point[3] <<" " <<point[4] <<endl;
}
cout <<"1.添加新的学生成绩" <<endl <<"2.修改学生成绩" <<endl <<"3.删除学生成绩" <<endl <<"4.统计学生总分,平均分" <<endl <<"5.查询学生成绩" <<endl;
k=1;
}
int B(int point[100][100], int num1, int num2, int n)
{
int i;
cout <<"输入想修改成绩的学生编号: ";
cin>>num1;
cout <<"输入想修改的科目编号: ";
cin>>num2;
cout <<"输入新的成绩: ";
cin>>point[num1-1][num2];
cout <<"修改后" <<endl;
for(i=0;i <n;i++)
{
cout <<"学生" <<name <<"的成绩为: " <<point[1] <<" " <<point[2] <<" " <<point[3] <<" " <<point[4] <<endl;
}
cout <<"1.添加新的学生成绩" <<endl <<"2.修改学生成绩" <<endl <<"3.删除学生成绩" <<endl <<"4.统计学生总分,平均分" <<endl <<"5.查询学生成绩" <<endl;
return i;
}
void C(int point[100][100], int &i, int num1, int n, int &j, int &k)
{
cout <<"输入想删除的学生排列号: ";
cin>>num1;
for(i=num1-1;i <n-k;i++)
{
name=name[i+1];
for(j=1;j <5;j++)
{
point[j]=point[i+1][j];
}
}
if(n <=k)
{
cout <<"无学生成绩存档,请重新输入学生成绩." <<endl;
}
else
{
cout <<"修改后" <<endl;
for(i=0;i <n-k;i++)
{
cout <<"学生" <<name <<"的成绩为: " <<point[1] <<" " <<point[2] <<" " <<point[3] <<" " <<point[4] <<endl;
}
}
cout <<"1.添加新的学生成绩" <<endl <<"2.修改学生成绩" <<endl <<"3.删除学生成绩" <<endl <<"4.统计学生总分,平均分" <<endl <<"5.查询学生成绩" <<endl;
k++;
}
int D(int point[100][100], int n)
{
int i;
int sum1=0,ave1=0,ave2=0,ave3=0,ave4=0;
int sum2[100]={0};
for(i=0;i <n;i++)
{
sum2=sum2+point[1]+point[2]+point[3]+point[4];
}
for(i=0;i <n;i++)
{
cout <<"学生" <<i+1 <<"的总成绩为: " <<sum2 <<endl;
}
for(i=0;i <n;i++)
{
cout <<"学生" <<i+1 <<"的平均分为: " <<sum2/4 <<endl;
}
for(i=0;i <n;i++)
{
sum1=sum1+sum2;
}
for(i=0;i <n;i++)
{
ave1=ave1+point[1];
ave2=ave2+point[2];
ave3=ave3+point[3];
ave4=ave4+point[4];
}
cout <<"物理科目的平均分为: " <<ave1/n <<" 数学科目的平均分为: " <<ave2/n <<" 英语科目的平均分为: " <<ave3/n <<" 生物科目的平均分为: " <<ave4/n <<endl;
cout <<"全部学生的平均分为: " <<sum1/n <<endl;
cout <<"1.添加新的学生成绩" <<endl <<"2.修改学生成绩" <<endl <<"3.删除学生成绩" <<endl <<"4.统计学生总分,平均分" <<endl <<"5.查询学生成绩" <<endl;
return i;
}
void E(int point[100][100], int num1)
{
cout <<"输入想查询的学生编号: ";
cin>>num1;
cout <<"该生的物理成绩,数学成绩,英语成绩,生物成绩分别为: ";
cout <<point[num1-1][1] <<" " <<point[num1-1][2] <<" " <<point[num1-1][3] <<" " <<point[num1-1][4] <<endl;
cout <<"1.添加新的学生成绩" <<endl <<"2.修改学生成绩" <<endl <<"3.删除学生成绩" <<endl <<"4.统计学生总分,平均分" <<endl <<"5.查询学生成绩" <<endl;
}
void F()
{
cout <<"输入错误,请重新输入" <<endl;
cout <<"1.添加新的学生成绩" <<endl <<"2.修改学生成绩" <<endl <<"3.删除学生成绩" <<endl <<"4.统计学生总分,平均分" <<endl <<"5.查询学生成绩" <<endl;
}
int main()
{
int point[100][100],i,num1,num2,t,n,j;
int k=1;
cout <<"输入学生总人数:";
cin>>n;
cout <<"1.添加新的学生成绩" <<endl <<"2.修改学生成绩" <<endl <<"3.删除学生成绩" <<endl <<"4.统计学生总分,平均分" <<endl <<"5.查询学生成绩" <<endl;
while(cout <<"输入编号: "&&cout <<"(输入0结束)" <<endl&&cin>>t&&t!=0)
{
if(t==1)
{
A(point, i, n, k);
}
if(t==2)
{
i = B(point, num1, num2, n);
}
if(t==3)
{
C(point, i, num1, n, j, k);
}
if(t==4)
{
i = D(point, n);
}
if(t==5)
{
E(point, num1);
}
else if(t> 5 ||t <0)
{
F();
}
}
return 0;
}
|