我找了一下 还有四个错找不出来
#include<stdio.h>
#include<stdlib.h>
#define N 8
int geshu=0;//个数
struct xuesheng
{
int num,gainum;//第2个是用来改学号的
char name[15],gaixingming[15];//不会改字符串
int chengji1;
int cj2;
int cj3;
int cj4;
int Class;
int avg;
int sum;
int gaiavg;
int gaisum;
}stu[N],*p=stu;
void xianshi()
{
int i;
if(geshu>=0)//至少有1个学生
{
printf("全部学生信息以下:\n");
printf("学号\t姓名\t平均成绩\t总成绩\n");
for(i=0;i<geshu;i++)
{ printf("%d\t%d\t%d\n",stu.num,stu.avg,stu.sum);
puts(stu.name);}
//输出结构里定义的数据
}
}
extern "C" void chazhao()
{
int i,zhao;
printf("请输入查找的学号\n");
scanf("%d",&zhao);
printf("学号\t姓名\t平均成绩\t总分\n");
for(i=0;i<geshu;i++)
{
if(stu.num=zhao)//要是有的话就显示出来
{
printf("%d\t%d\t%d",stu.num,stu.avg,stu.sum);
puts(stu.name);
}
}
}
extern "C" void paixu()
{
int i;
int a,b;
struct xuesheng zhong;
for(a=0;a<geshu;a++)
{
for(b=0;b<geshu-a-1;b++)
{
if(stu.avg > stu[b+1].avg)
{
zhong=stu.avg;
stu.avg=stu[b+1];
stu[b+1]=zhong;
}
}
}//先排序好
if(geshu>0)//要是有1个以上
{
printf("学号\t姓名\t平均成绩 \n");
for(i=0;i<geshu;i++)
{
printf("%d\t%s\t%d\n",stu.num,stu.name,stu.avg,stu.sum);
}
}//就输出
else
{ printf("没有学生信息!\n"); }
}
extern "C" void tianjia()
{
int i;
char shu;
do
{ printf("请输入学生信息\n");
do
{
printf("学号:");
scanf("%d",&stu[geshu].num); fflush(stdin);
for(i=0;i<geshu;i++)
{
if((p+i)->num==stu[geshu].num) { printf("该学生以重复\n");break; }
}//一个个检查,要是学号等于以输入的学号就输出,已经有了
}while(i<geshu);
printf("姓名:");
gets(stu[geshu].name);
fflush(stdin);
printf("语文成绩:");
scanf("%d",&stu[geshu].chengji1);
printf("数学成绩:");
scanf("%d",&stu[geshu].cj2);
printf("英语成绩:");
scanf("英语成绩:");
printf("计算机成绩:");
scanf("计算机成绩:");
scanf("%d",&stu[geshu].cj3);//输入各个成绩
stu[geshu].avg=(stu[geshu].chengji1+stu[geshu].cj2+stu[geshu].cj3)/3;
if( (stu[geshu].chengji1>100||stu[geshu].chengji1<0)||
(stu[geshu].cj2>100||stu[geshu].cj2<0)||
(stu[geshu].cj3>100||stu[geshu].cj3<0)||
(stu[geshu].cj4>100||stu[geshu].cj4<0))
{ printf("错误,请输入0-100分数\n"); tianjia();}//不能大于100和小于0
printf("是否继续输入(y/n):");
fflush(stdin);
shu=getchar();
geshu++;
}while(shu=='y'||shu=='Y');//条件为真时,继续执行
}
extern "C" void chacha()
{
int i;
char shu;
do
{
do
{
printf("学号:");
scanf("%d",&stu[geshu].num); fflush(stdin);
for(i=0;i<geshu;i++)
{
if((p+i)->num==stu[geshu].num) { printf("该学生以存在\n");break; }
}
}while(i<geshu);
printf("姓名:");
gets(stu[geshu].name);
fflush(stdin);
printf("语文成绩:");
scanf("%d",&stu[geshu].chengji1);
printf("数学成绩:");
scanf("%d",&stu[geshu].cj2);
printf("英语成绩:");
scanf("%d",&stu[geshu].cj3);
printf("计算机成绩:");
scanf("%d",&stu[geshu].cj4);
stu[geshu].sum=stu[geshu].chengji1+stu[geshu].cj2+stu[geshu].cj3+stu[geshu].cj4;
stu[geshu].avg=stu[geshu].sum\4;
if( (stu[geshu].chengji1>100||stu[geshu].chengji1<0)||
(stu[geshu].cj2>100||stu[geshu].cj2<0)||
(stu[geshu].cj3>100||stu[geshu].cj3<0)||
(stu[geshu].cj4>100||stu[geshu].cj4<0))
{ printf("错误,请输入0-100分数\n"); tianjia();}
printf("是否继续输入(y/n):");
fflush(stdin);
shu=getchar();
geshu++;
}while(shu=='y'||shu=='Y');
}//跟添加函数差不多
void charu()
{
int i;
int n;
printf("输入学生学号:");
scanf("%d", &n);
for(i=0;i<geshu;i++)
{
if(n==stu.num)
break;
}
if(i<geshu)
{
printf("该学生以存在\n");
}
else
{
chacha();//调用添加函数
}
}
void xiugai()
{
int ss,i;
printf("输入旧的学号:\n");
scanf("%d",&ss);
for(i=0;i<geshu;i++)
{
if(stu.num==ss)
{break;}
}
if(i<geshu)
{printf("第%d位旧学生信息:\n",i+1);
printf("%d\t%s\t%d\n",stu.num,stu.name,stu.avg,stu.sum);
printf("输入新的学号:");scanf("%d",&stu.gainum);
stu.num=stu.gainum;
stu.sum=stu.gaisum;
printf("输入新的平均成绩:");scanf("%d",&stu.gaiavg);
stu.avg=stu.gaiavg;
printf("输入新的总成绩:");
scanf("%d",&stu.gaiavg);
stu.sum=stu.gaisum;
}
}
void shanchu()
{
int i,j,shu;
printf("输入要册除的学号:");
scanf("%d",&shu);
for(i=0;i<geshu;i++)
{
if(shu==stu.num)
{
break;
}
}//要是有这个学生就开始删除
if(i<geshu)
{
for(j=i;j<geshu-1;j++)
stu=stu[i+1];
printf("\n成功册除%d学号学生的信息\n",shu);
printf("\n学号\t姓名\t语文成绩\t数学成绩\t英语成绩\t计算机成绩\t平均成绩\t总分\n");
printf("\n%d\t%s\t%d\t%d\t%d\t%d\t%d\t%d\n",stu.num,
stu.name,stu.chengji1,stu.cj2,stu.cj3,stu.cj4,stu.avg,stu.sum);
geshu=geshu-1;
}
else
printf("\n不存在该学生信息\n");
}
void jiemian()
{
printf("1:添加学生信息\n");
printf("2:显示学生信息\n");
printf("3:返回系统界面\n");
printf("4:查找学生信息\n");
printf("5:插入学生信息\n");
printf("6:删除学生信息\n");
printf("7:修改学生信息\n");
printf("0:退出\n");
}//界面
void main()
{
int shu;
system("cls");
jiemian();
do
{
printf("\n请输入功能键:");
scanf("%d",&shu);
if(shu>=1 && shu<=7)
{switch(shu)
{case 1:tianjia();break;
case 2:xianshi();paixu();break;
case 3:system("cls");jiemian();break;
case 4:chazhao();break;
case 5:charu();break;
case 6:shanchu();break;
case 7:xiugai();break;
case 0:exit(0);break;}
}
else
{printf("错误,请输入1-3的数字功能\n");}
}while(shu!=0);//功能表
}
[ 本帖最后由 liuxun1977 于 2009-5-25 13:53 编辑 ]