![圖書登記管理系統(tǒng)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-3/28/7d335271-f5fa-4fa9-a0f9-f0ab49ce901f/7d335271-f5fa-4fa9-a0f9-f0ab49ce901f1.gif)
![圖書登記管理系統(tǒng)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-3/28/7d335271-f5fa-4fa9-a0f9-f0ab49ce901f/7d335271-f5fa-4fa9-a0f9-f0ab49ce901f2.gif)
![圖書登記管理系統(tǒng)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-3/28/7d335271-f5fa-4fa9-a0f9-f0ab49ce901f/7d335271-f5fa-4fa9-a0f9-f0ab49ce901f3.gif)
![圖書登記管理系統(tǒng)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-3/28/7d335271-f5fa-4fa9-a0f9-f0ab49ce901f/7d335271-f5fa-4fa9-a0f9-f0ab49ce901f4.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、i登記管浬系統(tǒng)目錄一、題目描述:2二、題目要求:2三、需求分析: 2四、總體設(shè)計(jì):4五、實(shí)現(xiàn)過程與解決的主要問題81、實(shí)現(xiàn)過程:82、解決的主要問題問題:93、測試過程及結(jié)果:9六、特色及有待改進(jìn)的方面: 17七、自我體會(huì)與評價(jià): 18八、參考文獻(xiàn): 18九、源代碼:18、題目描述:設(shè)計(jì)一個(gè)圖書登記管理程序 。二、題目要求:1、圖書信息應(yīng)該包括編號(hào),書名,出版社和價(jià)格等;2、按照分析,設(shè)計(jì),編碼,調(diào)試和測試的軟件開發(fā)過程完成這個(gè) 應(yīng)用程序;3、為各項(xiàng)操作功能設(shè)計(jì)一個(gè)菜單,應(yīng)用程序運(yùn)行后,先顯示這個(gè) 菜單,然后用戶通過菜單項(xiàng)選擇希望進(jìn)行的操作項(xiàng)目。4 進(jìn)入每個(gè)操作后,根據(jù)應(yīng)用程序的提示信息,從鍵
2、盤輸入相應(yīng) 的信息。要求用戶輸入數(shù)據(jù)時(shí),要給出清晰,明確地提示信息, 包括輸入的數(shù)據(jù)內(nèi)容,格式及結(jié)束方 式等。三、需求分析:該程序具有以下功能:1、應(yīng)用程序運(yùn)行后, 在屏幕上顯示一個(gè)菜單。 用戶可以根據(jù)需求, 選定相應(yīng)的操作項(xiàng)目。進(jìn)入每個(gè)操作后,根據(jù)應(yīng)用程序的提示 信息,從鍵盤輸入相應(yīng)的信息。2、錄入圖書信息3、給定圖書編號(hào),顯示某本圖書的信息;4、給定某個(gè)關(guān)鍵字,顯示所有書名中包含該關(guān)鍵字的圖書信息;5、給定出版社,顯示該出版社的所有圖書信息;6、刪除某本圖書的信息;7、提供一些統(tǒng)計(jì)各類信息的功能。擴(kuò)展功能:將所有圖書信息存儲(chǔ)在一個(gè)文件中,并實(shí)現(xiàn)文件讀寫的操作。四、總體設(shè)計(jì):文件及函數(shù)組成
3、:運(yùn)用技術(shù):1、收集圖書書名,出版社(字符型數(shù)組),價(jià)格(實(shí)型)圖書編號(hào)(整型);2、調(diào)用printf打印目錄;3、用switch,使用戶選擇操作項(xiàng)目,共有 7case4、Case 1錄入某本圖書的信息,調(diào)用printf打印出“書名 出版 社價(jià)格編號(hào)”case2給定圖書編號(hào),顯示某本圖書的信息;case3給定某個(gè)關(guān)鍵字,顯示所有書名中包含該關(guān)鍵字的圖書信息;case4給定出版社,顯示該出版社的所有圖書信息;case5刪除某本圖書的信息;case6提供一些統(tǒng)計(jì)各類信息的功能;case7退出。源文件函數(shù)名或其他成分功能模塊Record.cmai n總控函數(shù)menu-select菜單選擇In put
4、s.creadi n錄入圖書信息Nu mber給定圖書編號(hào),顯示某本圖書的信息keyword.ckeyword給定關(guān)鍵字顯示所有書名中含該關(guān)鍵字的圖書信息Publish.cpublisher給定出版社,顯示該出版社的所有圖書信息;Delete.cdelete刪除某本圖書的信息Statistic.cstatistic統(tǒng)計(jì)功能Record.h庫函數(shù)及函數(shù)聲明結(jié)構(gòu)聲明引用庫函數(shù)及其他函數(shù)結(jié)構(gòu)類型定義頭文件應(yīng)包含的內(nèi)容-聲明函數(shù)原型-包含文件-自定義宏-數(shù)據(jù)結(jié)構(gòu)菜單選擇函數(shù)menu_select-函數(shù)原型:void menu_select()-功能:接收用戶選擇的命令代碼-參數(shù):無參數(shù)
5、-工作方式:返回命令代碼的整數(shù)值-要求:只允許選擇規(guī)定鍵,如果輸入不符合要求,則提醒用戶重新輸入錄入信息函數(shù)-函數(shù)原型:void readin ()-功能:錄入圖書信息-參數(shù):無參數(shù) -要求:正確輸入圖書信息編號(hào)函數(shù)- 函數(shù)原型: void number()-功能: 給定圖書編號(hào),顯示某本圖書的信息- 參數(shù):無參數(shù)- 要求:正確輸入要查的書的編號(hào) 關(guān)鍵字函數(shù)- 函數(shù)原型: void keyword()-功能: 給定關(guān)鍵字顯示所有書名中含該關(guān)鍵字的圖書信息- 參數(shù):無參數(shù)- 要求:正確輸入關(guān)鍵字 出版社函數(shù)- 函數(shù)原型: void publish ()-功能: 給定出版社,顯示該出版社的所有圖書
6、信息 -參數(shù):無參數(shù)-要求:正確輸入出版社名字刪除函數(shù)- 函數(shù)原型: void del ()-功能:刪除圖書信息-參數(shù):無參數(shù) -要求:輸入要?jiǎng)h除圖書的編號(hào)統(tǒng)計(jì)函數(shù)-函數(shù)原型: void statistic()-功能:統(tǒng)計(jì)功能-參數(shù): 無參數(shù)-要求:正確輸入出版社名稱退出函數(shù)- 函數(shù)原型: exit(int)-功能:退出程序-參數(shù):整型數(shù)據(jù)五、實(shí)現(xiàn)過程與解決的主要問題1、實(shí)現(xiàn)過程:一、首先要對整個(gè)程序有個(gè)全局的理解,清楚知道程序要實(shí)現(xiàn)的功 能。二、先進(jìn)行需求分析,再編寫。三、上機(jī)編寫代碼,定義函數(shù)及各種聲明,分模塊編寫函數(shù)。1、.record.c中含主函數(shù)和 menuselect函數(shù);2、in
7、put.c 中含錄入信息函數(shù),應(yīng)用了結(jié)構(gòu)體數(shù)組,將圖書多種信息 定義在一起,便于操作管理;3、number.c中含編號(hào)函數(shù),應(yīng)用2個(gè)循環(huán)(if和for), 1次打開和 關(guān)閉文件完成功能;4、keyword.c 中含關(guān)鍵字函數(shù),應(yīng)用 1 個(gè)標(biāo)簽, 1 次打開和關(guān)閉文 件, 1 個(gè)循環(huán)嵌套和 1 個(gè) if 循環(huán)完成功能;5、 Publish.c含出版社函數(shù),應(yīng)用1個(gè)標(biāo)簽,1次打開和關(guān)閉文件,1個(gè)循環(huán)嵌套和2個(gè)if循環(huán)完成功能;6、Delete.c 含刪除函數(shù),應(yīng)用 2 次打開和關(guān)閉文件, 1 個(gè)循環(huán)嵌套和1個(gè)if循環(huán)完成功能,1個(gè)for循環(huán)完成功能;7、Statistic.c 含統(tǒng)計(jì)函數(shù),應(yīng)用 1
8、 個(gè)標(biāo)簽, 1 次打開和關(guān)閉文件, 1個(gè)循環(huán)嵌套和 2 個(gè) if 循環(huán)完成功能;四、先單獨(dú)進(jìn)行編譯,沒有錯(cuò)誤后再建工程,一起進(jìn)行連接和運(yùn)行。 發(fā)現(xiàn)錯(cuò)誤后及時(shí)進(jìn)行修改和測試, 能夠運(yùn)行后, 再次進(jìn)行檢查和修改 ,使程序趨近于完善。2、解決的主要問題問題:1. 由于疏忽而造成的中英文標(biāo)點(diǎn)錯(cuò)誤,由于不認(rèn)真忘記加分號(hào),源代 碼輸入錯(cuò)誤;2. 實(shí)現(xiàn)功能的算法有錯(cuò)誤;3. 由于知識(shí)掌握不牢固而產(chǎn)生的技術(shù)錯(cuò)誤。3、測試過程及結(jié)果:菜單:息版 信岀 書社 息的岀息 信書該信 書該-簾 圖一I圖 息示顯,除 信顯,社刪 書,字版, 圖養(yǎng)出號(hào) 入編關(guān)定編計(jì)出 錄給給給給統(tǒng)退a select code:錄入圖書信息
9、:給定圖書編號(hào),顯示某本圖書的信息:ci CADOCHIEWTS AMD SETTING面I圉書禿記管理乘境Bdbu飢圈書登記官理.罔書登i己管理豆統(tǒng)書S-有所息版 信岀 書社 息的出息 信書該信 書該一絡(luò) 圖示顯圈 息-盍M 信亞,社W 書字皈 團(tuán)量出鈦 入編關(guān)定編計(jì)岀 求給拿給統(tǒng)退 F * %-*F * 1 F 1 2 3 4 石五please enter a select code: 2The Flie is smccBesfuill upened.PIbbsb (enter the ordEi* of the hookNurnber -1Name:2flutbor :3Publishe
10、r: 4Price :5 .= 000000_ n x給定關(guān)鍵字顯示所有書名中含該關(guān)鍵字的圖書信息:兀*C: DOCUMEKTS AJVD SETTIVGSADIIH桌面團(tuán)書登記管理盞統(tǒng)Debufg書登記管理.目錄S4.件自社宙嚴(yán)的所有圖書息的岀息 倩書該信 書該一絡(luò) 圖示顯圖 急示顯,除 信顯,社刪 書,字版 圖養(yǎng)岀號(hào) 編關(guān)T編計(jì)出 錄給給給給統(tǒng)退lease enter a select code: 3lie f ile is successfully openlease enter the hook name which i/ou want to search: 2 lambeir -1l
11、ame =2uthar3iiblisher: 4 ric:5 * 000000給定出版社,顯示該出版社的所有圖書信息:“ C:MWCUenenter he publicheF which you uairit to setrch- 3 lumber: 2 lane:3uthor :4ublishei*: 5rice:he total of the hook is: C:DocuBent5 and Sett jncsX adsinX 臭面圈書登記管理 S5fcDeburE1 書奩記管理-”alese ointoiP a s Leet code: 圖書登記肯理系魏自心的岀自心 信書4115 圖示顯
12、圖 息示顯B 信並,社刪 書.字版 圏闿!p 入編關(guān)畧計(jì)岀 錄驚暑統(tǒng)退結(jié)束程序:,*C:DOCUIEHTS AMD SETTINGSAD1I1I桌面、圈書登記管理tDebug圖書登記管理-圖書登記管理系統(tǒng)目錄息版 信出 書社 自心的出自心 信節(jié)該信 書該一絡(luò) 圖示顯圖 息示顯,除 信顯,社刪 書,字版, 圖口聶出號(hào) 入編關(guān)定編計(jì)岀 錄給給給給統(tǒng)退inter a select code: ? Jress anu key to cont inue六、特色及有待改進(jìn)的方面:特色:1各個(gè)功能結(jié)束之后自動(dòng)清屏,便于使用者使用;2、操作簡單、明了;3、每個(gè)功能完成后能返回主菜單繼續(xù)進(jìn)行其他操作有待改進(jìn):1
13、、關(guān)鍵字函數(shù)中關(guān)鍵字只是書名;2、統(tǒng)計(jì)函數(shù)只有一個(gè)功能。七、自我體會(huì)與評價(jià):體會(huì): 這此實(shí)訓(xùn), 我學(xué)到了許多知識(shí)。 我明白了編程并不是一開 始便編寫, 在編寫程序之前還要做許多工作, 包括 理解題目、 行需求分析、函數(shù)構(gòu)想、功能構(gòu)想。編程時(shí)須認(rèn)真嚴(yán)謹(jǐn),測試的 過程需要耐心和毅力。遇到困難時(shí),要先自己思考,實(shí)在不懂就 向他人求助或上網(wǎng)查詢,但一定要弄明白,掌握這個(gè)知識(shí)。評價(jià): 對自己的實(shí)訓(xùn)成果在一定程度上比較滿意。源代碼獨(dú)立完成、 測試時(shí)向?qū)W長學(xué)姐請教過,明白了錯(cuò)在何處。不足就是缺乏耐心,不 太認(rèn)真,愛犯細(xì)節(jié)錯(cuò)誤。八、參考文獻(xiàn):標(biāo)準(zhǔn) C 語言基礎(chǔ)教程 C 語言程序設(shè)計(jì)實(shí)驗(yàn)實(shí)訓(xùn)教程九、源代碼:Re
14、cord.h#ifndef _H_RECORD_H #define _H_RECORD_H#include #include #include #include #include #include #define n 2 #define MAX 20 struct Bookint nums; char name20; char author30; char publisher30; float price;extern struct Book books200;void menuselect();/function prototypevoid readin();/function protot
15、ypevoid numb();/function prototypevoid publish();/function prototypevoid keyword(); /function prototypevoid del(); /function prototypevoid statistic();/function prototype#endifRecord.c#includerecord.hstruct Book books20;int main()menuselect(); /the function is called herereturn 0;void menuselect() /
16、function headerint opselect;menu:Sleep(1000);/sleep one secondssystem(cls);/clean the screanprintf( 圖書登記管理系統(tǒng) nn);printf( 目錄 nnn);printf(1 、錄入圖書信息 n);printf(2 、給編號(hào),顯示圖書信息 n);printf(3 、給關(guān)鍵字,顯示該書的圖書信息 n);printf(4 、給定出版社,顯示該出版社出版的所有圖書 n);printf(5 、給編號(hào),刪除圖書信息 n);printf(6、統(tǒng)計(jì) n);printf(7、退出 nn);printf(Ente
17、r a select code: );scanf(%d,&opselect);if(opselect7|opselect1)printf( 輸入不符合要求,請重新輸入 n);goto menu;elseswitch(opselect)case 1:readin( );/the function is called here break;case 2:numb();/the function is called here break;case 3:keyword(); /the function is called here break;case 4:publish();/the functio
18、n is called here break;case 5:del(); /the function is called here break;case 6:statistic();/the function is called here break;case 7:exit(1); /end the program break;Inputs.c#include record.hvoid readin() /function headerint i,sum;FILE *infile;infile=fopen(book.txt,a); /open the fileif(infile = NULL)
19、printf(Dont open the file!n);printf(Please enter the sum number of the input books: ); scanf(%d,&sum);for(i=0;isum;i+)printf(Number: );scanf(%d,&booksi.nums);printf(nName: );scanf(%s,);printf(Author: );scanf(%s,booksi.author );printf(Publisher: );scanf(%s,booksi.publisher);printf(Price: )
20、;scanf(%f,&booksi.price);fprintf(infile,%d%s%s%s%fn,booksi.nums,,bo oksi.author,booksi.publisher, . booksi.price,booksi.store);fclose(infile); /close the filemenuselect();/the function is calling here,return to the menu Number.c#includerecord.hvoid numb() /function header int count,i=0;FI
21、LE*infile;infile=fopen(book.txt,r); /open the fileif(infile=NULL)printf(nFail to open the file.n);exit(1);elseprintf(nThe file is successfully opened.n);printf(Please enter the order of the book: ); scanf(%d,&count);count-;for(i=0;i20;i+)fscanf(infile,%d,&booksi.nums);fscanf(infile,%s,);f
22、scanf(infile,%s,booksi.author);fscanf(infile,%s,booksi.publisher);fscanf(infile,%f,&booksi.price);printf(Number: %dn,bookscount.nums);printf(Name: %sn,);printf(Author: %sn,bookscount.author);printf(Publisher: %sn,bookscount.publisher);printf(Price: %fn,bookscount.price);Sleep(3000);/s
23、leep three secondsfclose(infile); /close the filemenuselect();/the function is calling here,return to the menuKeyword.c#includerecord.hvoid keyword() /function headerchar key30;int i=0;int position=0;int Corr=0;/make a tagFILE *infile;infile=fopen(book.txt,r); /open the fileif(infile=NULL)printf(nFa
24、il to open the file.n);exit(1);elseprintf(nThe file is successfully open.);getchar();printf(nPlease enter the book name which you want to search: );gets(key);for(i=0;i10;i+)fscanf(infile,%d%s%s%s%fn,&booksi.nums,,booksi.author,booksi.publisher, . &booksi.price);if(strcmp(key,)=
25、0)position = i;Corr=1;if(Corr=1)printf(Number: %dn,booksposition.nums);printf(Name: %sn,);printf(Author: %sn,booksposition.author);printf(Publisher: %sn,booksposition.publisher);printf(Price: %fn,booksposition.price);Sleep(3000); /sleep three secondselse printf(Dont Found!n);fclose
26、(infile); /close the filemenuselect();/the function is calling here,return to the menu Publish.c#includerecord.hvoid publish() /function headerchar print30;int i=0,j=0;int positionMAX;int Corr=0;/make a tagint maxj;FILE *infile;infile=fopen(book.txt,r); /open the fileif(infile=NULL)printf(nFail to o
27、pen the file.n);exit(1);elseprintf(nThe file is successfully open.);getchar();printf(nPlease enter the publish which you want to search: ); gets(print);for(i=0;i10;i+)fscanf(infile,%d%s%s%s%fn,&booksi.nums,, booksi.author,booksi.publisher, . &booksi.price);if(strcmp(print,booksi.publisher
28、)=0)positionj = i;Corr=1;j+;maxj=j;if(Corr=1)j=0;for(i=0;imaxj;i+)printf(Number: %dn,bookspositionj.nums); printf(Name: %sn,); printf(Authorr: %sn,bookspositionj.author);printf(Publisher: %sn,bookspositionj.publisher); printf(Price: %fn,bookspositionj.price); printf(nn);Sleep(1000
29、);/sleep one secondselseprintf(Dont Found!n);fclose(infile); /close the fileSleep(1000);/sleep one secondssystem(pause);menuselect();/the function is calling here,return to the menu Delete.c#includerecord.hvoid del() /function header FILE*infile;FILE*outfile;int i;int j;int booksCount;/ Count the nu
30、mber of books that has alreadysaved into delS=0;infile=fopen(book.txt,r); /open the fileif(infile=NULL)printf(nFail to open the file.n);exit(1);elseprintf(nThe file is successfully opened.n);printf(Please enter the number of the book which you want to deleted: );scanf(%d,&j);printf(The nu
31、mber of the book you want to delete is %dn,j);booksCount = 0; / Initializaiton.while(fscanf(infile,%d%s%s%s%fn,&booksbooksCount.nums,booksbooksC,booksbooksC ount.author ,booksbooksCount.publisher,&booksbooksCount.pric e) != EOF)/ Scan the file until meet EOF, i.e., the End Of File.if(booksbooksCount.nums = j)/ booksCount remain the same.elsebooksCount+;fclose(infile);outfile = fopen(book.txt,w);printf(%dn!,booksCount+1);for(i=0;ibooksCount;i+)fprintf(outfile,%d%s%s%s%fn,,booksi.authorbooksi.p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球自動(dòng)包餃子機(jī)行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025-2030全球丙烷氣體燃燒器行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025-2030全球便攜式應(yīng)急電源發(fā)電機(jī)行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國廢物回收分類機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球X射線防護(hù)面罩行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025-2030全球同軸微導(dǎo)管系統(tǒng)行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國高電壓鈷酸鋰正極材料行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球水性涂布紙吸管行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025-2030全球農(nóng)業(yè)機(jī)器自動(dòng)方向?qū)Ш皆O(shè)備行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025-2030全球光學(xué)對準(zhǔn)服務(wù)行業(yè)調(diào)研及趨勢分析報(bào)告
- (2024)河南省公務(wù)員考試《行測》真題及答案解析
- 湖北省十一校2024-2025學(xué)年高三上學(xué)期第一次聯(lián)考化學(xué)試題 含解析
- 醫(yī)療保險(xiǎn)結(jié)算與審核制度
- 圍城讀書分享課件
- 2025年河北省單招語文模擬測試二(原卷版)
- 工作計(jì)劃 2025年度醫(yī)院工作計(jì)劃
- GB 21258-2024燃煤發(fā)電機(jī)組單位產(chǎn)品能源消耗限額
- 2024年全國各地中考試題分類匯編:古詩詞閱讀
- 農(nóng)產(chǎn)品質(zhì)量評估與分級(jí)
- 社區(qū)成人血脂管理中國專家共識(shí)(2024年)
- 信息科技重大版 七年級(jí)上冊 互聯(lián)網(wǎng)應(yīng)用與創(chuàng)新 第1單元 單元教學(xué)設(shè)計(jì) 互聯(lián)網(wǎng)時(shí)代
評論
0/150
提交評論