怎么把下面這個改成以檔案形式儲存學生資訊和三科成績,并且可以在檔案中增添,查找,洗掉,改動和讀寫等操作
#include <stdio.h> #include <string.h> #include <stdlib.h> #define N 50 char name[N][10]; int score[N][3]; int n; void menu()//選單 { printf("1 添加一個學生成績\n2 顯示所有學生成績\n3 按姓名查詢一個學生成績\n"); printf("4 按總分從高到低排序\n5 按姓名洗掉一個學生成績\n6 退出系統\n"); } void add()//添加一名學生成績 { printf("請輸入學生姓名:\n"); scanf("%s",&name[n]); printf("請輸入語文成績:\n"); scanf("%d",&score[n][0]); printf("請輸入數學成績:\n"); scanf("%d",&score[n][1]); printf("請輸入英語成績:\n"); scanf("%d",&score[n][2]); n++; } void search()//查詢 { char a[10]; int i,b=0,j; printf("請輸入需要查詢的人名\n"); scanf("%s",a); for(i=0;i<n;i++) if(strcmp(name[i],a)==0) { printf("%s\t%s\t%s\t%s\n","姓名","語文","數學","c語言"); printf("%s\t%d\t%d\t%d\n",name[i],score[i][0],score[i][1],score[i][2]); b=1; } if(b==0) printf("查無此人\n"); } void del()//洗掉 { char a[10]; int i,n,j,k; printf("請輸入需要洗掉的人名\n"); fflush(stdin); scanf("%s",a); for(i=0;i<n-k;i++); if(strcmp(name[i],a)==0); {k++; for(j=1;j<n-k;j++) strcpy(name[j],name[j+1]); score[j][0]=score[j+1][0]; score[j][1]=score[j+1][1]; score[j][2]=score[j+1][2]; printf("洗掉成功"); i--; } if(k==0) printf("查無此人"); } void show()//顯示所有 { int i; printf("%s\t%s\t%s\t%s\n","姓名","語文","數學","英語"); for(i=0;i<n;i++) printf("%s\t%d\t%d\t%d\n",name[i],score[i][0],score[i][1],score[i][2]); } void sort()// 排序 { } int main(int argc, char *argv[]) { int choice; menu(); while(1) { printf("請輸入你的選擇:"); scanf("%d",&choice); switch(choice) { case 1:add();break; case 2:show();break; case 3:search();break; case 4:sort();break; case 5:del();break; case 6:exit(0); } } return 0; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/30803.html
標籤:基礎類
