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