(完整版)C語言本科畢業(yè)設(shè)計.doc_第1頁
(完整版)C語言本科畢業(yè)設(shè)計.doc_第2頁
(完整版)C語言本科畢業(yè)設(shè)計.doc_第3頁
(完整版)C語言本科畢業(yè)設(shè)計.doc_第4頁
(完整版)C語言本科畢業(yè)設(shè)計.doc_第5頁
免費預(yù)覽已結(jié)束,剩余39頁可下載查看

下載本文檔

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

文檔簡介

1、以下文檔格式全部為word格式,下載后您可以任意修改編輯。電子科技大學(xué)畢業(yè)設(shè)計(論文)任務(wù)書題目:任務(wù)與要求:時間:年月日至年月日共周學(xué)習(xí)中心(或辦學(xué)單位) :專業(yè):指導(dǎo)單位或教研室:指導(dǎo)教師:職稱:繼續(xù)教育學(xué)院電子科技大學(xué)制 網(wǎng)絡(luò)教育學(xué)院年月日畢業(yè)設(shè)計(論文)任務(wù)書題目:任務(wù)與要求:時間:年月日至年月日共周學(xué)習(xí)中心:(或辦學(xué)單位)學(xué)生姓名:學(xué)號:專業(yè):指導(dǎo)單位或教研室:指導(dǎo)教師:職稱:繼續(xù)教育學(xué)院電子科技大學(xué)制 網(wǎng)絡(luò)教育學(xué)院年 月 日畢業(yè)設(shè)計 (論文 )進度計劃表日期工作內(nèi)容執(zhí)行情況指導(dǎo)教師簽字教師對進度計劃實施情況總評簽名年月日本表作評定學(xué)生平時成績的依據(jù)之一。摘要隨著計算機的普及和網(wǎng)絡(luò)的

2、出現(xiàn) , 對信息的需求,書館業(yè)務(wù)受到了強烈的沖擊 , 傳統(tǒng)的手工管理方式已不能適應(yīng)現(xiàn)在的信息化社會。如何利用現(xiàn)有的科學(xué)技術(shù)條件提高圖書信息的管理效率是我們當(dāng)下要考慮的問題 . 圖書信息管理系統(tǒng)是典型的信息管理系統(tǒng) , 其開發(fā)主要包括前端應(yīng)用程序的設(shè)計和后臺數(shù)據(jù)庫的建立及維護兩方面。對于前者 , 要求應(yīng)用程序功能 ; 而對于后者 , 則要求數(shù)據(jù)庫具有一致性、完整性、安全性等特點。對此,建立一個規(guī)范化,系統(tǒng)化,程序化的圖書管理系統(tǒng)迫不急待。為方便對圖書館書籍、讀者資料、借還書等進行高效的管理,特編寫程序以提高圖書館的管理效率。使用程序之后,工作人員可以查詢某位讀者、某種圖書的借閱情況,還可以對當(dāng)前

3、圖書借閱情況進行一些統(tǒng)計,以便全面掌握圖書的流通情況等等。關(guān)鍵詞C 語言;圖書管理;數(shù)據(jù)處理;信息技術(shù)AbstraCtWiththepopularizationofComputerandnetwork,thedemandforinformation,the libraryserviCeastrongimpaCt, thetraditionalmanualmanagementunabletoadapt totheinformationsoCiety now.Howto usetheexistingsCientifiCand teChnologiCalConditionsimprovethe bo

4、okinformation management effiCienCy is our immediate Consideration. Libraryinformationmanagementsystemisan informationmanagementatypiCalsystem, its development mainly inCludes the establishment and maintenanCeof the two front appliCation program design and the baCkstage database. Fortheformer,requir

5、estheappliCation programfunCtion;and forthelatter, itrequires a database with ConsistenCy, integrity, safety and so onIn this regard, the establishment of a standardized, systematiC, wait the books management systemmanagement system programming. For the ConvenienCe of library books, readers informat

