圖書管理系統(tǒng)C語言課程設(shè)計_第1頁
圖書管理系統(tǒng)C語言課程設(shè)計_第2頁
圖書管理系統(tǒng)C語言課程設(shè)計_第3頁
圖書管理系統(tǒng)C語言課程設(shè)計_第4頁
圖書管理系統(tǒng)C語言課程設(shè)計_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、合肥學(xué)院計算機(jī)科學(xué)與技術(shù)系課程設(shè)計報告20122013學(xué)年第一學(xué)期課程C語言課程設(shè)計課程設(shè)計名稱 圖書管理系統(tǒng)學(xué)生姓名 學(xué)號 專業(yè)班級 指導(dǎo)教師 目 錄1、 系統(tǒng)設(shè)計背景;2、 課程設(shè)計的需求分析:3、 系統(tǒng)設(shè)計的目的及具體要求;4、 算法設(shè)計;5、 用戶手冊;6、 調(diào)試及測試;7、 總結(jié).1、 系統(tǒng)設(shè)計背景: 人類已經(jīng)跨入了新世紀(jì),正在進(jìn)入信息化時代。信息化浪潮、網(wǎng)絡(luò)革命在給社會帶來沖擊的同時,也使圖書館業(yè)務(wù)受到了強(qiáng)烈的沖擊,圖書館傳統(tǒng)的管理和服務(wù)方式已不能適應(yīng)讀者對日益增長的文獻(xiàn)信息的需求。隨著館藏量的不斷增加,圖書資料的錄入和查詢的難度也就相應(yīng)增加,數(shù)據(jù)處理手工操作,工作量大,出錯率高,

2、出錯后不易更改的手工方式,已經(jīng)不能滿足要求。 基于此問題,建立一個規(guī)范化,系統(tǒng)化,程序化的圖書管理系統(tǒng)迫不及待。為方便對圖書館書籍的錄入、修改、刪除、借、還書等進(jìn)行高效的管理,特編寫程序以提高圖書館的管理效率。使用程序之后,工作人員可以查詢書籍的在庫狀態(tài),刪除或者修改某圖書,可以全面掌握圖書的流通情況等等。2、 課程設(shè)計的需求分析: 為了滿足圖書管理的要求,通過計算機(jī)技術(shù)給圖書管理員和讀者借書、還書帶來便利。使用C語言編寫了圖書管理系統(tǒng)。本系統(tǒng)主要實現(xiàn)了圖書信息管理的功能,通過此系統(tǒng)可以對圖書館庫存圖書信息進(jìn)行管理和維護(hù)操作。實現(xiàn)了圖書館內(nèi)管理的一般功能,包括查詢、刪除、修改、圖書信息等,所設(shè)

3、計的系統(tǒng)以菜單方式工作,為用戶提供清晰的使用提示,依據(jù)用戶的選擇來進(jìn)行各種處理,并且在此過程中能夠盡可能的兼容用戶使用過程中可能出現(xiàn)的異常情況。圖書信息包括編號、書名、作者、出版社、出版日期、價格等,圖書信息的錄入要求和顯示要求是一定的規(guī)范要求,錄入的圖書信息用文件形式保存,并可以對其進(jìn)行瀏覽、查詢、修改、刪除等基本操作。3、 系統(tǒng)設(shè)計的目的及具體要求:(1)目的:將理論教學(xué)中涉及到的知識點貫穿起來,對不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作一比較和總結(jié),結(jié)合設(shè)計題目進(jìn)行綜合性應(yīng)用,對所學(xué)知識達(dá)到融會貫通的程度。通過課程設(shè)計,學(xué)生在下述各方面的能力應(yīng)該得到鍛煉:(1)進(jìn)一步鞏固、加深學(xué)生所學(xué)專

4、業(yè)課程C程序設(shè)計語言的基本理論知識,理論聯(lián)系實際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力。 (2)全面考核學(xué)生所掌握的基本理論知識及其實際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的。 (3)利用所學(xué)知識,開發(fā)小型應(yīng)用系統(tǒng),掌握運用C語言編寫調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨立開發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力。(4)對于給定的設(shè)計題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。 (5)掌握結(jié)構(gòu)化程序設(shè)計方法,熟悉面向過程程序設(shè)計方法。(6)熟練掌握C語言的基本語法,靈活運用各種數(shù)據(jù)類型。(7)進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序和修改程序。(2)課程設(shè)計名稱及內(nèi)容課程設(shè)計名稱:圖書管理系統(tǒng)設(shè)計內(nèi)容

5、:設(shè)計一個實用的小型圖書管理程序,設(shè)計圖書的索引卡片。對圖書的在庫和借出狀態(tài)要有所表示。能提供讀者信息查詢及提供按圖書的編號、書名、責(zé)任者、出版社等途徑的檢索。(3)任務(wù)和要求程序應(yīng)提供的基本基本管理功能有:1) 添加:即增加一本數(shù)的記錄到系統(tǒng)中2) 存儲:即將圖書信息保存在一個文件中。3) 裝入:即將文件中的信息讀入程序。4) 查詢:可根據(jù)書名、編號查找書的相關(guān)信息,若找到顯示該書全部信息。5) 修改:可修改一本書的除書名外其它信息。、6) 狀態(tài):提供該書在庫、不在庫的狀態(tài)。四、算法設(shè)計: 1、系統(tǒng)設(shè)計思路 : 整個系統(tǒng)制造的過程中,涉及了較多C語言的知識點,對于不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)

6、等作以分析。(1) 整個系統(tǒng)除了主函數(shù)外,另外還有各種功能的子函數(shù),利用無限次循環(huán)語句while()和選擇語句switch()實現(xiàn)了各個子函數(shù)的功能,系統(tǒng)根據(jù)輸入的數(shù)字選項來調(diào)用相應(yīng)的函數(shù),以實現(xiàn)相應(yīng)的功能。主要實現(xiàn)了圖書的錄入、存儲、查詢、刪除、修改、借書、還書等功能;(2) mbook():這是一個圖書結(jié)構(gòu)體,可以描述每本書共同擁有的屬性和行為,(3) Save()、putin()、lookup()、del()、update()、search():這幾個是功能函數(shù),Save():保存一本書的信息,putin():錄入一本書的信息,search():查詢一本書的信息以及記錄,update()

7、:修改一本書的信息,del():刪除一本書的信息.(4) Borrowbook()、returnbook(),這兩個函數(shù)式借書的函數(shù),在借還后系統(tǒng)會修改圖書的在庫信息,調(diào)用時將信息傳遞給函數(shù),函數(shù)返回經(jīng)過功能操作后,并會出提示信息讓用戶返回菜單保存信息。實現(xiàn)注釋: 這個適用的小型圖書管理系統(tǒng)程序的所有信息以磁盤文件的方式保存,方便用戶使用,實現(xiàn)了圖書管理系統(tǒng)的基本功能,包括了圖書的錄入、圖書的查詢、圖書的刪除、圖書的修改、圖書的在庫狀態(tài)表示。查詢是可按書名、編號、作者、出版社、出版時間以及價格等方式查詢,找到后系統(tǒng)會自動輸出這本書的所有信息。也可查詢圖書的在庫狀態(tài),方便用戶借書、還書操作,在借

8、書或者還書成功后圖書的在庫狀態(tài)即改變。系統(tǒng)中主要的數(shù)據(jù)結(jié)構(gòu)就是圖書的信息,包含編號、書名、作者、出版社、出版時間、價格、在庫狀態(tài),在處理過程中各項可以成為一本圖書的不同屬性來處理。2、程序結(jié)構(gòu)流程圖: 圖書管理系統(tǒng) 退 出 查 詢 錄 入 瀏 覽 刪 除 修 改3、 設(shè)計表示:(1) 利用結(jié)構(gòu)體typedef struct ;將圖書館內(nèi)的書籍共同擁有的屬性和數(shù)量表達(dá)出來,屬性中包括書號、書名、作者、出版社出版時間以及價格,屬性中包括書的本數(shù)以及最大可儲存的數(shù)量。(2) 分別寫不同的子函數(shù): void save(); void putin() ; void lookup(); void sear

9、ch_by_name() ; void search_by_author(); void search(); void del(); void update();首先利用void save()這個子函數(shù)來描述圖書管理系統(tǒng)保存圖書信息的功能,打開library.doc這個文件,確認(rèn)文件可用時即可保存圖書信息;void putin() 可方便圖書館工作人員錄入新書,具體錄入內(nèi)容包括書號、書名、作者名、出版社、出版時間以及價格;利用1,0讓工作人員可選擇繼續(xù)錄入否;使用者可以通過void lookup()這個子函數(shù)來查詢圖書館所以書籍的在庫狀態(tài),如果書籍不在即表示已經(jīng)借出;如果使用者想要搜索自己想要

10、的書,可以通過該書的各種屬性進(jìn)行查詢,在該系統(tǒng)中我僅列舉了兩種屬性即書名和作者,用戶在輸入想要找的書的書名或該書作者即可查詢書的在庫狀態(tài),如果該書尚在庫,用戶即可進(jìn)行借出操作,同時也可以得到該書的其他屬性,包括書名、作者、出版社、出版時間、價格;圖書館的工作人員在調(diào)整圖書庫時 ,如果想要刪除某些書籍,即可利用void del()這個子函數(shù)來進(jìn)行操作,輸入想要刪除的書籍的各種屬性即可找到該書,任何進(jìn)行刪除操作;當(dāng)然進(jìn)行修改某本書的屬性時也一樣,只要通過書的編號找到該書即可進(jìn)行各種不同的修改。(3) 最后在結(jié)尾編寫主函數(shù)main(),在確認(rèn)“l(fā)ibrary.doc”!=NULL時進(jìn)行圖書管理系統(tǒng)的

11、目錄操作,在系統(tǒng)的主目錄上,用戶可以看到六個操作選項,包括圖書信息錄入、圖書信息瀏覽、圖書信息查詢、圖書信息刪除、圖書信息修改、退出圖書管理系統(tǒng)。在確認(rèn)選項后即可進(jìn)行下一步由各個子函數(shù)實現(xiàn)的不同操作。(4) 設(shè)計過程中的想法:因為自身知識以及時間的所限,本系統(tǒng)所提供的功能非常有限,有一些圖書館所必備的功能沒有實現(xiàn),其中最重要的一點是對讀者的管理,如果時間充足的話還可以加入,設(shè)置借書卡或會員證,對書籍的借出狀況能有更好的儲存,在工作人員想要找書時可以利用系統(tǒng)查詢書籍的借者??偟膩碚f這個程序大致實現(xiàn)了題目的要求,但是這套程序仍然存在著很多的問題與不足,在提示信息方面可能還不夠,有待改進(jìn)。5、 用戶

12、手冊:下面,我大致介紹一下我得系統(tǒng)的主要功能和主要事項:當(dāng)運行該程序時,首先進(jìn)入系統(tǒng)主界面,如何可以選擇1.圖書信息的錄入2.圖書信息的瀏覽3.圖書信息的查詢4.圖書信息的刪除5圖書信息的修改0退出圖書管理系統(tǒng).當(dāng)出現(xiàn)please enter choose:時,需要輸入選項前的數(shù)字,輸入完之后按回車鍵。首次運行系統(tǒng)時應(yīng)選擇1,錄入一些書籍,在完成第一次的操作后,用戶即可再回到系統(tǒng)進(jìn)行其他選項的操作,不會出現(xiàn)cannot find!的錯誤提示,當(dāng)用戶選擇2時系統(tǒng)會出現(xiàn)第一次錄入的所有書的各種信息,包括書名、編號、作者、出版社、出版時間、價格;當(dāng)用戶選擇3時系統(tǒng)界面會出現(xiàn)提示,讓用戶選擇想要查詢書

13、籍的編號,輸入編號即可看到該書的各種不同屬性;當(dāng)用戶選擇4時系統(tǒng)也會給用戶提示,讓用戶選擇想要刪除的書籍編號,當(dāng)輸入編號并確認(rèn)后,該書就會在圖書管理系統(tǒng)中刪除;當(dāng)用戶選擇5時系統(tǒng)也會給用戶提示,讓用戶選擇想要修改的書籍編號,輸入完畢后,用戶即可對該書的不同屬性進(jìn)行修改操作;返回菜單需按回車鍵即可。6、 調(diào)試及測試: 1.進(jìn)入主菜單:2. 選擇1錄入3本書籍: 3. 選擇2瀏覽圖書信息: 4. 選擇3查詢圖書: 5.選擇4刪除圖書: 6. 選擇5修改圖書:7. 選擇0即可退出系統(tǒng)。7 總結(jié):在這兩個星期的實踐中,通過編寫這個圖書管理系統(tǒng),我體會到了C語言學(xué)習(xí)的適用性,將理論和實踐結(jié)合在一起,用先

