程序代码:
#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; }