6、ion, book borrowing for effiCient management, speCial program to improve library management effiCienCy.After using the program, the staff Can borrow a reader, a book, Can borrow books on the Currentsituation of some statistiCs, so as to fullygrasp the flow of booksKEYWORDSClanguage,LibraryManagement

7、,DataProCessing,InformationTeChnology目錄摘要 .IAbstraCt.II1 緒論 .11.1選題的背景和選題的意義11.1.1選題的背景11.1.2選題的意義11.2系統(tǒng)的特點21.3需求分析 .22 系統(tǒng)的總體設(shè)計32.1系統(tǒng)總體設(shè)計32.2 運行環(huán)境和開發(fā)工具32.2.1開發(fā)工具32.2.2運行環(huán)境42.3系統(tǒng)流程圖53 系統(tǒng)的詳細設(shè)計63.1 主體界面設(shè)計63.1.1主函數(shù) .63.1.2輸入模塊73.1.3刪除模塊83.1.4查詢模塊93.1.5修改模塊113.1.6顯示模塊123.1.7借出模塊133.1.8歸還模塊143.1.9公共函數(shù)164

8、系統(tǒng)調(diào)試 .175系統(tǒng)運行 .19結(jié)論 .23致謝 .24參考文獻 .25附錄程序源代碼.261 緒論1.1 選題背景和選題意義1.1.1 選題背景隨著社會經(jīng)濟的迅速發(fā)展和現(xiàn)代科學(xué)技術(shù)的進步,人類社會正逐漸走向現(xiàn)代化。計算機事業(yè)的飛速發(fā)展,使得以計算機與通信技術(shù)為基礎(chǔ)的信息系統(tǒng)正處于蓬勃發(fā)展的時期。同時,隨著經(jīng)濟文化水平的顯著提高,人們對生活質(zhì)量及工作環(huán)境的要求也越來越高。 圖書館擁有豐富的文獻信息資源,是社會系統(tǒng)的重要組成部分,在信息社會中的作用愈來愈重要。圖書管理系統(tǒng)是我國大部分學(xué)?;蚱渌块T不可缺少的部分,書籍是人類的精神食糧,尤其對一些學(xué)校來說,圖書館非常重要。在軟件開發(fā)中,以計算機圖

9、書為主, 稱“計算機圖書管理系統(tǒng)” 。計算機圖書管理系統(tǒng)能夠為用戶實現(xiàn)借閱圖書、管理等,隨著計算機科學(xué)的日漸成熟,其強大的功能已為人們深刻認(rèn)識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。作為計算機應(yīng)用的一部分,使用計算機對圖書資源信息進行管理,具有著手工管理所無法比擬的優(yōu)點,例如:查閱迅速、安全性高、可靠性高、存儲量大、保密性好、成本低等。計算機圖書管理系統(tǒng)能夠單一定向計算機圖書方面,具有實用、精簡功能等效率,這些優(yōu)點能夠極大的提高圖書管理的效率,也是企業(yè)、學(xué)校的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。1.1.2 選題意義圖書館的信息化從最初的對圖書館業(yè)務(wù)管理實行信息化發(fā)展到圖書館

10、各個業(yè)務(wù)流程進行系統(tǒng)和網(wǎng)絡(luò)化管理,并建立大規(guī)模以個體文獻目錄聯(lián)機查詢?yōu)橹鞯馁Y源共享系統(tǒng)。進入21世紀(jì),充分利用計算機網(wǎng)絡(luò)和信息技術(shù),逐步實現(xiàn)不同載體的實體文獻的信息化管理和多方位的聯(lián)機查詢。圖書館的計算機信息化管理,就是將傳統(tǒng)圖書館業(yè)務(wù)的手工操作轉(zhuǎn)變成由計算機管理,既圖書館的圖書期刊、 音像資料等各種載體文獻的采編、典藏、流通、1.3 圖書管理系統(tǒng)需求分析檢索及常規(guī)業(yè)務(wù)管理工作,采用計算機技術(shù),進行高效、準(zhǔn)確的信息化管理。其根本目的是實現(xiàn)區(qū)域內(nèi)及地區(qū)、國家、國家間的資源共享。要達到資源共享的目的,必須制定一定的標(biāo)準(zhǔn),只有各個系統(tǒng)都遵循這些標(biāo)準(zhǔn),不同的系統(tǒng)間才可以實現(xiàn)聯(lián)機查詢、資源共享的效果。1

