




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計(jì)圖書館管理系統(tǒng)C語言程序設(shè)計(jì)圖書館管理系統(tǒng)/C語言程序設(shè)計(jì)圖書館管理系統(tǒng)實(shí)訓(xùn)報(bào)告實(shí)訓(xùn)報(bào)告題目:圖書館管理系統(tǒng)院系:信息科技學(xué)院專業(yè):姓名:學(xué)號:指導(dǎo)教師:日期:2015年7月15日桂林電子科技大學(xué)信息科技學(xué)院
目錄1問題定義=================================12系統(tǒng)設(shè)計(jì)52.1總體設(shè)計(jì)52.2詳細(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.2.8修改信息模塊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增加圖書信息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感想和心得體會166參考資料=================================16前言課程設(shè)計(jì)環(huán)節(jié)是應(yīng)用型本科院校非常重要的一個(gè)教學(xué)環(huán)節(jié),是學(xué)完一門課后應(yīng)用本課知識與以前的知識積累而進(jìn)行的綜合性、開放性的訓(xùn)練。通過課程設(shè)計(jì),不僅能夠使學(xué)生得到系統(tǒng)的技能訓(xùn)練,鞏固和加強(qiáng)所學(xué)得專業(yè)理論知識,而且能夠培養(yǎng)學(xué)生工程意識、創(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)識,還掌握了C語言的基本語法,這一過程確確實(shí)實(shí)令我們感到欣喜,有點(diǎn)計(jì)算機(jī)可以完成自我任務(wù)的成就感。但是,對于程序設(shè)計(jì)而言,學(xué)習(xí)C的步伐不應(yīng)該停留于此。我們最終的目的應(yīng)該是掌握開發(fā)大型綜合程序的方法,即遵循軟件工程的開發(fā)步驟和結(jié)構(gòu)化程序設(shè)計(jì)思想,用C語言開發(fā)出解決復(fù)雜問題的大型綜合程序??墒菍τ诙鄶?shù)學(xué)生來說,學(xué)習(xí)了C語言后,除了應(yīng)付各種考試之外,別無它用,對TurboC語言豐富的函數(shù)知之甚少,加上DOS環(huán)境所限,因而對C語言興趣不大,也感到C語言比較難以掌握。本實(shí)訓(xùn)就是為了讓學(xué)生在學(xué)完C語言后進(jìn)一步了解C語言的知識,掌握C語言在軟件開發(fā)方面的使用方法,希望通過此次實(shí)訓(xùn),不僅能提高學(xué)生學(xué)習(xí)C語言的興趣,更為今后學(xué)習(xí)其它專業(yè)知識與開發(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)、不足之處,請大家提出寶貴意見。編者
圖書館管理系統(tǒng)實(shí)訓(xùn)目的:鞏固C語言的三種基本結(jié)構(gòu)、數(shù)組、函數(shù)調(diào)用的基本知識;掌握利用C語言編寫程序的基本方法,提高C語言編程技巧,培養(yǎng)分析問題、解決問題的能力;熟練掌握C語言的編譯、調(diào)用方法。實(shí)驗(yàn)內(nèi)容退出圖書管理修改圖書信息刪除圖書信息查找圖書信息增加圖書信息主菜單退出圖書管理修改圖書信息刪除圖書信息查找圖書信息增加圖書信息主菜單1、問題定義創(chuàng)建一個(gè)圖書館管理系統(tǒng)。假設(shè)系統(tǒng)中每本圖書只包括圖書名字、圖書書號、圖書出版社、圖書作者等信息。程序的運(yùn)行效果如圖1.1所示,選擇任意菜單中的數(shù)字,實(shí)現(xiàn)相應(yīng)功能。圖1.1圖書管理系統(tǒng)功能需求在問題定義階段要考慮題目的可行性和需求分析,接下來進(jìn)入開發(fā)階段,完成系統(tǒng)設(shè)計(jì)和系統(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),且容易理解。可以用模塊化層次結(jié)構(gòu)圖(即模塊圖)來分析其任務(wù)的劃分,一般從上到下進(jìn)行,最上面一層是主模塊,下面各層是其上一層模塊的逐步細(xì)化描述。本圖書管理系統(tǒng)采用了數(shù)組來實(shí)現(xiàn),如下圖1.2所示,它由五大功能模塊組成:?增加圖書信息模塊。通過輸入圖書的書名、書號、出版社、作者來實(shí)現(xiàn)增加信息。?查找圖書信息模塊。根據(jù)增加的圖書的書名來查找圖書的信息。?刪除圖書信息模塊。根據(jù)增加的圖書信息記錄通過查找定位找到信息進(jìn)行刪除。?修改圖書信息模塊。根據(jù)增加的圖書信息記錄通過查找找到該書信息進(jìn)行修改。2.2詳細(xì)設(shè)計(jì)2.2.1數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)圖書館信息結(jié)構(gòu)體結(jié)構(gòu)體structbook將用于儲存圖書的基本信息,它將作為文件的數(shù)據(jù)域。Structbook/*定義結(jié)構(gòu)體*/{charName[20];/*書名*/charNumber[20];/*書號*/charpublish[20];/*出版社*/charauthor[10];/*作者*/}book[500];這樣就定義了一個(gè)數(shù)組的結(jié)構(gòu)2.2.2主控main()函數(shù)執(zhí)行流程增加信息模塊:主要實(shí)現(xiàn)圖書信息的增加功能。查找信息模塊:主要實(shí)現(xiàn)圖書查找書籍的功能。刪除信息模塊:主要實(shí)現(xiàn)圖書刪除圖書記錄的功能修改信息模塊:主要實(shí)現(xiàn)修改增加后的圖書信息功能。函數(shù)功能述?add()函數(shù)原型:voidadd();add()函數(shù)用于在增加圖書信息的功能。?chazhao()函數(shù)原型:chazhao();chazhao()函數(shù)用于在查找圖書信息的功能。?del()函數(shù)原型:del();del()函數(shù)用于在刪除圖書信息的功能。?xiugai()原型函數(shù):xiugai();xiugai()函數(shù)用于在修改圖書信息的功能。主函數(shù)main()整個(gè)成績管理系統(tǒng)控制部分。voidmain()/*整個(gè)圖書管理系統(tǒng)控制部分*/{inti;do/*控制返回菜單*/{Menu();printf("請輸入要實(shí)現(xiàn)的功能");scanf("%d",&i);if(i<=4&&i>=0)/*請輸入0到4之間的數(shù)字*/switch(i){case1:add();break;case2:chazhao();break;case3:del();break;case4:xiugai();break;case0:exit(0);break;}elseprintf("對不起,請重新輸入并按回車確定\n\n");}while(1);}注:圖書館信息管理系統(tǒng)的控制部分。3、系統(tǒng)實(shí)現(xiàn)3.1編碼3.1.1包括定義結(jié)構(gòu)體、常量和變量、聲明部分,并對它們進(jìn)行初始化工作。#include<stdio.h>/*標(biāo)準(zhǔn)函數(shù)輸入輸出函數(shù)庫*/#include<stdlib.h>/*標(biāo)準(zhǔn)函數(shù)庫*/#include<string.h>/*字符串函數(shù)庫*//*^TTT^TTT^^TT^TT^TT^T函數(shù)聲明部分T^TTT^T^TT^TT^TT^TT^T*/voidadd();/*增加*/voidchazhao();/*查找*/voiddel();/*刪除*/voidxiugai();/*修改*/voidexti();/*退出*/voidMenu();/*菜單*//*T^^TT^TT^TT^TT^T定義結(jié)構(gòu)體部分T^TTT^TT^TT^TT^TT^TT^T*/structbook/*定義結(jié)構(gòu)體*/{charName[20];/*書名*/charNumber[20];/*書號*/charpublish[20];/*出版社*/charauthor[10];/*作者*/}book[500];#include<stdio.h>/*標(biāo)準(zhǔn)函數(shù)輸入輸出函數(shù)庫*/#include<stdlib.h>/*標(biāo)準(zhǔn)函數(shù)庫*/#include<string.h>/*字符串函數(shù)庫*//*^TTT^TTT^^TT^TT^TT^T函數(shù)聲明部分T^TTT^T^TT^TT^TT^TT^T*/voidadd();/*增加*/voidchazhao();/*查找*/voiddel();/*刪除*/voidxiugai();/*修改*/voidexti();/*退出*/voidMenu();/*菜單*//*T^^TT^TT^TT^TT^T定義結(jié)構(gòu)體部分T^TTT^TT^TT^TT^TT^TT^T*/structbook/*定義結(jié)構(gòu)體*/{charName[20];/*書名*/charNumber[20];/*書號*/charpublish[20];/*出版社*/charauthor[10];/*作者*/}book[500];主函數(shù)main()main()函數(shù)主要實(shí)現(xiàn)了對整個(gè)程序的運(yùn)行控制,以與相關(guān)功能模塊的調(diào)用。voidmain()/*整個(gè)圖書管理系統(tǒng)控制部分*/{inti;do/*控制返回菜單*/{Menu();printf("請輸入要實(shí)現(xiàn)的功能");scanf("%d",&i);if(i<=4&&i>=0)/*請輸入0到4之間的數(shù)字*/switch(i){case1:add();break;case2:chazhao();break;case3:del();break;case4:xiugai();break;case0:exit(0);break;}elseprintf("對不起,請重新輸入并按回車確定\n\n");}while(1);}主菜單界面{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(" 電信工程專業(yè)1051210206\n");}3.14增加圖書信息用戶進(jìn)入系統(tǒng)后,輸入要添加的書籍信息。voidadd()/*增加功能*/{inti,j;printf("請輸入要增加圖書的圖書數(shù)量,按回車鍵結(jié)束\n");scanf("%d",&j);for(i=0;i<j;i++){printf("請輸入要增加圖書的圖書名字,按回車鍵結(jié)束=");scanf("%s",book[i].Name);printf("請輸入要增加圖書的圖書書號,按回車鍵結(jié)束book.num=");scanf("%s",book[i].Number);printf("請輸入要增加圖書的圖書出版社,按回車鍵結(jié)束book.publish=");scanf("%s",book[i].publish);printf("請輸入要增加圖書的圖書作者,按回車鍵結(jié)束author=");scanf("%s",book[i].author);}}3.15查找圖書信息用戶進(jìn)入系統(tǒng)后,按信息記錄進(jìn)行查找該圖書的書籍信息。voidchazhao()/*查找功能*/{intj=0;charName[20];printf("請輸入書的name=");/*請輸入要查找圖書的書名*/scanf("%s",Name);for(j=0;j<500;j++)/*找到要查找圖書的書名*/if(strcmp(book[j].Name,Name)==0){printf("┏━━━━━━━┳━━━━━━━━┳━━━━━┳━━━━━┓\n");printf("┃書名┃書號┃出版社┃作者┃\n");printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");printf("\n");printf("%s┃%s┃%s┃%s┃\n",book[j].Name,book[j].Number,book[j].publish,book[j].author);break;}else{printf("抱歉,未找到相應(yīng)書籍\n");break;}/*如果查找到圖書的信息就輸出該圖書信息,否則輸出sorry,未找到相應(yīng)書籍*/}3.16刪除圖書信息用戶進(jìn)入系統(tǒng)后,按條件輸入要刪除的圖書信息。voiddel()/*刪除功能*/{intj=0;charName[20];printf("請輸入圖書的書名,name=");/*按*/scanf("%s",Name);/**/for(j=0;j<500;j++)/**/if(strcmp(book[j].Name,Name)==0)/*將定位到你所要查找圖書的位置*/for(;book[j].Name[0]!='\0';j++)book[j]=book[j+1];/*將查找到的圖書的后一本圖書的信息覆蓋這本圖書的信息*/book[j].Name[0]='\0';/*給結(jié)構(gòu)體最后一個(gè)圖書加上結(jié)束符*/}3.17修改圖書信息用戶進(jìn)入系統(tǒng)后,按條件輸入要修改的圖書信息。voidxiugai()/*修改功能*/{intj=0;charNumber[20];printf("請輸入要修改圖書的number=");/*請輸入要修改圖書的書號*/scanf("%s",Number);for(j=0;j<500;j++)if(strcmp(book[j].Number,Number)==0)/*定位到你所要修改圖書的位置,然后修改該書籍的相關(guān)信息*/{printf("請輸入要修改圖書的圖書名字,按回車鍵結(jié)束=");scanf("%s",book[j].Name);printf("請輸入要修改圖書的圖書書號,按回車鍵結(jié)束book.num=");scanf("%s",book[j].Number);printf("請輸入要修改圖書的圖書出版社,按回車鍵結(jié)束book.publish=");scanf("%s",book[j].publish);printf("請輸入要修改圖書的圖書作者,按回車鍵結(jié)束author=");scanf("%s",book[j].author);break;}3.2測試與調(diào)試3.2.1概述一般情況下,為解決一個(gè)問題所編寫的程序代碼較長,可能包括幾百條甚至成千上萬條語句。在檢查并排除所有語法錯誤后,還會有不易發(fā)現(xiàn)的邏輯錯誤,因此要對程序進(jìn)行認(rèn)真仔細(xì)的測試與調(diào)試。測試是通過運(yùn)行程序發(fā)現(xiàn)錯誤的過程,常見的錯誤有數(shù)據(jù)溢出、數(shù)組越界、進(jìn)入死循環(huán)、語句順序顛倒、多加“;”或少加“{}”等等。調(diào)試則是確定測試中找到的錯誤性質(zhì)并改正錯誤的過程。測試與調(diào)試通常交替進(jìn)行,即測試——調(diào)試——再測試——再調(diào)試。能檢查出尚未發(fā)現(xiàn)的、各種不同類型錯誤的測試才是成功的測試。測試程序需要測試用例,測試用例可用如下公式表示:測試用例=測試數(shù)據(jù)+預(yù)期結(jié)果。好的測試用例應(yīng)該是用盡可能少的測試數(shù)據(jù)發(fā)現(xiàn)盡可能多的錯誤,即發(fā)現(xiàn)錯誤的概率要大。要選擇合適的測試數(shù)據(jù),使系統(tǒng)在運(yùn)行時(shí)盡量能執(zhí)行到每條語句,以測試各指令是否正確。還應(yīng)分別測試輸入合法數(shù)據(jù)與非法數(shù)據(jù)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年網(wǎng)絡(luò)規(guī)劃設(shè)計(jì)師考試知識卡片試題及答案
- 數(shù)據(jù)流移轉(zhuǎn)與網(wǎng)絡(luò)設(shè)計(jì)的關(guān)系試題及答案
- 社會工作者中級考試常用輔助材料試題及答案
- 初級社會工作者考試相關(guān)技巧試題及答案
- 隨州中考物理試題及答案
- 系統(tǒng)分析師考試學(xué)習(xí)障礙克服試題及答案
- 系統(tǒng)分析師考試自我評價(jià)與技能提升試題及答案
- 靜脈輸液試題題庫及答案
- 2025年計(jì)算機(jī)二級考試變化試題及答案
- 新疆事業(yè)單位d類試題及答案
- T-CBIA 009-2022 飲料濃漿標(biāo)準(zhǔn)
- 【MOOC】走進(jìn)針灸-廣州中醫(yī)藥大學(xué) 中國大學(xué)慕課MOOC答案
- 【MOOC】國際工程管理-東南大學(xué) 中國大學(xué)慕課MOOC答案
- 職業(yè)教育現(xiàn)場工程師培養(yǎng)體系研究
- 工程項(xiàng)目竣工交接單模板
- n3護(hù)士競聘演講
- 第二次全國地名普查類別
- 2024年公司借款協(xié)議模板(三篇)
- 江蘇省南通市海門市2023-2024學(xué)年六年級下學(xué)期期末英語試卷
- 重度哮喘診斷與處理中國專家共識(2024版)解讀
- 糖尿病酮癥酸中毒診療指南中國2型糖尿病防治指南(2020年版)
評論
0/150
提交評論