关于c语言的问题,高手都进来看看,分高很哦!!!

编译一个文档形式的c程序:
比如一个学生的数据库:其中包括
(1)查找某个学生的数据;
(2)删除某个学生的数据;
(3)插入某个学生的数据;
(4)对学生数据库进行排序(比如按照:数学成绩)
各位大侠多多指教啊!!!!急用......

#include <stdio.h>

int main()
{

printf( "(1)查找某个学生的数据;\n"
"(2)删除某个学生的数据;\n"
"(3)插入某个学生的数据;\n"
"(4)对学生数据库进行排序;\n");
getchar();
return 0;
}
回答者:匿名 11-17 11:24
#include<iostream.h>
#include<string.h>
#include<fstream.h>
class stu
{
char name[20];
double math,chinese,english,average,sum;
public:
stu()
{
}
stu(char n[20],double ma,double chin,double eng)
{
strcpy(name,n);
math=ma;
chinese=chin;
english=eng;
}
double getsum()
{
sum=chinese+english+math;
return sum;
}
double getaver()
{
average=getsum()/3;
return average;
}
friend void main();
};

void main()
{
cout<<"请选择您需要的操作!"<<endl;
cout<<"操作:"<<endl;
cout<<"(0)数据录入"<<endl;
cout<<"(1)增加人员"<<endl;
cout<<"(2)删除人员"<<endl;
cout<<"(3)修改数据"<<endl;
cout<<"查询:"<<endl;
cout<<"(4)按总成绩查询"<<endl;
cout<<"(5)按姓名查询"<<endl;
cout<<"(6)输出所有学生的数据"<<endl;
cout<<"成绩名词"<<endl;
cout<<"(7)按总分查询排名"<<endl;
cout<<"(8)按语文查询排名"<<endl;
cout<<"(9)按数学查询排名"<<endl;
cout<<"(y)按英语查询排名"<<endl;
cout<<"选择相关操作请输入相对的括号里的阿拉伯数字!"<<endl;
char p;char w;
stu *s[50];
ofstream *file[50];
int i=0;
int j=0;
bool flag2=0;
do
{
cin>>p;
if((p>='0'&&p<='10'))
flag2=1;
else
cout<<"指令错误!请重新输入:"<<endl;
}while(flag2==0);
do{
switch(p)
{
case '0':
{
char c;
char name[20];double math,chinese,english;
do{
cout<<"请输入姓名"<<endl;
cin>>name;
cout<<"请输入数学成绩:"<<endl;
cin>>math;
cout<<"请输入语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入外语成绩:"<<endl;
cin>>english;
file[j]=new ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl;
j++;
s[i]=new stu(name, math, chinese, english);
i++;
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
cin>>c;
flag2=0;
do
{
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
else
flag2=1;
}while(flag2==0);
}while(c=='y');
break;
}
case '4':
{
double t;char c;
do
{
int flag1=0;
cout<<"请输入你要查询学生的总成绩"<<endl;
cin>>t;
for(int q=0;q<i;q++)
{
if(s[q]->getsum()==t)
{
flag1=1;
cout<<"您要查询的学生是:"<<(*s[q]).name<<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 '5':
{
char n[20];int j=0;char c;
do{
int flag=0;
cout<<"请输入你要查询的学生姓名"<<endl;
cin>>n;
for(int j=0;j<i;j++)
{
if(strcmp(n,(*s[j]).name)==0)
{
flag=1;
cout<<"您要查询的学生是:"<<(*s[j]).name<<endl;
cout<<(*s[j]).name<<"的总成绩成绩是"<<(*s[j]).getsum()<<endl<<"平均成绩是:"<<(*s[j]).getaver()<<endl;
}
}
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 '1':
{
char name[20];double math,chinese,english;
char c;
do
{
cout<<"请输入您要增加的学生的姓名:"<<endl;
cin>>name;
cout<<"请输入数学成绩:"<<endl;
cin>>math;
cout<<"请输入语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入外语成绩:"<<endl;
cin>>english;
file[j]=new ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl;
j++;
s[i]=new stu(name, math, chinese, english);
i++;
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '2':
{
char name[20];bool flag3=0;char c;
do{
cout<<"请输入您要删除的学生姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag3=1;
i--;
do{
s[h]=s[h+1];
h++;
}while(h<=i);
}
}
if(flag3==0)
cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!";
cout<<"要继续删除吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '3':
{
char name[20];double mat,chin,eng;flag2=0;
char c;
do
{
cout<<"请输入您要修改的学生的姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag2=1;
cout<<"请输入新的数学成绩:"<<endl;
cin>>mat;
cout<<"请输入新的语文成绩:"<<endl;
cin>>chin;
cout<<"请输入新的外语成绩:"<<endl;
cin>>eng;
s[h]->chinese=chin;
s[h]->math=mat;
s[h]->english=eng;
cout<<"数据修改成功!";
}
}
if(flag2==0)
{
cout<<"您要修改的学生本来就不存在!请检查重新输入!"<<endl;
}
cout<<"想继续修改吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}

case '6':
{
cout<<"本系统所有学生数据如下:"<<endl;
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl;
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<(*s[k]).getsum()
<<"平均分:"<<" "<<(*s[k]).getaver()<<endl;
}
break;
}
case '7':
{
int t;stu b;

cout<<"本系统所以学生排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->getsum())<(s[y]->getsum()))
t=y;
if(t!=x)
{
b=*s[x];
*s[x]=*s[t];
*s[t]=b;
}
}
}
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
break;
}
case '8':
{
int t;stu b;

cout<<"本系统所以学生语文排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->chinese)<(s[y]->chinese))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}

if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
break;
}
case '9':
{
int t;stu b;

cout<<"本系统所以学生数学排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->math)<(s[y]->math))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}

if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
break;
}
case 'y':
{
int t;stu b;

cout<<"本系统所以学生英语排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->english)<(s[y]->english))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}

if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
}
break;
}

cout<<"您想继续进行其他操作吗?(y/n)"<<endl;
bool flag4=0;
do
{
cin>>w;
if(w!='y'&&w!='n')
cout<<"指令错误!请重新输入!"<<endl;
else
flag4=1;
}while(flag4==0);
if(w=='y')
cout<<"请输入操作代码(0 录入/4 按总分查询/5 按姓名查询/1 增加人员/2 删除人员/3 修改数据/6 显示所有成员数据/7 按总分排名/8 按语文排名/9按数学排名/y按英语排名)"<<endl;
cin>>p;
}while(w=='y');
for(int x=0;x<i;x++)
{
delete s[x];
cout<<"delete all members!"<<endl;
} 要不然#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
FILE *fp;

struct record
{
char num[20];
char name[20];
char classes[20];
char sex[10];
char chinese[520];
char maths[520];
char english[520];
}student[500];

int n;//外部变量n为文件中的纪录数
void save();//保存函数 即写入文件
void mainmemu();//主菜单
void amend();//修改文件
void del();//删除菜单
void delall();//删除全部函数
void delone();//个别删除菜单
void search();
void add();

int main(int argc, char* argv[])
{
save();
while (1)
mainmemu();
return 1;
}

void mainmemu()//主菜单
{
int choice;
system ("cls");
printf ("\n\t\t******************学生信息管理系统****************");
printf ("\n\t\t* *");
printf ("\n\t\t* 1.添加学生信息 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 2.修改学生信息 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 3.删除学生信息 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 4.查询学生信息 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 5.保存 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 6.退出 *");
printf ("\n\t\t**************************************************");
printf ("\n\n\t请输入数字进入对应菜单:");
getch ();
choice=getch ();
switch(choice)
{
case '1': add();break;
case '2': amend();break;
case '3': del(); break;
case '4': search();break;
case '5': save();break;
case '6': exit(0);break;
default : mainmemu();
}
}
void save ()
{
if ((fp=fopen("student.bin","rb"))==NULL)
{
printf ("\n\t\t学生信息文件不存在");
if ((fp=fopen("student.bin","wb"))==NULL)
{
printf ("\n\t\t建立文件失败");
exit (0);
}
else
{
printf ("\n\t\t学生信息文件已经建立");
printf ("\n\t\t请按任意键进入主菜单:");
getch ();
return ;
}
exit (0);
}
fseek (fp,0,2);//文件位置指针移动到文件末尾
if (ftell (fp)>0)//文件不为空
{
rewind (fp);//文件位置指针移动到文件开始位置
for (n=0;!feof(fp)&&fread(&student[n],sizeof (struct record),1,fp);n++);
printf ("\n\t\t文件导入成功 ");
printf ("\n\t\t请按任意键返回主菜单");
getch ();
return;
}
printf ("\n\t\t文件导入成功");
printf ("\n\t\t学生信息文件中无任何记录");
printf ("\n\t\t请按任意键返回主菜单");
getch ();
return;
}

void amend ()//修改函数 输入学生学号删除 再添加
{

char c;
del ();
printf ("是否添加新信息? (Y/N)");
getch ();
c=getch();
if (c=='y'||c=='Y')
add();
else
return ;
}

void del() //删除菜单
{
int z;
system("cls");
printf("\n\t\t******************删除菜单******************");
printf("\n\t\t*****************1.删除全部*****************");
printf("\n\t\t*****************2.删除个别*****************");
printf("\n\t\t********************************************");
getch ();
z=getch ();
switch(z)
{
case '1': delall(); break;
case '2':delone();break;
default : mainmemu();
}
}

void delall()//删除所有
{
char q;
printf("\n\t\t确认删除所有记录?(y/n)");
getch();
q=getch();
if(q=='y'||q=='Y')
{
fclose (fp);
if((fp=fopen("student.bin","wb"))==NULL)
{
printf ("\n\t\t不能打开文件,删除失败");
save();
}
n=0;
printf ("\n\t\t记录已删除,按任意键返回主菜单");
getch ();
return ;
}
else
return ;
}

void delone()//个别删除
{
char mingzi[20];
int u;
printf ("请输入要删除学生姓名:");
scanf ("%S",mingzi);
for (u=0;u<n;u++)
{
if(strcmp(mingzi,student[u].name)) del();
}
}
void search()
{
char mingzi[20];
int u;
printf ("请输入要查询学生姓名:");
scanf ("%S",mingzi);
for (u=0;u<n;u++)
{
if(strcmp(mingzi,student[u].name))
{
printf ("\n学号:%s",student[n].num);
printf ("\n姓名:%s",student[n].name);
printf ("\n班级:%s",student[n].classes);
printf ("\n性别:%s",student[n].sex);
printf ("\n语文成绩:%s",student[n].chinese);
printf ("\n数学成绩:%s",student[n].maths);
printf ("\n英语成绩:%s",student[n].english);
}
}
return;
}
void add()//添加函数
{
system("CLS");
printf ("\n\t\t\t**********请输入学生信息********");
printf ("\n请输入学号:");
scanf ("%s",student[n].num);
printf ("\n请输入姓名:");
scanf ("%s",student[n].name);
printf ("\n请输入班级:");
scanf ("%s",student[n].classes);
printf ("\n请输入性别:");
scanf ("%s",student[n].sex);
printf ("\n请输入语文成绩:");
scanf ("%s",student[n].chinese);
printf ("\n请输入数学成绩:");
scanf ("%s",student[n].maths);
printf ("\n请输入英语成绩:");
scanf ("%s",student[n].english);
n++;
printf("\n\t\t是否继续添加?(Y/N):");
if (getch()=='y'||getch()=='Y')
add();
return;
} 是
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-17
#include<iostream.h>
#include<string.h>
#include<fstream.h>
class stu
{
char name[20];
double math,chinese,english,average,sum;
public:
stu()
{
}
stu(char n[20],double ma,double chin,double eng)
{
strcpy(name,n);
math=ma;
chinese=chin;
english=eng;
}
double getsum()
{
sum=chinese+english+math;
return sum;
}
double getaver()
{
average=getsum()/3;
return average;
}
friend void main();
};

void main()
{
cout<<"请选择您需要的操作!"<<endl;
cout<<"操作:"<<endl;
cout<<"(0)数据录入"<<endl;
cout<<"(1)增加人员"<<endl;
cout<<"(2)删除人员"<<endl;
cout<<"(3)修改数据"<<endl;
cout<<"查询:"<<endl;
cout<<"(4)按总成绩查询"<<endl;
cout<<"(5)按姓名查询"<<endl;
cout<<"(6)输出所有学生的数据"<<endl;
cout<<"成绩名词"<<endl;
cout<<"(7)按总分查询排名"<<endl;
cout<<"(8)按语文查询排名"<<endl;
cout<<"(9)按数学查询排名"<<endl;
cout<<"(y)按英语查询排名"<<endl;
cout<<"选择相关操作请输入相对的括号里的阿拉伯数字!"<<endl;
char p;char w;
stu *s[50];
ofstream *file[50];
int i=0;
int j=0;
bool flag2=0;
do
{
cin>>p;
if((p>='0'&&p<='10'))
flag2=1;
else
cout<<"指令错误!请重新输入:"<<endl;
}while(flag2==0);
do{
switch(p)
{
case '0':
{
char c;
char name[20];double math,chinese,english;
do{
cout<<"请输入姓名"<<endl;
cin>>name;
cout<<"请输入数学成绩:"<<endl;
cin>>math;
cout<<"请输入语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入外语成绩:"<<endl;
cin>>english;
file[j]=new ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl;
j++;
s[i]=new stu(name, math, chinese, english);
i++;
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
cin>>c;
flag2=0;
do
{
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
else
flag2=1;
}while(flag2==0);
}while(c=='y');
break;
}
case '4':
{
double t;char c;
do
{
int flag1=0;
cout<<"请输入你要查询学生的总成绩"<<endl;
cin>>t;
for(int q=0;q<i;q++)
{
if(s[q]->getsum()==t)
{
flag1=1;
cout<<"您要查询的学生是:"<<(*s[q]).name<<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 '5':
{
char n[20];int j=0;char c;
do{
int flag=0;
cout<<"请输入你要查询的学生姓名"<<endl;
cin>>n;
for(int j=0;j<i;j++)
{
if(strcmp(n,(*s[j]).name)==0)
{
flag=1;
cout<<"您要查询的学生是:"<<(*s[j]).name<<endl;
cout<<(*s[j]).name<<"的总成绩成绩是"<<(*s[j]).getsum()<<endl<<"平均成绩是:"<<(*s[j]).getaver()<<endl;
}
}
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 '1':
{
char name[20];double math,chinese,english;
char c;
do
{
cout<<"请输入您要增加的学生的姓名:"<<endl;
cin>>name;
cout<<"请输入数学成绩:"<<endl;
cin>>math;
cout<<"请输入语文成绩:"<<endl;
cin>>chinese;
cout<<"请输入外语成绩:"<<endl;
cin>>english;
file[j]=new ofstream("d:\\document",ios::ate);
*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl;
j++;
s[i]=new stu(name, math, chinese, english);
i++;
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '2':
{
char name[20];bool flag3=0;char c;
do{
cout<<"请输入您要删除的学生姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag3=1;
i--;
do{
s[h]=s[h+1];
h++;
}while(h<=i);
}
}
if(flag3==0)
cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!";
cout<<"要继续删除吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '3':
{
char name[20];double mat,chin,eng;flag2=0;
char c;
do
{
cout<<"请输入您要修改的学生的姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag2=1;
cout<<"请输入新的数学成绩:"<<endl;
cin>>mat;
cout<<"请输入新的语文成绩:"<<endl;
cin>>chin;
cout<<"请输入新的外语成绩:"<<endl;
cin>>eng;
s[h]->chinese=chin;
s[h]->math=mat;
s[h]->english=eng;
cout<<"数据修改成功!";
}
}
if(flag2==0)
{
cout<<"您要修改的学生本来就不存在!请检查重新输入!"<<endl;
}
cout<<"想继续修改吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}

case '6':
{
cout<<"本系统所有学生数据如下:"<<endl;
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl;
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<(*s[k]).getsum()
<<"平均分:"<<" "<<(*s[k]).getaver()<<endl;
}
break;
}
case '7':
{
int t;stu b;

cout<<"本系统所以学生排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->getsum())<(s[y]->getsum()))
t=y;
if(t!=x)
{
b=*s[x];
*s[x]=*s[t];
*s[t]=b;
}
}
}
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
break;
}
case '8':
{
int t;stu b;

cout<<"本系统所以学生语文排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->chinese)<(s[y]->chinese))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}

if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
break;
}
case '9':
{
int t;stu b;

cout<<"本系统所以学生数学排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->math)<(s[y]->math))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}

if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
break;
}
case 'y':
{
int t;stu b;

cout<<"本系统所以学生英语排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->english)<(s[y]->english))
t=y;
if(t!=x)
{
b=*s[t];
*s[t]=*s[x];
*s[x]=b;
}
}
}

if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
"语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
<<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
<<"平均分:"<<" "<<s[k]->getaver()<<endl;
}
}
break;
}

cout<<"您想继续进行其他操作吗?(y/n)"<<endl;
bool flag4=0;
do
{
cin>>w;
if(w!='y'&&w!='n')
cout<<"指令错误!请重新输入!"<<endl;
else
flag4=1;
}while(flag4==0);
if(w=='y')
cout<<"请输入操作代码(0 录入/4 按总分查询/5 按姓名查询/1 增加人员/2 删除人员/3 修改数据/6 显示所有成员数据/7 按总分排名/8 按语文排名/9按数学排名/y按英语排名)"<<endl;
cin>>p;
}while(w=='y');
for(int x=0;x<i;x++)
{
delete s[x];
cout<<"delete all members!"<<endl;
}

}本回答被提问者采纳
第2个回答  2008-11-19
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
FILE *fp;

struct record
{
char num[20];
char name[20];
char classes[20];
char sex[10];
char chinese[520];
char maths[520];
char english[520];
}student[500];

int n;//外部变量n为文件中的纪录数
void save();//保存函数 即写入文件
void mainmemu();//主菜单
void amend();//修改文件
void del();//删除菜单
void delall();//删除全部函数
void delone();//个别删除菜单
void search();
void add();

int main(int argc, char* argv[])
{
save();
while (1)
mainmemu();
return 1;
}

void mainmemu()//主菜单
{
int choice;
system ("cls");
printf ("\n\t\t******************学生信息管理系统****************");
printf ("\n\t\t* *");
printf ("\n\t\t* 1.添加学生信息 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 2.修改学生信息 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 3.删除学生信息 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 4.查询学生信息 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 5.保存 *");
printf ("\n\t\t* *");
printf ("\n\t\t* 6.退出 *");
printf ("\n\t\t**************************************************");
printf ("\n\n\t请输入数字进入对应菜单:");
getch ();
choice=getch ();
switch(choice)
{
case '1': add();break;
case '2': amend();break;
case '3': del(); break;
case '4': search();break;
case '5': save();break;
case '6': exit(0);break;
default : mainmemu();
}
}
void save ()
{
if ((fp=fopen("student.bin","rb"))==NULL)
{
printf ("\n\t\t学生信息文件不存在");
if ((fp=fopen("student.bin","wb"))==NULL)
{
printf ("\n\t\t建立文件失败");
exit (0);
}
else
{
printf ("\n\t\t学生信息文件已经建立");
printf ("\n\t\t请按任意键进入主菜单:");
getch ();
return ;
}
exit (0);
}
fseek (fp,0,2);//文件位置指针移动到文件末尾
if (ftell (fp)>0)//文件不为空
{
rewind (fp);//文件位置指针移动到文件开始位置
for (n=0;!feof(fp)&&fread(&student[n],sizeof (struct record),1,fp);n++);
printf ("\n\t\t文件导入成功 ");
printf ("\n\t\t请按任意键返回主菜单");
getch ();
return;
}
printf ("\n\t\t文件导入成功");
printf ("\n\t\t学生信息文件中无任何记录");
printf ("\n\t\t请按任意键返回主菜单");
getch ();
return;
}

void amend ()//修改函数 输入学生学号删除 再添加
{

char c;
del ();
printf ("是否添加新信息? (Y/N)");
getch ();
c=getch();
if (c=='y'||c=='Y')
add();
else
return ;
}

void del() //删除菜单
{
int z;
system("cls");
printf("\n\t\t******************删除菜单******************");
printf("\n\t\t*****************1.删除全部*****************");
printf("\n\t\t*****************2.删除个别*****************");
printf("\n\t\t********************************************");
getch ();
z=getch ();
switch(z)
{
case '1': delall(); break;
case '2':delone();break;
default : mainmemu();
}
}

void delall()//删除所有
{
char q;
printf("\n\t\t确认删除所有记录?(y/n)");
getch();
q=getch();
if(q=='y'||q=='Y')
{
fclose (fp);
if((fp=fopen("student.bin","wb"))==NULL)
{
printf ("\n\t\t不能打开文件,删除失败");
save();
}
n=0;
printf ("\n\t\t记录已删除,按任意键返回主菜单");
getch ();
return ;
}
else
return ;
}

void delone()//个别删除
{
char mingzi[20];
int u;
printf ("请输入要删除学生姓名:");
scanf ("%S",mingzi);
for (u=0;u<n;u++)
{
if(strcmp(mingzi,student[u].name)) del();
}
}
void search()
{
char mingzi[20];
int u;
printf ("请输入要查询学生姓名:");
scanf ("%S",mingzi);
for (u=0;u<n;u++)
{
if(strcmp(mingzi,student[u].name))
{
printf ("\n学号:%s",student[n].num);
printf ("\n姓名:%s",student[n].name);
printf ("\n班级:%s",student[n].classes);
printf ("\n性别:%s",student[n].sex);
printf ("\n语文成绩:%s",student[n].chinese);
printf ("\n数学成绩:%s",student[n].maths);
printf ("\n英语成绩:%s",student[n].english);
}
}
return;
}
void add()//添加函数
{
system("CLS");
printf ("\n\t\t\t**********请输入学生信息********");
printf ("\n请输入学号:");
scanf ("%s",student[n].num);
printf ("\n请输入姓名:");
scanf ("%s",student[n].name);
printf ("\n请输入班级:");
scanf ("%s",student[n].classes);
printf ("\n请输入性别:");
scanf ("%s",student[n].sex);
printf ("\n请输入语文成绩:");
scanf ("%s",student[n].chinese);
printf ("\n请输入数学成绩:");
scanf ("%s",student[n].maths);
printf ("\n请输入英语成绩:");
scanf ("%s",student[n].english);
n++;
printf("\n\t\t是否继续添加?(Y/N):");
if (getch()=='y'||getch()=='Y')
add();
return;
}
第3个回答  2008-11-17
运行一下试试吧,真的可以运行耶。

#include <stdio.h>

int main()
{

printf( "(1)查找某个学生的数据;\n"
"(2)删除某个学生的数据;\n"
"(3)插入某个学生的数据;\n"
"(4)对学生数据库进行排序;\n");
getchar();
return 0;
}
第4个回答  2008-11-17
文档形式的C?包含文件打开关闭对吧?
准备用链表实现?
相似回答