




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)訓(xùn)報(bào)告題 目: 圖書館管理系統(tǒng)院 系: 信息科技學(xué)院專 業(yè): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 日 期: 2015年7月15日 桂林電子科技大學(xué)信息科技學(xué)院目 錄1 問題定義 =12 系統(tǒng)設(shè)計(jì) -521 總體設(shè)計(jì) -522 詳細(xì)設(shè)計(jì) -62.2.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) -62.2.2 主控流程 -82.2.3 增加信息模塊 -72.2.4 查找信息模塊 -72.2.7 刪除信息模塊 -72.28 修改信息模塊 -72.2.8 數(shù)據(jù)功能描述 -73 系統(tǒng)實(shí)現(xiàn) = 23.1 編碼 - 83.1.1 程序預(yù)處理 - 93.1.2 主函數(shù)main() - 93.1.3 主菜單界面 - 113.1.7 增加圖
2、書信息 - 143.1.8 查詢圖書信息 - 143.1.9 刪除圖書信息 - 153.2.0 修改圖書信息 - 153.2 測試與調(diào)試 - 133.2.1 概述 - 143.2.2 程序測試 - 145 歸納總結(jié) = 35.1 開發(fā)經(jīng)驗(yàn) - 165.2 實(shí)訓(xùn)中遇到的問題及解決方法- 165.3 設(shè)計(jì)中的不足之處 - 165.4 感想和心得體會(huì) - 166 參考資料 = 16前 言課程設(shè)計(jì)環(huán)節(jié)是應(yīng)用型本科院校非常重要的一個(gè)教學(xué)環(huán)節(jié),是學(xué)完一門課后應(yīng)用本課知識(shí)及以前的知識(shí)積累而進(jìn)行的綜合性、開放性的訓(xùn)練。通過課程設(shè)計(jì),不僅能夠使學(xué)生得到系統(tǒng)的技能訓(xùn)練,鞏固和加強(qiáng)所學(xué)得專業(yè)理論知識(shí),而且能夠培養(yǎng)學(xué)
3、生工程意識(shí)、創(chuàng)新能力、團(tuán)隊(duì)精神等綜合素質(zhì),培養(yǎng)學(xué)生的設(shè)計(jì)能力和解決實(shí)際問題的能力。C語言由于其強(qiáng)大的功能,豐富的表達(dá)能力,高效的代碼,良好的移植性和靈活性,自1972年問世以來,經(jīng)久不衰,即使現(xiàn)在出現(xiàn)了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法和開發(fā)工具,但它仍然是人們學(xué)習(xí)程序設(shè)計(jì)的首選語言,用它訓(xùn)練和提高編程技術(shù),以及開發(fā)應(yīng)用程序等。我們通過C語言程序設(shè)計(jì)這門課程的學(xué)習(xí),已經(jīng)能編寫解決小問題的程序,對程序的開發(fā)也有了初步的認(rèn)識(shí),還掌握了C 語言的基本語法,這一過程確確實(shí)實(shí)令我們感到欣喜,有點(diǎn)計(jì)算機(jī)可以完成自我任務(wù)的成就感。但是,對于程序設(shè)計(jì)而言,學(xué)習(xí)C 的步伐不應(yīng)該停留于此。我們最終的目的應(yīng)該是掌握開發(fā)大型綜合
4、程序的方法,即遵循軟件工程的開發(fā)步驟和結(jié)構(gòu)化程序設(shè)計(jì)思想,用C 語言開發(fā)出解決復(fù)雜問題的大型綜合程序??墒菍τ诙鄶?shù)學(xué)生來說,學(xué)習(xí)了C語言后,除了應(yīng)付各種考試之外,別無它用,對Turbo C語言豐富的函數(shù)知之甚少,加上DOS環(huán)境所限,因而對C語言興趣不大,也感到C語言比較難以掌握。本實(shí)訓(xùn)就是為了讓學(xué)生在學(xué)完C語言后進(jìn)一步了解C語言的知識(shí),掌握C語言在軟件開發(fā)方面的使用方法,希望通過此次實(shí)訓(xùn),不僅能提高學(xué)生學(xué)習(xí)C語言的興趣,更為今后學(xué)習(xí)其它專業(yè)知識(shí)及開發(fā)程序打下堅(jiān)實(shí)的基礎(chǔ)。本指導(dǎo)書中有些內(nèi)容借鑒了互聯(lián)網(wǎng)上相關(guān)程序的設(shè)計(jì)思想,在此對相關(guān)者表示衷心的感謝。由于時(shí)間、經(jīng)驗(yàn)及水平的原因,不當(dāng)、不足之處,請
5、大家提出寶貴意見。編者圖書館管理系統(tǒng)一 實(shí)訓(xùn)目的: 1. 鞏固C語言的三種基本結(jié)構(gòu)、數(shù)組、函數(shù)調(diào)用的基本知識(shí);2. 掌握利用C語言編寫程序的基本方法,提高C語言編程技巧,培養(yǎng)分析問題、解決問題的能力;3. 熟練掌握C語言的編譯、調(diào)用方法。二 實(shí)驗(yàn)內(nèi)容退出圖書管理修改圖書信息刪除圖書信息查找圖書信息增加圖書信息主菜單 1、問題定義創(chuàng)建一個(gè)圖書館管理系統(tǒng)。假設(shè)系統(tǒng)中每本圖書只包括圖書名字、圖書書號(hào)、圖書出版社、圖書作者等信息。程序的運(yùn)行效果如圖1.1所示,選擇任意菜單中的數(shù)字,實(shí)現(xiàn)相應(yīng)功能。圖1.1 圖書管理系統(tǒng)功能需求在問題定義階段要考慮題目的可行性和需求分析,接下來進(jìn)入開發(fā)階段,完成系統(tǒng)設(shè)計(jì)和
6、系統(tǒng)實(shí)現(xiàn)的任務(wù)。2. 系統(tǒng)設(shè)計(jì)2. 1 總體設(shè)計(jì)采用模塊化的程序設(shè)計(jì)方法,即將較大的任務(wù)按照一定的原則分為一個(gè)個(gè)較小的任務(wù),然后分別設(shè)計(jì)各個(gè)小任務(wù)。需要注意的是劃分出來的模塊應(yīng)該相對獨(dú)立但又相關(guān),且容易理解??梢杂媚K化層次結(jié)構(gòu)圖(即模塊圖)來分析其任務(wù)的劃分,一般從上到下進(jìn)行,最上面一層是主模塊,下面各層是其上一層模塊的逐步細(xì)化描述。 本圖書管理系統(tǒng)采用了數(shù)組來實(shí)現(xiàn),如下圖1.2所示,它由五大功能模塊組成:增加圖書信息模塊。通過輸入圖書的書名、書號(hào)、出版社、作者來實(shí)現(xiàn)增加信息。查找圖書信息模塊。根據(jù)增加的圖書的書名來查找圖書的信息。刪除圖書信息模塊。根據(jù)增加的圖書信息記錄通過查找定位找到信息
7、進(jìn)行刪除。修改圖書信息模塊。根據(jù)增加的圖書信息記錄通過查找找到該書信息進(jìn)行修改。 2.2詳細(xì)設(shè)計(jì)2.2.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)l 圖書館信息結(jié)構(gòu)體結(jié)構(gòu)體 struct book將用于儲(chǔ)存圖書的基本信息,它將作為文件的數(shù)據(jù)域。l Struct book /* 定義結(jié)構(gòu)體 */ char Name20; /* 書名 */ char Number20; /* 書號(hào) */ char publish20; /* 出版社 */ char author10; /* 作者 */ book500;這樣就定義了一個(gè)數(shù)組的結(jié)構(gòu)l 2.2.2 主控main()函數(shù)執(zhí)行流程 2.2.3 增加信息模塊:主要實(shí)現(xiàn)圖書信息的增加功能
8、。2.2.4 查找信息模塊:主要實(shí)現(xiàn)圖書查找書籍的功能。2.2.5 刪除信息模塊:主要實(shí)現(xiàn)圖書刪除圖書記錄的功能2.2.6 修改信息模塊:主要實(shí)現(xiàn)修改增加后的圖書信息功能。2.2.7 函數(shù)功能述add()函數(shù)原型:void add();add()函數(shù)用于在增加圖書信息的功能。chazhao() 函數(shù)原型:chazhao(); chazhao()函數(shù)用于在查找圖書信息的功能。del()函數(shù)原型:del();del()函數(shù)用于在刪除圖書信息的功能。xiugai()原型函數(shù):xiugai();xiugai()函數(shù)用于在修改圖書信息的功能。l 主函數(shù)main()整個(gè)成績管理系統(tǒng)控制部分。void ma
9、in() /* 整個(gè)圖書管理系統(tǒng)控制部分 */ int i; do /* 控制返回菜單 */ Menu(); printf(請輸入要實(shí)現(xiàn)的功能); scanf(%d,&i); if(i=0) /*請輸入0到4之間的數(shù)字*/ switch(i) case 1 : add() ;break; case 2 : chazhao() ;break; case 3 : del() ;break; case 4 : xiugai() ;break; case 0 : exit(0) ;break; else printf(對不起,請重新輸入并按回車確定nn); while(1);注:圖書館信息管理系統(tǒng)的控
10、制部分。3、系統(tǒng)實(shí)現(xiàn)31 編碼3.1.1 程序預(yù)處理包括定義結(jié)構(gòu)體、常量和變量、聲明部分,并對它們進(jìn)行初始化工作。#include /*標(biāo)準(zhǔn)函數(shù)輸入輸出函數(shù)庫*/#include /*標(biāo)準(zhǔn)函數(shù)庫*/#include /*字符串函數(shù)庫*/ /*TTTTTTTTTTTTT函數(shù)聲明部分TTTTTTTTTTTTTT*/void add(); /* 增加 */void chazhao(); /* 查找 */void del(); /* 刪除 */void xiugai(); /* 修改 */void exti(); /* 退出 */void Menu(); /* 菜單 */ /*TTTTTTTTTT定義
11、結(jié)構(gòu)體部分TTTTTTTTTTTTTTT*/struct book /* 定義結(jié)構(gòu)體 */ char Name20; /* 書名 */ char Number20; /* 書號(hào) */ char publish20; /* 出版社 */ char author10; /* 作者 */ book500;#include /*標(biāo)準(zhǔn)函數(shù)輸入輸出函數(shù)庫*/#include /*標(biāo)準(zhǔn)函數(shù)庫*/#include /*字符串函數(shù)庫*/ /*TTTTTTTTTTTTT函數(shù)聲明部分TTTTTTTTTTTTTT*/void add(); /* 增加 */void chazhao(); /* 查找 */void de
12、l(); /* 刪除 */void xiugai(); /* 修改 */void exti(); /* 退出 */void Menu(); /* 菜單 */ /*TTTTTTTTTT定義結(jié)構(gòu)體部分TTTTTTTTTTTTTTT*/struct book /* 定義結(jié)構(gòu)體 */ char Name20; /* 書名 */ char Number20; /* 書號(hào) */ char publish20; /* 出版社 */ char author10; /* 作者 */ book500;3.1.2 主函數(shù)main()main()函數(shù)主要實(shí)現(xiàn)了對整個(gè)程序的運(yùn)行控制,以及相關(guān)功能模塊的調(diào)用。void m
13、ain() /* 整個(gè)圖書管理系統(tǒng)控制部分 */ int i; do /* 控制返回菜單 */ Menu(); printf(請輸入要實(shí)現(xiàn)的功能); scanf(%d,&i); if(i=0) /*請輸入0到4之間的數(shù)字*/ switch(i) case 1 : add() ;break; case 2 : chazhao() ;break; case 3 : del() ;break; case 4 : xiugai() ;break; case 0 : exit(0) ;break; else printf(對不起,請重新輸入并按回車確定nn); while(1);3.1.3 主菜單界面
14、printf(歡迎使用圖書管理系統(tǒng)n);printf(菜單n);printf( n);printf(按 1: 增加圖書信息 n);printf( n);printf( n);printf(按 2: 查找圖書信息 n);printf( n);printf( n);printf(按 3: 刪除圖書信息 n);printf( n);printf( n);printf(按 4: 修改圖書信息 n);printf( n);printf( n);printf(按 0: 退出圖書管理 n);printf( n);printf(請 選 擇 你 需 要 的 操 作n);printf( n);printf( 電信
15、工程專業(yè) 1051210206n);3.14增加圖書信息用戶進(jìn)入系統(tǒng)后,輸入要添加的書籍信息。void add() /* 增加功能 */ int i,j; printf(請輸入要增加圖書的圖書數(shù)量,按回車鍵結(jié)束n); scanf(%d,&j); for(i=0;ij;i+) printf(請輸入要增加圖書的圖書名字,按回車鍵結(jié)束=); scanf(%s,booki.Name); printf(請輸入要增加圖書的圖書書號(hào),按回車鍵結(jié)束book.num=); scanf(%s, booki.Number); printf(請輸入要增加圖書的圖書出版社,按回車鍵結(jié)束book.pub
16、lish=); scanf(%s, booki.publish); printf(請輸入要增加圖書的圖書作者,按回車鍵結(jié)束author=); scanf(%s,booki.author); 3.15查找圖書信息用戶進(jìn)入系統(tǒng)后,按信息記錄進(jìn)行查找該圖書的書籍信息。void chazhao() /* 查找功能 */ int j=0; char Name20; printf(請輸入書的name=); /* 請輸入要查找圖書的書名 */ scanf(%s,Name); for(j=0;j500;j+) /* 找到要查找圖書的書名 */ if(strcmp(bookj.Name,Name)=0) pri
17、ntf(n); printf( 書名 書號(hào) 出版社 作者 n); printf(n); printf( n); printf( %s %s %s %s n, bookj.Name,bookj.Number,bookj.publish,bookj.author) ; break; else printf(抱歉,未找到相應(yīng)書籍n); break; /* 如果查找到圖書的信息就輸出該圖書信息,否則輸出sorry,未找到相應(yīng)書籍 */3.16 刪除圖書信息用戶進(jìn)入系統(tǒng)后,按條件輸入要?jiǎng)h除的圖書信息。void del() /* 刪除功能 */ int j=0; char Name20; printf(請
18、輸入圖書的書名,name=); /* 按 */ scanf(%s,Name);/* */ for(j=0;j500;j+)/* */ if(strcmp(bookj.Name,Name)=0) /*將定位到你所要查找圖書的位置*/ for(;bookj.Name0!=0;j+) bookj=bookj+1; /*將查找到的圖書的后一本圖書的信息覆蓋這本圖書的信息*/ bookj.Name0=0; /* 給結(jié)構(gòu)體最后一個(gè)圖書加上結(jié)束符 */3.17 修改圖書信息用戶進(jìn)入系統(tǒng)后,按條件輸入要修改的圖書信息。void xiugai() /* 修改功能 */ int j=0; char Number2
19、0; printf(請輸入要修改圖書的number=);/* 請輸入要修改圖書的書號(hào) */ scanf(%s,Number); for(j=0;j500;j+) if(strcmp(bookj.Number,Number)=0) /*定位到你所要修改圖書的位置,然后修改該書籍的相關(guān)信息*/ printf(請輸入要修改圖書的圖書名字,按回車鍵結(jié)束=); scanf(%s,bookj.Name); printf(請輸入要修改圖書的圖書書號(hào),按回車鍵結(jié)束book.num=); scanf(%s, bookj.Number); printf(請輸入要修改圖書的圖書出版社,按回車鍵結(jié)束
20、book.publish=); scanf(%s, bookj.publish); printf(請輸入要修改圖書的圖書作者,按回車鍵結(jié)束author=); scanf(%s,bookj.author); break; 32 測試與調(diào)試3.2.1 概述一般情況下,為解決一個(gè)問題所編寫的程序代碼較長,可能包括幾百條甚至成千上萬條語句。在檢查并排除所有語法錯(cuò)誤后,還會(huì)有不易發(fā)現(xiàn)的邏輯錯(cuò)誤,因此要對程序進(jìn)行認(rèn)真仔細(xì)的測試與調(diào)試。測試是通過運(yùn)行程序發(fā)現(xiàn)錯(cuò)誤的過程,常見的錯(cuò)誤有數(shù)據(jù)溢出、數(shù)組越界、進(jìn)入死循環(huán)、語句順序顛倒、多加“;”或少加“”等等。調(diào)試則是確定測試中找到的錯(cuò)誤性質(zhì)并改正錯(cuò)誤的過程。測試與
21、調(diào)試通常交替進(jìn)行,即測試調(diào)試再測試再調(diào)試。能檢查出尚未發(fā)現(xiàn)的、各種不同類型錯(cuò)誤的測試才是成功的測試。測試程序需要測試用例,測試用例可用如下公式表示:測試用例測試數(shù)據(jù)預(yù)期結(jié)果。好的測試用例應(yīng)該是用盡可能少的測試數(shù)據(jù)發(fā)現(xiàn)盡可能多的錯(cuò)誤,即發(fā)現(xiàn)錯(cuò)誤的概率要大。要選擇合適的測試數(shù)據(jù),使系統(tǒng)在運(yùn)行時(shí)盡量能執(zhí)行到每條語句,以測試各指令是否正確。還應(yīng)分別測試輸入合法數(shù)據(jù)與非法數(shù)據(jù)時(shí),程序的運(yùn)行情況,。對于合法數(shù)據(jù),還要考慮數(shù)據(jù)的一般性與特殊性,如求最大值的問題,應(yīng)測試最大值在最前面、最后面、中間某一位置的情況。測試程序時(shí),用監(jiān)視窗口可以隨時(shí)查看變量或表達(dá)式的值,有時(shí)還可以將部分程序代碼用注釋符暫時(shí)括起來,縮短程序,以便壓縮出錯(cuò)代碼的范圍。3.2.2 程序測試l 在主菜單中選擇1當(dāng)用戶輸入1并按回車鍵后,即可進(jìn)入增加圖書信息功能。其輸入記錄過程如圖3.1所示。 圖3.1 增加圖書信息l 在主菜單中選擇2當(dāng)用戶輸入2并按回車鍵后,即可進(jìn)入查找圖書信息
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45127-2025塑料微生物作用的評(píng)價(jià)
- 監(jiān)測施工方案
- 二零二五年度工傷事故賠償補(bǔ)償爭議解決協(xié)議
- 二零二五年度新能源汽車買賣合同分期付款協(xié)議
- 二零二五年度魚塘承包與漁業(yè)多元化經(jīng)營合作協(xié)議
- 二零二五年度新能源研發(fā)合作合伙人協(xié)議書
- 2025年度退房協(xié)議書規(guī)范范本
- 二零二五年度新型購物積分制合作協(xié)議合同
- 二零二五年度房屋租賃市場租金評(píng)估合同
- 2025年度離婚子女撫養(yǎng)權(quán)及財(cái)產(chǎn)分割協(xié)議書
- 隨機(jī)過程與數(shù)學(xué)金融
- (應(yīng)用詳盡版)純?nèi)斯趧?wù)分包簡單的合同(通用)
- 民事抗訴申請書(參考范文)
- 《汽車油料與維護(hù)》課件
- 《有限元基礎(chǔ)》課件
- 2024年中國鐵路南寧局集團(tuán)招聘筆試參考題庫含答案解析
- 《3D打印技術(shù)》課程標(biāo)準(zhǔn)2
- 第三章稻谷碾米
- 中小學(xué)教師評(píng)課評(píng)價(jià)量表
- 胸痛中心培訓(xùn)課件胸痛中心救治流程
- 紙與我們的生活
評(píng)論
0/150
提交評(píng)論