
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct score
{
int num;
char name[20];
float results1;
float results2;
float results3;
float sum;
}list[20];
int main()
{
FILE *fp;
char str[100],temp[5][20];
int i=0,flag,num;
if((fp=fopen("score.txt","r"))==NULL)
printf("打开文件出错");
while(1)
{
if(fgets(str,100,fp)==NULL)
{
printf("读取文件出错");
break;
}
sscanf(str,"%s\t%s\t%s\t%s\t%s\t%s",temp[0],list[i].name,temp[1],temp[2],temp[3],temp[4]);
list[i].num=atoi(temp[0]);
list[i].results1=atof(temp[1]);
list[i].results2=atof(temp[2]);
list[i].results3=atof(temp[3]);
list[i].sum=atof(temp[4]);
//printf("num=%d,name=%s,results1=%f,results2=%f,results3=%f,sum=%f\n",list[i].num,list[i].name,list[i].results1,list[i].results2,list[i].results3,list[i].sum);
i++;
}
num=i;
printf("请选择查询类型:(0.学号查询,1.姓名查询)");
scanf("%d",&flag);
if(flag==0)
{
printf("请输入所查学号:");
scanf("%d",&flag);
for(i=0;i<num;i++)
{
if(flag==list[i].num)
break;
}
if(i<num)
printf("该学生信息为:num=%d,name=%s,results1=%f,results2=%f,results3=%f,sum=%f\n",list[i].num,list[i].name,list[i].results1,list[i].results2,list[i].results3,list[i].sum);
else
printf("无此学生信息!\n");
}
else
{
printf("请输入所查学生姓名:");
scanf("%s",str);
for(i=0;i<num;i++)
{
if(memcmp(str,list[i].name,strlen(list[i].name))==0)
break;
}
if(i<num)
printf("该学生信息为:num=%d,name=%s,results1=%f,results2=%f,results3=%f,sum=%f\n",list[i].num,list[i].name,list[i].results1,list[i].results2,list[i].results3,list[i].sum);
else
printf("无此学生信息!\n");
}
system("pause");
return 0;
}