再帮忙看一下吧!!!谢谢
#include<stdio.h>#include<string.h>
#include<stdlib.h>
#define N 50
typedef struct student/*结构体的定义*/
{
char num[10];
char name[20];
int score[4];
int sum;
float aver;
}STU;
void MainMenu()
{
printf("\t**********************菜单*************************************\n");
printf("\t\t\t学生信息管理系统\n");
printf("\t按1键:读入学生档案-----------------------按6键:学科及格概率---\n");
printf("\t按2键:按照姓名查询-----------------------按7键:学生档案排序---\n");
printf("\t按3键:按照学号查询-----------------------按8键:保存学生档案---\n");
printf("\t按4键:添加学生档案-----------------------按9键:查看学生档案---\n");
printf("\t按5键:删除学生档案-----------------------按10键: 各科平均值---\n");
printf("\t按0键:退出管理系统\n");
printf("\t****************************************************************\n");
}
int Shuru(STU a[])/*学生信息的输入*/
{
FILE *fp;
int i,j,m,n=0;
char cha[]="-1";
if((fp=fopen("E:\\学生信息\\学生信息表.txt","w+"))==NULL)
{
printf("此文件不存在\n");
getch();
exit(1);
}
fprintf(fp,"学号\t\t姓名\t\t数学\t\t语文\t\t英语\t\tC语言\t\t总分\t\t平均值\n");
for(i=0;i<N;i++)
{
printf("请输入第%d个学生的学号:\n",i+1);
scanf("%s",a[i].num);
printf("\n");
m=strcmp(cha,a[i].num);
if(m==0)
break;
printf("请输入给该生的姓名:\n");
scanf("%s",a[i].name);
printf("\n");
fprintf(fp,"%s\t\t%s",a[i].num,a[i].name);
printf("数学 语文 英语 C语言\n");
a[i].sum=0;
for(j=0;j<4;j++)
{
scanf("%d",&a[i].score[j]);
a[i].sum=a[i].sum+a[i].score[j];
fprintf(fp,"\t\t%d",a[i].score[j]);
}
fprintf(fp,"\t\t%d",a[i].sum);
a[i].aver=(float)a[i].sum/4;
fprintf(fp,"\t\t%.2f",a[i].aver);
fprintf(fp,"\n");
}
rewind(fp);
while(n<i)
{
fscanf(fp,"%s\t\t%s\t\t%d\t\t%d\t\t%d\t\t%d",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].score[3]);
fscanf(fp,"\n");
n++;
}
fclose(fp);
for(j=0;j<i;j++)
printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%.2f\n",a[j].num,a[j].name,a[j].score[0],a[j].score[1],a[j].score[2],a[j].score[3],a[j].sum,a[j].aver);
printf("学生的实际人数是:%d人\n",i);
return(i);
}
void name_CZ(STU a[],int n)/*姓名查询*/
{
char cha[20];
int i,flag=0;
printf("请输入要查寻的名字:_\n");
scanf("%s",cha);
for(i=0;i<n;i++)
if(strcmp(cha,a[i].name)==0)
{
flag=1;
printf("有此人\n");
printf("学号\t姓名\t数学\t语文\t英语\tC语言\t总分\t平均值\n");
printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%.2f\n",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].score[3],a[i].sum,a[i].aver);
}
if(flag==0)
printf("查无此人\n");
}
void xuehao_CZ(STU a[],int n)/*学号查询*/
{
int i,flag=0;
char cha[10];
printf("输入要查询的学号\n");
scanf("%s",cha);
for(i=0;i<n;i++)
if(strcmp(cha,a[i].num)==0)
{
flag=1;
printf("有此人\n");
printf("学号\t姓名\t数学\t语文\t英语\tC语言\t总分\t平均值\n");
printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%.2f\n",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].score[3],a[i].sum,a[i].aver);
}
if(flag==0)
printf("查无此人\n");
}
void tianjia_DA(STU a[],int n)/*添加档案*/
{
FILE *fp;
int i;
if((fp=fopen("E:\\学生信息\\学生信息表.txt","a+"))==NULL)
{
printf("此文件不存在\n");
getch();
exit(1);
}
printf("请输入学生的学号:\n");
scanf("%s",a[n+1].num);
fprintf(fp,"\n");
printf("请输入学生的姓名:\n");
scanf("%s",a[n+1].name);
printf("\n");
fprintf(fp,"%s\t\t%s",a[n+1].num,a[n+1].name);
printf("数学 语文 英语 C语言\n");
a[n+1].sum=0;
for(i=0;i<4;i++)
{
scanf("%d",&a[n+1].score[i]);
a[n+1].sum=a[n+1].sum+a[n+1].score[i];
fprintf(fp,"\t\t%d",a[n+1].score);
}
a[n+1].aver=(float)a[n+1].sum/4.0;
fprintf(fp,"\t\t%d\t\t%f",a[n+1].sum,a[n+1].aver);
rewind(fp);
while(i>n+1)
{
fscanf(fp,"%s %s %d %d %d %d",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].score[3]);
fscanf(fp,"\n");
i++;
}
fclose(fp);
for(i=0;i<n+1;i++)
printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%.2f\n",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],a[i].score[3],a[i].sum,a[i].aver);
}
void main()
{
STU a[50];/*学生的人数*/
int stu_score;/*学生的实际人数*/
int n;
while(1)
{
getch();
system("CLS");
MainMenu();
printf("\t\t\t请输入0--10,并按回车:__\n");
scanf("%d",&n);
switch(n)
{
case 1:stu_score=Shuru(a);break;
case 2:name_CZ(a,stu_score);break;
case 3:xuehao_CZ(a,stu_score);break;
case 4:tianjia_DA(a,stu_score);break;
}
}
}
输入的地方 ,如果输入的人数多于3个就运行不下去了!!还有存入档案的地方不对!!帮忙看一下吧!!谢谢了!!!!!