int entry() /*新成绩录入函数*/
{
int i,c;
char s1,s2;
float avg;
FILE *fp;
if((fp=fopen("data.txt","a"))==NULL) /*打开数据文件*/
{
printf("打开数据文件错误。\n程序将在任意键后退出。\n");
system("pause");
exit(0);
}
system("cls");
s1='y';
while(s1=='y') /*录入信息*/
{
printf("请输入学生姓名,回车结束。\n");
fflush(stdin);
gets(stu[0].name);
printf("请输入学生学号,回车结束。\n");
scanf("%d",&stu[0].num);
avg=0.0;
for(i=0;i<5;i++)
{
printf("请输入该学生科目%d的成绩。\n",i+1);
scanf("%f",&stu[0].score[i]);
}
s2='n';
while(s2=='n') /*检查是否输入正确*/
{
printf("您输入为:\n姓名:%s ;学号:%d ;",stu[0].name,stu[0].num);
printf("\n");
for(i=0;i<5;i++)
printf("科目%d:%.1f ;",i+1,stu[0].score[i]);
printf("\n是否正确?[y/n]:");
fflush(stdin);
scanf("%c",&s2);
if(s2=='y') /*录入正确,保存文件*/
{
fprintf(fp,"%s\t%d\t",stu[0].name,stu[0].num);
for(i=0;i<5;i++)
{
fprintf(fp,"%.1f\t",stu[0].score[i]);
avg+=stu[0].score[i];
}
avg=avg/5;
fprintf(fp,"%.1f\n",avg);
}
else /*录入有误,修改选项*/
{
printf("------------------------------------------------------------\n");
printf("7、更改姓名。\n8、更改学号。\n1、更改科目1成绩。\n2、更改科目2成绩。\n3、更改科目3成绩。\n4、更改科目4成绩。\n5、更改科目5成绩。\n按回车结束。\n");
printf("------------------------------------------------------------\n");
scanf("%d",&c);
switch(c)
{
case 7: {printf("请输入姓名,回车结束:\n"); fflush(stdin); gets(stu[0].name);break;}
case 8: {printf("请输入学号,回车结束:\n"); scanf("%d",&stu[0].num);break;}
case 1: {printf("请输入科目1成绩,回车结束:\n"); scanf("%f",&stu[0].score[0]);break;}
case 2: {printf("请输入科目2成绩,回车结束:\n"); scanf("%f",&stu[0].score[1]);break;}
case 3: {printf("请输入科目3成绩,回车结束:\n"); scanf("%f",&stu[0].score[2]);break;}
case 4: {printf("请输入科目4成绩,回车结束:\n"); scanf("%f",&stu[0].score[3]);break;}
case 5: {printf("请输入科目5成绩,回车结束:\n"); scanf("%f",&stu[0].score[4]);break;}
default: ;
}
}
}
printf("是否继续录入?[y/n]:");
fflush(stdin);
scanf("%c",&s1);
}
fclose(fp);
return 0;
}