第1个回答 2007-07-08
编结束了才看到要编系统,但看在我编了一下午的份上把分给我吧.
#include<fstream>
#include<iostream>
using namespace std;
ifstream fin ("chenji.in");
ofstream fout ("chenji.out");
string name[2500];
int xf[5][2500];
void dlt (int w,int ll)
{
int x,k;
for (;w<=ll-1;w++)
{
for (int i=0;i<=5;i++)
name[w]=name[w+1];
for (k=1;k<=4;k++)
xf[k][w]=xf[k][w+1];
}
}
int lf (string g,int oo)
{
int u;
for (u=1;u<=oo;u++)
if (name[u]==g)
return (u);
}
main()
{
int i,k,zs,cm,lm,cm1,kk,z,cm2,m,t;
string g1,as[2500];
cout<<"学生原信息请保存入chenji.in"<<endl;
cout<<"学生处理后信息保存在chenji.out"<<endl;
cout<<"请输入学生总数"<<endl;
cin>>zs;
cout<<endl;
for (i=1;i<=zs;i++)
{
fin>>name[i];
for (k=1;k<=4;k++)
fin>>xf[k][i];
}
lm=9;
cout<<"友情提示(学生信息):";
for (i=1;i<=zs;i++)
{
cout<<name[i]<<' ';
for (k=1;k<=4;k++)
if (xf[k][i]<10 && k==1)
cout<<'0'<<xf[k][i]<<' ';
else cout<<xf[k][i]<<' ';
cout<<endl;
}
while (lm!=0)
{
cout<<"增加学生信息请按1"<<endl<<"删除学生信息请按2"<<endl;
cout<<"修改学生信息请按3"<<endl<<"查分请按4"<<endl;
cout<<"成绩统计请按5"<<endl;
cout<<"排序请按6"<<endl;
cin>>cm;
cout<<endl;
if (cm==2)
{
cout<<"请输入删除几号"<<endl;
cin>>cm;
cout<<endl;
dlt (cm,zs);
zs--;
}
if (cm==1)
{
cout<<"请输入增加的学生姓名"<<endl;
cin>>name[++zs];
cout<<endl;
cout<<"请输入增加的学生各门成绩"<<endl<<"语文:";
cin>>xf[2][zs];
cout<<endl<<"数学:";
cin>>xf[3][zs];
cout<<endl<<"英语:"<<endl;
cin>>xf[4][zs];
xf[1][zs]=zs;
}
if (cm==3)
{
cout<<"请输入要修改人的学号"<<endl;
cin>>cm;
cout<<"请输入要修改的学科,语文请按1,数学请按2,英语请按3"<<endl;
cin>>cm1;
lm++;
cout<<"请输入修改后分数:";
cin>>xf[cm1][cm];
}
if (cm<=3)
cout<<"修改完成,请到chenji.out中看结果";
if (cm==4)
{
cout<<"按姓名查找请按1,按学号查找请按2"<<endl;
cin>>cm1;
if (cm1==1)
{
cout<<"请输入要查找的学生的姓名:";
cin>>g1;
kk=lf(g1,zs);
}
if (cm1==2)
{
cout<<"请输入要查找的学生的学号:";
cin>>kk;
}
cout<<"这是你所要的信息:"<<endl;
cout<<"姓名 号 语文 数学 英语"<<endl;
cout<<name[kk]<<' ';
if (kk<9)
fout<<'0';
for (z=1;z<=4;z++)
cout<<xf[z][kk]<<' ';
cout<<endl;
}
if (cm==5)
{
cout<<"请输入要修改的学科,语文请按1,数学请按2,英语请按3"<<endl;
cin>>kk;
kk++;
cout<<"请输入统计段起始值:";
cin>>cm1;
cout<<"请输入统计段终止值:";
cin>>cm2;
m=0;
for (z=1;z<=zs;z++)
if (xf[kk][z]>=cm1 && xf[kk][z]<=cm2)
{
m++;
as[m]=name[z];
}
if (m==0)
cout<<"没有学生在"<<cm1<<'~'<<cm2<<"中";
else cout<<"共有"<<m<<"个学生在"<<cm1<<"分"<<'~'<<cm2<<"分中分别是: ";
for (z=1;z<=m;z++)
cout<<as[z]<<' ';
cout<<endl;
}
if (cm==6)
{
cout<<"请输入要排序学生的学号:";
cin>>kk;
cm1=xf[2][kk];
cm2=xf[3][kk];
z=xf[4][kk];
if (cm1<cm2)
{
t=cm1;
cm1=cm2;
cm2=t;
}
if (cm1<z)
{
t=cm1;
cm1=z;
z=t;
}
if (cm2<z)
{
t=cm2;
cm2=z;
z=t;
}
cout<<"排序后分数"<<cm1<<"->"<<cm2<<"->"<<z<<endl;
}
cout<<"处理结束请按0"<<endl;
cout<<"继续处理请按0以外的任何数"<<endl;
cin>>lm;
}
fout<<"姓名 学号 语文 数学 英语"<<endl;
for (i=1;i<=zs;i++)
{
fout<<name[i]<<' ';
for (k=1;k<=4;k++)
if (xf[k][i]<10 &&k==1)
fout<<'0'<<xf[k][i]<<' ';
else fout<<xf[k][i]<<' ';
fout<<endl;
}
}本回答被网友采纳