




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、圖書分類號(hào):密 級(jí):畢業(yè)設(shè)計(jì)(論文)基于c語言的圖書管理系統(tǒng)design and implementation of books management system based on c language學(xué)生姓名學(xué)院名稱專業(yè)名稱指導(dǎo)教師2012年5月日 摘要人類已經(jīng)跨入了新世紀(jì),正在進(jìn)入信息化時(shí)代。信息化浪潮、網(wǎng)絡(luò)革命在給社會(huì)帶來沖擊的同時(shí),也使圖書館業(yè)務(wù)受到了強(qiáng)烈的沖擊,圖書館傳統(tǒng)的管理和服務(wù)方式已不能適應(yīng)讀者對(duì)日益增長的文獻(xiàn)信息的需求。隨著館藏量的不斷增加,圖書資料的錄入和查詢的難度也就相應(yīng)增加,數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后不易更改的手工方式,已經(jīng)不能滿足要求。 基于此問題
2、,建立一個(gè)規(guī)范化,系統(tǒng)化,程序化的圖書管理系統(tǒng)迫不急待。為方便對(duì)圖書館書籍、讀者資料、借還書等進(jìn)行高效的管理,特編寫程序以提高圖書館的管理效率。使用程序之后,工作人員可以查詢某位讀者、某種圖書的借閱情況,還可以對(duì)當(dāng)前圖書借閱情況進(jìn)行一些統(tǒng)計(jì),以便全面掌握?qǐng)D書的流通情況等等。關(guān)鍵詞:c語言;圖書管理;數(shù)據(jù)處理;信息技術(shù)abstractmankind has entered the new century, which is entering the information age. wave of information technology, the network revolution ha
3、s brought about the impact, but also make the library service has been badly hit,and library management and services of traditional methods can not meet the growing literature on the information the reader needs. with the continuous increase in the collections, books, data entry and also a correspon
4、ding increase in the difficulty of queries, data processing manual operation, heavy workload, error rate, error is not easy to change after the manual mode can no longer meet the requirements. based on this problem, the establishment of a standardized, systematic, process-oriented library management
5、 system can not wait. for the convenience of library books, readers information, such as borrowing and returning books for efficient management, especially the preparation of the management procedures to enhance the efficiency of the library. after using the program, staff can search for certain rea
6、ders, borrow some books, can also borrow books on the current situation of some statistics in order to fully grasp the flow of books. key words:c language, library management, data processing, information technology目 錄摘要iabstractii1 緒論11.1 選題的背景和選題的意義11.1.1 選題的背景11.1.2 選題的意義11.2 系統(tǒng)的特點(diǎn)21.3 需求分析22 系統(tǒng)的
7、總體設(shè)計(jì)32.1 系統(tǒng)總體設(shè)計(jì)32.2運(yùn)行環(huán)境和開發(fā)工具32.2.1開發(fā)工具32.2.2運(yùn)行環(huán)境42.3 系統(tǒng)流程圖43 系統(tǒng)的詳細(xì)設(shè)計(jì)63.1主體界面設(shè)計(jì)63.1.1主函數(shù)63.1.2輸入模塊73.1.3刪除模塊83.1.4查詢模塊93.1.5修改模塊103.1.6顯示模塊113.1.7借出模塊123.1.8歸還模塊143.1.9公共函數(shù)154 系統(tǒng)調(diào)試165系統(tǒng)運(yùn)行17結(jié) 論21致 謝22參考文獻(xiàn)23附錄 程序源代碼241 緒論1.1 選題的背景和選題的意義1.1.1 選題的背景隨著社會(huì)的發(fā)展,信息管理系統(tǒng)越來越受到人們的重視,運(yùn)用信息管理系統(tǒng)可以減少人們的工作量和工作時(shí)間,讓我們不必花費(fèi)
8、大量的時(shí)間在查找上,所以信息管理系統(tǒng)越來越受到管理人員的青睞并且被普遍應(yīng)用與各行各業(yè)中。在高校的圖書管理中因?yàn)闀當(dāng)?shù)量的龐大,手工是很難有效率的管理,運(yùn)用圖書管理系統(tǒng)則可以避免了手工操作而造成的錯(cuò)誤操作和減輕工作人員的工作量。圖書管理系統(tǒng)是圖書館的重要組成部分,圖書是我們最好的獲取信息的方式,但由于圖書館圖書收藏量大大增加,使傳統(tǒng)的圖書管理員的工作日益繁重起來,迫使人們起用新的管理方法來管理圖書。本文通過設(shè)計(jì)和開發(fā)圖書館管理系統(tǒng)的實(shí)踐,闡述了圖書管理軟件中所應(yīng)具有的功能、設(shè)計(jì)、實(shí)現(xiàn)。介紹了圖書管理系統(tǒng)的設(shè)計(jì)和系統(tǒng)功能的實(shí)現(xiàn)過程。該系統(tǒng)可以運(yùn)用于高校的圖書管理,由圖書借閱,圖書歸還,圖書查詢,圖
9、書信息修改,等多個(gè)模塊組成,實(shí)現(xiàn)了圖書資料的計(jì)算機(jī)網(wǎng)絡(luò)管理。一般通用的圖書館管理系統(tǒng)通常包括系統(tǒng)管理、讀者管理、編目、圖書流通、統(tǒng)計(jì)、查詢等功能。比較先進(jìn)的系統(tǒng)能夠在一個(gè)界面下實(shí)現(xiàn)圖書、音像、期刊的管理,設(shè)置假期、設(shè)置暫離鎖、暫停某些讀者的借閱權(quán)、導(dǎo)入導(dǎo)出讀者資料、交換marc(machine readable catalogue)數(shù)據(jù)、升級(jí)輔助編目庫、征訂圖書等。此外,隨著工internet應(yīng)用的發(fā)展,一個(gè)完善的系統(tǒng)還應(yīng)提供無縫接入internet的功能,通過ie瀏覽器讓讀者使用借閱資料查詢、更換密碼、預(yù)約、資料檢索等功能。有些系統(tǒng)還能提供讀者自助服務(wù),可以開放一些客戶機(jī)讓讀者自行管理密碼、
10、查詢自己的借閱史、預(yù)約資料、檢索資料等。1.1.2 選題的意義由于現(xiàn)在圖書數(shù)量的日益增加,如何對(duì)圖書進(jìn)行管理便成為了一個(gè)迫切要解決的問題,因?yàn)橛鞋F(xiàn)代技術(shù)的幫助,我們可以借助計(jì)算機(jī)來解決繁重的圖書管理問題。利用計(jì)算機(jī)科技可以提高圖書管理的效率和準(zhǔn)確率,然而,不同的處理方法會(huì)有不同的效率,因此,選擇一個(gè)好的算法和編輯一個(gè)好的程序便成為了人們正在研究的問題,好的算法和程序可以更好地管理圖書并且降低系統(tǒng)冗余度。圖書館是信息的處理和收集的地方,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書館都是初步開始使用,甚至尚未使用計(jì)算機(jī)進(jìn)行信息管理。根據(jù)調(diào)查得知,他們以前對(duì)信息管理的主要方式
11、是基于文本,表格等紙介質(zhì)的手工處理,數(shù)據(jù)處理工作量大,容易出錯(cuò)。由于數(shù)據(jù)繁多,容易丟失,且不易查找。總的來說,缺乏系統(tǒng)規(guī)范的信息管理手段。盡管有的圖書館有計(jì)算機(jī),但是尚未用于信息管理,沒有發(fā)揮它的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開發(fā)的基于環(huán)境。1.2 系統(tǒng)的特點(diǎn)由于系統(tǒng)是基于visual c+6.0為開發(fā)環(huán)境開發(fā)出來的在dos界面下的圖書管理系統(tǒng),系統(tǒng)簡(jiǎn)潔易于操作,用戶界面友好,人機(jī)交互方便。便于人們初步了解并使用圖書管理系統(tǒng),是信息管理變得簡(jiǎn)單,簡(jiǎn)化人們的工作量,檢索迅速、查找方便、易修改、可靠性高、存儲(chǔ)量大、數(shù)據(jù)處理快捷、保密性好、壽命長、成本低、數(shù)據(jù)冗余度比較低、系統(tǒng)穩(wěn)定性比
12、較好等。1.3 需求分析本系統(tǒng)根據(jù)常規(guī)的圖書館的基本功能有錄入、刪除、查詢、修改、借書、還書等功能。分為添加和刪除都采用鏈?zhǔn)浇Y(jié)構(gòu)的原理去執(zhí)行文件。在讀者區(qū)讀者可以按編號(hào)或書名輕松找到所需書的信息,這里也采用的是鏈?zhǔn)浇Y(jié)構(gòu)原理執(zhí)行。與此同時(shí),本系統(tǒng)操作界面很是簡(jiǎn)單清晰,一目了然,給讀者以舒服的感官效果。同時(shí)該系統(tǒng)中用到結(jié)構(gòu)體,數(shù)組等編程用法。通過對(duì)中小型圖書館的調(diào)查、分析發(fā)現(xiàn),用戶的需求可分為4個(gè)方面:第一是圖書館的工作人員通過計(jì)算機(jī)來管理各類圖書,分類編號(hào)、調(diào)整圖書結(jié)構(gòu)、增加圖書庫存,適應(yīng)讀者的需求。第二是讀者能通過計(jì)算機(jī)來查詢?yōu)g覽圖書館中的圖書,來確定自己需要的書籍,為借閱做好準(zhǔn)備。第三是工作
13、人員對(duì)讀者的借書情況能夠作好全面掌握,能及時(shí)得到每個(gè)讀者的當(dāng)前借閱狀態(tài)和歷史借閱記錄。第四也是圖書館的核心工作,對(duì)圖書的借閱管理。在軟、硬件方面對(duì)系統(tǒng)的需求是軟件要易學(xué),容易掌握,可以很簡(jiǎn)單方便地管理各種圖書信息。硬件的配置要求不能太高,這樣可以適應(yīng)中小型圖書館的經(jīng)濟(jì)條件。所以中小型圖書館管理信息系統(tǒng)旨在提供一個(gè)可以操作的,方便查詢的,易于修改的輔助管理系統(tǒng)。同時(shí)提供了系統(tǒng)智能輔助與用戶自主選擇的兩種方式,提高查詢效率根據(jù)系統(tǒng)特點(diǎn)確定了開發(fā)模型,再通過對(duì)系統(tǒng)進(jìn)行需求分析研究,建立結(jié)構(gòu)化分析,系統(tǒng)功能模塊,系統(tǒng)流程圖。然后通過對(duì)各個(gè)功能模塊進(jìn)行深入分析,確定數(shù)據(jù)的定義和屬性,及各功能的實(shí)現(xiàn)。論文
14、介紹了圖書管理系統(tǒng)的運(yùn)行環(huán)境和開發(fā)環(huán)境,結(jié)合了數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí)。最終設(shè)計(jì)實(shí)現(xiàn)了借還書籍,書籍管理等圖書管理系統(tǒng)的基本功能。作為計(jì)算機(jī)應(yīng)用的一部分,具有著手工管理所無法比擬的優(yōu)點(diǎn)。 2 系統(tǒng)的總體設(shè)計(jì)2.1 系統(tǒng)總體設(shè)計(jì)實(shí)用的圖書館管理系統(tǒng)應(yīng)該包括:u 錄入:新進(jìn)圖書及基本信息輸入u 刪除:舊圖書及基本信息刪除u 查詢:查詢要借閱的圖書信息u 修改:修改已有的圖書信息u 借書:實(shí)現(xiàn)用戶辦理借書手續(xù)u 還書:實(shí)現(xiàn)用戶.辦理還書手續(xù)系統(tǒng)以菜單方式工作可以使界面友好,易于操作。用戶可以對(duì)本系統(tǒng)進(jìn)行自己需要的查詢或修改操作,如根據(jù)用戶的需求自動(dòng)的進(jìn)行添加操作、刪除操作、借還操作。我們也可以查找所要的圖
15、書、查閱圖書的詳細(xì)資料、查閱讀者的詳細(xì)資料。最后清晰完整的結(jié)果于屏幕中。方便使用者對(duì)圖書借閱的操作,提高準(zhǔn)確性,可以達(dá)到事半功倍的效果。系統(tǒng)采用的是自頂向下、層次化的模塊結(jié)構(gòu)。對(duì)于高層模塊,采用以事務(wù)為中心的設(shè)計(jì)策略,把一個(gè)大的模塊逐步分解成較小的相對(duì)簡(jiǎn)單的模塊。對(duì)低層模塊,采用以變換為中心的設(shè)計(jì)策略。為了達(dá)到高內(nèi)聚,低耦合的效果,我們可以把每個(gè)模塊設(shè)計(jì)成具有單一功能的模塊(即功能內(nèi)聚),使模塊間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實(shí)現(xiàn)(即非直接耦合)。2.2運(yùn)行環(huán)境和開發(fā)工具2.2.1開發(fā)工具本系統(tǒng)采用c語言作為開發(fā)工具,c語言的主要特點(diǎn)如下:(1) 語言簡(jiǎn)潔、緊湊,使用方便。(2) 運(yùn)算符
16、和數(shù)據(jù)類型豐富,具有現(xiàn)代語言的各種數(shù)據(jù)結(jié)構(gòu)。(3) 具有結(jié)構(gòu)化的語句,。(4) 語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。(5) 生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。(6) 用c語言編寫的程序可移植性比較好,基本上不做任何修改就能運(yùn)用于各種型號(hào)的操作系統(tǒng)中。(7) c語言允許直接訪問物理地址,能進(jìn)行位操作,能實(shí)現(xiàn)匯編語言的大部分功能,可以直接對(duì)硬件進(jìn)行操作因?yàn)閏 語言的各種優(yōu)點(diǎn),所以本系統(tǒng)使用c語言作為開發(fā)環(huán)境,簡(jiǎn)化了編寫過程,簡(jiǎn)化了系統(tǒng)界面。c語言是一種計(jì)算機(jī)程序設(shè)計(jì)語言。它既具有高級(jí)語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它由美國貝爾研究所的d.m.ritchie于1972年推出。1978后,c語言
17、已先后被移植到大、中、小及微型機(jī)上。它可以作為工作系統(tǒng)設(shè)計(jì)語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。它的應(yīng)用范圍廣泛,具備很強(qiáng)的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到c語言,適于編寫系統(tǒng)軟件,三維,二維圖形和動(dòng)畫。具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開發(fā)。指針是c語言的一大特色,可以說是c語言優(yōu)于其它高級(jí)語言的一個(gè)重要原因。就是因?yàn)樗兄羔槪梢灾苯舆M(jìn)行靠近硬件的操作,但是c的指針操作不做保護(hù),也給它帶來了很多不安全的因素。c+在這方面做了改進(jìn),在保留了指針操作的同時(shí)又增強(qiáng)了安全性,受到了一些用戶的支持,但是,由于這些改進(jìn)增加語言的復(fù)雜
18、度,也為另一部分所詬病。java則吸取了c+的教訓(xùn),取消了指針操作,也取消了c+改進(jìn)中一些備受爭(zhēng)議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機(jī)中運(yùn)行,運(yùn)行效率低于c+/c。一般而言,c,c+,java被視為同一系的語言,它們長期占據(jù)著程序使用榜的前三名。2.2.2運(yùn)行環(huán)境microsoft visual c+是microsoft公司推出的開發(fā)win32環(huán)境程序,面向?qū)ο蟮目梢暬删幊滔到y(tǒng)。它不但具有程序框架自動(dòng)生成、靈活方便的類管理、代碼編寫和界面設(shè)計(jì)集成交互操作、可開發(fā)多種程序等優(yōu)點(diǎn),而且通過簡(jiǎn)單的設(shè)置就可使其生成的程序框架支持?jǐn)?shù)據(jù)庫接口、ole2,winsock網(wǎng)絡(luò)
19、、3d控制界面。它以擁有“語法高亮”,intellisense(自動(dòng)編譯功能)以及高級(jí)除錯(cuò)功能而著稱。比如,它允許用戶進(jìn)行遠(yuǎn)程調(diào)試,單步執(zhí)行等。還有允許用戶在調(diào)試期間重新編譯被修改的代碼,而不必重新啟動(dòng)正在調(diào)試的程序。其編譯及建置系統(tǒng)以預(yù)編譯頭文件、最小重建功能及累加連結(jié)著稱。這些特征明顯縮短程式編輯、編譯及連結(jié)的時(shí)間花費(fèi),在大型軟件計(jì)劃上尤其顯著。系統(tǒng)使用visual c+ 作為程序開發(fā)工具。visual c+是基于對(duì)象的快速應(yīng)用程序開發(fā)工具,是當(dāng)今最強(qiáng)大、最靈活的應(yīng)用程序開發(fā)工具之一,具有良好的可視化應(yīng)用程序開發(fā)環(huán)境和強(qiáng)大的可擴(kuò)展數(shù)據(jù)庫功能。利用visual c+提供的可視化組件庫進(jìn)行編程
20、,可以快速、高效地開發(fā)出基于windows環(huán)境的各類應(yīng)用程序。visual c+語言的特點(diǎn)是面向?qū)ο笤O(shè)計(jì)的程序語言,visual c+的基礎(chǔ)編程語言是具有面向?qū)ο筇匦缘恼Z言,具有代碼穩(wěn)定、可讀性好、編譯速度快等優(yōu)點(diǎn),并將面向?qū)ο蟮母拍钜浦驳搅薱語言中,使這種基礎(chǔ)語言有了新的發(fā)展空間。與其它編程軟件相比,特別是在數(shù)據(jù)庫和網(wǎng)絡(luò)應(yīng)用方面,visual c+具有簡(jiǎn)便易用、靈活高效的特點(diǎn)。2.3 系統(tǒng)流程圖本文的主題框架如圖1所示信息輸入圖書館管理系統(tǒng)信息刪除信息查詢信息修改顯示信息圖書借出圖書歸還 圖1 總體設(shè)計(jì)流程圖設(shè)計(jì)時(shí)應(yīng)該先設(shè)計(jì)出主題框架,采用自頂而下、由粗到細(xì)的設(shè)計(jì)方法,主題框架設(shè)計(jì)完成之后,
21、我們可以再其基礎(chǔ)上進(jìn)行擴(kuò)充和進(jìn)一步的改進(jìn),從而滿足基本的設(shè)計(jì)要求,這樣的設(shè)計(jì)可以避免模塊的相互沖突。3 系統(tǒng)的詳細(xì)設(shè)計(jì)3.1主體界面設(shè)計(jì)3.1.1主函數(shù)主體函數(shù)要求設(shè)計(jì)比較簡(jiǎn)潔,只提供設(shè)輸入,處理和輸出部分的函數(shù)調(diào)用。其中各功能模塊用菜單方式選擇。主體函數(shù)決定著系統(tǒng)的外觀和效果,簡(jiǎn)潔的外觀有助于人們更快的理解各項(xiàng)功能的作用,提高使用效率。流程圖如下圖2:顯示功能選項(xiàng)輸入n的值,判斷n是否屬于1到8根據(jù)輸入的值調(diào)用各功能模塊的功能yesno圖2 主函數(shù)流程圖對(duì)應(yīng)的主函數(shù)程序如下: void main(void) menu: page_title(操作選單); printf(請(qǐng)用數(shù)字鍵選擇操作nn
22、); printf(ttt1 注冊(cè)新書ttt2 借閱圖書 n); printf(ttt3 查詢圖書信息ttt4 修改圖書信息n); printf(ttt5 歸還圖書ttt6 刪除圖書n); printf(ttt7 顯示圖書ttt8 退出系統(tǒng)n); printf(請(qǐng)按數(shù)字鍵:n); switch(getch() case 1 : book_add(); break; case 2 : book_out(); break; case 3 : book_search(); break; case 4 : book_change(); break; case 5 : book_in(); break;
23、 case 6 : book_del(); break; case 7 : book_show(); break; case 8 : exit(0); goto menu; 3.1.2輸入模塊該模塊的功能是假如用戶需要新加入新的圖書信息,通過鍵盤輸入將新信息逐條加在原來輸入文件上但不能覆蓋原有信息。輸入功能可以擴(kuò)充圖書管理系統(tǒng)的圖數(shù)量,在實(shí)際中,這個(gè)是必備的功能,增加了該系統(tǒng)的使用性。流程圖如下圖3:顯示圖書信息輸入提示i從0到n-1調(diào)用輸入函數(shù)input(i)i!=0保存函數(shù)save(n)圖 3 輸入模塊流程圖對(duì)應(yīng)的程序如下:void book_add(void) int n; system
24、(cls);page_title(注冊(cè)新書); for(n=0;n100;n+) if(booksn.id=0) break; printf(序號(hào):); scanf(%d,&booksn.id); printf(書名:); scanf(%s,&); printf(作者:); scanf(%s,&booksn.author); printf(出版社:); scanf(%s,&booksn.publish); printf(數(shù)量:); scanf(%d,&booksn.total); booksn.store=booksn.total; return_confirm(); 3
25、.1.3刪除模塊該模塊用于顯示所有圖書信息,由于記錄較多,故而采取分屏顯示。顯示完所有紀(jì)錄后,用戶需輸入圖書編號(hào)進(jìn)而查找圖書信息。流程圖如下圖4: 要?jiǎng)h除的圖書序號(hào)是否有此書此書已經(jīng)刪除沒有相關(guān)信息返回主菜單yesno 圖 4 刪除模塊流程圖相關(guān)程序如下:int book_del(void) int n,num,i; system(cls); page_title(刪除圖書); printf(請(qǐng)輸入所要?jiǎng)h除的書的編號(hào):); scanf(%d,&num); for(n=0;n100;n+) if(booksn.id=num) for(i=n;i100;i+) booksi.id=booksi+1
26、.id; strcpy(,booksi+1.name); strcpy(booksi.publish,booksi+1.publish); printf(該書已刪除.n); return n; printf(沒有找到相關(guān)記錄n); return -1; 3.1.4查詢模塊該模塊功能應(yīng)體現(xiàn)為用戶輸入圖書書名,若有書則查詢出來。查詢模塊式使用最多的功能之一,查找功能的好壞一定程度上決定了系統(tǒng)的好壞,好的查找模塊和算法可以簡(jiǎn)化人們查找的時(shí)間并且增加查找的準(zhǔn)確率,所以查詢模塊必須設(shè)計(jì)得簡(jiǎn)潔并且有較快的響應(yīng)速度流程圖如下圖5:顯示主菜單,輸入數(shù)字輸入需要查詢的書名是否有此書顯示圖書
27、信息沒有相關(guān)記錄返回主菜單yesno圖5 查詢模塊流程圖相關(guān)程序如下: int book_search(void) int n,i=1; char nam30; system(cls); printf(請(qǐng)輸入書名:); scanf(%s,&nam); for(n=0;n100;n+) if(strcmp(,nam)=0) printf(序號(hào):%dt,booksn.id); printf(書名:%st,); printf(作者:%st,booksn.author); printf(出版社:%st,booksn.publish); printf(存數(shù):%
28、dt,booksn.store); printf(總數(shù):%dn,booksn.total);i=0; if(i=1) printf(n沒有找到相關(guān)記錄.n); return -1; 3.1.5修改模塊該模塊功能應(yīng)體現(xiàn)為用戶修改圖書信息,若有記錄則修改信息。流程圖如下圖6:要修改的圖書編號(hào)是否有此書輸入修改后數(shù)據(jù)沒有相關(guān)信息返回主菜單yesno 圖6 修改模塊流程圖相關(guān)程序如下: int book_change(void) int n,i; system(cls); page_title(修改圖書信息); printf(請(qǐng)輸入要修改的圖書編號(hào):); scanf(%d,&i); for(n=0;n
29、100;n+) if(booksn.id=i) printf(修改書名:); scanf(%s,); printf(修改作者:); scanf(%s,booksn.author); printf(修改出版社名:); scanf(%s,booksn.publish); printf(修改總數(shù):); scanf(%d,&booksn.total);printf(修改圖書信息成功.n); booksn.store=booksn.total; return n; printf(n沒有找到相關(guān)記錄.n); return -1; 3.1.6顯示模塊該模塊功能應(yīng)體現(xiàn)為顯示全部的圖書信息
30、。流程圖如下圖7:顯示主菜單,輸入文字是否有圖書所有圖書信息沒有相關(guān)信息返回主菜單yesno 圖7 顯示模塊流程圖相關(guān)程序如下: int book_show(void)int n,i=1;system(cls); for(n=0;n0) printf(請(qǐng)輸入借書證序號(hào):); scanf(%d,&s); printf(請(qǐng)輸入可借天數(shù):); scanf(%d,&d); for(l=0;l10;l+) if(booksn.usrl=0) booksn.usrl=s; booksn.daysl=d; break; booksn.store-; if(n!=-1&booksn.store=0) prin
31、tf(此書已經(jīng)全部借出.n); return_confirm(); 3.1.8歸還模塊該模塊功能應(yīng)體現(xiàn)為方便用戶歸還圖書。歸還模塊主要的對(duì)書籍的數(shù)量進(jìn)行更新,為下一位借閱的用戶提供了借閱的可能性,由于計(jì)算機(jī)無法準(zhǔn)確的識(shí)別書籍的破損程度,所以破損程度有圖書管理員決定,并且應(yīng)該制定相應(yīng)的賠償條款。流程圖如下圖9:輸入要?dú)w還的圖書編號(hào)是否有圖書顯示記錄,輸入相關(guān)信息沒有相關(guān)信息返回主菜單yesno 圖9 歸還圖書模塊相關(guān)程序如下:void book_in(void) int n,s,l; page_title(歸還圖書); if(n=search_book()!=-1&booksn.storeboo
32、ksn.total) printf(借閱者圖書證列表:n); for(l=0;l10;l+) if (booksn.usrl!=0) printf(%d- %d天n,booksn.usrl,booksn.daysl); printf(請(qǐng)輸入借書證序號(hào):); scanf(%d,&s); for(l=0;l10;l+) if(booksn.usrl=s) booksn.usrl=0; booksn.daysl=0; break; booksn.store+; if(n!=-1&booksn.store=booksn.total) printf(全部入藏.n); return_confirm();
33、3.1.9公共函數(shù)定義結(jié)構(gòu)體: struct book int id,usr10,total,store,days10,zt; char name31,author21; books100;void page_title(char *menu_item) printf(ttt*歡迎使用圖書館管理系統(tǒng)*nn- %s -nn,menu_item); void return_confirm(void) printf(n按任意鍵返回n);getch(); 4 系統(tǒng)調(diào)試系統(tǒng)測(cè)試的目的是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,成功的測(cè)試時(shí)發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。測(cè)試的目的就是希望能以最少的人力和事件發(fā)現(xiàn)潛在
34、的各種錯(cuò)誤和缺陷,我們應(yīng)該根據(jù)開發(fā)個(gè)階段的需求、設(shè)計(jì)等文檔或程序的內(nèi)部結(jié)構(gòu)精心設(shè)計(jì)測(cè)試實(shí)例,并利用這些實(shí)例來運(yùn)行程序,以便發(fā)現(xiàn)錯(cuò)誤的過程。系統(tǒng)測(cè)試的原則應(yīng)該遵循以下基本規(guī)則。(1) 應(yīng)該盡早并且不斷地進(jìn)行測(cè)試。測(cè)試不是在系統(tǒng)開發(fā)完之后才進(jìn)行的,由于原始問題的復(fù)雜性、開發(fā)階段的多樣性以及參加人員的細(xì)條等因素,在開發(fā)過程中的各個(gè)階段都有可能出現(xiàn)錯(cuò)誤,因此,測(cè)試應(yīng)該貫穿在開發(fā)的各個(gè)階段,我們應(yīng)該盡早糾正作物,消除隱患。(2) 測(cè)試工作應(yīng)該避免由原開發(fā)軟件的人來進(jìn)行,一方面,開發(fā)人員往往不愿否認(rèn)自己的工作,總認(rèn)為自己開發(fā)的軟件過程序沒有錯(cuò)誤,另一方面,開發(fā)人員往往很難發(fā)現(xiàn)自己的錯(cuò)誤,具有局限性,所以我
35、們應(yīng)該找其他人來幫忙檢查程序。這樣會(huì)變得更客觀,更有效。(3) 設(shè)計(jì)測(cè)試方案時(shí),不僅要確定輸入數(shù)據(jù),而且要根據(jù)系統(tǒng)功能來確定預(yù)期的輸出效果和結(jié)果。將實(shí)際輸出結(jié)果和預(yù)期結(jié)果相比較就能發(fā)現(xiàn)測(cè)試的對(duì)象是否正確,是否有一些隱患。(4) 在設(shè)計(jì)測(cè)試用例時(shí),不僅要設(shè)計(jì)有效合理的輸入條件,還要包含不合理、失效的輸入條件。測(cè)試的時(shí)候,人們往往習(xí)慣按照合理的、正常的情況下進(jìn)行測(cè)試,從而忽略了對(duì)異常、不合理、意想不到的情況進(jìn)行測(cè)試,而這些情況可能都是隱患,可能會(huì)造成系統(tǒng)的崩潰。(5) 在測(cè)試程序時(shí),不僅要檢驗(yàn)程序是否做了該做的事情,還要檢驗(yàn)程序是否做了不該做的事情。多余的工作會(huì)帶來副作用,影響程序的效率,有事會(huì)帶
36、來潛在的危害或者錯(cuò)誤。(6) 嚴(yán)格按照測(cè)試計(jì)劃來進(jìn)行,避免測(cè)試的隨意性。測(cè)試計(jì)劃應(yīng)該包括測(cè)試內(nèi)容、進(jìn)度安排、測(cè)試環(huán)境、測(cè)試工具和測(cè)試資料等。嚴(yán)格按照測(cè)試計(jì)劃可以保證進(jìn)度,使各方面都得以協(xié)調(diào)進(jìn)行。(7) 妥善保存測(cè)試計(jì)劃、測(cè)試用例,作為軟件文檔的組成部分,為了以后維護(hù)的方便做了鋪墊。(8) 測(cè)試用例都是精心設(shè)計(jì)出來的,可以為重新測(cè)試或者追加測(cè)試提供方便。當(dāng)糾正錯(cuò)誤、系統(tǒng)功能擴(kuò)充后,都需要重新進(jìn)行測(cè)試,而這些工作重復(fù)性很高,可以利用以前的測(cè)試用例,或者在其基礎(chǔ)上進(jìn)行修改,然后在進(jìn)行測(cè)試,這樣科技簡(jiǎn)化系統(tǒng)的維護(hù)時(shí)間并且提高了維護(hù)的效率。在系統(tǒng)調(diào)試過程中,我們可以利用一組簡(jiǎn)單的數(shù)據(jù)對(duì)程序進(jìn)行調(diào)試,來觀
37、察各函數(shù)是否有出錯(cuò)現(xiàn)象。然后用復(fù)雜數(shù)據(jù)對(duì)程序進(jìn)行調(diào)試。然后我們要對(duì)系統(tǒng)的各項(xiàng)能力進(jìn)行測(cè)試,看看有沒有漏洞或者死循環(huán)現(xiàn)象。 數(shù)據(jù)測(cè)試時(shí),如果程序程序錯(cuò)誤,要首先找到出錯(cuò)的函數(shù),對(duì)函數(shù)中各個(gè)變量進(jìn)行觀察,有時(shí)變量很多,循環(huán)多重不要急,對(duì)各個(gè)數(shù)據(jù)的觀察,對(duì)程序的調(diào)試有很大的幫助。你也可以先對(duì)幾個(gè)變量熟悉后,在多重循環(huán)里,確定正確的數(shù)據(jù),將其跳過調(diào)試,對(duì)有疑問的數(shù)據(jù)循環(huán)進(jìn)行仔細(xì)觀察。雖然這是比較省力氣的活,但對(duì)復(fù)雜的數(shù)據(jù)錯(cuò)誤并不是很有效,所以仔細(xì)觀察每個(gè)數(shù)據(jù)的變化對(duì)調(diào)試的成功與否有決定性作用。 測(cè)試時(shí),根本的錯(cuò)誤并不一定在運(yùn)行錯(cuò)誤的函數(shù)內(nèi),或許在前面的函數(shù)內(nèi)已經(jīng)奠定了這些錯(cuò)誤數(shù)據(jù)的基礎(chǔ),需要反過頭來,
38、對(duì)所有的的函數(shù)進(jìn)行一項(xiàng)項(xiàng)的調(diào)試!從程序運(yùn)行的第一個(gè)函數(shù)開始調(diào)試。按照程序運(yùn)行的步驟下去。一個(gè)個(gè)的確定函數(shù)的正確性,每確定一個(gè)函數(shù),在以后的調(diào)試中可以減少對(duì)該函數(shù)的調(diào)試次數(shù),或者直接跳到下一個(gè)函數(shù)。所謂的各個(gè)擊破便是如此。對(duì)頭文件中的各個(gè)函數(shù)的返回值和它所要傳入的參變量及其功能更是需要注意。調(diào)試時(shí),需要對(duì)錯(cuò)誤縮小范圍,從整個(gè)程序到指定函數(shù),再到指定區(qū)域,再到指定行,在對(duì)程序縮小范圍或?qū)幾g沒通過的程序縮小錯(cuò)誤范圍時(shí)可以用/* */來進(jìn)行調(diào)試,確定正常范圍,縮小錯(cuò)誤范圍。5系統(tǒng)運(yùn)行在多次的調(diào)試后,系統(tǒng)運(yùn)行的界面如圖10所示圖10 主界面觀察各個(gè)界面的實(shí)際效果,注冊(cè)新書的界面如圖11 所示圖11 新
39、書注冊(cè)借閱界面如圖12所示圖12 圖書借閱 歸還界面如圖13所示圖13 圖書歸還查詢界面如圖14所示圖 14 圖書查詢修改界面如圖15所示圖15 修改圖書刪除界面如圖16所示圖 16 刪除界面結(jié) 論經(jīng)過以上各章節(jié)的功能,已經(jīng)基本完成了圖書館管理系統(tǒng)的開發(fā),圖書館系統(tǒng)是一套實(shí)用性非常強(qiáng)的系統(tǒng),從小學(xué)、中學(xué)直到大學(xué),很多人一直與圖書館打交道,圖書館的發(fā)展從手工管理、手工管理和計(jì)算機(jī)管理并行,直到現(xiàn)在的完全計(jì)算機(jī)管理。圖書館管理系統(tǒng)不僅需要靈活的交互功能,還需要經(jīng)常與數(shù)據(jù)庫進(jìn)行聯(lián)系,要求具有操作簡(jiǎn)單和功能強(qiáng)大的數(shù)據(jù)庫訪問能力。界面盡量美觀友好、多彩多姿,完全的圖形化設(shè)計(jì),操作者易于上手,同時(shí)多種媒體
40、技術(shù)的集成利用,可以方便的完成用戶樂于接受的各種界面設(shè)計(jì)。本系統(tǒng)雖具備了基本的功能,但由于時(shí)間關(guān)系,還有很多功能待實(shí)現(xiàn),在此基礎(chǔ)上結(jié)合實(shí)際應(yīng)用中所出現(xiàn)的問題,要改善圖書的入庫和刪除功能,使工作人員在主界面上就能進(jìn)行其操作;在過期天數(shù)中應(yīng)該增加罰款的功能;如果作為校園的圖書管理系統(tǒng),應(yīng)區(qū)分出不同身分的人(如教師和學(xué)生)的借閱權(quán)限等。通過這次編程我深深的感受到對(duì)代碼的變量命名,代碼內(nèi)注釋格式,甚至嵌套中行縮進(jìn)的長度和函數(shù)間的空行數(shù)字都有明確規(guī)定,良好的編寫習(xí)慣,不但有助于代碼的移植和糾錯(cuò),也有助于不同人員之間的協(xié)作。 我們還要有模塊化思維能力,模塊化思維就是編程任何一個(gè)功能模塊或函數(shù)的時(shí)候,要多想
41、一些,不要局限在完成當(dāng)前任務(wù)的簡(jiǎn)單思路上,想想看該模塊是否可以脫離這個(gè)系統(tǒng)存在,是否可以通過簡(jiǎn)單的修改參數(shù)的方式在其他系統(tǒng)和應(yīng)用環(huán)境下直接引用,這樣就能極大避免重復(fù)性的開發(fā)工作。善于總結(jié),也是學(xué)習(xí)能力的一種體現(xiàn),每次完成一個(gè)編程任務(wù),完成一段代碼,都應(yīng)當(dāng)有目的的跟蹤該程序的應(yīng)用狀況,隨時(shí)總結(jié),找到自己的不足,這樣所編寫的程序才能逐步提高。 致 謝經(jīng)過幾個(gè)月的忙碌,本次畢業(yè)論文設(shè)計(jì)已經(jīng)接近尾聲。,由于經(jīng)驗(yàn)的匱乏,難免有許多考慮不到的地方,在多次的修改和研究之后才寫出完成。如果沒有導(dǎo)師的督促和指導(dǎo),以及同學(xué)和朋友的支持,想要完成這個(gè)畢業(yè)論文設(shè)計(jì)是難以想像的。感謝同學(xué)和朋友的及時(shí)幫助和教導(dǎo)。在論文的
42、寫作過程中,得到了陳豹老師的親切關(guān)懷和耐心的指導(dǎo)。老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和科學(xué)的工作方法給了我極大的幫助和影響。從課題的選擇得到畢業(yè)論文設(shè)計(jì)最終完成,老師都始終給予我細(xì)心的指導(dǎo)。在此謹(jǐn)向陳豹老師致以誠摯的謝意和崇高的敬意。同時(shí),也要感謝各位老師,同學(xué)和朋友們給我極大的支持,對(duì)我的論文提出了寶貴的意見及建議。感謝所有幫助我的老師、同學(xué)和朋友們,在此向他們表達(dá)我的感激之情。參考文獻(xiàn)1 張宗杰. c語言程序設(shè)計(jì)實(shí)用教程. 北京:電子工業(yè)出版社,2009.58-1512 張淑平. 程序員教程.北京:清華大學(xué)出版社.,2011.42-3283 譚浩強(qiáng). c程序設(shè)計(jì). 北京:清華大學(xué)出版社.,2005.91-
43、3104 高維春.c語言程序設(shè)計(jì)項(xiàng)目教程.北京:人民郵電出版社,2010.54-675 魏海新,李燕主編. c語言程序設(shè)計(jì)實(shí)用教程.北京:機(jī)械工業(yè)出版社,2007.161-1746 李澤中,孫紅艷主編. c語言程序設(shè)計(jì).北京:清華大學(xué)出版社,2008.98-1017 路俊維,馬雪松主編. c語言程序設(shè)計(jì).北京:中國鐵道工業(yè)出版社,2009.78-988 王敬華等. c語言程序設(shè)計(jì)教程.北京:清華大學(xué)出版社,2005.45-649 張明慧. visual c+開發(fā)圖書管理系統(tǒng).北京:北京師范大學(xué),2005.32-4010 陳朔鷹等. c語言程序設(shè)計(jì)基礎(chǔ)教程.北京:兵器工業(yè)出版社,1994.78-
44、9711 譚浩強(qiáng).c程序設(shè)計(jì)題解與上機(jī)指導(dǎo).北京:清華大學(xué)出版社,2005.130-15512 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(c語言版).北京:清華大學(xué)出版社,2007.59-10713 c編寫組編.常用c語言用法速查手冊(cè).北京:龍門書局,1995.34-4514 張俐,楊瑩編著.c語言高級(jí)程序設(shè)計(jì).北京:清華大學(xué)出版社,2006.67-7815 stephen g kochan.programming in ansi c.hagden book indianapolis:indina,u.s.a,1994.129-201附錄 程序源代碼#include #include #include #in
45、clude struct book int id,usr10,total,store,days10; char name30,author20,publish40; books100;void page_title(char *menu_item) printf(ttt*歡迎使用圖書館管理系統(tǒng)*nn- %s -nn,menu_item); void return_confirm(void) printf(n按任意鍵返回n); getch(); int search_book(void) int n,i; printf(請(qǐng)輸入圖書序號(hào):); scanf(%d,&i); for(n=0;n100;
46、n+) if(booksn.id=i) printf(序號(hào):%dn,booksn.id); printf(書名:%sn,); printf(作者:%sn,booksn.author); printf(出版社:%sn,booksn.publish); printf(存數(shù):%dn,booksn.store); printf(總數(shù):%dn,booksn.total); return n; printf(n沒有找到相關(guān)記錄.n); return -1; int book_search(void) int n,i=1; char nam30; system(cls); printf(請(qǐng)輸入書名:)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- HY/T 0460.5-2024海岸帶生態(tài)系統(tǒng)現(xiàn)狀調(diào)查與評(píng)估技術(shù)導(dǎo)則第5部分:珊瑚礁
- 起重平臺(tái)維修合同協(xié)議
- 解除商鋪轉(zhuǎn)讓合同協(xié)議
- 貨運(yùn)物流租賃合同協(xié)議
- 豆皮代加工合同協(xié)議
- 豆腐經(jīng)銷代理合同協(xié)議
- 購房合同轉(zhuǎn)讓合同協(xié)議
- 講課合作協(xié)議合同協(xié)議
- 貼牌加工合同合同協(xié)議
- cdr考試試題及答案2015
- 2024年內(nèi)蒙古呼和浩特中考?xì)v史真題卷及答案解析
- GB/T 45015-2024鈦石膏綜合利用技術(shù)規(guī)范
- 2023-2024學(xué)年北京市海淀區(qū)高二(上)期末語文試卷
- 2025年教師資格考試高中物理面試試題與參考答案
- 化妝品合伙人協(xié)議書模板
- DB53∕T 1269-2024 改性磷石膏用于礦山廢棄地生態(tài)修復(fù)回填技術(shù)規(guī)范
- 二年級(jí)下冊(cè)口算題大全(全冊(cè)可直接打印)
- 情緒調(diào)節(jié)的認(rèn)知神經(jīng)機(jī)制
- 離散數(shù)學(xué)(下)智慧樹知到期末考試答案章節(jié)答案2024年桂林電子科技大學(xué)
- 2024年醫(yī)學(xué)高級(jí)職稱-皮膚與性病學(xué)(醫(yī)學(xué)高級(jí))筆試考試歷年真題含答案
- SYT5405-2019酸化用緩蝕劑性能試驗(yàn)方法及評(píng)價(jià)指標(biāo)
評(píng)論
0/150
提交評(píng)論