[計算機(jī)軟件及應(yīng)用]圖書管理系統(tǒng)實訓(xùn)報告正文
《[計算機(jī)軟件及應(yīng)用]圖書管理系統(tǒng)實訓(xùn)報告正文》由會員分享,可在線閱讀,更多相關(guān)《[計算機(jī)軟件及應(yīng)用]圖書管理系統(tǒng)實訓(xùn)報告正文(37頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 引言 隨著社會經(jīng)濟(jì)的迅速發(fā)展和現(xiàn)代科學(xué)技術(shù)的進(jìn)步,人類社會正逐漸走向現(xiàn)代化。計算機(jī)事業(yè)的飛速發(fā)展,使得以計算機(jī)與通信技術(shù)為基礎(chǔ)的信息系統(tǒng)正處于蓬勃發(fā)展的時期。同時,隨著經(jīng)濟(jì)文化水平的顯著提高,人們對生活質(zhì)量及工作環(huán)境的要求也越來越高。圖書館擁有豐富的文獻(xiàn)信息資源,是社會系統(tǒng)的重要組成部分,在信息社會中的作用愈來愈重要。 圖書管理系統(tǒng)是我國大部分學(xué)?;蚱渌块T不可缺少的部分,書籍是人類的精神食糧,尤其對一些學(xué)校來說,圖書館非常重要。計算機(jī)圖書管理系統(tǒng)能夠為用戶實現(xiàn)借閱圖書、管理等,隨著計算機(jī)科學(xué)的日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作
2、用。作為計算機(jī)應(yīng)用的一部分,使用計算機(jī)對圖書資源信息進(jìn)行管理,具有著手工管理所無法比擬的優(yōu)點,例如:查閱迅速、安全性高、可靠性高、存儲量大、保密性好、成本低等。計算機(jī)圖書管理系統(tǒng)能夠單一定向計算機(jī)圖書方面,具有實用、精簡功能等效率,這些優(yōu)點能夠極大的提高圖書管理的效率,也是企業(yè)、學(xué)校的科學(xué)化、正規(guī)化管理的重要條件。 第一章 緒論 1.1 課題背景 隨著人類社會的發(fā)展,人類對知識的需求也不斷增長。在這種形勢下,書籍就漸漸的成為人們獲取并增長知識的主要途徑,而圖書館就自然而然地在人們的生活中占據(jù)一定的位置,如何科學(xué)
3、的管理圖書館不僅關(guān)系到讀者求知的方便程度,也關(guān)系到圖書館的發(fā)展,因此,開發(fā)一套完善的圖書管理系統(tǒng)就必不可少了。 隨著現(xiàn)代社會信息量的不斷增加,圖書的數(shù)量和種類越來越多,人工手動管理會降低工作的效率,希望建立一個圖書館圖書信息管理系統(tǒng),是為了解決了人工手動管理圖書信息在實踐的問題,從而達(dá)到系統(tǒng)化、規(guī)范化、標(biāo)準(zhǔn)化的水平。圖書如何來管理龐大的圖書信息成為一大難題,如何以一種便捷的管理方式加快圖書流通信息的反饋速度,提高工作效率,已經(jīng)成為學(xué)校圖書館管理的關(guān)鍵問題。信息技術(shù)的飛速發(fā)展給圖書館的管理帶來了全新的變革,采用圖書管理系統(tǒng)對圖書館的運作進(jìn)行全程管理,不僅是圖書館擺脫了以往人工管理產(chǎn)生的一系列問
4、題,而且讓圖書館提高了管理效率,減少了管理成本,讓圖書館進(jìn)行更有效的管理。 1.2 C語言概述 C語言是一種用途廣泛、功能強(qiáng)大、使用靈活的過程性編程語言,既可用于編寫應(yīng)用軟件,又能用于編寫系統(tǒng)軟件。。它既具有高級語言的特點,又具有匯編語言的特點。 C語言是一種結(jié)構(gòu)化語言。它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù)。C語言的表現(xiàn)能力和處理能力極強(qiáng)。它不僅具有豐富的運算符和數(shù)據(jù)類型,便于實現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。它還可以直接訪問內(nèi)存的物理地址,進(jìn)行位(bit)一級的操作。由于C語言實現(xiàn)了對硬件的編程操作,因此C語言集高級語言和低級語言的功能于一體。既可用于系統(tǒng)軟件的開發(fā),
5、也適合于應(yīng)用軟件的開發(fā)。此外,C語言還具有效率高,可移植性強(qiáng)等特點。因此廣泛地移植到了各類各型計算機(jī)上,從而形成了多種版本的C語言。使C語言應(yīng)用面十分廣泛。 第二章 開發(fā)工具簡介 VC6.0 簡介 Visual C++ 6.0,簡稱VC或者VC6.0,是微軟推出的一款C++編譯器,將“高級語言”翻譯為“機(jī)器語言(低級語言)”的程序。Visual C++是一個功能強(qiáng)大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問世,Visual C++已成為專業(yè)程序員進(jìn)行軟件開發(fā)的首選工具。雖然微軟公司推出了 Visu
6、al C++.NET(Visual C++7.0),但它的應(yīng)用的很大的局限性,只適用于Windows 2000、Windows XP和Windows NT4.0。所以實際中,更多的是以Visual C++6.0為平臺。 VC6.0由以下三部分組成: 1、 Developer Studio,這是一個集成開發(fā)環(huán)境,我們?nèi)粘9ぷ鞯?9%都是在它上面完成的, Developer Studio為Visual C++提供了一個很好的編輯器和很多Wizard,但實際上它沒有任何編譯和鏈接程序的功能。我們也知道,Developer Studio并不是專門用于VC的,它也同樣用于VB,VJ,VID等Visu
7、al Studio家族的其他同胞兄弟。所以不能把Developer Studio當(dāng)成Visual C++, 它充其量只是Visual C++的一個殼子而已。 2、 MFC。從理論上來講,MFC也不是專用于Visual C++,Borland C++,C++Builder和Symantec C++同樣可以處理MFC。同時,用Visual C++編寫代碼也并不意味著一定要用MFC,只要愿意,用Visual C++來編寫SDK程序,或者使用STL,ATL,一樣沒有限制。不過,Visual C++本來就是為MFC打造的,Visual C++中的許多特征和語言擴(kuò)展也是為MFC而設(shè)計的,所以用Vi
8、sual C++而不用MFC就等于拋棄了Visual C++中很大的一部分功能。但是,Visual C++也不等于MFC。 3、Platform SDK。這才是Visual C++和整個Visual Studio的精華和靈魂,雖然我們很少能直接接觸到它。大致說來,Platform SDK是以Microsoft C/C++編譯器為核心(不是Visual C++,看清楚了),配合MASM,輔以其他一些工具和文檔資料。上面說到Developer Studio沒有編譯程序的功能,那么這項工作是由誰來完成的呢?是CL,是NMAKE,和其他許許多多命令行程序,這些我們看不到的程序才是構(gòu)成Visual
9、Studio的基石。 第三章 圖書管理系統(tǒng)的設(shè)計與實現(xiàn) 3.1 系統(tǒng)的需求分析 3.1.1 設(shè)計思想 隨著現(xiàn)代社會信息量的不斷增加,圖書的種類及信息也越來越多,如何來管理龐大的圖書信息成為一大難題,如何以一種便捷的管理方式加快圖書流通信息的反饋速度,提高工作效率,已經(jīng)成為學(xué)校圖書館管理的關(guān)鍵問題。信息技術(shù)的飛速發(fā)展給圖書館的管理帶來了全新的變革,采用圖書管理系統(tǒng)對圖書館的運作進(jìn)行全程管理,不僅是圖書館擺脫了以往人工管理產(chǎn)生的一系列問題,而且讓圖書館提高了管理效率,減少了管理成本,讓圖書館進(jìn)行更有效的管理。因此,設(shè)計的圖書管理系統(tǒng)需要滿足以下幾方面要求: 讀者
10、的管理; 管理員的管理; 圖書信息的管理。 3.1.2 系統(tǒng)功能描述 (1)系統(tǒng)主菜單:根據(jù)不同的選擇進(jìn)入不同的界面,從而進(jìn)入系統(tǒng)和退出系統(tǒng)。 (2)功能菜單:顯示可以進(jìn)行的操作。 (3)查詢主菜單:系統(tǒng)需要提供幾種不同方式的查詢手段,以實現(xiàn)靈活方便的管理整個系統(tǒng)。一本圖書包括序號、書名、價格、會員價等多個信息,會員可以通過輸入圖書的序號、名字進(jìn)行查詢所需的圖書,然后可以瀏覽相關(guān)的圖書信息。管理員除此還可以對圖書進(jìn)行管理和對會員信息的管理,可以瀏覽所有的圖書信息和會員信息。 (4)各功能的操作全部通過調(diào)用的關(guān)系連接而成,主函數(shù)通過調(diào)用各子函數(shù)來完成圖書的管理與查詢系統(tǒng)。 3
11、.1.3功能模塊劃分 1. 初始化圖書信息 主函數(shù)通過調(diào)用initbook()子函數(shù),采用scanf()輸入方式輸入圖書的序號、名字、價格信息,會員價不需輸入,只需用公式:會員價=價格*0.8f(會員價一律八折)即可。 2. 增加圖書信息 這個程序與初始化圖書信息一樣,通過調(diào)用addbook()子函數(shù)來增加一些圖書的基本信息,如:圖書的序號、名字、價格。 3. 修改圖書信息 調(diào)用modifybook()子函數(shù)來實現(xiàn)此功能,用來修改已經(jīng)增加的圖書信息,修改的是圖書的價格、會員價,圖書的序號、名字不改變。 4. 刪除圖書信息 由主函數(shù)調(diào)用delbook()子函數(shù)實現(xiàn)刪除圖書信息功能
12、。輸入要刪除的圖書名稱,從而刪除這本圖書的所有信息,無法還原。 5. 按圖書的價格從高到低瀏覽圖書信息 由函數(shù)showbook()來實現(xiàn)此功能。通過圖書的價格由高到低的順序來查詢圖書的序號、名字、價格、會員價。 6. 增加會員信息addhuiyuan() 存儲會員信息的文件名是huiyuan(增加會員時文件讀取方式采用“ab+”方式),用scanf()輸入方式輸入每個會員信息是序號、名字、密碼。 7. 刪除會員信息delhuiyuan() 輸入要刪除的會員名字,從而刪除這個會員的所有信息,無法還原。 8. 按名字瀏覽會員的所有信息showhuiyuan() 用來瀏
13、覽已經(jīng)增加的會員信息。
9.會員模塊show()
會員可以輸入名字和密碼登陸會員界面,瀏覽圖書信息??奢斎胂鄳?yīng)圖書的名字,查詢相應(yīng)的圖書信息。
3.1.4系統(tǒng)流程
3.2詳細(xì)系統(tǒng)的設(shè)計與實現(xiàn)
3.2.1主函數(shù)界面設(shè)計
#include
14、 typedef struct { long number; char name[100]; float price; float memberprice; }book; void main() { void menu1(); void menu2(); huiyuan show; char datafile[40]="huiyuan"; char username[10],password[10]; int i; printf("\n\n\n\n\n"); printf(" ~ ~ ~ ~ ~ ~ ~ ~
15、 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ \n"); printf(" ============================================== \n"); printf(" *+ +* \n"); printf(" ************歡迎您進(jìn)入圖書管理系統(tǒng)************ \n"); printf(" *+ +*
16、 \n"); printf(" ============================================== \n"); printf(" ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ \n"); printf("\n\n"); printf(" 請輸入您的姓名:"); scanf("%s",username); printf(" 請輸入您的登錄密碼:"); scanf("%s",password); if ((strcmp(use
17、rname,"admin")==0)&&(strcmp(password,"admin")==0)) {printf(" 您是管理員! \n"); menu1(); } FILE *fp; fp=fopen(datafile,"rb"); if(fp==NULL) { printf("文件%s信息錯誤\n",datafile); exit(1); } while(fread(&show,sizeof(huiyuan),1,fp)!=0) { if((strcmp(username,show.name)==0)&&(
18、strcmp(password,show.ps)==0) { printf(" 您是普通會員\n"); menu2(); } } exit(0); } 3.2.2 管理員界面與圖書瀏覽界面設(shè)計 void initbook(); void addbook(); void modifybook(); void delbook(); void showbook(); void addhuiyuan(); void delhuiyuan(); void show
19、huiyuan(); void show(); void quit(); void menu1() { char ch1,ch2,ch3; do { printf("\n\n\n"); printf(" ============================================== \n"); printf(" ************歡迎進(jìn)入圖書管理員界面************ \n"); printf(" ============================================== \n");
20、 printf("\t\t請您選擇操作類型:\n"); printf(" ************1.歡迎進(jìn)入圖書信息系統(tǒng)************ \n"); printf(" ************2.歡迎進(jìn)入會員信息系統(tǒng)************ \n"); printf(" ******************0.退出系統(tǒng)****************** \n"); printf(" 請輸入您的選擇! \n"); scanf("%s",&ch1); switch(ch1) {case 1:{
21、 Do { printf("\n\n\n"); printf(" *************>歡迎進(jìn)入圖書信息系統(tǒng)<********** \n"); printf(" \n"); printf(" ====1.初始化圖書信息*******2.增加圖書信息==== \n"); printf(“ ====3.修改圖書信息*********4.刪除圖書信息==== \n"); printf(" ======5.按普通價格從高到低瀏覽圖書信息===
22、==== \n"); printf(" ==============0、返回上一級================== \n"); printf(" 請輸入0--5,其他輸入錯誤! \n"); scanf("%s",&ch2); switch(ch2) { case 1:initbook();break; case 2:addbook();break; case 3:modifybook();break; case 4:delbook();break; case 5:showbook();getch();brea
23、k; case 0:break; default:printf("操作錯誤\n");getch();break; } }while(ch2!=0);}break; case 2:{ do { printf("\n\n\n"); printf(" *********>歡迎進(jìn)入會員信息系統(tǒng)<********** \n"); printf("\n\n"); printf(" ===1.增加會員信息*******2.刪除會員信息=== \n"); printf(" ==========3.按名字瀏覽會
24、員信息=========== \n"); printf(" ==============0、返回上一級============== \n"); printf(" 請輸入0--3,其他輸入錯誤! \n"); scanf("%s",&ch3); switch(ch3) { case 1:addhuiyuan();break; case 2:delhuiyuan();break; case 3:showhuiyuan();break; case 0:break; d
25、efault:printf("操作錯誤\n");getch();break; } }while(ch3!=0);}break; case 0:quit(); default:printf("操作錯誤\n");getch();break; } }while(ch1!=0); } void menu2() { char ch4; do { printf("\n\n\n"); printf(" ========================================= \n"); printf("
26、 **********歡迎進(jìn)入圖書瀏覽界面*********** \n"); printf(" ========================================= \n"); printf(" \n"); printf(" *******1.輸入圖書名瀏覽圖書相應(yīng)信息****** \n"); printf(" **************0.瀏覽結(jié)束***************** \n"); print
27、f(" 請輸入您的選擇: "); scanf("%s",&ch4); switch(ch4) { case 1:void show();break; case 0:quit(); default:printf("操作錯誤\n");getch();break; } }while(ch4!=0); } void quit() { printf("\n\n\n\n"); printf(" ==========================================
28、== \n"); printf(" ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ \n"); printf(" ***************>感謝您的使用<*************** \n"); printf(" ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ \n"); printf(" ============================================ \n"); getch(); exit(0); }
29、 3.2.3各功能模塊設(shè)計 1、初始化圖書信息 void initbook() { FILE *fp; book tmps,show; char datafile[40]="book"; int count=0; fp=fopen(datafile,"wb+"); if(fp==NULL) { printf("文件%s信息錯誤\n",datafile); exit(1); } printf("請輸入圖書的序號、名稱、價格\n"); while(count<=size) { pr
30、intf("\n請輸入圖書的序號:"); scanf("%ld",&tmps.number); if(tmps.number==0) break; printf("請輸入圖書的名稱:"); scanf("%s",tmps.name); printf("請輸入圖書的價格:"); scanf("%f",&tmps.price); tmps.memberprice=tmps.price*0.8f; if(fwrite(&tmps,sizeof(book),1,fp)!=1) { printf("文件%s信息錯誤\n",datafi
31、le); exit(1); } count++; } if(count>size) printf("輸入數(shù)據(jù)已滿\n"); fclose(fp); printf("所輸入圖書信息如下:\n"); fp=fopen(datafile,"rb"); if(fp==NULL) { printf("文件%s信息錯誤\n",datafile); exit(1); } printf("序號\t名稱\t價格\t會員價\n"); while(fread(&show,sizeof(book),1,fp)!=0) printf
32、("%ld\t%s\t%.1f\t%.1f\n",show.number,show.name,show.price,show.memberprice); fclose(fp); } 2、添加圖書信息 Void addbook() { FILE *fp; book tmps,show; char datafile[40]="book"; int count=0; fp=fopen(datafile,"wb+"); if(fp==NULL) { printf("文件%s信息錯誤\n",datafile); exit(1); } pr
33、intf("請輸入圖書的序號、名稱、價格\n"); while(count<=size) { printf("\n請輸入圖書的序號:"); scanf("%ld",&tmps.number); if(tmps.number==0) break; printf("請輸入圖書的名稱:"); scanf("%s",tmps.name); printf("請輸入圖書的價格:"); scanf("%f",&tmps.price); tmps.memberprice=tmps.price*0.8f; if(fwrite(&tmps,si
34、zeof(book),1,fp)!=1) { printf("文件%s信息錯誤\n",datafile); exit(1); } count++; } if(count>size) printf("輸入數(shù)據(jù)已滿\n"); fclose(fp); printf("所輸入圖書信息如下:\n"); fp=fopen(datafile,"rb"); if(fp==NULL) { printf("文件%s信息錯誤\n",datafile); exit(1); } printf("序號\t名稱\t價格\t會員價\
35、n"); while(fread(&show,sizeof(book),1,fp)!=0) printf("%ld\t%s\t%.1f\t%.1f\n",show.number,show.name,show.price,show.memberprice); fclose(fp); } 3、修改圖書信息 void modifybook() { FILE *fp; book tmps,s[size],show,temp; char name[9],next,datafile[40]="book"; int
36、 recnumber,i,result=0; float price; begin: printf("請輸入要修改信息的圖書的名稱:"); scanf("%s",name); fp=fopen(datafile,"rb"); if(fp==NULL) { printf("文件%s信息錯誤\n",datafile); exit(1); } while(feof(fp)==0) { if(fread(&temp,sizeof(book),1,fp)!=0) { if(strcmp(temp.name,name)=
37、=0) result=1; } } if(result==0) { printf("要修改的圖書%s不存在\n",name); fclose(fp); goto begin; } fp=fopen(datafile,"rb"); if(fp==NULL) { printf("文件%s信息錯誤\n",datafile); exit(1); } recnumber=0; while((fread(&tmps,sizeof(book),1,fp))!=0) { if(strcm
38、p(tmps.name,name)==0) { printf("請輸入要修改圖書%s的價格",name); scanf("%f",&price); s[recnumber].number=tmps.number; strcpy(s[recnumber].name,tmps.name); s[recnumber].price=price; s[recnumber].memberprice=price*0.8f; recnumber++; } else { s[recnu
39、mber].number=tmps.number; strcpy(s[recnumber].name,tmps.name); s[recnumber].price=tmps.price; s[recnumber].memberprice=tmps.price*0.8f; recnumber++; } } fclose(fp); fp=fopen(datafile,"wb+"); if(fp==NULL) { printf("文件%s信息錯誤\n",datafile); exit(1)
40、;
}
for(i=0;i 41、p=fopen(datafile,"rb");
if(fp==NULL)
{ printf("文件%s信息錯誤\n",datafile);
exit(1);
}
printf("序號\t名稱\t價格\t會員價\t\n");
while(fread(&show,sizeof(book),1,fp)!=0) printf("%ld\t%s\t%.1f\t%.1f\n",show.number,show.name,show.price,
show.memberprice);
fclose(fp);
}
4、刪除圖書信息
void delboo 42、k()
{
FILE *fp;
book tmps,s[size],show,temp;
char name[10],next,datafile[40]="book";
int recnumber,i,result=0;
begin:
printf("請輸入要刪除的圖書的名字:");
scanf("%s",name);
fp=fopen(datafile,"rb");
if(fp==NULL)
{
printf("文件%s信息錯誤\n",datafile);
exit(1);
}
while(feof(fp 43、)==0)
{
if(fread(&temp,sizeof(book),1,fp)!=0)
{
if(strcmp(temp.name,name)==0)
result=1;
}
}
if(result==0)
{
printf("要刪除的圖書%s不存在\n",name);
fclose(fp);
goto begin;
}
fclose(fp);
fp=fopen(datafile,"rb");
if(fp==NULL)
{
printf("文件%s信息錯誤\n",datafi 44、le);
exit(1);
}
recnumber=0;
while((fread(&tmps,sizeof(book),1,fp))!=0)
{
if(strcmp(tmps.name,name)!=0)
{
s[recnumber].number=tmps.number;
strcpy(s[recnumber].name,tmps.name);
s[recnumber].price=tmps.price;
s[recnumber].memberprice=tmps.price*0.8f;
recnumber+ 45、+;
}
}
fclose(fp);
fp=fopen(datafile,"wb+");
if(fp==NULL)
{
printf("文件%s信息錯誤\n",datafile);
exit(1);
}
for(i=0;i 46、\n");
printf("是否繼續(xù)刪除(y/n)\n");
next=getche();
if(next==y||next==Y)
goto begin;
printf("刪除圖書后信息如下:\n");
fp=fopen(datafile,"rb");
if(fp==NULL)
{
printf("文件%s信息錯誤\n",datafile);
exit(1);
}
printf("序號\t名稱\t價格\t會員價\n");
while(fread(&show,sizeof(book),1,fp)!=0)
printf 47、("%ld\t%s\t%.1f\t%.1f\n",show.number,show.name,show.price,
show.memberprice);
fclose(fp);
}
5、瀏覽圖書信息
void showbook()
{
FILE *fp;
char datafile[40]="book";
book tmps,s[size],show;
int recnumber,i,j,k;
fp=fopen(datafile,"rb");
if(fp==NULL)
{
pr 48、intf("文件%s信息錯誤\n",datafile);
exit(1);
}
recnumber=0;
while(fread(&tmps,sizeof(book),1,fp)!=0)
{
s[recnumber].number=tmps.number;
strcpy(s[recnumber].name,tmps.name);
s[recnumber].price=tmps.price;
s[recnumber].memberprice=tmps.price*0.8f;
recnumber++;
}
fclose(fp);
49、 if(recnumber>1)
{
for(i=0;i 50、.number=s[i].number;
strcpy(s[k].name,s[i].name);
s[k].price=s[i].price;
s[k].memberprice=s[i].price*0.8f;
s[i].number=tmps.number;
strcpy(s[i].name,tmps.name);
s[i].price=tmps.price;
s[i].memberprice=tmps.memberprice;
}
}
fp=f 51、open(datafile,"wb+");
if(fp==NULL)
{
printf("文件%s信息錯誤\n",datafile);
exit(1);
}
for(i=0;i 52、"rb");
if(fp==NULL)
{
printf("文件%s信息錯誤\n",datafile);
exit(1);
}
printf("序號\t名稱\t價格\t會員價\n");
while(fread(&show,sizeof(book),1,fp)!=0)
printf("%ld\t%s\t%.1f\t%.1f\n",show.number,show.name,show.price,
show.memberprice);
fclose(fp);
}
6、增加會員信息
void addhuiyuan()
{ 53、
FILE *fp;
huiyuan tmps,show;
char datafile[40]="huiyuan";
int count=0;
fp=fopen(datafile,"ab+");
if(fp==NULL)
{
printf("文件%s信息錯誤\n",datafile);
exit(1);
}
printf("請輸入會員的序號、名字、密碼、權(quán)限\n");
while(count<=size)
{
printf("\n請輸入會員的序號:");
scanf("%ld",&tmps.number);
if(tmp 54、s.number==0)
break;
printf("請輸入會員的名字:");
scanf("%s",tmps.name);
printf("請輸入會員密碼:");
scanf("%s",tmps.ps);
tmps.power=0;
if(fwrite(&tmps,sizeof(huiyuan),1,fp)!=1)
{
printf("文件%s信息錯誤\n",datafile);
exit(1);
}
count++;
}
if(count>size)
printf("輸入數(shù)據(jù)已滿\n");
55、
fclose(fp);
printf("所輸入圖書信息如下:\n");
fp=fopen(datafile,"rb");
if(fp==NULL)
{
printf("文件%s信息錯誤\n",datafile);
exit(1);
}
printf("序號\t姓名\t密碼\t權(quán)限\n");
while(fread(&show,sizeof(huiyuan),1,fp)!=0)
printf("%ld\t%s\t%s\t%d\n",show.number,show.name,show.ps,show.power);
fclose(fp);
56、}
7、刪除會員信息
void delhuiyuan()
{
FILE *fp;
huiyuan tmps,s[size],show,temp;
char name[10],next,datafile[40]="huiyuan";
int recnumber,i,result=0;
begin:
printf("請輸入要刪除會員信息的名字:");
scanf("%s",name);
fp=fopen(datafile,"rb");
if(fp==NULL)
{
printf("文件%s信息錯誤\n",datafile 57、);
exit(1);
}
while(feof(fp)==0)
{
if(fread(&temp,sizeof(huiyuan),1,fp)!=0)
{
if(strcmp(temp.name,name)==0)
result=1;
}
}
if(result==0)
{
printf("要刪除的會員%s不存在\n",name);
fclose(fp);
goto begin;
}
fclose(fp);
fp=fopen(datafile,"rb");
if(fp==NU 58、LL)
{
printf("文件%s信息錯誤\n",datafile);
exit(1);
}
recnumber=0;
while((fread(&tmps,sizeof(huiyuan),1,fp))!=0)
{
if(strcmp(tmps.name,name)!=0)
{
s[recnumber].number=tmps.number;
strcpy(s[recnumber].name,tmps.name);
strcpy(s[recnumber].ps,tmps.ps);
s[recnumbe 59、r].power=tmps.power;
recnumber++;
}
}
fclose(fp);
fp=fopen(datafile,"wb+");
if(fp==NULL)
{
printf("文件%s信息錯誤\n",datafile);
exit(1);
}
for(i=0;i 60、}
}
fclose(fp);
printf("刪除成功!\n");
printf("是否繼續(xù)刪除(y/n)\n");
next=getche();
if(next==y||next==Y)
goto begin;
printf("刪除信息后的會員信息如下:\n");
fp=fopen(datafile,"rb");
if(fp==NULL)
{
printf("文件%s信息錯誤\n",datafile);
exit(1);
}
printf("序號\t姓名\t密碼\t權(quán)限\n");
while(fre 61、ad(&show,sizeof(huiyuan),1,fp)!=0)
printf("%ld\t%s\t%s\t%d\n",show.number,show.name,show.ps,show.power);
fclose(fp);
}
8、瀏覽會員信息
void showhuiyuan()
{
FILE *fp;
char datafile[40]="huiyuan";
huiyuan tmps,s[size],show;
int recnumber,i,j,k;
fp=fopen( 62、datafile,"rb");
if(fp==NULL)
{
printf("文件%s信息錯誤\n",datafile);
exit(1);
}
recnumber=0;
while(fread(&tmps,sizeof(huiyuan),1,fp)!=0)
{
s[recnumber].number=tmps.number;
strcpy(s[recnumber].name,tmps.name);
strcpy(s[recnumber].ps,tmps.ps);
s[recnumber].power=tmps.power 63、;
recnumber++;
}
fclose(fp);
if(recnumber>1)
{
for(i=0;i 64、
s[k].number=s[i].number;
strcpy(s[k].name,s[i].name);
strcpy(s[k].ps,s[i].ps);
s[k].power=s[i].power;
s[i].number=tmps.number;
strcpy(s[i].name,tmps.name);
strcpy(s[i].ps,tmps.ps);
s[i].power=tmps.power;
}
}
fp=fopen(datafile,"wb+");
if(fp==NULL)
{
p 65、rintf("文件%s信息錯誤\n",datafile);
exit(1);
}
for(i=0;i 66、息錯誤\n",datafile);
exit(1);
}
printf("序號\t姓名\t密碼\t權(quán)限\n");
while(fread(&show,sizeof(huiyuan),1,fp)!=0)
printf("%ld\t%s\t%s\t%d\n",show.number,show.name,show.ps,show.power);
fclose(fp);
}
9、會員模塊
Void show()
{
FILE *fp;
book tmps,s[size],show,temp;
char name[9],datafile[40]="book";
int recnumber,i,result=0;
begin:
printf("請輸入要瀏覽的圖書名稱:");
scanf("%s",name);
fp=fopen(datafi
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案