11、.2 圖書管理系統(tǒng)簡介圖書管理系統(tǒng)是圖書館的重要組成部分,圖書是我們最好的獲取信息的方式,但由于圖書館圖書收藏量大大增加,使傳統(tǒng)的圖書管理員的工作日益繁重起來,迫使人們起用新的管理方法來管理圖書。本文通過設(shè)計和開發(fā)圖書館管理系統(tǒng)的實踐,闡述了圖書管理軟件中所應(yīng)具有的功能、設(shè)計、實現(xiàn)。介紹了圖書管理系統(tǒng)的設(shè)計和系統(tǒng)功能的實現(xiàn)過程。該系統(tǒng)可以運用于高校的圖書管理, 由圖書借閱, 圖書歸還, 圖書查詢,圖書信息修改,等多個模塊組成,實現(xiàn)了圖書資料的計算機網(wǎng)絡(luò)管理。一般通用的圖書館管理系統(tǒng)通常包括系統(tǒng)管理、讀者管理、編目、圖書流通、統(tǒng)計、查詢等功能。比較先進的系統(tǒng)能夠在一個界面下實現(xiàn)圖書、音像、期刊的

12、管理,設(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ù),可以開放一些客戶機讓讀者自行管理密碼、查詢自己的借閱史、預(yù)約資料、檢索資料等。為滿足圖書管理現(xiàn)代化的需求,國內(nèi)軟件商已開發(fā)出很多商品化圖書管理軟件,但他們大多是面向大型專業(yè)圖書館而開發(fā)的,專業(yè)性強,操作和使用比較復(fù)雜,

13、難以掌握。而國內(nèi)很多中小型圖書館由于管理人員不多且大多數(shù)不是圖書管理業(yè)務(wù)的專業(yè)人員、業(yè)務(wù)分工也不是很詳細、明確,這樣的軟件對于他們而言太復(fù)雜,所以應(yīng)用效果并不是很好。目前在大的圖書館己經(jīng)有一整套比較完善的信息管理系統(tǒng),而在一般小型圖書館中大 部分工作還是進行手工管理,工作效率低,并不能即時了解圖書館各類圖書的庫存,讀者比較需求的圖書難以在短時間內(nèi)找到,圖書的入庫和更新比較麻煩等等,不便于動態(tài)及時調(diào)整圖書結(jié)構(gòu)。同時由于不可避免的人為因素,造成數(shù)據(jù)的遺漏、誤報等。為了更好的適應(yīng)當(dāng)前中小型圖書館的讀者借閱需求,緩解手工管理存在的各種弊端,因此開發(fā)了面向中小型圖書館的圖書管理系統(tǒng),為用戶提供全方位的信

14、息服務(wù)。通過對中小型圖書館的調(diào)查、分析發(fā)現(xiàn),用戶的需求可分為 4 個方面 : 第一是圖書館的工作人員通過計算機來管理各類圖書,分類編號、調(diào)整圖書結(jié)構(gòu)、增加圖書庫存,適應(yīng)讀者的需求。第二是讀者能通過計算機來查詢?yōu)g覽圖書館中的圖書,來確定自己需要的書籍,為借閱做好準(zhǔn)備。第三是工作人員對讀者的借書情況能夠作好全面掌握,能及時得到每個讀者的當(dāng)前借閱狀態(tài)和歷史借閱記錄。第四也是圖書館的核心工作,對圖書的借閱管理。在軟、硬件方面對系統(tǒng)的需求是軟件要易學(xué),容易掌握,可以很簡單方便地管理各種圖書信息。硬件的配置要求不能太高,這樣可以適應(yīng)中小型圖書館的經(jīng)濟條件??傊?,中小型圖書館管理信息系統(tǒng)旨在提供一個可以操作

