回复 7楼 神机军师
#include<stdio.h>#include<string.h>
#include<stdlib.h>
#define N 50
typedef struct student/*结构体的定义*/
{
char num[50];
char name[50];
int score[50][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,k,m,n=0;
char cha[]="-1";
if((fp=fopen("E:\\学生信息\\学生信息表.txt","w+"))==NULL)
{
printf("此文件不存在\n");
getch();
exit(1);
}
fprintf(fp,"学号 姓名 数学 语文 英语 C语言 总分 平均值\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 %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," %d ",a[i].score[j]);
}
fprintf(fp,"%d",a[i].sum);
a[i].aver=(float)a[i].sum/i;
fprintf(fp," %f ",a[i].aver);
fprintf(fp,"\n");
}
fclose(fp);
if((fp=fopen("E:\\学生信息\\学生信息表.txt","r"))==NULL)
{
printf("此文件不存在\n");
getch();
exit(1);
}
while(n<i)
{
fscanf(fp,"%s %s %d %d %d %d %d %f",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);
printf("%d\n",i);
return(i);
}
void main()
{
STU a[50];/*学生的人数*/
int stu_score;/*学生的实际人数*/
int n;
while(1)
{
MainMenu();
printf("\t\t\t请输入0--10,并按回车:__\n");
scanf("%d",&n);
switch(n)
{
case 1:stu_score=Shuru(a);break;
}
}
}那你就在帮忙看一下这个吧!!谢谢了!!文件中几率的成绩不对,我感觉显示也不对吧!!!