c語言學生成績管理系統(可以將學生資訊儲存至txt檔案中)
阿新 • • 發佈:2018-12-14
程式截圖:
標頭檔案說明;
定義全域性變數;
定義、編寫輸入函式;
定義、編寫顯示函式;
定義、編寫修改函式;
定義、編寫查詢函式;
定義、編寫新增函式;
定義、編寫排序函式;
定義、編寫刪除函式;
定義、編寫恢復函式;
原始碼:
#include<stdio.h> #include<stdlib.h> #include<conio.h> #include <string.h> typedef struct student { char num[20]; //學號 char name[20]; //姓名 char sex[5]; //性別 char banji[20]; //班級 float c; //C語言成績 float math; //數學成績 float english; //英語成績 float PE; //體育成績 float politics; //思修成績 float all; //總分 float average; //平均分 }student; student person[200];//定義有1000位學生 int Input() { system("cls"); FILE *fp; int i = 0 ,n = 0; char select; student per[200]; printf("開始輸入請按下y\n"); select = getch(); while(select == 'y'||select == 'Y') { system ("cls"); printf("* * * * * * * * * * * * * * * * * * 學生資料輸入 * * * * * * * * * * * * * * * * * *\n"); printf("請輸入姓名: \n"); scanf("%s",per[i].name); printf("請輸入學號: \n"); scanf("%s",per[i].num); printf("請輸入性別: \n"); scanf("%s",per[i].sex); printf("請輸入班級: \n"); scanf("%s",per[i].banji); printf("請輸入C語言成績:\n"); scanf("%f",&per[i].c); printf("請輸入數學成績: \n"); scanf("%f",&per[i].math); printf("請輸入英語成績: \n"); scanf("%f",&per[i].english); printf("請輸入體育成績: \n"); scanf("%f",&per[i].PE); printf("請輸入思修成績: \n"); scanf("%f",&per[i].politics); per[i].all = per[i].c + per[i].math + per[i].english + per[i].PE + per[i].politics; per[i].average = (per[i].all) / 5; printf("是否繼續新增?(y/n)"); select = getch(); i++; n=n+1; system( "cls "); } fp=fopen("studata.txt","a"); //以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。 if(fp==NULL) { printf("cannot open the files\n"); system("pause"); return -1;//如果檔案出現錯誤返回-1 } for(i=0;i<n;i++) { fprintf(fp,"%s %s %s %s %f %f %f %f %f %f %f\n",per[i].name,per[i].num,per[i].sex,per[i].banji,per[i].c,per[i].math,per[i].english,per[i].PE,per[i].politics,per[i].all,per[i].average); //以2進位制形式寫入檔案中,一次寫入一個數組 } fclose(fp); system("pause"); return 0;//程式正常執行返回0 } int Display() { system("cls"); FILE *fp; int n ; int i = 0; fp = fopen("studata.txt","rb"); if(fp==NULL) { printf("cannot open the files\n"); system("pause"); return -1; } printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"); printf(" 姓名 學號 性別 班級 c語言成績 數學成績 英語成績 體育成績 思修成績 總分 平均分\n"); while(fscanf(fp,"%s%s%s%s%f%f%f%f%f%f%f",person[i].name,person[i].num,person[i].sex,person[i].banji,&person[i].c,&person[i].math,&person[i].english,&person[i].PE,&person[i].politics,&person[i].all,&person[i].average)!=EOF)//開啟儲存的二進位制檔案將其copy到結構體 { printf("%s %s %s %s %f %f %f %f %f %f %f",person[i].name,person[i].num,person[i].sex,person[i].banji,person[i].c,person[i].math,person[i].english,person[i].PE,person[i].politics,person[i].all,person[i].average);//將結構體輸出 printf("\n"); i++; } fclose(fp); system("pause"); printf("您是否返回上一級選單?y/n"); if(getch() == 'y') { return 0; } if(getch() == 'n') { system("cls"); Display(); } return 0; } int Modify() { system("cls"); student person[200];//從棧上修改(因為全域性區寫入的結構體無法改動 先將修改資料寫在棧上 再寫入新的檔案 然後修改檔名 代替舊的檔案) FILE *fp2; int i=0; int n=0; char s[15]; int m; printf("* * * * * * * * * * 請選擇查詢方式 * * * * * * * * * *\n"); printf("* *\n"); printf("* 1.姓名 *\n"); printf("* 2.學號 *\n"); printf("* 3.返回 *\n"); printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"); printf("請輸入你要修改的方式\n"); m = getch(); while(m!=1&&m!=2&&m!=3) { printf("輸入錯誤請重新修改\n"); m = getch(); } if((fp2=fopen("studata.txt","r"))==NULL) //以2進位制方式讀取檔案資訊後進行判斷指標是否指向一個有效檔案 { printf("cannot open the files\n"); system("pause"); return -1; } while(fscanf(fp2,"%s%s%s%s%f%f%f%f%f%f%f",person[i].name,person[i].num,person[i].sex,person[i].banji,&person[i].c,&person[i].math,&person[i].english,&person[i].PE,&person[i].politics,&person[i].all,&person[i].average)!=EOF) { i++; n=n+1; } fclose(fp2) ; if(m==1) { student newp; char s[20]; int i=0; printf("\t請輸入想修改的姓名:"); scanf("\t%s",s); while(strcmp(person[i].name,s)!=0&&i<n) i++;//進行比較 找到所需要的資訊 if(i==n) { printf("\t通訊錄中沒有此人!\n"); return 1; //若通訊錄沒有此人返回錯誤值1 } else{ printf("姓名:\n"); scanf("\t%s",&newp.name); printf("學號:\n"); scanf("\t%s",&newp.num); printf("性別:\n"); scanf("\t%f",&newp.sex); printf("班級:\n"); scanf("\t%f",&newp.banji); printf("c語言:\n"); scanf("\t%f",&newp.c); printf("數學:\n"); scanf("\t%f",&newp.math); printf("英語:\n"); scanf("\t%f",&newp.english); printf("體育:\n"); scanf("\t%f",&newp.PE); printf("思修:\n"); scanf("\t%f",&newp.politics); newp.all = newp.c + newp.english + newp.PE + newp.politics; newp.all = newp.all/5; } FILE *fin,*ftp; fin=fopen("studata.txt","r");//讀開啟原檔案studata.txt ftp=fopen("tmp.txt","w");//寫開啟臨時檔案tmp.txt if(fin==NULL || ftp==NULL){ printf("Open the file failure...\n"); exit(0); } int kk=0; while(kk<n) //從原檔案讀取一行 { if(strcmp(person[kk].name,s)!=0)//檢驗是要刪除的行 { fprintf(fp2,"%s%s%s%s%f%f%f%f%f%f%f",person[i].name,person[i].num,person[i].sex,person[i].banji,person[i].c,person[i].math,person[i].english,person[i].PE,person[i].politics,person[i].all,person[i].average);//不是則將這一行寫入臨時檔案tmp.txt } kk++; } fprintf(ftp,"%s %s %s %s %f %f %f %f %f %f %f\n",newp.name,newp.num,newp.sex,newp.banji,newp.c,newp.math,newp.english,newp.PE,newp.politics,newp.all,newp.average);//不是則將這一行寫入臨時檔案tmp.txt fclose(fin); fclose(ftp); fclose(fp2); remove("studata.txt");//刪除原檔案 rename("tmp.txt","studata.txt");//將臨時檔名改為原檔名 } if(m==2) { student newp1; char s[20]; int i=0; printf("\t請輸入想修改的學號:"); scanf("\t%s",s); while(strcmp(person[i].num,s)!=0&&i<n) i++; //進行比較 找到所需要的資訊 if(i==n) { printf("\t通訊錄中沒有此人!\n"); return 1; } else{ printf("姓名:\n"); scanf("\t%s",&newp1.name); printf("學號:\n"); scanf("\t%s",&newp1.num); printf("性別:\n"); scanf("\t%f",&newp1.sex); printf("班級:\n"); scanf("\t%f",&newp1.banji); printf("c語言:\n"); scanf("\t%f",&newp1.c); printf("數學:\n"); scanf("\t%f",&newp1.math); printf("英語:\n"); scanf("\t%f",&newp1.english); printf("體育:\n"); scanf("\t%f",&newp1.PE); printf("思修:\n"); scanf("\t%f",&newp1.politics); newp1.all = newp1.c + newp1.english + newp1.PE + newp1.politics; newp1.all = newp1.all/5; } FILE *fin,*ftp; fin=fopen("studata.txt","r");//讀開啟原檔案studata.txt ftp=fopen("tmp.txt","w");//寫開啟臨時檔案tmp.txt if(fin==NULL || ftp==NULL){ printf("Open the file failure...\n"); exit(0); } int kk=0; while(kk<n) //從原檔案讀取一行 { if(strcmp(person[kk].num,s)!=0)//(strcmp函式若兩個字串相等返回真值,反之)檢驗是否是刪除的行 { fprintf(fp2,"%s%s%s%s%f%f%f%f%f%f%f",person[i].name,person[i].num,person[i].sex,person[i].banji,person[i].c,person[i].math,person[i].english,person[i].PE,person[i].politics,person[i].all,person[i].average);//不是則將這一行寫入臨時檔案tmp.txt } kk++; } fprintf(ftp,"%s %s %s %s %f %f %f %f %f %f %f\n",newp1.name,newp1.num,newp1.sex,newp1.banji,newp1.c,newp1.math,newp1.english,newp1.PE,newp1.politics,newp1.all,newp1.average);//不是則將這一行寫入臨時檔案tmp.txt fclose(fin); fclose(ftp); fclose(fp2); remove("studata.txt");//刪除原檔案 rename("tmp.txt","studata.txt");//將臨時檔名改為原檔名 } system("pause"); return 0; } int Find() { system("cls"); student person[200]; FILE *fp1; int i=0; int n=0; char m; printf("* * * * * * * * * * 請選擇查詢方式: * * * * * * * * * * *\n"); printf("* *\n"); printf("* 1.模糊查詢 *\n"); printf("* 2.姓名 *\n"); printf("* 3.學號 *\n"); printf("* 4.返回 *\n"); printf("* *\n"); printf("* 請輸入你要查詢的方式 1 - 4 *\n"); printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"); m = getch(); while(m !='1' && m !='2' && m !='3' && m !='4') { printf("輸入錯誤請重新查詢\n"); m = getch(); } if((fp1=fopen("studata.txt","rb"))==NULL) { printf("cannot open the files\n"); } while(fscanf(fp1,"%s%s%s%s%f%f%f%f%f%f%f",person[i].name,person[i].num,person[i].sex,person[i].banji,&person[i].c,&person[i].math,&person[i].english,&person[i].PE,&person[i].politics,&person[i].all,&person[i].average)!=EOF) { i++; n=n+1; } if(m=='1')//模糊查詢 { char s[3];//定義輸入的文字所佔的位元組 (一個漢字佔2個位元組 外加一結尾符‘\0’此處小心溢位) int i=0; system("cls"); printf("請輸入想查詢的姓:\n"); scanf("%s",s); for(i=0;i<n-1;i++)//檔案資訊已經讀取到陣列中 此處進行迴圈用於下一語句的查詢 { if(person[i].name[0]==s[0]&&person[i].name[1]==s[1])//比較person[i].name與所輸入的前倆個字元是否相同 { printf("姓名: %s\n",person[i].name); printf("學號: %s\n",person[i].num); printf("性別: %s\n",person[i].sex); printf("班級: %s\n",person[i].banji); printf("C語言成績: %f\n",person[i].c); printf("數學成績: %f\n",person[i].math); printf("英語成績: %f\n",person[i].english); printf("體育成績: %f\n",person[i].PE); printf("思修成績: %f\n",person[i].politics); printf("平均分: %f\n",person[i].average); printf("總分: %f\n",person[i].all); } else { printf("通訊錄中沒有此人!\n"); system("pause"); return 1; } } } if(m=='2')//姓名查詢 { char s[20]; int j=0; printf("請輸入想查詢的姓名:"); scanf("\t%s",s); while(strcmp(person[j].name,s)!=0&&j<n) j++; //比較per[i].name與所輸入姓名是否相同// if(j==n) { printf("通訊錄中沒有此人!\n"); system("pause"); return -1; } printf("姓名: %s\n",person[j].name); printf("學號: %s\n",person[j].num); printf("性別: %s\n",person[j].sex); printf("班級: %s\n",person[j].banji); printf("C語言成績: %f\n",person[j].c); printf("數學成績: %f\n",person[j].math); printf("英語成績: %f\n",person[j].english); printf("體育成績: %f\n",person[j].PE); printf("思修成績: %f\n",person[j].politics); printf("平均分: %f\n",person[j].average); printf("總分: %f\n",person[j].all); } if(m=='3')//學號查詢 { char s[15]; int i=0; printf("請輸入想查詢的學號:"); scanf("\t%s",s); while(strcmp(person[i].num,s)!=0&&i<n)i++; //比較person[i].name與所輸入學號是否相同// if(i==n) { printf("通訊錄中沒有此人!\n"); system("pause"); return -1; } printf("姓名: %s\n",person[i].name); printf("學號: %s\n",person[i].num); printf("性別: %s\n",person[i].sex); printf("班級: %s\n",person[i].banji); printf("C語言成績: %f\n",person[i].c); printf("數學成績: %f\n",person[i].math); printf("英語成績: %f\n",person[i].english); printf("體育成績: %f\n",person[i].PE); printf("思修成績: %f\n",person[i].politics); printf("平均分: %f\n",person[i].average); printf("總分: %f\n",person[i].all); } if(m == '4') { printf("您是否返回上一級選單?y/n"); if(getch() == 'y') { return 0; } if(getch() == 'n') { system("cls"); return 0; } } fclose(fp1); system("pause"); return 0; } int Add() { system("cls"); FILE *fp; int i = 0 ,n = 0; char select; student per[200]; printf("開始輸入請按下y\n"); select = getch(); while(select == 'y'||select == 'Y') { system("cls"); printf("* * * * * * * * * * * * * * * * * * 學生資料新增 * * * * * * * * * * * * * * * * * *\n"); printf("請輸入姓名: \n"); scanf("%s",per[i].name); printf("請輸入學號: \n"); scanf("%s",per[i].num); printf("請輸入性別: \n"); scanf("%s",per[i].sex); printf("請輸入班級: \n"); scanf("%s",per[i].banji); printf("請輸入C語言成績:\n"); scanf("%f",&per[i].c); printf("請輸入數學成績: \n"); scanf("%f",&per[i].math); printf("請輸入英語成績: \n"); scanf("%f",&per[i].english); printf("請輸入體育成績: \n"); scanf("%f",&per[i].PE); printf("請輸入思修成績: \n"); scanf("%f",&per[i].politics); per[i].all = per[i].c + per[i].math + per[i].english + per[i].PE + per[i].politics; per[i].average = (per[i].all) / 5; printf("是否繼續新增?(y/n)"); select = getch(); i++; n=n+1; system( "cls "); } if((fp=fopen("studata.txt","a"))==NULL) //以2進位制形式進行檔案尾追加 { printf("cannot open the files\n"); system("pause"); return -1; //如果檔案出現錯誤 就返回-1 } for(i=0;i<n;i++) { fprintf(fp,"%s %s %s %s %f %f %f %f %f %f %f\n",per[i].name,per[i].num,per[i].sex,per[i].banji,per[i].c,per[i].math,per[i].english,per[i].PE,per[i].politics,per[i].all,per[i].average); //以2進位制形式寫入檔案中,一次寫入一個數組 } fclose(fp); system("pause"); return 0; } int Sort() { system("cls"); student person[200]; FILE *fp; struct student temp; //定義臨時陣列用於交換時存放陣列資訊用於後面的交換// //總分 float s[200]; int i=0,n=0; int j,k,t; int m; system("cls"); printf("* * * * * * * * * * 選擇排序方式 * * * * * * * * * * *\n"); printf("* *\n"); printf("* 1.c語言 *\n"); printf("* 2.數學 *\n"); printf("* 3.英語 *\n"); printf("* 4.體育 *\n"); printf("* 5.思修 *\n"); printf("* 6.總分 *\n"); printf("* 7.返回 *\n"); printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"); printf("請輸入你要排序的方式\n"); m = getch(); system("cls"); while(m!='1'&&m!='2'&&m!='3'&&m!='4'&&m!='5'&&m!='6'&&m!='7') { printf("輸入錯誤請重新輸入\n"); m = getch(); } fp=fopen("studata.txt","r");//以2進位制方式讀取檔案資訊 if(fp==NULL) { printf("cannot open the files\n"); system("pause"); return -1; } while(fscanf(fp,"%s%s%s%s%f%f%f%f%f%f%f",person[i].name,person[i].num,person[i].sex,person[i].banji,&person[i].c,&person[i].math,&person[i].english,&person[i].PE,&person[i].politics,&person[i].all,&person[i].average)!=EOF) { i++; n=n+1; } if(m=='1') { for(i=0;i<n-1;i++)//採用冒泡法進行排序 { k=i; for(j=i+1;j<n;j++) if(person[j].c>person[k].c)//排序比較大小 k=j; temp=person[k]; person[k]=person[i]; person[i]=temp;//當符合條件時進行資料交換 } printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"); printf(" 姓名 學號 性別 班級 c語言成績 數學成績 英語成績 體育成績 思修成績 總分 平均分\n"); for(i=0;i<n-1;i++) { printf("%s %s %s %s %f %f %f %f %f %f %f\n",person[i].name,person[i].num,person[i].sex,person[i].banji,person[i].c,person[i].math,person[i].english,person[i].PE,person[i].politics,person[i].all,person[i].average); } fclose(fp); } if(m=='2') { for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(person[j].math>person[k].math) k=j; temp=person[k];person[k]=person[i];person[i]=temp; } printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"); printf(" 姓名 學號 性別 班級 c語言成績 數學成績 英語成績 體育成績 思修成績 總分 平均分\n"); for(i=0;i<n-1;i++) { printf("%s %s %s %s %f %f %f %f %f %f %f\n",person[i].name,person[i].num,person[i].sex,person[i].banji,person[i].c,person[i].math,person[i].english,&person[i].PE,person[i].politics,person[i].all,person[i].average); } fclose(fp); } if(m=='3') { for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(person[j].english>person[k].english) k=j; temp=person[k];person[k]=person[i];person[i]=temp; } printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"); printf(" 姓名 學號 性別 班級 c語言成績 數學成績 英語成績 體育成績 思修成績 總分 平均分\n"); for(i=0;i<n-1;i++) { printf("%s %s %s %s %f %f %f %f %f %f %f\n",person[i].name,person[i].num,person[i].sex,person[i].banji,person[i].c,person[i].math,person[i].english,person[i].PE,person[i].politics,person[i].all,person[i].average); } fclose(fp); } if(m=='4') { for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(person[j].PE>person[k].PE) k=j; temp=person[k];person[k]=person[i];person[i]=temp; } printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"); printf(" 姓名 學號 性別 班級 c語言成績 數學成績 英語成績 體育成績 思修成績 總分 平均分\n"); for(int i=0;i<n-1;i++) { printf("%s %s %s %s %f %f %f %f %f %f %f\n",person[i].name,person[i].num,person[i].sex,person[i].banji,&person[i].c,person[i].math,person[i].english,person[i].PE,person[i].politics,person[i].all,person[i].average); } fclose(fp); } if(m=='5') { for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(person[j].politics>person[k].politics) k=j; temp=person[k];person[k]=person[i];person[i]=temp; } printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"); printf(" 姓名 學號 性別 班級 c語言成績 數學成績 英語成績 體育成績 思修成績 總分 平均分\n"); for(i=0;i<n-1;i++) { printf("%s %s %s %s %f %f %f %f %f %f %f\n",person[i].name,person[i].num,person[i].sex,person[i].banji,&person[i].c,person[i].math,person[i].english,person[i].PE,person[i].politics,person[i].all,person[i].average); } fclose(fp); } if(m=='6') { for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(person[j].all>person[k].all) k=j; temp=person[k];person[k]=person[i];person[i]=temp; } printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"); printf(" 姓名 學號 性別 班級 c語言成績 數學成績 英語成績 體育成績 思修成績 總分 平均分\n"); for(i=0;i<n-1;i++) { printf("%s %s %s %s %f %f %f %f %f %f %f\n",person[i].name,person[i].num,person[i].sex,person[i].banji,person[i].c,person[i].math,person[i].english,person[i].PE,person[i].politics,person[i].all,person[i].average); } fclose(fp); } if(m == '7') { printf("您是否返回上一級選單?y/n"); if(getch() == 'y') { return 0; } if(getch() == 'n') { system("cls"); return 0; } } fclose(fp); system("pause"); return 0; } int Delete() { system("cls"); printf("若不知道刪除學生的學號,請先進入查詢系統查詢學生學號!\n"); student person[200]; FILE *fp1; char s[10]; int i=0,n=0; fp1=fopen("studata.txt","r"); if(fp1==NULL) //以2進位制方式讀取檔案資訊// { printf("cannot open the files\n"); system("pause"); return -1; } while(fscanf(fp1,"%s%s%s%s%f%f%f%f%f%f%f",person[i].name,person[i].num,person[i].sex,person[i].banji,&person[i].c,&person[i].math,&person[i].english,&person[i].PE,&person[i].politics,&person[i].all,&person[i].average)!=EOF) { i++; n=n+1; } fclose(fp1); printf("學生學號:"); scanf("%s",s); i=0; while(strcmp(person[i].num,s)!=0 && i<n) { i++; } //進行比較找到所需要的資訊 if(i==n) { printf("通訊錄中沒有此人!\n"); system("pause"); return 1; } else{ FILE *fin,*ftp; fin=fopen("studata.txt","r");//讀開啟原檔案 ftp=fopen("tmp.txt","w");//寫開啟臨時檔案 if(fin==NULL || ftp==NULL){ printf("Open the file failure...\n"); exit(0); } int kk=0; while(kk<n) //從原檔案讀取一行 { if(strcmp(person[kk].num,s) != 0)//檢驗是否是要刪除的行 { fprintf(fp1,"%s%s%s%s%f%f%f%f%f%f%f",person[i].name,person[i].num,person[i].sex,person[i].banji,person[i].c,person[i].math,person[i].english,person[i].PE,person[i].politics,person[i].all,person[i].average);//不是則將這一行寫入臨時檔案tmp.txt } kk++; } fclose(fin); fclose(ftp); rename("studata.txt","backups.txt");//將原檔案修改為備份檔案 rename("tmp.txt","studata.txt");//將臨時檔名改為原檔名 printf("刪除成功!") ; system("pause"); } return 0; } int Undelete() { system("cls"); printf("您是否要恢復備份?y/n"); if(getch() == 'n') { return 0; } if(getch() == 'y') { rename("studata.txt","tmp.txt"); rename("backups.txt","studata.txt"); rename("tmp.txt","backups.txt"); printf("恢復成功!"); } } int main() { char select; while(1)//迴圈執行功能選單 { system("cls");//清屏 printf("* * * * * * * * * * * * * * * * * * *學生成績管理系統選單 * * * * * * * * * * * * * * * * * * * *\n"); printf("* 1. 輸入資料 *\n"); printf("* 2. 顯示資料 *\n"); printf("* 3. 修改資料 *\n"); printf("* 4. 查詢資料 *\n"); printf("* 5. 新增資料 *\n"); printf("* 6. 排序資料 *\n"); printf("* 7. 刪除資料 *\n"); printf("* 8. 恢復刪除 *\n"); printf("* 9. 退出 *\n"); printf("* 請選擇 1 - 9 *\n"); printf("* *\n"); printf("*version:2.0 Program author:moonfish*\n"); printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"); select = getch(); if(select == '9') { printf("您真的要退出嗎?y/n"); if(getch() == 'n') { main(); } if(getch() == 'y') { printf("\n謝謝使用:)"); exit(0);//退出程式 } } else switch(select) { case '1': Input() ;break; case '2': Display() ;break; case '3': Modify() ;break; case '4': Find() ;break; case '5': Add() ;break; case '6': Sort() ;break; case '7': Delete() ;break; case '8': Undelete() ;break; } } return 0 ; }