15、的, 方便查詢的,易于修改的輔助管理系統(tǒng)。同時提供了系統(tǒng)智能輔助與用戶自主選擇的兩種方式,提高查詢效率。2 系統(tǒng)分析2 系統(tǒng)的總體設(shè)計2.1 系統(tǒng)總體設(shè)計實用的圖書館管理系統(tǒng)應(yīng)該包括:錄入:新進圖書及基本信息輸入刪除:舊圖書及基本信息刪除查詢:查詢要借閱的圖書信息修改:修改已有的圖書信息借書:實現(xiàn)用戶辦理借書手續(xù)還書:實現(xiàn)用戶 .辦理還書手續(xù)系統(tǒng)以菜單方式工作可以使界面友好,易于操作。用戶可以對本系統(tǒng)進行自己需要的查詢或修改操作, 如根據(jù)用戶的需求自動的進行添加操作、刪除操作、借還操作。我們也可以查找所要的圖書、 查閱圖書的詳細資料、查閱讀者的詳細資料。最后清晰完整的結(jié)果于屏幕中。方便使用者對

16、圖書借閱的操作,提高準(zhǔn)確性,可以達到事半功倍的效果。系統(tǒng)采用的是自頂向下、層次化的模塊結(jié)構(gòu)。對于高層模塊,采用以事務(wù)為中心的設(shè)計策略,把一個大的模塊逐步分解成較小的相對簡單的模塊。對低層模塊,采用以變換為中心的設(shè)計策略。為了達到高內(nèi)聚,低耦合的效果,我們可以把每個模塊設(shè)計成具有單一功能的模塊,使模塊間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實現(xiàn)。2.2 運行環(huán)境和開發(fā)工具2.2.1 開發(fā)工具本系統(tǒng)采用 C 語言作為開發(fā)工具, C 語言的主要特點如下:( 1) 語言簡潔、緊湊,使用方便。( 2) 運算符和數(shù)據(jù)類型豐富,具有現(xiàn)代語言的各種數(shù)據(jù)結(jié)構(gòu)。( 3) 具有結(jié)構(gòu)化的語句, 。( 4) 語法限制不太

17、嚴(yán)格,程序設(shè)計自由度大。( 5) 生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。( 6) 用 C 語言編寫的程序可移植性比較好,基本上不做任何修改就能運用于各種型號的操作系統(tǒng)中。( 7) C 語言允許直接訪問物理地址,能進行位操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作 ,因為 C 語言的各種優(yōu)點,所以本系統(tǒng)使用 C語言作為開發(fā)環(huán)境,簡化了編寫過程,簡化了系統(tǒng)界面。( 8) C 語言是一種計算機程序設(shè)計語言。它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.RitChie于 1972 年推出。 1978 后, C語言已先后被移植到大、中、小及微型機上。它可以作為工作

18、系統(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)于其它高級語言的一個重要原因。就是因為它有指針,可以直接進行靠近硬件的操作,但是C 的指針操作不做保護,也給它帶來了很多不安全的因素。C+在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持, 但是,由于這些改進增加語言的復(fù)雜度,也為另一部分所詬病。 Jav

19、a 則吸取了C+的教訓(xùn),取消了指針操作,也取消了 C+改進中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果, 但其本身解釋在虛擬機中運行,運行效率低于 C+C。一般而言, C, C+,java 被視為同一系的語言,它們長期占據(jù)著程序使用榜的前三名。2.2.2 運行環(huán)境VisualC+6.0 ,簡稱 VC或者 VC6.0,是微軟推出的一款C+編譯器,將“高級語言”翻譯為“機器語言(低級語言)”的程序。 VisualC+是一個功能強大的可視化軟件開發(fā)工具。自1993年MiCrosoft公司推出VisualC+1.0 后,隨著其新版本的不斷問世,VisualC+已成為專業(yè)程序員進行軟件開發(fā)

20、的首選工具。雖然微軟公司推出了VisualC+.NET(VisualC+7.0) ,但它的應(yīng)用的很大的局限性,只適用于 Windows2000、WindowsXP和 WindowsNT4.0。所以實際中,更多的是以 VisualC+6.0 為平臺。VC6.0 由以下三部分組成:1、DeveloperStudio ,這是一個集成開發(fā)環(huán)境,我們?nèi)粘9ぷ鞯?9%都是在它上面完成的,DeveloperStudio 為 VisualC+提供了一個很好的編輯器和很多Wizard ,但實際上它沒有任何編譯和鏈接程序的功能。我們也知道, DeveloperStudio 并不是專門用于VC的,它也同樣用于 VB

21、,VJ, VID 等VisualStudio家族的其他同胞兄弟。所以不能把DeveloperStudio當(dāng)成VisualC+,它充其量只是VisualC+的一個殼子而已。2、MFC。從理論上來講, MFC也不是專用于VisualC+,BorlandC+,C+Builder和 SymanteCC+同樣可以處理MFC。同時,用VisualC+編寫代碼也并不意味著一定要用MFC,只要愿意,用VisualC+來編寫SDK程序,或者使用STL,ATL,一樣沒有限制。不過,VisualC+本來就是為MFC打造的,VisualC+中的許多特征和語言擴展也是為MFC而設(shè)計的,所以用VisualC+而不用MFC

22、就等于拋棄了VisualC+中很大的一部分功能。但是,VisualC+也不等于MFC。3、PlatformSDK。這才是VisualC+和整個VisualStudio的精華和靈魂,雖然我們很少能直接接觸到它。大致說來,PlatformSDK 是以MiCrosoftCC+編譯器為核心(不是VisualC+,看清楚了),配合MASM,輔以其他一些工具和文檔資料。上面說到DeveloperStudio 沒有編譯程序的功能,那么這項工作是由誰來完成的呢?是CL,是 NMAKE,和其他許許多多命令行程序,這些我們看不到的程序才是構(gòu)成VisualStudio的基石。 2.3 系統(tǒng)流程圖設(shè)計時應(yīng)該先設(shè)計出主

23、題框架,采用自頂而下、由粗到細的設(shè)計方法,主題框架設(shè)計完成之后, 我們可以再其基礎(chǔ)上進行擴充和進一步的改進,從而滿足基本的設(shè)計要求,這樣的設(shè)計可以避免模塊的相互沖突。圖 1結(jié)構(gòu)框圖圖書數(shù)據(jù):序號、書名、作者、出版社、存數(shù)、總數(shù)。管理系統(tǒng)的總體設(shè)計與詳細設(shè)計3.1 總體設(shè)計總體設(shè)計目標(biāo):使用者可以利用本系統(tǒng)進行對圖書館借閱的各項運算操作,如根據(jù)用戶的需求自動的進行添加圖書,刪除圖書,借書還書。查找所要的圖書,查閱圖書的詳細資料,查閱讀者的詳細資料。最后清晰完整的結(jié)果于屏幕中。大大方便使用者對圖書借閱的操作,不僅節(jié)省時間,而且提高準(zhǔn)確性,可以達到事半功倍的效果??傮w設(shè)計策略:本系統(tǒng)采用的是自頂向下

