版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C語言程序設(shè)計圖書館管理系統(tǒng)C語言程序設(shè)計圖書館管理系統(tǒng)C語言程序設(shè)計圖書館管理系統(tǒng)xxx公司C語言程序設(shè)計圖書館管理系統(tǒng)文件編號:文件日期:修訂次數(shù):第1.0次更改批準審核制定方案設(shè)計,管理制度實訓報告實訓報告題目:圖書館管理系統(tǒng)院系:信息科技學院專業(yè):姓名:學號:指導教師:日期:2015年7月15日桂林電子科技大學信息科技學院
目錄1問題定義=================================12系統(tǒng)設(shè)計---------------------------------52.1總體設(shè)計---------------------------------52.2詳細設(shè)計---------------------------------62.2.1數(shù)據(jù)結(jié)構(gòu)設(shè)計---------------------------------2.2.2主控流程---------------------------------8增加信息模塊---------------------------------7查找信息模塊---------------------------------7刪除信息模塊---------------------------------7.8修改信息模塊---------------------------------72.2.8數(shù)據(jù)功能描述---------------------------------73系統(tǒng)實現(xiàn)================================2編碼--------------------------------83.1.1程序預處理--------------------------------93.1.2主函數(shù)main()---------------------------------93.1.3主菜單界面--------------------------------113.1.7增加圖書信息--------------------------------143.1.8查詢圖書信息--------------------------------143.1.9刪除圖書信息--------------------------------15修改圖書信息--------------------------------15測試與調(diào)試--------------------------------133.2.1概述--------------------------------143.2.2程序測試--------------------------------145歸納總結(jié)==============================================3開發(fā)經(jīng)驗--------------------------------16實訓中遇到的問題及解決方法-------------------------16設(shè)計中的不足之處---------------------------------16感想和心得體會---------------------------------166參考資料=================================16前言課程設(shè)計環(huán)節(jié)是應用型本科院校非常重要的一個教學環(huán)節(jié),是學完一門課后應用本課知識及以前的知識積累而進行的綜合性、開放性的訓練。通過課程設(shè)計,不僅能夠使學生得到系統(tǒng)的技能訓練,鞏固和加強所學得專業(yè)理論知識,而且能夠培養(yǎng)學生工程意識、創(chuàng)新能力、團隊精神等綜合素質(zhì),培養(yǎng)學生的設(shè)計能力和解決實際問題的能力。C語言由于其強大的功能,豐富的表達能力,高效的代碼,良好的移植性和靈活性,自1972年問世以來,經(jīng)久不衰,即使現(xiàn)在出現(xiàn)了面向?qū)ο蟮某绦蛟O(shè)計方法和開發(fā)工具,但它仍然是人們學習程序設(shè)計的首選語言,用它訓練和提高編程技術(shù),以及開發(fā)應用程序等。我們通過《C語言程序設(shè)計》這門課程的學習,已經(jīng)能編寫解決小問題的程序,對程序的開發(fā)也有了初步的認識,還掌握了C語言的基本語法,這一過程確確實實令我們感到欣喜,有點計算機可以完成自我任務的成就感。但是,對于程序設(shè)計而言,學習C的步伐不應該停留于此。我們最終的目的應該是掌握開發(fā)大型綜合程序的方法,即遵循軟件工程的開發(fā)步驟和結(jié)構(gòu)化程序設(shè)計思想,用C語言開發(fā)出解決復雜問題的大型綜合程序??墒菍τ诙鄶?shù)學生來說,學習了C語言后,除了應付各種考試之外,別無它用,對TurboC語言豐富的函數(shù)知之甚少,加上DOS環(huán)境所限,因而對C語言興趣不大,也感到C語言比較難以掌握。本實訓就是為了讓學生在學完C語言后進一步了解C語言的知識,掌握C語言在軟件開發(fā)方面的使用方法,希望通過此次實訓,不僅能提高學生學習C語言的興趣,更為今后學習其它專業(yè)知識及開發(fā)程序打下堅實的基礎(chǔ)。本指導書中有些內(nèi)容借鑒了互聯(lián)網(wǎng)上相關(guān)程序的設(shè)計思想,在此對相關(guān)者表示衷心的感謝。由于時間、經(jīng)驗及水平的原因,不當、不足之處,請大家提出寶貴意見。編者
圖書館管理系統(tǒng)實訓目的:鞏固C語言的三種基本結(jié)構(gòu)、數(shù)組、函數(shù)調(diào)用的基本知識;掌握利用C語言編寫程序的基本方法,提高C語言編程技巧,培養(yǎng)分析問題、解決問題的能力;熟練掌握C語言的編譯、調(diào)用方法。實驗內(nèi)容退出圖書管理修改圖書信息刪除圖書信息查找圖書信息增加圖書信息主菜單退出圖書管理修改圖書信息刪除圖書信息查找圖書信息增加圖書信息主菜單1、問題定義創(chuàng)建一個圖書館管理系統(tǒng)。假設(shè)系統(tǒng)中每本圖書只包括圖書名字、圖書書號、圖書出版社、圖書作者等信息。程序的運行效果如圖所示,選擇任意菜單中的數(shù)字,實現(xiàn)相應功能。圖圖書管理系統(tǒng)功能需求在問題定義階段要考慮題目的可行性和需求分析,接下來進入開發(fā)階段,完成系統(tǒng)設(shè)計和系統(tǒng)實現(xiàn)的任務。2.系統(tǒng)設(shè)計2.1總體設(shè)計采用模塊化的程序設(shè)計方法,即將較大的任務按照一定的原則分為一個個較小的任務,然后分別設(shè)計各個小任務。需要注意的是劃分出來的模塊應該相對獨立但又相關(guān),且容易理解??梢杂媚K化層次結(jié)構(gòu)圖(即模塊圖)來分析其任務的劃分,一般從上到下進行,最上面一層是主模塊,下面各層是其上一層模塊的逐步細化描述。本圖書管理系統(tǒng)采用了數(shù)組來實現(xiàn),如下圖所示,它由五大功能模塊組成:?增加圖書信息模塊。通過輸入圖書的書名、書號、出版社、作者來實現(xiàn)增加信息。?查找圖書信息模塊。根據(jù)增加的圖書的書名來查找圖書的信息。?刪除圖書信息模塊。根據(jù)增加的圖書信息記錄通過查找定位找到信息進行刪除。?修改圖書信息模塊。根據(jù)增加的圖書信息記錄通過查找找到該書信息進行修改。詳細設(shè)計2.2.1數(shù)據(jù)結(jié)構(gòu)設(shè)計圖書館信息結(jié)構(gòu)體結(jié)構(gòu)體structbook將用于儲存圖書的基本信息,它將作為文件的數(shù)據(jù)域。Structbook/*定義結(jié)構(gòu)體*/{charName[20];/*書名*/charNumber[20];/*書號*/charpublish[20];/*出版社*/charauthor[10];/*作者*/}book[500];這樣就定義了一個數(shù)組的結(jié)構(gòu)2.2.2主控main()函數(shù)執(zhí)行流程增加信息模塊:主要實現(xiàn)圖書信息的增加功能。查找信息模塊:主要實現(xiàn)圖書查找書籍的功能。刪除信息模塊:主要實現(xiàn)圖書刪除圖書記錄的功能修改信息模塊:主要實現(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()整個成績管理系統(tǒng)控制部分。voidmain()/*整個圖書管理系統(tǒng)控制部分*/{inti;do/*控制返回菜單*/{Menu();printf("請輸入要實現(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)實現(xiàn)3.1編碼3.1.1包括定義結(jié)構(gòu)體、常量和變量、聲明部分,并對它們進行初始化工作。#include<>/*標準函數(shù)輸入輸出函數(shù)庫*/#include<>/*標準函數(shù)庫*/#include<>/*字符串函數(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<>/*標準函數(shù)輸入輸出函數(shù)庫*/#include<>/*標準函數(shù)庫*/#include<>/*字符串函數(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ù)主要實現(xiàn)了對整個程序的運行控制,以及相關(guān)功能模塊的調(diào)用。voidmain()/*整個圖書管理系統(tǒng)控制部分*/{inti;do/*控制返回菜單*/{Menu();printf("請輸入要實現(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è)06\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é)束=");scanf("%s",book[i].Number);printf("請輸入要增加圖書的圖書出版社,按回車鍵結(jié)束=");scanf("%s",book[i].publish);printf("請輸入要增加圖書的圖書作者,按回車鍵結(jié)束author=");scanf("%s",book[i].author);}}查找圖書信息用戶進入系統(tǒng)后,按信息記錄進行查找該圖書的書籍信息。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("抱歉,未找到相應書籍\n");break;}/*如果查找到圖書的信息就輸出該圖書信息,否則輸出sorry,未找到相應書籍*/}刪除圖書信息用戶進入系統(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)體最后一個圖書加上結(jié)束符*/}修改圖書信息用戶進入系統(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é)束=");scanf("%s",book[j].Number);printf("請輸入要修改圖書的圖書出版社,按回車鍵結(jié)束=");scanf("%s",book[j].publish);printf("請輸入要修改圖書的圖書作者,按回車鍵結(jié)束author=");scanf("%s",book[j].author);break;}3.2測試與調(diào)試概述一般情況下,為解決一個問題所編寫的程序代碼較長,可能包括幾百條甚至成千上萬條語句。在檢查并排除所有語法錯誤后,還會有不易發(fā)現(xiàn)的邏輯錯誤,因此要對程序進行認真仔細的測試與調(diào)試。測試是通過運行程序發(fā)現(xiàn)錯誤的過程,常見的錯誤有數(shù)據(jù)溢出、數(shù)組越界、進入死循環(huán)、語句順序顛倒、多加“;”或少加“{}”等等。調(diào)試則是確定測試中找到的錯誤性質(zhì)并改正錯誤的過程。測試與調(diào)試通常交替進行,即測試——調(diào)試——再測試——再調(diào)試。能檢查出尚未發(fā)現(xiàn)的、各種不同類型錯誤的測試才是成功的測試。測試程序需要測試用例,測試用例可用如下公式表示:測試用例=測試數(shù)據(jù)+預
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026西藏阿里地區(qū)改則縣消防救援大隊招聘政府專職消防員4人備考題庫及答案詳解(考點梳理)
- 2026貴州安順市平壩區(qū)糧油收儲經(jīng)營有限公司招聘5人備考題庫及答案詳解(新)
- 2026海南省遴選公務員128人備考題庫及完整答案詳解
- 2026浙江嘉興市申嘉有軌電車運營管理有限公司招聘工作人員7人備考題庫及一套參考答案詳解
- 南昌印鈔有限公司2026年度招聘備考題庫【11人】(含答案詳解)
- 2026浙江杭州市西湖區(qū)翠苑第五幼兒園和新城幼兒園誠聘幼兒教師備考題庫(非事業(yè))(含答案詳解)
- 2026貴州貴陽南明綠洲清源環(huán)境監(jiān)測有限公司招聘備考題庫及答案詳解參考
- 2026福建海峽人力資源股份有限公司平潭分公司招聘第一批勞務外包工作人員3人備考題庫完整參考答案詳解
- 微信營銷外包合作協(xié)議
- 運營流程改進創(chuàng)新提案工具及實施建議
- 道路二灰碎石基層施工技術(shù)方案及質(zhì)量控制
- DB37∕T 4491-2021 三倍體單體牡蠣淺海筏式養(yǎng)殖技術(shù)規(guī)范
- 2025年注冊監(jiān)理工程師繼續(xù)教育市政公用工程專業(yè)考試題及答案
- (2025)新課標義務教育數(shù)學(2022年版)課程標準試題庫(附含答案)
- 金太陽陜西省2028屆高一上學期10月月考物理(26-55A)(含答案)
- 2025年青海省事業(yè)單位招聘考試教師物理學科專業(yè)知識試卷解析
- 成都城投集團招聘筆試試題
- 2025年安全生產(chǎn)知識教育培訓考試試題及標準答案
- 2025年廣西壯族自治區(qū)中央遴選真題及參考答案(b類)
- 品牌管理指南的建模指南
- 氣動安全知識培訓課件
評論
0/150
提交評論