【C语言】用定义结构类型的方法,编写程序建立一个具有学生学号、姓名、总分和联系电话的记录文件。编写程序从键盘上输入学号可以查到此人的其他信息。
1.用定义结构类型的方法,编写程序建立一个具有学生学号、姓名、总分和联系电话的记录文件。
2.编写程序从键盘上输入学号可以查到此人的其他信息。
第一部分代码(向文件中添加数据)
1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 5 4 struct student 5 { 6 int num; 7 char name[10]; 8 float score; 9 char tel[20]; 10 }stu[N]; 11 int main ( ) 12 { FILE *fp; 13 int i; 14 if ( ( fp = fopen ( "C:\\Users\\root\\Desktop\\students2.dat", "wb+" ) ) == NULL ) 15 { 16 printf ( "Open file error!" ); 17 exit(0); 18 } 19 printf ( "input data:\n" ); 20 for (i=0; i<N;i++) 21 scanf ("%d %s %f %s", &stu[i].num,stu[i].name,&stu[i].score,&stu[i].tel); 22 fwrite(&stu[0], sizeof ( struct student ),N,fp); 23 fclose(fp); 24 return 0; 25 }
第二部分代码(搜索)
1 #include <stdio.h> 2 #include <stdlib.h> 3 #define N 5 4 struct student 5 { 6 int num; 7 char name[10]; 8 float score; 9 char tel[20]; 10 }stu[N]; 11 int main ( ) 12 { FILE *fp; 13 int i,stunum,temp=0; 14 if ( ( fp = fopen ( "C:\\Users\\root\\Desktop\\students2.dat", "rb" ) ) == NULL ) 15 { 16 printf ( "Open file error!" ); 17 exit(0); 18 } 19 printf("请输入要查询的学号:\n"); 20 scanf ("%d",&stunum); 21 for(i=0;i<N;i++){ 22 fread(&stu[i],sizeof(struct student),1,fp); 23 if(stu[i].num==stunum) 24 { 25 temp=1; 26 printf("学号\t姓名\t成绩\t电话\n"); 27 printf("%d\t%s\t%.2f\t%s\n",stu[i].num,stu[i].name,stu[i].score,stu[i].tel); 28 } 29 } 30 if(temp!=1) 31 printf("Not Found!\n"); 32 fclose(fp); 33 return 0; 34 }
运行结果
第一部分:
第二部分: