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 }
運行結果
第一部分:
第二部分: