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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

8、書或者還書成功后圖書的在庫狀態(tài)即改變。系統(tǒng)中主要的數(shù)據結構就是圖書的信息,包含編號、書名、作者、出版社、出版時間、價格、在庫狀態(tài),在處理過程中各項可以成為一本圖書的不同屬性來處理。2、程序結構流程圖: 圖書管理系統(tǒng) 退 出 查 詢 錄 入 瀏 覽 刪 除 修 改3、 設計表示:(1) 利用結構體typedef struct ;將圖書館內的書籍共同擁有的屬性和數(shù)量表達出來,屬性中包括書號、書名、作者、出版社出版時間以及價格,屬性中包括書的本數(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這個文件,確認文件可用時即可保存圖書信息;void putin() 可方便圖書館工作人員錄入新書,具體錄入內容包括書號、書名、作者名、出版社、出版時間以及價格;利用1,0讓工作人員可選擇繼續(xù)錄入否;使用者可以通過void lookup()這個子函數(shù)來查詢圖書館所以書籍的在庫狀態(tài),如果書籍不在即表示已經借出;如果使用者想要搜索自己想要

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

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

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

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

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

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

16、00年6月第1版9 嚴蔚敏等 數(shù)據結構(c語言版) 北京:清華大學出版社,1997年4月第1版。10 明日科技 編著Visual C+程序開發(fā)范例寶典北京:人民郵電出版社。11 胡學鋼等數(shù)據結構算法設計指導北京:清華大學出版社,1999年 第1版。12 劉大有數(shù)據結構(面向21世紀課程教材) 北京:高等教育出版社。2001年6月第1版。 8胡學鋼等數(shù)據結構算法設計指導北京:清華大學出版社,1999年 第1版。原代碼:#include#include#includetypedef struct char number10;/書號char name20;/書名char author20;/作者ch

17、ar 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;fwrite(&library.count,sizeof(int),1,fp);fwrite(library.book,sizeof(library.book0),

18、library.count,fp);void putin() /*定義錄入函數(shù)*/ int y=1; system(cls);while(y) printf(t請輸入您的書籍的書號:);scanf(%s,library.booklibrary.count.number);printf(t請輸入書名:);scanf(%s,); printf(t請輸入作者名:);scanf(%s,library.booklibrary.count.author);printf(t請輸入出版社:);scanf(%s,library.booklibrary.

19、count.publish);printf(t請輸入出版時間:);scanf(%s,library.booklibrary.count.time);printf(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作

20、者名t出版社t出版日期t圖書價格n);for ( i=0;ilibrary.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 flag=1; printf(n請輸

21、入要查詢的書名: );fflush(stdin);scanf(%s,s2);printf(圖書號t圖書名t作者名t出版社t出版日期t圖書價格n);for( i=0;ilibrary.count;i+ ) if(strcmp(s2,)=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

22、 (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出版社t出版日期t圖書價格n);for( i=0;ilibrary.count;i+ ) if(strcmp(s3,library.booki.author)=0) flag=0;printf(%st%st%st%st%st

23、%6.2fn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); if (flag)printf(cannot found!); fflush(stdin);getchar(); void search() /*定義查詢函數(shù)*/ int a;system(cls); /*進行清屏*/printf(tt*n);printf(開始查詢n);printf(ttt1-search_by_namen);prin

24、tf(ttt2-search_by_writern);printf(ttt0-exitn);printf(tt*n) ;printf(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 th

25、e book you want to delete:);fflush(stdin);scanf(%s,number); for (i=0;ilibrary.count;i+)if(strcmp(number,library.booki.number)=0)break; if (i!=library.count) for(;ilibrary.count-1;i+)strcpy(,library.booki+1.name);strcpy(library.booki.number,library.booki+1.number);strcpy(library.boo

26、ki.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 number10; syst

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

28、i.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(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); scanf(%f,&book.price); strcpy(,); strcpy(library.booki.number,book.number); strcpy(library.booki.publish,book.publish);strcpy(libr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論