




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、圖書分類號:密 級:畢業(yè)設(shè)計(論文)基于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)入信息化時代。信息化浪潮、網(wǎng)絡(luò)革命在給社會帶來沖擊的同時,也使圖書館業(yè)務(wù)受到了強烈的沖擊,圖書館傳統(tǒng)的管理和服務(wù)方式已不能適應(yīng)讀者對日益增長的文獻(xiàn)信息的需求。隨著館藏量的不斷增加,圖書資料的錄入和查詢的難度也就相應(yīng)增加,數(shù)據(jù)處理手工操作,工作量大,出錯率高,出錯后不易更改的手工方式,已經(jīng)不能滿足要求。 基于此問題
2、,建立一個規(guī)范化,系統(tǒng)化,程序化的圖書管理系統(tǒng)迫不急待。為方便對圖書館書籍、讀者資料、借還書等進(jìn)行高效的管理,特編寫程序以提高圖書館的管理效率。使用程序之后,工作人員可以查詢某位讀者、某種圖書的借閱情況,還可以對當(dāng)前圖書借閱情況進(jìn)行一些統(tǒng)計,以便全面掌握圖書的流通情況等等。關(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)的特點21.3 需求分析22 系統(tǒng)的
7、總體設(shè)計32.1 系統(tǒng)總體設(shè)計32.2運行環(huán)境和開發(fā)工具32.2.1開發(fā)工具32.2.2運行環(huán)境42.3 系統(tǒng)流程圖43 系統(tǒng)的詳細(xì)設(shè)計63.1主體界面設(shè)計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)運行17結(jié) 論21致 謝22參考文獻(xiàn)23附錄 程序源代碼241 緒論1.1 選題的背景和選題的意義1.1.1 選題的背景隨著社會的發(fā)展,信息管理系統(tǒng)越來越受到人們的重視,運用信息管理系統(tǒng)可以減少人們的工作量和工作時間,讓我們不必花費
8、大量的時間在查找上,所以信息管理系統(tǒng)越來越受到管理人員的青睞并且被普遍應(yīng)用與各行各業(yè)中。在高校的圖書管理中因為書籍?dāng)?shù)量的龐大,手工是很難有效率的管理,運用圖書管理系統(tǒng)則可以避免了手工操作而造成的錯誤操作和減輕工作人員的工作量。圖書管理系統(tǒng)是圖書館的重要組成部分,圖書是我們最好的獲取信息的方式,但由于圖書館圖書收藏量大大增加,使傳統(tǒng)的圖書管理員的工作日益繁重起來,迫使人們起用新的管理方法來管理圖書。本文通過設(shè)計和開發(fā)圖書館管理系統(tǒng)的實踐,闡述了圖書管理軟件中所應(yīng)具有的功能、設(shè)計、實現(xiàn)。介紹了圖書管理系統(tǒng)的設(shè)計和系統(tǒng)功能的實現(xiàn)過程。該系統(tǒng)可以運用于高校的圖書管理,由圖書借閱,圖書歸還,圖書查詢,圖
9、書信息修改,等多個模塊組成,實現(xiàn)了圖書資料的計算機網(wǎng)絡(luò)管理。一般通用的圖書館管理系統(tǒng)通常包括系統(tǒng)管理、讀者管理、編目、圖書流通、統(tǒng)計、查詢等功能。比較先進(jìn)的系統(tǒng)能夠在一個界面下實現(xiàn)圖書、音像、期刊的管理,設(shè)置假期、設(shè)置暫離鎖、暫停某些讀者的借閱權(quán)、導(dǎo)入導(dǎo)出讀者資料、交換marc(machine readable catalogue)數(shù)據(jù)、升級輔助編目庫、征訂圖書等。此外,隨著工internet應(yīng)用的發(fā)展,一個完善的系統(tǒng)還應(yīng)提供無縫接入internet的功能,通過ie瀏覽器讓讀者使用借閱資料查詢、更換密碼、預(yù)約、資料檢索等功能。有些系統(tǒng)還能提供讀者自助服務(wù),可以開放一些客戶機讓讀者自行管理密碼、
10、查詢自己的借閱史、預(yù)約資料、檢索資料等。1.1.2 選題的意義由于現(xiàn)在圖書數(shù)量的日益增加,如何對圖書進(jìn)行管理便成為了一個迫切要解決的問題,因為有現(xiàn)代技術(shù)的幫助,我們可以借助計算機來解決繁重的圖書管理問題。利用計算機科技可以提高圖書管理的效率和準(zhǔn)確率,然而,不同的處理方法會有不同的效率,因此,選擇一個好的算法和編輯一個好的程序便成為了人們正在研究的問題,好的算法和程序可以更好地管理圖書并且降低系統(tǒng)冗余度。圖書館是信息的處理和收集的地方,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書館都是初步開始使用,甚至尚未使用計算機進(jìn)行信息管理。根據(jù)調(diào)查得知,他們以前對信息管理的主要方式
11、是基于文本,表格等紙介質(zhì)的手工處理,數(shù)據(jù)處理工作量大,容易出錯。由于數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩碚f,缺乏系統(tǒng)規(guī)范的信息管理手段。盡管有的圖書館有計算機,但是尚未用于信息管理,沒有發(fā)揮它的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開發(fā)的基于環(huán)境。1.2 系統(tǒng)的特點由于系統(tǒng)是基于visual c+6.0為開發(fā)環(huán)境開發(fā)出來的在dos界面下的圖書管理系統(tǒng),系統(tǒng)簡潔易于操作,用戶界面友好,人機交互方便。便于人們初步了解并使用圖書管理系統(tǒng),是信息管理變得簡單,簡化人們的工作量,檢索迅速、查找方便、易修改、可靠性高、存儲量大、數(shù)據(jù)處理快捷、保密性好、壽命長、成本低、數(shù)據(jù)冗余度比較低、系統(tǒng)穩(wěn)定性比
12、較好等。1.3 需求分析本系統(tǒng)根據(jù)常規(guī)的圖書館的基本功能有錄入、刪除、查詢、修改、借書、還書等功能。分為添加和刪除都采用鏈?zhǔn)浇Y(jié)構(gòu)的原理去執(zhí)行文件。在讀者區(qū)讀者可以按編號或書名輕松找到所需書的信息,這里也采用的是鏈?zhǔn)浇Y(jié)構(gòu)原理執(zhí)行。與此同時,本系統(tǒng)操作界面很是簡單清晰,一目了然,給讀者以舒服的感官效果。同時該系統(tǒng)中用到結(jié)構(gòu)體,數(shù)組等編程用法。通過對中小型圖書館的調(diào)查、分析發(fā)現(xiàn),用戶的需求可分為4個方面:第一是圖書館的工作人員通過計算機來管理各類圖書,分類編號、調(diào)整圖書結(jié)構(gòu)、增加圖書庫存,適應(yīng)讀者的需求。第二是讀者能通過計算機來查詢?yōu)g覽圖書館中的圖書,來確定自己需要的書籍,為借閱做好準(zhǔn)備。第三是工作
13、人員對讀者的借書情況能夠作好全面掌握,能及時得到每個讀者的當(dāng)前借閱狀態(tài)和歷史借閱記錄。第四也是圖書館的核心工作,對圖書的借閱管理。在軟、硬件方面對系統(tǒng)的需求是軟件要易學(xué),容易掌握,可以很簡單方便地管理各種圖書信息。硬件的配置要求不能太高,這樣可以適應(yīng)中小型圖書館的經(jīng)濟條件。所以中小型圖書館管理信息系統(tǒng)旨在提供一個可以操作的,方便查詢的,易于修改的輔助管理系統(tǒng)。同時提供了系統(tǒng)智能輔助與用戶自主選擇的兩種方式,提高查詢效率根據(jù)系統(tǒng)特點確定了開發(fā)模型,再通過對系統(tǒng)進(jìn)行需求分析研究,建立結(jié)構(gòu)化分析,系統(tǒng)功能模塊,系統(tǒng)流程圖。然后通過對各個功能模塊進(jìn)行深入分析,確定數(shù)據(jù)的定義和屬性,及各功能的實現(xiàn)。論文
14、介紹了圖書管理系統(tǒng)的運行環(huán)境和開發(fā)環(huán)境,結(jié)合了數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識。最終設(shè)計實現(xiàn)了借還書籍,書籍管理等圖書管理系統(tǒng)的基本功能。作為計算機應(yīng)用的一部分,具有著手工管理所無法比擬的優(yōu)點。 2 系統(tǒng)的總體設(shè)計2.1 系統(tǒng)總體設(shè)計實用的圖書館管理系統(tǒng)應(yīng)該包括:u 錄入:新進(jìn)圖書及基本信息輸入u 刪除:舊圖書及基本信息刪除u 查詢:查詢要借閱的圖書信息u 修改:修改已有的圖書信息u 借書:實現(xiàn)用戶辦理借書手續(xù)u 還書:實現(xiàn)用戶.辦理還書手續(xù)系統(tǒng)以菜單方式工作可以使界面友好,易于操作。用戶可以對本系統(tǒng)進(jìn)行自己需要的查詢或修改操作,如根據(jù)用戶的需求自動的進(jìn)行添加操作、刪除操作、借還操作。我們也可以查找所要的圖
15、書、查閱圖書的詳細(xì)資料、查閱讀者的詳細(xì)資料。最后清晰完整的結(jié)果于屏幕中。方便使用者對圖書借閱的操作,提高準(zhǔn)確性,可以達(dá)到事半功倍的效果。系統(tǒng)采用的是自頂向下、層次化的模塊結(jié)構(gòu)。對于高層模塊,采用以事務(wù)為中心的設(shè)計策略,把一個大的模塊逐步分解成較小的相對簡單的模塊。對低層模塊,采用以變換為中心的設(shè)計策略。為了達(dá)到高內(nèi)聚,低耦合的效果,我們可以把每個模塊設(shè)計成具有單一功能的模塊(即功能內(nèi)聚),使模塊間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實現(xiàn)(即非直接耦合)。2.2運行環(huán)境和開發(fā)工具2.2.1開發(fā)工具本系統(tǒng)采用c語言作為開發(fā)工具,c語言的主要特點如下:(1) 語言簡潔、緊湊,使用方便。(2) 運算符
16、和數(shù)據(jù)類型豐富,具有現(xiàn)代語言的各種數(shù)據(jù)結(jié)構(gòu)。(3) 具有結(jié)構(gòu)化的語句,。(4) 語法限制不太嚴(yán)格,程序設(shè)計自由度大。(5) 生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。(6) 用c語言編寫的程序可移植性比較好,基本上不做任何修改就能運用于各種型號的操作系統(tǒng)中。(7) c語言允許直接訪問物理地址,能進(jìn)行位操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進(jìn)行操作因為c 語言的各種優(yōu)點,所以本系統(tǒng)使用c語言作為開發(fā)環(huán)境,簡化了編寫過程,簡化了系統(tǒng)界面。c語言是一種計算機程序設(shè)計語言。它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的d.m.ritchie于1972年推出。1978后,c語言
17、已先后被移植到大、中、小及微型機上。它可以作為工作系統(tǒng)設(shè)計語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不依賴計算機硬件的應(yīng)用程序。它的應(yīng)用范圍廣泛,具備很強的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到c語言,適于編寫系統(tǒng)軟件,三維,二維圖形和動畫。具體應(yīng)用比如單片機以及嵌入式系統(tǒng)開發(fā)。指針是c語言的一大特色,可以說是c語言優(yōu)于其它高級語言的一個重要原因。就是因為它有指針,可以直接進(jìn)行靠近硬件的操作,但是c的指針操作不做保護(hù),也給它帶來了很多不安全的因素。c+在這方面做了改進(jìn),在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持,但是,由于這些改進(jìn)增加語言的復(fù)雜
18、度,也為另一部分所詬病。java則吸取了c+的教訓(xùn),取消了指針操作,也取消了c+改進(jìn)中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低于c+/c。一般而言,c,c+,java被視為同一系的語言,它們長期占據(jù)著程序使用榜的前三名。2.2.2運行環(huán)境microsoft visual c+是microsoft公司推出的開發(fā)win32環(huán)境程序,面向?qū)ο蟮目梢暬删幊滔到y(tǒng)。它不但具有程序框架自動生成、靈活方便的類管理、代碼編寫和界面設(shè)計集成交互操作、可開發(fā)多種程序等優(yōu)點,而且通過簡單的設(shè)置就可使其生成的程序框架支持?jǐn)?shù)據(jù)庫接口、ole2,winsock網(wǎng)絡(luò)
19、、3d控制界面。它以擁有“語法高亮”,intellisense(自動編譯功能)以及高級除錯功能而著稱。比如,它允許用戶進(jìn)行遠(yuǎn)程調(diào)試,單步執(zhí)行等。還有允許用戶在調(diào)試期間重新編譯被修改的代碼,而不必重新啟動正在調(diào)試的程序。其編譯及建置系統(tǒng)以預(yù)編譯頭文件、最小重建功能及累加連結(jié)著稱。這些特征明顯縮短程式編輯、編譯及連結(jié)的時間花費,在大型軟件計劃上尤其顯著。系統(tǒng)使用visual c+ 作為程序開發(fā)工具。visual c+是基于對象的快速應(yīng)用程序開發(fā)工具,是當(dāng)今最強大、最靈活的應(yīng)用程序開發(fā)工具之一,具有良好的可視化應(yīng)用程序開發(fā)環(huán)境和強大的可擴展數(shù)據(jù)庫功能。利用visual c+提供的可視化組件庫進(jìn)行編程
20、,可以快速、高效地開發(fā)出基于windows環(huán)境的各類應(yīng)用程序。visual c+語言的特點是面向?qū)ο笤O(shè)計的程序語言,visual c+的基礎(chǔ)編程語言是具有面向?qū)ο筇匦缘恼Z言,具有代碼穩(wěn)定、可讀性好、編譯速度快等優(yōu)點,并將面向?qū)ο蟮母拍钜浦驳搅薱語言中,使這種基礎(chǔ)語言有了新的發(fā)展空間。與其它編程軟件相比,特別是在數(shù)據(jù)庫和網(wǎng)絡(luò)應(yīng)用方面,visual c+具有簡便易用、靈活高效的特點。2.3 系統(tǒng)流程圖本文的主題框架如圖1所示信息輸入圖書館管理系統(tǒng)信息刪除信息查詢信息修改顯示信息圖書借出圖書歸還 圖1 總體設(shè)計流程圖設(shè)計時應(yīng)該先設(shè)計出主題框架,采用自頂而下、由粗到細(xì)的設(shè)計方法,主題框架設(shè)計完成之后,
21、我們可以再其基礎(chǔ)上進(jìn)行擴充和進(jìn)一步的改進(jìn),從而滿足基本的設(shè)計要求,這樣的設(shè)計可以避免模塊的相互沖突。3 系統(tǒng)的詳細(xì)設(shè)計3.1主體界面設(shè)計3.1.1主函數(shù)主體函數(shù)要求設(shè)計比較簡潔,只提供設(shè)輸入,處理和輸出部分的函數(shù)調(diào)用。其中各功能模塊用菜單方式選擇。主體函數(shù)決定著系統(tǒng)的外觀和效果,簡潔的外觀有助于人們更快的理解各項功能的作用,提高使用效率。流程圖如下圖2:顯示功能選項輸入n的值,判斷n是否屬于1到8根據(jù)輸入的值調(diào)用各功能模塊的功能yesno圖2 主函數(shù)流程圖對應(yīng)的主函數(shù)程序如下: void main(void) menu: page_title(操作選單); printf(請用數(shù)字鍵選擇操作nn
22、); printf(ttt1 注冊新書ttt2 借閱圖書 n); printf(ttt3 查詢圖書信息ttt4 修改圖書信息n); printf(ttt5 歸還圖書ttt6 刪除圖書n); printf(ttt7 顯示圖書ttt8 退出系統(tǒng)n); printf(請按數(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輸入模塊該模塊的功能是假如用戶需要新加入新的圖書信息,通過鍵盤輸入將新信息逐條加在原來輸入文件上但不能覆蓋原有信息。輸入功能可以擴充圖書管理系統(tǒng)的圖數(shù)量,在實際中,這個是必備的功能,增加了該系統(tǒng)的使用性。流程圖如下圖3:顯示圖書信息輸入提示i從0到n-1調(diào)用輸入函數(shù)input(i)i!=0保存函數(shù)save(n)圖 3 輸入模塊流程圖對應(yīng)的程序如下:void book_add(void) int n; system
24、(cls);page_title(注冊新書); for(n=0;n100;n+) if(booksn.id=0) break; printf(序號:); 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ì)錄后,用戶需輸入圖書編號進(jìn)而查找圖書信息。流程圖如下圖4: 要刪除的圖書序號是否有此書此書已經(jīng)刪除沒有相關(guān)信息返回主菜單yesno 圖 4 刪除模塊流程圖相關(guān)程序如下:int book_del(void) int n,num,i; system(cls); page_title(刪除圖書); printf(請輸入所要刪除的書的編號:); 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)的好壞,好的查找模塊和算法可以簡化人們查找的時間并且增加查找的準(zhǔn)確率,所以查詢模塊必須設(shè)計得簡潔并且有較快的響應(yīng)速度流程圖如下圖5:顯示主菜單,輸入數(shù)字輸入需要查詢的書名是否有此書顯示圖書
27、信息沒有相關(guān)記錄返回主菜單yesno圖5 查詢模塊流程圖相關(guān)程序如下: int book_search(void) int n,i=1; char nam30; system(cls); printf(請輸入書名:); scanf(%s,&nam); for(n=0;n100;n+) if(strcmp(,nam)=0) printf(序號:%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:要修改的圖書編號是否有此書輸入修改后數(shù)據(jù)沒有相關(guān)信息返回主菜單yesno 圖6 修改模塊流程圖相關(guān)程序如下: int book_change(void) int n,i; system(cls); page_title(修改圖書信息); printf(請輸入要修改的圖書編號:); 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(請輸入借書證序號:); scanf(%d,&s); printf(請輸入可借天數(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)為方便用戶歸還圖書。歸還模塊主要的對書籍的數(shù)量進(jìn)行更新,為下一位借閱的用戶提供了借閱的可能性,由于計算機無法準(zhǔn)確的識別書籍的破損程度,所以破損程度有圖書管理員決定,并且應(yīng)該制定相應(yīng)的賠償條款。流程圖如下圖9:輸入要歸還的圖書編號是否有圖書顯示記錄,輸入相關(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(請輸入借書證序號:); 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)測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,成功的測試時發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。測試的目的就是希望能以最少的人力和事件發(fā)現(xiàn)潛在
34、的各種錯誤和缺陷,我們應(yīng)該根據(jù)開發(fā)個階段的需求、設(shè)計等文檔或程序的內(nèi)部結(jié)構(gòu)精心設(shè)計測試實例,并利用這些實例來運行程序,以便發(fā)現(xiàn)錯誤的過程。系統(tǒng)測試的原則應(yīng)該遵循以下基本規(guī)則。(1) 應(yīng)該盡早并且不斷地進(jìn)行測試。測試不是在系統(tǒng)開發(fā)完之后才進(jìn)行的,由于原始問題的復(fù)雜性、開發(fā)階段的多樣性以及參加人員的細(xì)條等因素,在開發(fā)過程中的各個階段都有可能出現(xiàn)錯誤,因此,測試應(yīng)該貫穿在開發(fā)的各個階段,我們應(yīng)該盡早糾正作物,消除隱患。(2) 測試工作應(yīng)該避免由原開發(fā)軟件的人來進(jìn)行,一方面,開發(fā)人員往往不愿否認(rèn)自己的工作,總認(rèn)為自己開發(fā)的軟件過程序沒有錯誤,另一方面,開發(fā)人員往往很難發(fā)現(xiàn)自己的錯誤,具有局限性,所以我
35、們應(yīng)該找其他人來幫忙檢查程序。這樣會變得更客觀,更有效。(3) 設(shè)計測試方案時,不僅要確定輸入數(shù)據(jù),而且要根據(jù)系統(tǒng)功能來確定預(yù)期的輸出效果和結(jié)果。將實際輸出結(jié)果和預(yù)期結(jié)果相比較就能發(fā)現(xiàn)測試的對象是否正確,是否有一些隱患。(4) 在設(shè)計測試用例時,不僅要設(shè)計有效合理的輸入條件,還要包含不合理、失效的輸入條件。測試的時候,人們往往習(xí)慣按照合理的、正常的情況下進(jìn)行測試,從而忽略了對異常、不合理、意想不到的情況進(jìn)行測試,而這些情況可能都是隱患,可能會造成系統(tǒng)的崩潰。(5) 在測試程序時,不僅要檢驗程序是否做了該做的事情,還要檢驗程序是否做了不該做的事情。多余的工作會帶來副作用,影響程序的效率,有事會帶
36、來潛在的危害或者錯誤。(6) 嚴(yán)格按照測試計劃來進(jìn)行,避免測試的隨意性。測試計劃應(yīng)該包括測試內(nèi)容、進(jìn)度安排、測試環(huán)境、測試工具和測試資料等。嚴(yán)格按照測試計劃可以保證進(jìn)度,使各方面都得以協(xié)調(diào)進(jìn)行。(7) 妥善保存測試計劃、測試用例,作為軟件文檔的組成部分,為了以后維護(hù)的方便做了鋪墊。(8) 測試用例都是精心設(shè)計出來的,可以為重新測試或者追加測試提供方便。當(dāng)糾正錯誤、系統(tǒng)功能擴充后,都需要重新進(jìn)行測試,而這些工作重復(fù)性很高,可以利用以前的測試用例,或者在其基礎(chǔ)上進(jìn)行修改,然后在進(jìn)行測試,這樣科技簡化系統(tǒng)的維護(hù)時間并且提高了維護(hù)的效率。在系統(tǒng)調(diào)試過程中,我們可以利用一組簡單的數(shù)據(jù)對程序進(jìn)行調(diào)試,來觀
37、察各函數(shù)是否有出錯現(xiàn)象。然后用復(fù)雜數(shù)據(jù)對程序進(jìn)行調(diào)試。然后我們要對系統(tǒng)的各項能力進(jìn)行測試,看看有沒有漏洞或者死循環(huán)現(xiàn)象。 數(shù)據(jù)測試時,如果程序程序錯誤,要首先找到出錯的函數(shù),對函數(shù)中各個變量進(jìn)行觀察,有時變量很多,循環(huán)多重不要急,對各個數(shù)據(jù)的觀察,對程序的調(diào)試有很大的幫助。你也可以先對幾個變量熟悉后,在多重循環(huán)里,確定正確的數(shù)據(jù),將其跳過調(diào)試,對有疑問的數(shù)據(jù)循環(huán)進(jìn)行仔細(xì)觀察。雖然這是比較省力氣的活,但對復(fù)雜的數(shù)據(jù)錯誤并不是很有效,所以仔細(xì)觀察每個數(shù)據(jù)的變化對調(diào)試的成功與否有決定性作用。 測試時,根本的錯誤并不一定在運行錯誤的函數(shù)內(nèi),或許在前面的函數(shù)內(nèi)已經(jīng)奠定了這些錯誤數(shù)據(jù)的基礎(chǔ),需要反過頭來,
38、對所有的的函數(shù)進(jìn)行一項項的調(diào)試!從程序運行的第一個函數(shù)開始調(diào)試。按照程序運行的步驟下去。一個個的確定函數(shù)的正確性,每確定一個函數(shù),在以后的調(diào)試中可以減少對該函數(shù)的調(diào)試次數(shù),或者直接跳到下一個函數(shù)。所謂的各個擊破便是如此。對頭文件中的各個函數(shù)的返回值和它所要傳入的參變量及其功能更是需要注意。調(diào)試時,需要對錯誤縮小范圍,從整個程序到指定函數(shù),再到指定區(qū)域,再到指定行,在對程序縮小范圍或?qū)幾g沒通過的程序縮小錯誤范圍時可以用/* */來進(jìn)行調(diào)試,確定正常范圍,縮小錯誤范圍。5系統(tǒng)運行在多次的調(diào)試后,系統(tǒng)運行的界面如圖10所示圖10 主界面觀察各個界面的實際效果,注冊新書的界面如圖11 所示圖11 新
39、書注冊借閱界面如圖12所示圖12 圖書借閱 歸還界面如圖13所示圖13 圖書歸還查詢界面如圖14所示圖 14 圖書查詢修改界面如圖15所示圖15 修改圖書刪除界面如圖16所示圖 16 刪除界面結(jié) 論經(jīng)過以上各章節(jié)的功能,已經(jīng)基本完成了圖書館管理系統(tǒng)的開發(fā),圖書館系統(tǒng)是一套實用性非常強的系統(tǒng),從小學(xué)、中學(xué)直到大學(xué),很多人一直與圖書館打交道,圖書館的發(fā)展從手工管理、手工管理和計算機管理并行,直到現(xiàn)在的完全計算機管理。圖書館管理系統(tǒng)不僅需要靈活的交互功能,還需要經(jīng)常與數(shù)據(jù)庫進(jìn)行聯(lián)系,要求具有操作簡單和功能強大的數(shù)據(jù)庫訪問能力。界面盡量美觀友好、多彩多姿,完全的圖形化設(shè)計,操作者易于上手,同時多種媒體
40、技術(shù)的集成利用,可以方便的完成用戶樂于接受的各種界面設(shè)計。本系統(tǒng)雖具備了基本的功能,但由于時間關(guān)系,還有很多功能待實現(xiàn),在此基礎(chǔ)上結(jié)合實際應(yīng)用中所出現(xiàn)的問題,要改善圖書的入庫和刪除功能,使工作人員在主界面上就能進(jìn)行其操作;在過期天數(shù)中應(yīng)該增加罰款的功能;如果作為校園的圖書管理系統(tǒng),應(yīng)區(qū)分出不同身分的人(如教師和學(xué)生)的借閱權(quán)限等。通過這次編程我深深的感受到對代碼的變量命名,代碼內(nèi)注釋格式,甚至嵌套中行縮進(jìn)的長度和函數(shù)間的空行數(shù)字都有明確規(guī)定,良好的編寫習(xí)慣,不但有助于代碼的移植和糾錯,也有助于不同人員之間的協(xié)作。 我們還要有模塊化思維能力,模塊化思維就是編程任何一個功能模塊或函數(shù)的時候,要多想
41、一些,不要局限在完成當(dāng)前任務(wù)的簡單思路上,想想看該模塊是否可以脫離這個系統(tǒng)存在,是否可以通過簡單的修改參數(shù)的方式在其他系統(tǒng)和應(yīng)用環(huán)境下直接引用,這樣就能極大避免重復(fù)性的開發(fā)工作。善于總結(jié),也是學(xué)習(xí)能力的一種體現(xiàn),每次完成一個編程任務(wù),完成一段代碼,都應(yīng)當(dāng)有目的的跟蹤該程序的應(yīng)用狀況,隨時總結(jié),找到自己的不足,這樣所編寫的程序才能逐步提高。 致 謝經(jīng)過幾個月的忙碌,本次畢業(yè)論文設(shè)計已經(jīng)接近尾聲。,由于經(jīng)驗的匱乏,難免有許多考慮不到的地方,在多次的修改和研究之后才寫出完成。如果沒有導(dǎo)師的督促和指導(dǎo),以及同學(xué)和朋友的支持,想要完成這個畢業(yè)論文設(shè)計是難以想像的。感謝同學(xué)和朋友的及時幫助和教導(dǎo)。在論文的
42、寫作過程中,得到了陳豹老師的親切關(guān)懷和耐心的指導(dǎo)。老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和科學(xué)的工作方法給了我極大的幫助和影響。從課題的選擇得到畢業(yè)論文設(shè)計最終完成,老師都始終給予我細(xì)心的指導(dǎo)。在此謹(jǐn)向陳豹老師致以誠摯的謝意和崇高的敬意。同時,也要感謝各位老師,同學(xué)和朋友們給我極大的支持,對我的論文提出了寶貴的意見及建議。感謝所有幫助我的老師、同學(xué)和朋友們,在此向他們表達(dá)我的感激之情。參考文獻(xiàn)1 張宗杰. c語言程序設(shè)計實用教程. 北京:電子工業(yè)出版社,2009.58-1512 張淑平. 程序員教程.北京:清華大學(xué)出版社.,2011.42-3283 譚浩強. c程序設(shè)計. 北京:清華大學(xué)出版社.,2005.91-
43、3104 高維春.c語言程序設(shè)計項目教程.北京:人民郵電出版社,2010.54-675 魏海新,李燕主編. c語言程序設(shè)計實用教程.北京:機械工業(yè)出版社,2007.161-1746 李澤中,孫紅艷主編. c語言程序設(shè)計.北京:清華大學(xué)出版社,2008.98-1017 路俊維,馬雪松主編. c語言程序設(shè)計.北京:中國鐵道工業(yè)出版社,2009.78-988 王敬華等. c語言程序設(shè)計教程.北京:清華大學(xué)出版社,2005.45-649 張明慧. visual c+開發(fā)圖書管理系統(tǒng).北京:北京師范大學(xué),2005.32-4010 陳朔鷹等. c語言程序設(shè)計基礎(chǔ)教程.北京:兵器工業(yè)出版社,1994.78-
44、9711 譚浩強.c程序設(shè)計題解與上機指導(dǎo).北京:清華大學(xué)出版社,2005.130-15512 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(c語言版).北京:清華大學(xué)出版社,2007.59-10713 c編寫組編.常用c語言用法速查手冊.北京:龍門書局,1995.34-4514 張俐,楊瑩編著.c語言高級程序設(shè)計.北京:清華大學(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(請輸入圖書序號:); scanf(%d,&i); for(n=0;n100;
46、n+) if(booksn.id=i) printf(序號:%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(請輸入書名:)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同退保證金協(xié)議
- 廢品出口買賣合同協(xié)議
- bim技術(shù)咨詢合同協(xié)議
- 建筑租賃維修合同協(xié)議
- 店鋪轉(zhuǎn)讓合同解除協(xié)議
- 合同協(xié)議訂貨合同
- 工程用電協(xié)議和用電合同
- 合同期延長補充協(xié)議范本
- 合同能源管理三方協(xié)議
- 同城民房轉(zhuǎn)讓合同協(xié)議
- 大車司機勞務(wù)協(xié)議書
- 中醫(yī)把脈入門培訓(xùn)課件
- 學(xué)生軍訓(xùn)教官合同協(xié)議
- 期刊編輯的學(xué)術(shù)期刊內(nèi)容審核標(biāo)準(zhǔn)考核試卷
- 知識產(chǎn)權(quán)監(jiān)管培訓(xùn)課件
- 油田節(jié)能降耗技術(shù)-全面剖析
- 廣西欽州市欽州港經(jīng)濟技術(shù)開發(fā)區(qū)中學(xué)2025年初三第二學(xué)期第一次區(qū)模擬化學(xué)試題含解析
- 婦科護(hù)理標(biāo)準(zhǔn)化管理
- 小學(xué)2025年國防教育課程開發(fā)計劃
- 防溺水家長測試題及答案
- 蘭州2025年中國農(nóng)業(yè)科學(xué)院蘭州畜牧與獸藥研究所招聘16人筆試歷年參考題庫附帶答案詳解
評論
0/150
提交評論