14、進(jìn)的計算機(jī)工具方便人們的生活,C語言程序的編寫首先要從大局考慮,把自己編寫的整個程序的思想都寫在草稿上,這樣有助于自己編寫程序,在編寫時要完善注釋,方便其他人理解程序,編寫的程序從理論上來說并沒有錯誤,但一上機(jī)就錯誤不斷,甚至照搬課本上的知識也不變,不能得到正確的結(jié)果。有時程序改了一遍又一遍,但就是不能成功,編程簡直讓人頭都大了,看似簡單的程序,在調(diào)試時不斷出錯。經(jīng)反反復(fù)復(fù)的修改后,最后終于成功了,這時所有的煩惱都沒了,好輕松,想想這一切都是值得的。我認(rèn)為,開發(fā)一套系統(tǒng),最主要的是細(xì)心與耐心,并且思考要全面,結(jié)合實際,充分考慮客戶的需求和現(xiàn)實意義,不管什么系統(tǒng),只有運用到實際生活中,才具有現(xiàn)實

15、意義。所以C語言程序的實用性很強(qiáng),我們以后還要更加努力認(rèn)真地學(xué)習(xí)編程語言。參考資料:1 黃明等編著C語言課程設(shè)計北京:電子工業(yè)出版社2 郭翠英編著C語言課程設(shè)計案例精編北京:中國水利水電出版社3 寧正元數(shù)據(jù)結(jié)構(gòu)(c語言) 南京:東南大學(xué)出版社。2000年6月第1版4 嚴(yán)蔚敏等 數(shù)據(jù)結(jié)構(gòu)(c語言版) 北京:清華大學(xué)出版社,1997年4月第1版5 譚浩強(qiáng)編著C程序設(shè)計題解與上機(jī)指導(dǎo)(第3版) 北京:清華大學(xué)出版社6 譚浩強(qiáng)編著C程序設(shè)計(第3版) 北京:清華大學(xué)出版社7 洪國勝 等編著 C+ Builder程序設(shè)計輕松上手北京:清華大學(xué)出版社8 寧正元數(shù)據(jù)結(jié)構(gòu)(c語言) 南京:東南大學(xué)出版社。20

16、00年6月第1版9 嚴(yán)蔚敏等 數(shù)據(jù)結(jié)構(gòu)(c語言版) 北京:清華大學(xué)出版社,1997年4月第1版。10 明日科技 編著Visual C+程序開發(fā)范例寶典北京:人民郵電出版社。11 胡學(xué)鋼等數(shù)據(jù)結(jié)構(gòu)算法設(shè)計指導(dǎo)北京:清華大學(xué)出版社,1999年 第1版。12 劉大有數(shù)據(jù)結(jié)構(gòu)(面向21世紀(jì)課程教材) 北京:高等教育出版社。2001年6月第1版。 8胡學(xué)鋼等數(shù)據(jù)結(jié)構(gòu)算法設(shè)計指導(dǎo)北京:清華大學(xué)出版社,1999年 第1版。原代碼:#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct char

17、 number10;/書號char name20;/書名char author20;/作者char publish50;/出版社char time20;/出版時間float price;mbook;typedef structint count;/書的本數(shù)mbook book100;/最大可有100本書mlibrary; mlibrary library;void save()/保存圖書信息。FILE *fp;if(fp=fopen("library.doc","w")=NULL)printf("n不能保存圖書信息n");return