24、、層次化的模塊結(jié)構(gòu)。對高層模塊,采用以事務(wù)為中心的設(shè)計策略,把一個大的模塊逐步分解成較小的相對簡單的模塊。對低層模塊,采用以變換為中心的設(shè)計策略。為了提高每個模塊的內(nèi)聚性、降低模塊間的耦合性,將每個模塊設(shè)計成具有單一功能的模塊(即功能內(nèi)聚),使模塊間的聯(lián)系完全是通過主模塊的控制和調(diào)用來實現(xiàn)(即非直接耦合) 。3.2 詳細設(shè)計主函數(shù)主函數(shù)要求設(shè)計比較簡潔,只提供設(shè)輸入,處理和輸出部分的函數(shù)調(diào)用。其中各功能模塊用菜單方式選擇。流程圖如下圖 2:圖 2主函數(shù)流程圖程序:void main(void)menu: page_title("操作選單 ");printf(" 請

25、用數(shù)字鍵選擇操作 nn");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;

26、case '3' : book_search(); break;case '4' : book_change(); break;case '5' : book_in();break;case '6' : book_del();break;case '7' : book_show();break;case '8' : exit(0); goto menu;輸入模塊分析:該模塊的功能是假如用戶需要新加入新的圖書信息,通過鍵盤輸入將新信息逐條加在原來輸入文件上但不能覆蓋原有信息。流程圖如下圖3:圖 3輸入

27、模塊流程圖程序:void book_add(void) int n;system("cls");page_title("注冊新書 ");for(n=0;n<100;n+)if(booksn.id=0) break;printf(" 序號 :");scanf("%d",&booksn.id);printf(" 書名 :");scanf("%s",&);printf(" 作者 :");scanf("%s&q

28、uot;,&booksn.author);printf(" 出版社 :");scanf("%s",&booksn.publish);printf(" 數(shù)量 :");scanf("%d",&booksn.total);booksn.store=booksn.total;return_confirm(); 刪除模塊分析:該模塊用于顯示所有圖書信息,由于記錄較多,故而采取分屏顯示。顯示完所有紀(jì)錄后,用戶需輸入圖書編號進而查找圖書信息。流程圖如下圖4:圖 4刪除模塊流程圖程序:int book_de

29、l(void)int n,num,i;system("cls");page_title("刪除圖書 ");printf(" 請輸入所要刪除的書的編號:");scanf("%d",&num);for(n=0;n<100;n+)if(booksn.id=num)for(i=n;i<100;i+) booksi.id=booksi+1.id; strcpy(,booksi+1.name);strcpy(booksi.publish,booksi+1.publish);printf

30、(" 該書已刪除 .n");return n;printf(" 沒有找到相關(guān)記錄 n");return -1;查詢模塊分析:改模塊功能應(yīng)體現(xiàn)為用戶輸入圖書書名,若有書則查詢出來。流程圖如下圖 5:程序:int book_search(void) int n,i=1;char nam30;system("cls");printf(" 請輸入書名 :");scanf("%s",&nam);for(n=0;n<100;n+) if(strcmp(,nam)=0) p

31、rintf(" 序號 :%dt",booksn.id);printf(" 書名 :%st",); printf(" 作者 :%st",booksn.author); printf(" 出版社 :%st",booksn.publish); printf(" 存數(shù) :%dt",booksn.store); printf(" 總數(shù) :%dn",booksn.total);i=0;if(i=1)printf("n 沒有找到相關(guān)記錄 .n");

32、return -1; 修改模塊分析:該模塊功能應(yīng)體現(xiàn)為用戶修改圖書信息,若有記錄則修改信息。流程圖如下圖6:圖 6修改模塊流程圖程序:int book_change(void)int n,i;system("cls");page_title("修改圖書信息 ");printf(" 請輸入要修改的圖書編號:");scanf("%d",&i);for(n=0;n<100;n+) if(booksn.id=i) printf(" 修改書名: "); scanf("%s"

33、;,);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 沒有

34、找到相關(guān)記錄 .n");return -1;顯示模塊分析:該模塊功能應(yīng)體現(xiàn)為顯示全部的圖書信息。流程圖如下圖7:程序:int book_show(void)int n,i=1;system("cls");for(n=0;n<100;n+)if(strlen()!=0)printf(" 序號 :%dt",booksn.id);printf(" 書名 :%st",);printf(" 作者 :%st",booksn.author);printf("

35、出版社 :%st",booksn.publish);printf(" 存數(shù) :%dt",booksn.store);printf(" 總數(shù) :%dn",booksn.total);i=0;if(i=1)printf("n 沒有找到相關(guān)記錄 .n");return -1;借出模塊分析:該模塊功能應(yīng)體現(xiàn)為用戶輸入圖書序號,若有書則要求輸入賬號。流程圖如下圖8:圖 8借書模塊流程圖程序:void book_out(void)int n,s,l,d;system("cls");page_title("借

36、閱圖書 ");if(n=search_book()!=-1&&booksn.store>0)printf(" 請輸入借書證序號 :");scanf("%d",&s);printf(" 請輸入可借天數(shù) :");scanf("%d",&d);for(l=0;l<10;l+)if(booksn.usrl=0)booksn.usrl=s; booksn.daysl=d;break;booksn.store-; if(n!=-1&&booksn.store

37、=0) printf(" 此書已經(jīng)全部借出 .n");return_confirm(); 歸還模塊分析:該模塊功能應(yīng)體現(xiàn)為方便用戶歸還圖書流程圖如下圖 9:圖 9歸還圖書模塊程序:void book_in(void) int n,s,l;page_title("歸還圖書 ");if(n=search_book()!=-1&&booksn.store<booksn.total)printf(" 借閱者圖書證列表 :n");for(l=0;l<10;l+)if (booksn.usrl!=0)printf(&q

38、uot;%d- %d天n",booksn.usrl,booksn.daysl);printf(" 請輸入借書證序號 :");scanf("%d",&s);for(l=0;l<10;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();公共函數(shù)定義結(jié)構(gòu)體:struct

39、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 調(diào)試與測試系統(tǒng)測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,成功的測試時發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。測試的目的就是希望能以最少的人力和事件發(fā)現(xiàn)潛

40、在的各種錯誤和缺陷,我們應(yīng)該根據(jù)開發(fā)個階段的需求、設(shè)計等文檔或程序的內(nèi)部結(jié)構(gòu)精心設(shè)計測試實例,并利用這些實例來運行程序,以便發(fā)現(xiàn)錯誤的過程。系統(tǒng)測試的原則應(yīng)該遵循以下基本規(guī)則。( 1) 應(yīng)該盡早并且不斷地進行測試。測試不是在系統(tǒng)開發(fā)完之后才進行的,由于原始問題的復(fù)雜性、開發(fā)階段的多樣性以及參加人員的細條等因素,在開發(fā)過程中的各個階段都有可能出現(xiàn)錯誤,因此,測試應(yīng)該貫穿在開發(fā)的各個階段,我們應(yīng)該盡早糾正作物,消除隱患。( 2) 測試工作應(yīng)該避免由原開發(fā)軟件的人來進行,一方面,開發(fā)人員往往不愿否認(rèn)自己的工作,總認(rèn)為自己開發(fā)的軟件過程序沒有錯誤,另一方面,開發(fā)人員往往很難發(fā)現(xiàn)自己的錯誤,具有局限性,

41、所以我們應(yīng)該找其他人來幫忙檢查程序。這樣會變得更客觀,更有效。( 3) 設(shè)計測試方案時,不僅要確定輸入數(shù)據(jù),而且要根據(jù)系統(tǒng)功能來確定預(yù)期的輸出效果和結(jié)果。將實際輸出結(jié)果和預(yù)期結(jié)果相比較就能發(fā)現(xiàn)測試的對象是否正確,是否有一些隱患。( 4) 在設(shè)計測試用例時,不僅要設(shè)計有效合理的輸入條件,還要包含不合理、失效的輸入條件。測試的時候,人們往往習(xí)慣按照合理的、正常的情況下進行測試, 從而忽略了對異常、 不合理、意想不到的情況進行測試,而這些情況可能都是隱患,可能會造成系統(tǒng)的崩潰。( 5) 在測試程序時,不僅要檢驗程序是否做了該做的事情,還要檢驗程序是否做了不該做的事情。多余的工作會帶來副作用,影響程序

42、的效率,有事會帶來潛在的危害或者錯誤。( 6) 嚴(yán)格按照測試計劃來進行,避免測試的隨意性。測試計劃應(yīng)該包括測試內(nèi)容、進度安排、測試環(huán)境、測試工具和測試資料等。嚴(yán)格按照測試計劃可以保證進度,使各方面都得以協(xié)調(diào)進行。( 7) 妥善保存測試計劃、測試用例,作為軟件文檔的組成部分,為了以后維護的方便做了鋪墊。( 8) 測試用例都是精心設(shè)計出來的,可以為重新測試或者追加測試提供方便。當(dāng)糾正錯誤、系統(tǒng)功能擴充后,都需要重新進行測試,而這些工作重復(fù)性很高,可以利用以前的測試用例,或者在其基礎(chǔ)上進行修改,然后在進行測試,這樣科技簡化系統(tǒng)的維護時間并且提高了維護的效率。在系統(tǒng)調(diào)試過程中,我們可以利用一組簡單的數(shù)

43、據(jù)對程序進行調(diào)試,來觀察各函數(shù)是否有出錯現(xiàn)象。然后用復(fù)雜數(shù)據(jù)對程序進行調(diào)試。然后我們要對系統(tǒng)的各項能力進行測試,看看有沒有漏洞或者死循環(huán)現(xiàn)象。數(shù)據(jù)測試時,如果程序程序錯誤,要首先找到出錯的函數(shù),對函數(shù)中各個變量進行觀察 ,有時變量很多,循環(huán)多重不要急,對各個數(shù)據(jù)的觀察,對程序的調(diào)試有很大的幫助。 你也可以先對幾個變量熟悉后,在多重循環(huán)里 ,確定正確的數(shù)據(jù),將其跳過調(diào)試,對有疑問的數(shù)據(jù)循環(huán)進行仔細觀察。雖然這是比較省力氣的活,但對復(fù)雜的數(shù)據(jù)錯誤并不是很有效,所以仔細觀察每個數(shù)據(jù)的變化對調(diào)試的成功與否有決定性作用。測試時,根本的錯誤并不一定在運行錯誤的函數(shù)內(nèi),或許在前面的函數(shù)內(nèi)已經(jīng)奠定了這些錯誤數(shù)

44、據(jù)的基礎(chǔ),需要反過頭來,對所有的的函數(shù)進行一項項的調(diào)試 !從程序運行的第一個函數(shù)開始調(diào)試。按照程序運行的步驟下去。一個個的確定函數(shù)的正確性,每確定一個函數(shù),在以后的調(diào)試中可以減少對該函數(shù)的調(diào)試次數(shù),或者直接跳到下一個函數(shù)。 所謂的各個擊破便是如此。對頭文件中的各個函數(shù)的返回值和它所要傳入的參變量及其功能更是需要注意。5 調(diào)試時 ,需要對錯誤縮小范圍 ,從整個程序到指定函數(shù) ,再到指定區(qū)域 ,再到指定行 ,在對程序縮小范圍或?qū)幾g沒通過的程序縮小錯誤范圍時可以用 "* *" 來進行調(diào)試 ,確定正常范圍 ,縮小錯誤范圍。 編碼實現(xiàn) 主界面截圖圖 10主界面 注冊新書界面截圖圖 11 新書注冊 借閱界面截圖圖 12 圖書借閱 歸還界面截圖圖 13 圖書歸還

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論