C語言,班級班費管理系統
一、程式概述
1.開發環境
開發程式的工具MicrosoftVisual C++ 6.0,(簡稱Visual C++ 6.0、VC++ 6.0或VC 6.0)是Microsoft公司推出的以C++語言為基礎的開發Windows環境程式,面向物件的視覺化整合程式設計系統。它不但具有程式框架自動生成、靈活方便的類管理、程式碼編寫和介面設計整合互動操作、可開發多種程式等優點。
2.開發目的
班費收支管理系統,方便班級生活委員管理和統計班費。班級收支一目瞭然,在總結中開啟程式即可告知每一位同學近期的班費使用情況。
3.開發功能
註冊登入、UI介面、新增班費收支資訊、瀏覽所有班費收支資訊、刪除班費收支資訊、查詢班費收支資訊、修改班費收支資訊、修改賬戶和密碼、清空所有收支資訊、自動求和。
二、程式概要
1.程式流程圖
2.函式功能關係
每一個函式實現一個功能,模組化編寫程式。主要由十個函式完成程式功能連線,充分利用Menu函式作為過渡到其它函式。Welcome函式實現註冊登入、Menu函式實現主選單、Outlook函式實現外觀顯示、Insert函式實現新增班費收支資訊、Output函式實現瀏覽所有班費收支資訊並自動求和、Delete函式實現刪除班費收支資訊、Search函式實現查詢版費收支資訊、Modify函式實現修改班費收支資訊、Change函式實現修改賬戶和密碼、Clean函式實現清空所有班費收支資訊。
三、程式詳細設計
1.關鍵程式碼分析
main函式中system("color 50");設定背景顏色與文字區分,當執行完一個功能利用system("cls");清屏,給使用者最佳視覺和體驗。
Welcome函式中fflush(stdin);清空輸入緩衝區,確保不影響後面資料讀取,建立兩個陣列儲存使用者名稱和密碼,以二進位制rb+儲存管理員資訊,指標fp1本地資料儲存判斷使用者名稱和密碼的正確與否。
Menu函式中switch{case:break;}選擇相應需要的功能,呼叫相應的函式。
Outlook函式相當於一個UI介面,我的能力範圍用printf輸出內容讓使用者看明白對應的功能,這個函式全部都是printf出來的,應該還有更好地方法,沒有學習到。
Insert函式中用指標fp2以二進位制ab+儲存每條班費收支資訊,用txt檔案儲存,同樣修改txt檔案可匯入收入和支援資訊到程式中。儲存內容包括日期、專案、收支、經辦人。這四個內容為一個結構體,以陣列的形式儲存。用if語句判斷收支是正還是付,講收支儲存在不同的檔案中。
Output函式中用指標fp2檢視用Insert函式儲存的所有班費收支資訊,並用while迴圈一條一條迴圈輸出,和統計班費總收入、班費總支出、班費餘額。
Delete函式中通過日期檢視相對應的收支資訊並打印出所有符合的收支資訊,再選擇需要刪除的記錄。
Search函式與Delete函式相似,通過日期查詢相對應的收支資訊並打印出,比Delete函式缺少的是刪除的程式碼fprintf(fp2,"%10s%25s%20s%30s","","","","");儲存空的字串相當於刪除,還可以通過其他欄位進行排序瀏覽。
Modify函式與Delete函式相似,同樣通過日期查詢對應的收支資訊並打印出來,與Delete函式的區別在於Delete函式中程式碼fprintf(fp2,"%10s%25s%20s%30s","","","","");在Modify中重新修改結構體中的陣列中的元素並儲存到相應的收支資訊中得以修改班費收支資訊程式碼為fprintf(fp2,"%10s%25s%20s%30s",timekey,one.xiangmu,one.money,one.name);
Change函式與Modify函式類似,通過指標fp1查詢對應使用者名稱的密碼,並修改密碼陣列得以修改密碼。
Clean函式中利用程式碼remove("軟工三班班費收支管理系統.txt")相當於Delete函式的一鍵操作,方便又快捷。
2.疑難問題解決
剛開始拿到C語言大作業題目的時候整個人都是蒙的,感覺無從下手,似乎需要實現的功能都是在課堂中沒有接觸到了。隨著時間流逝,自己也對這個作業緊張起來,開始認真著手做。
在專案開始時只能想到printf、scanf、迴圈結構初步實現了輸入班費收支資訊的輸入與輸出但是不知道如何儲存下來,於是百度以二進位制儲存檔案得知使用使用fopen、fprinft、fclose、、FILE、指標成功把班費收支資訊儲存到txt的檔案中,但是理解不透以二進位制儲存是什麼意思,因為我開啟檔案看到的不是0和1儲存的資訊。我在程式碼中也百度到二進位制是用rb、wb、ab,所以這個問題讓我進度停止了一會。
算是初步完成要求中的基本功能新增班費收支資訊,緊接著得心應手完成了瀏覽所有班費收支資訊的程式碼,但是在執行中卻難以切換兩個功能,使用起來非常不方便。後來百度沒有查到好的方法,接著完成了查詢班費收支資訊和修改班費收支資訊,就把大作業閒置下來,開始準備計算機二級考試。就是這麼巧在我考二級的過程中,讓我想起了switch{case:break;}語句建立了Menu函式完成了各個功能的切換。
但是執行起來還是非常奇怪,除了我自己編譯的軟體自己會用,一般使用者使用都有點摸不著頭腦。而我在星空學習IOS用的編譯器Xcode是有拖控制元件完成UI介面的,對於C語言如何做UI介面在課堂中沒有學習過,百度到C語言要實現windows圖形介面需要加一個頭檔案#include<windows.h>然後一大串程式碼,太多的不懂,無奈最後全部用printf出來,給使用者一個選擇的提示,雖然有點小兒科,但也算完成了這一難關。
看似已經差不多完美的程式還有有點不滿意,我便用與儲存班費收支資訊的相似的方法寫了登入和註冊的函式,再利用了一個指標。完美的結合了十個功能函式和main函式。很難受的是在使用過程中,一次一次切換功能產生printf堆積大量資訊,介面非常難看,很快我又百度到system("cls");程式碼用於清屏,整個程式自然就美觀多了。
#include<stdio.h>
#include<stdlib.h>#include<string.h> //使用到字元陣列時需要使用
#include<conio.h> //定義了通過控制檯進行資料輸入和資料輸出的函式,主要是一些使用者通過按鍵盤產生的對應操作
#include<windows.h> //windows圖形介面相關
FILE *fp1; //指向 "管理員資訊" 檔案的指標
FILE *fp2; //指向 "資料庫" 的指標
char administor[40],passward[50];//儲存賬戶名和密碼
struct note //定義一條記錄
{
char time[9]; //記錄建立時間
char xiangmu[20]; //記錄專案
char money[16]; //收支情況
char name[25]; //經辦人姓名
};
//主要功能函式宣告
int Welcome(); //1.註冊登入介面
int Menu(); //2.主選單
int Outlook(); //3.外觀顯示
int Insert(); //4.新增班費收支資訊
int Output(); //5.瀏覽所有班費收支資訊
int Delete(); //6.刪除班費收支資訊
int Search(); //7.查詢班費收支資訊
int Modify(); //8.修改班費收支資訊
int Change(); //9.修改賬戶和密碼
int Clean(); //10.清空資料庫
//主函式
int main()
{
system("color 50"); //軟體顏色
if(Welcome())
{
while(1)
{
system("cls"); //用於清屏
Menu();
}
}
return 0;
}
//主要功能函式
//1.註冊登入
int Welcome()
{
fflush(stdin); //清空輸入緩衝區,通常是為了確保不影響後面的資料讀取
int i=0;
int num=3; //統計輸入次數
int sign=2; //標記錯誤型別
char F_administor[40],F_passward[50];//讀取檔案中儲存的賬戶和密碼
printf("\t\t\t歡迎使用軟工三班班費收支管理系統 \n\n");
printf("------------------------------使用者登陸介面-----------------------------------\n\n");
if((fp1=fopen("管理員資訊.txt","rb+"))==NULL) //賬戶和密碼輸入介面,當第一次執行此程式時需註冊一個新賬戶
{
printf("\t這是您第一次使用該系統,請註冊一個管理員賬戶\n\n");
printf("\t\t請輸入管理員姓名:");
scanf("%s",administor);
getchar();
printf("\n\t\t請輸入密碼:");
while((passward[i]=getch())!='\r')
{
if(i==0&&passward[i]=='\b')
{
}
else if(passward[i]=='\b')
{
printf("\b");
printf(" ");
printf("\b");
i--;
}
else
{
printf("*");
i++;
}
}
passward[i]='\0';
if((fp1=fopen("管理員資訊.txt","wb+"))==NULL)
{
printf("\n註冊失敗!!!請稍後重試\n");
return 0;
}
else
{
fprintf(fp1,"%40s%50s",administor,passward);//將管理員賬戶和密碼存入檔案
fclose(fp1);
printf("\n\n\t註冊成功,請按任意鍵繼續...");
getch();
}
return 1;
}
fclose(fp1);
if((fp1=fopen("管理員資訊.txt","rb+"))==NULL) //開啟檔案,判斷輸入的賬戶和密碼是否正確
{
printf("檔案開啟失敗,請稍後重試!!");
return 0;
}
else
{
while(num) //判斷錯誤型別,並給出相應提示,3次錯誤則退出系統
{
i=0;
if(sign==1)
{
printf("\n\n\t該管理員賬戶不存在,您還有%d次輸入機會\n\n",num);
}
else if(sign==0)
{
printf("\n\n\t密碼輸入錯誤,您還有%d次輸入機會\n\n",num);
}
printf("\n\t請輸入管理員姓名:");
scanf("%s",administor);
getchar();
printf("\n\t請輸入密碼:");
while((passward[i]=getch())!='\r')
{
if(i==0&&passward[i]=='\b')
{
}
else if(passward[i]=='\b')
{
printf("\b");
printf(" ");
printf("\b");
i--;
}
else
{
printf("*");
i++;
}
}
passward[i]='\0';
fscanf(fp1,"%40s%50s",F_administor,F_passward);
if(stricmp(F_administor,administor)==0)
{
if(strcmp(F_passward,passward)==0)
{
fclose(fp1);
return 1;
}
else
{
sign=0;
}
}
else
{
sign=1;
}
num--;
}
printf("\n\t您的輸入錯誤次數超過3次,系統將在3秒後自動關閉!\n");
fclose(fp1);
Sleep(3000);
return 0;
}
}
//2.主選單
int Menu()
{
fflush(stdin);
char choose;
Outlook(); //呼叫Outlook函式顯示選單項
scanf("%c",&choose);
getchar();
switch(choose) //判斷要執行的操作
{
case 'A': Insert(); break;
case 'B': Output(); break;
case 'C': Delete(); break;
case 'D': Search(); break;
case 'E': Modify(); break;
case 'F': Change(); break;
case 'G': Clean(); break;
case 'Q': exit(0); break;
default:
{
Outlook();
break;
}
}
return 0;
}
//3.UI介面
//除了printf出來,還有其他方法?
int Outlook() //顯示選單項
{
printf(" 軟工三班班費收支管理系統\n\n");
printf("------------------------------功能選擇介面-------------------------------------\n\n");
printf("\t請選則功能:\n\n");
printf("\t\t[A] 新增班費收支資訊\n");
printf("\t\t[B] 瀏覽所有班費收支資訊\n");
printf("\t\t[C] 刪除班費收支資訊\n");
printf("\t\t[D] 查詢班費收支資訊\n");
printf("\t\t[E] 修改班費收支資訊\n");
printf("\t\t[F] 修改賬戶和密碼\n");
printf("\t\t[G] 清空資料庫\n");
printf("\t\t[Q] 安全退出\n\n");
printf("\t版權所有:何大大\t盜版必究\n\n");
printf("\t請選著要進行的操作:");
return 0;
}
//4.新增班費收支資訊
int Insert()
{
system("cls");
fflush(stdin);
//判斷該資料庫是否存在
if((fp2=fopen("軟工三班班費收支管理系統.txt","rb+"))==NULL)
{
fp2=fopen("軟工三班班費收支管理系統.txt","wb+");
}
fclose(fp2);
struct note one;
//如果資料庫裡有記錄則以追加方式開啟
printf(" 軟工三班班費收支管理系統\n\n");
printf("------------------------------新增新記錄介面-----------------------------------\n\n");
printf("\t新增新記錄:\n");
if((fp2=fopen("軟工三班班費收支管理系統.txt","ab+"))==NULL)
{
printf("\n\t對不起,不能開啟該資料庫!");
return 0;
}
//按格式新增資料
printf("\n\t\t請按此格式輸入當前日期(20180303):");
scanf("%s",one.time);
getchar();
while(strlen(one.time)!=8)
{
printf("\t\t格式輸入有誤,請重新輸入日期(20180303):");
scanf("%s",one.time);
getchar();
}
printf("\n\t\t請輸入記錄專案(不多於20個字元):");
scanf("%s",one.xiangmu);
getchar();
printf("\n\t\t請輸入收支情況(正數表示收入,負號表示支出):");
scanf("%s",one.money);
getchar();
printf("\n\t\t請輸入經辦人姓名(不多於25個字元):");
scanf("%s",one.name);
getchar();
fprintf(fp2,"%10s%25s%20s%30s",one.time,one.xiangmu,one.money,one.name);
fclose(fp2);
printf("\n\t操作成功,請按任意鍵繼續...");
getch();
return 0;
}
//5.瀏覽所有班費收支資訊
int Output()
{
system("cls");
fflush(stdin);
//判斷該資料庫是否存在
if((fp2=fopen("軟工三班班費收支管理系統.txt","rb+"))==NULL)
{
printf(" 軟工三班班費收支管理系統\n\n");
printf("-------------------------------錯誤提示----------------------------------------\n\n");
printf("\t您尚未錄入任何記錄,按任意鍵返回重新選擇.");
getch();
return 0;
}
double sum=0; //統計總的收支情況
double sum1=0; //統計總的收入情況
double sum2=0; //統計總的支出情況
double number; //將字串臨時轉化為整形資料
struct note one;
if((fp2=fopen("軟工三班班費收支管理系統.txt","rb+"))==NULL)
{
printf("\t對不起,不能開啟該資料庫!請按任意鍵繼續...");
getch();
return 0;
}
printf(" 軟工三班班費收支管理系統\n\n");
printf("------------------------------財務記錄總賬顯示------------------------------\n\n");
printf(" 時間 專案 收支 經辦人\n");
while(!feof(fp2))//迴圈輸出記錄
{
fscanf(fp2,"%10s%25s%20s%30s",one.time,one.xiangmu,one.money,one.name);
printf("%10s%20s%16s%23s\n\n",one.time,one.xiangmu,one.money,one.name);
number=atof(one.money);
if(number>0)
{
sum1+=number;
}
else
{
sum2+=number;
}
}
//班費統計
sum=sum1+sum2;
printf("\n\t班費總收入為:%.2lf元",sum1);
printf("\n\t班費總支出為:%.2lf元",sum2);
printf("\n\t班費餘額為:%.2lf元",sum);
printf("\n\n\t操作成功,請按任意鍵繼續...");
getch();
fclose(fp2);
return 0;
}
//6.刪除班費收支資訊
int Delete()
{
system("cls");
fflush(stdin);
//判斷該資料庫是否存在
if((fp2=fopen("軟工三班班費收支管理系統.txt","rb+"))==NULL)
{
printf(" 軟工三班班費收支管理系統\n\n");
printf("-------------------------------錯誤提示----------------------------------------\n\n");
printf("您尚未錄入任何記錄,按任意鍵返回重新選擇.");
getch();
return 0;
}
fclose(fp2);
char choose; //判斷是否決定刪除
int i=1;
int num;
long locate[100];//標記記錄在檔案中的位置
char timekey[10];
struct note one;
printf(" 軟工三班班費收支管理系統\n\n");
printf("-------------------------------刪除記錄介面------------------------------------\n\n");
printf("\t刪除記錄:\n");
//輸入日期,查詢到相應記錄項
printf("\n\t\t請按次格式輸入要刪除記錄的日期(20180303):");
scanf("%s",timekey);
getchar();
while(strlen(timekey)!=8)
{
printf("\t\t格式輸入有誤,請重新輸入日期(20180303):");
scanf("%s",timekey);
getchar();
}
if((fp2=fopen("軟工三班班費收支管理系統.txt","rb+"))==NULL)
{
printf("\n\t對不起,不能開啟該資料庫!請按任意鍵繼續...");
getch();
return 0;
}
locate[0]=ftell(fp2);
while(!feof(fp2))//迴圈查詢
{
fscanf(fp2,"%10s%25s%20s%30s",one.time,one.xiangmu,one.money,one.name);
if(!strcmp(one.time,timekey))
{
locate[i]=ftell(fp2);
printf("<%d>\n 時間 專案 收支 經辦人\n",i);
printf("%10s%20s%16s%23s",one.time,one.xiangmu,one.money,one.name);
i++;
printf("\n");
}
}
if(i-1)
{
printf("\n\t共找到%d條符合條件的記錄\n",i-1);
//選擇要刪除的記錄編號
printf("\n\t\t請選擇要刪除的記錄編號:");
scanf("%d",&num);
getchar();
//確定介面
printf("\n\t確實要刪除該記錄嗎?<y/n>");
scanf("%c",&choose);
getchar();
if((choose=='y')||(choose=='Y'))
{
fseek(fp2,locate[num-1],0);
fprintf(fp2,"%10s%25s%20s%30s","","","","");
fclose(fp2);
if(i==2)
{
remove("軟工三班班費收支管理系統.txt");
}
printf("\t操作成功,請按任意鍵繼續...");
getch();
return 0;
}
}
else
{
printf("\t對不起,資料庫中無此記錄!請按任意鍵繼續...");
getch();
}
fclose(fp2);
return 0;
}
//7.查詢班費收支資訊
int Search()
{
system("cls");
fflush(stdin);
//判斷該資料庫是否存在
if((fp2=fopen("軟工三班班費收支管理系統.txt","rb+"))==NULL)
{
printf(" 軟工三班班費收支管理系統\n\n");
printf("-------------------------------錯誤提示----------------------------------------\n\n");
printf("\t\t您尚未錄入任何記錄,按任意鍵返回重新選擇.");
getch();
return 0;
}
fclose(fp2);
int num=0; //用於記錄共有幾項符合條件的記錄
char timekey[10];
struct note one;
//根據時間查詢記錄
printf(" 軟工三班班費收支管理系統\n\n");
printf("------------------------------查詢記錄介面-------------------------------------\n\n");
printf("\t查詢記錄:\n");
printf("\n\t\t請按次格式輸入要查詢的記錄的日期(20180303):");
scanf("%s",timekey);
getchar();
while(strlen(timekey)!=8)
{
printf("\n\t\t格式輸入有誤,請重新輸入日期(20180303):");
scanf("%s",timekey);
getchar();
}
if((fp2=fopen("軟工三班班費收支管理系統.txt","rb+"))==NULL)
{
printf("\n\t對不起,不能開啟該資料庫!");
return 0;
}
while(!feof(fp2)) //迴圈查詢
{
fscanf(fp2,"%10s%25s%20s%30s",one.time,one.xiangmu,one.money,one.name);
if(!strcmp(one.time,timekey))
{
printf("\n 時間 專案 收支 經辦人\n");
printf("%10s%20s%16s%23s",one.time,one.xiangmu,one.money,one.name);
num++;
printf("\n");
}
}
if(!num)
{
printf("\n\t對不起,資料庫中無此記錄!請按任意鍵繼續...");
getch();
}
else
{
printf("\n\n\t共找到%d條符合條件的記錄",num);
printf(",按任意鍵繼續...");
getch();
}
fclose(fp2);
return 0;
}
//8.修改班費收支資訊
int Modify()
{
system("cls");
fflush(stdin);
//判斷資料庫裡是否有記錄
if((fp2=fopen("軟工三班班費收支管理系統.txt","rb+"))==NULL)
{
printf(" 軟工三班班費收支管理系統\n\n");
printf("-------------------------------錯誤提示----------------------------------------\n\n");
printf("\t您尚未錄入任何記錄,按任意鍵返回重新選擇.");
getch();
return 0;
}
fclose(fp2);
int i=1; //標記記錄條數
long locate[100];//標記記錄的位置
char timekey[10];
struct note one;
printf(" 軟工三班班費收支管理系統\n\n");
printf("-------------------------------修改記錄介面------------------------------------\n\n");
printf("\t修改記錄:\n");
//輸入日期,查詢到相應記錄項
printf("\n\t\t請按此格式輸入要修改記錄的日期(20180303):");
scanf("%s",timekey);
getchar();
while(strlen(timekey)!=8)
{
printf("\t\t格式輸入有誤,請重新輸入日期(20180303):");
scanf("%s",timekey);
getchar();
}
if((fp2=fopen("軟工三班班費收支管理系統.txt","rb+"))==NULL)
{
printf("\t對不起,不能開啟該資料庫!");
return 0;
}
locate[0]=ftell(fp2);
while(!feof(fp2)) //迴圈查詢
{
fscanf(fp2,"%10s%25s%20s%30s",one.time,one.xiangmu,one.money,one.name);
if(!strcmp(one.time,timekey))
{
locate[i]=ftell(fp2);
printf("<%d>\n 時間 專案 收支 經辦人\n",i);
printf("%10s%20s%16s%23s",one.time,one.xiangmu,one.money,one.name);
printf("\n");
i++;
}
}
if(i-1)
{
printf("\n\t共找到%d條符合條件的記錄\n",i-1);
//選擇要修改的記錄
printf("\n\t請選擇要修改的的記錄編號(退出請輸入0):");
scanf("%d",&i);
getchar();
if(i==0)
{
return 0;
}
fseek(fp2,locate[i-1],0);
//輸入新資料
printf("\n\t\t請按次格式輸入新日期(20180303):");
scanf("%s",timekey);
getchar();
while(strlen(timekey)!=8)
{
printf("\t\t格式輸入有誤,請重新輸入新日期(20180303):");
scanf("%s",timekey);
getchar();
}
printf("\n\t\t請輸入新記錄專案(不多於20個字元):");
scanf("%s",one.xiangmu);
getchar();
printf("\n\t\t請輸入新收支情況(正數表示收入,負號表示支出):");
scanf("%s",one.money);
getchar();
printf("\n\t\t請輸入新經辦人姓名(不多於25個字元):");
scanf("%s",one.name);
getchar();
fprintf(fp2,"%10s%25s%20s%30s",timekey,one.xiangmu,one.money,one.name);
printf("\n\t操作成功,請按任意鍵繼續...");
getch();
}
else
{
printf("\n\t對不起,資料庫中無此記錄!請按任意鍵繼續...");
getch();
}
fclose(fp2);
return 0;
}
//9.修改賬戶和密碼
int Change()
{
system("cls");
fflush(stdin);
//判斷檔案是否存在
if((fp1=fopen("管理員資訊.txt","rb+"))==NULL)
{
printf(" 軟工三班班費收支管理系統\n\n");
printf("-------------------------------錯誤提示----------------------------------------\n\n");
printf("\t檔案開啟失敗,請稍後重試。");
Sleep(3000);
return 0;
}
//如果找到檔案則執行下面的修改語句
int i=0;
char F_administor[40],F_passward[50];//檔案中儲存的資訊
char administor[40],passward[50]; //使用者輸入的資訊
printf(" 軟工三班班費收支管理系統\n\n");
printf("-------------------------------密碼修改介面------------------------------------\n\n");
printf("\t密碼修改:\n");
printf("\n\t\t請輸入原管理員姓名:");//輸入原資訊
scanf("%s",administor);
getchar();
printf("\n\t\t請輸入原密碼:");
while((passward[i]=getch())!='\r')
{
if(i==0&&passward[i]=='\b')
{
}
else if(passward[i]=='\b')
{
printf("\b");
printf(" ");
printf("\b");
i--;
}
else
{
printf("*");
i++;
}
}
passward[i]='\0';
fscanf(fp1,"%40s%50s",F_administor,F_passward);
if((strcmp(F_administor,administor)==0)&&(strcmp(F_passward,passward)==0))//判斷輸入的使用者名稱和密碼是否正確
{
fclose(fp1);
i=0;
if((fp1=fopen("管理員資訊.txt","wb+"))==NULL)
{
printf("\n\t操作失敗!按任意鍵繼續...");
getch();
}
else
{
//輸入新資訊
printf("\n\n\n\t\t請輸入新管理員名稱:");
scanf("%s",administor);
getchar();
printf("\n\t\t請輸入新密碼:");
while((passward[i]=getch())!='\r')
{
if(i==0&&passward[i]=='\b')
{
}
else if(passward[i]=='\b')
{
printf("\b");
printf(" ");
printf("\b");
i--;
}
else
{
printf("*");
i++;
}
}
passward[i]='\0';
fprintf(fp1,"%40s%50s",administor,passward);//將新的管理員賬戶和密碼存入檔案
fclose(fp1);
printf("\n\n\t操作成功,請按任意鍵繼續...");
getch();
}
}
else
{
printf("\n\n\t操作失敗!按任意鍵繼續...");
getch();
}
return 0;
}
//10.清空資料庫函式
int Clean()
{
system("cls");
fflush(stdin);
char choose; //判斷是否刪除
printf(" 軟工三班班費收支管理系統\n\n");
printf("-------------------------------清空資料庫介面----------------------------------\n\n");
printf("\t清空資料庫:\n\n");
printf("\t\t資料庫清空後將無法恢復,您確定麼?<Y/任意字元返回>");
scanf("%c",&choose);
if((fp2=fopen("軟工三班班費收支管理系統.txt","rb+"))==NULL)
{
printf("\n\t您未記錄任何資料,按任意鍵返回...");
getch();
return 0;
}
fclose(fp2);
if(choose=='Y')
{
if(remove("軟工三班班費收支管理系統.txt"))
{
printf("\n\t操作失敗,按任意鍵繼續...");
getch();
}
else
{
printf("\n\t操作成功,按任意鍵繼續...");
getch();
}
}
return 0;
}