18、;fwrite(&library.count,sizeof(int),1,fp);fwrite(library.book,sizeof(library.book0),library.count,fp);void putin() /*定義錄入函數(shù)*/ int y=1; system("cls");while(y) printf("t請輸入您的書籍的書號:");scanf("%s",library.booklibrary.count.number);printf("t請輸入書名:");scanf("%

19、s",); printf("t請輸入作者名:");scanf("%s",library.booklibrary.count.author);printf("t請輸入出版社:");scanf("%s",library.booklibrary.count.publish);printf("t請輸入出版時間:");scanf("%s",library.booklibrary.count.time);printf(

20、"t請輸入該書的價格:");fflush(stdin);scanf("%f",&library.booklibrary.count.price);library.count+;printf("n是否繼續(xù)錄入(1.繼續(xù);0,退出錄入):");fflush(stdin);scanf("%d",&y);if (y!=1)y=0;break;save(); void lookup() int i ; system("cls"); printf("圖書號t圖書名t作者名t出版社t

21、出版日期t圖書價格n");for ( i=0;i<library.count;i+)printf("%st%st%st%st%st%6.2fn",library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); fflush(stdin); getchar();void search_by_name() /*定義按書名查詢*/ int i ; char s220; int fla

22、g=1; printf("n請輸入要查詢的書名: ");fflush(stdin);scanf("%s",s2);printf("圖書號t圖書名t作者名t出版社t出版日期t圖書價格n");for( i=0;i<library.count;i+ ) if(strcmp(s2,)=0) flag=0;printf("%st%st%st%st%st%6.2fn",library.booki.number,,library.booki.autho

23、r,library.booki.publish,library.booki.time,library.booki.price); if (flag)printf("cannot found!");fflush(stdin);getchar(); void search_by_author() /*定義按作者名查詢*/ int i ;char s320;int flag=1; printf("請輸入要查詢的書的作者: ");fflush(stdin);scanf("%s",s3);printf("圖書號t圖書名t作者名t出版社

24、t出版日期t圖書價格n");for( i=0;i<library.count;i+ ) if(strcmp(s3,library.booki.author)=0) flag=0;printf("%st%st%st%st%st%6.2fn",library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); if (flag)printf("cannot found!&qu

25、ot;); fflush(stdin);getchar(); void search() /*定義查詢函數(shù)*/ int a;system("cls"); /*進(jìn)行清屏*/printf("tt*n");printf("開始查詢n");printf("ttt1-search_by_namen");printf("ttt2-search_by_writern");printf("ttt0-exitn");printf("tt*n") ;printf("

26、tt請選擇你想要的查詢方式:");flush(stdin);scanf("%d",&a);switch(a)case 1:search_by_name();break; case 2:search_by_author();break;case 0: return; void del() /*定義刪除函數(shù)*/ int i;char number10; system("cls"); /*清屏*/ printf("n Please type in the number of the book you want to delete:&

27、quot;);fflush(stdin);scanf("%s",number); for (i=0;i<library.count;i+)if(strcmp(number,library.booki.number)=0)break; if (i!=library.count) for(;i<library.count-1;i+)strcpy(,library.booki+1.name);strcpy(library.booki.number,library.booki+1.number);strcpy(library.book

28、i.publish,library.booki+1.publish);strcpy(library.booki.author,library.booki+1.author);strcpy(library.booki.time,library.booki+1.time);library.booki.price=library.booki+1.price;library.count-; elseprintf("n cannot found!n");save();fflush(stdin);getchar();void update()/修改圖書信息 int i;char num

29、ber10; system("cls"); /*清屏*/printf("n Please type in the number of the book you want to delete:");fflush(stdin);scanf("%s",number);for (i=0;i<library.count;i+) if(strcmp(number,library.booki.number)=0) printf("圖書號t圖書名t作者名t出版社t出版日期t圖書價格n");printf("%st%s

30、t%st%st%st%6.2fn",library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); break; if (i!=library.count) mbook book; printf("ntt請輸入修改后此圖書的信息n"); printf("t請輸入圖書號:"); scanf("%s",book.number); printf(&q

31、uot;t請輸入圖書名:"); scanf("%s",); printf("t請輸入作者名:"); scanf("%s",book.author); printf("t請輸入出版社:"); scanf("%s",book.publish); printf("t請輸入出版時間:"); scanf("%s",book.time); printf("t請輸入該書的價格:"); fflush(stdin); scan

32、f("%f",&book.price); strcpy(,); strcpy(library.booki.number,book.number); strcpy(library.booki.publish,book.publish);strcpy(library.booki.author,book.author); strcpy(library.booki.time,book.time);library.booki.price=book.price; save(); else printf("n cannot found!n"); ffl

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論