版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《圖書(shū)借閱管理系統(tǒng)》《圖書(shū)借閱管理系統(tǒng)》《圖書(shū)借閱管理系統(tǒng)》資料僅供參考文件編號(hào):2022年4月《圖書(shū)借閱管理系統(tǒng)》版本號(hào):A修改號(hào):1頁(yè)次:1.0審核:批準(zhǔn):發(fā)布日期:課程設(shè)計(jì)報(bào)告課程名稱(chēng)C語(yǔ)言程序設(shè)計(jì)課題名稱(chēng)圖書(shū)借閱管理系統(tǒng)專(zhuān)業(yè)電子信息工程班級(jí)1153班學(xué)號(hào)1319姓名廖信達(dá)指導(dǎo)教師葉曉霞2015年12月24日一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求1.設(shè)計(jì)內(nèi)容:根據(jù)系統(tǒng)需求的描述,要求實(shí)現(xiàn)的功能包括圖書(shū)信息和讀者信息的添加、查詢的功能,以及借書(shū)和還書(shū)的功能,本系統(tǒng)格外添加了用戶注冊(cè)和登錄功能,方便統(tǒng)計(jì)和完善讀者信息。(1)、本系統(tǒng)采用一個(gè)包含N個(gè)數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個(gè)數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:書(shū)號(hào)、書(shū)名、作者、出版社、出版日期、單價(jià)、是否借出等。(2)、本系統(tǒng)顯示這樣的菜單:首先,要進(jìn)行登錄或者注冊(cè)才能進(jìn)入系統(tǒng),進(jìn)入后顯示1.全部圖書(shū)瀏覽2.新圖書(shū)添加3.圖書(shū)刪除4.圖書(shū)查找5.圖書(shū)借閱6圖書(shū)歸還7.全部讀者瀏覽8.退出登錄0.退出之后,程序?qū)⒅匦嘛@示菜單。2.設(shè)計(jì)要求:掌握結(jié)構(gòu)化程序設(shè)計(jì)的主體思想,以自頂向下逐步求精的方法編制程序解決一些實(shí)際的問(wèn)題,為將來(lái)編寫(xiě)軟件積累一些典型的案例處理經(jīng)驗(yàn)。設(shè)計(jì)正確,方案合理。界面友好,使用方便。程序精煉,結(jié)構(gòu)清晰。4上機(jī)演示。按學(xué)號(hào)順序選課題號(hào),并在規(guī)定的時(shí)間內(nèi)獨(dú)自完成相關(guān)課題的C源程序編寫(xiě)、調(diào)整和運(yùn)行。源程序及編譯生成各文件均保存在軟盤(pán)中;按本任務(wù)書(shū)的要求,按附錄的要求編寫(xiě)《課程設(shè)計(jì)報(bào)告》(Word文檔格式)。并用A4的復(fù)印紙打印并裝訂;目錄課程設(shè)計(jì)報(bào)告.................................4功能模塊的劃分..............................6主要功能的實(shí)現(xiàn)..............................8程序代碼清單................................9三、課程設(shè)計(jì)報(bào)告1.程序設(shè)計(jì)準(zhǔn)備做系統(tǒng)前,首先,自己詳細(xì)看了《C程序設(shè)計(jì)》(教科書(shū)),基本自學(xué)會(huì)了文件的相關(guān)內(nèi)容,理解了相關(guān)函數(shù)的用法和作用;另,上網(wǎng)查詢了很多相關(guān)資料,還有找了很多相關(guān)的系統(tǒng),都詳細(xì)的看了一遍,加深了對(duì)C的理解以及對(duì)文件的相關(guān)內(nèi)容進(jìn)一步理解。學(xué)習(xí)了C語(yǔ)言的內(nèi)容,圖書(shū)信息管理系統(tǒng)有助于C語(yǔ)言學(xué)習(xí)的進(jìn)一步鞏固,在本系統(tǒng)可以增強(qiáng)對(duì)指針、文件、函數(shù)、結(jié)構(gòu)體變量等基本知識(shí)的進(jìn)一步理解。另外圖書(shū)信息管理系統(tǒng)也是學(xué)校常用的基本系統(tǒng)之一,它有助于學(xué)校對(duì)圖書(shū)館書(shū)籍的基本管理。2.程序設(shè)計(jì)說(shuō)明根據(jù)題目要求,應(yīng)當(dāng)把圖書(shū)信息用結(jié)構(gòu)體形式輸入,再定義一個(gè)全局變量和文件指針進(jìn)行整個(gè)程序的運(yùn)行,然后把圖書(shū)信息送到文件中去,所以應(yīng)該提供下個(gè)結(jié)構(gòu)體和文件的輸入等操作:在程序中需要實(shí)現(xiàn)圖書(shū)信息錄入,瀏覽,查詢,刪除和修改等功能的操作,所以需要建立相應(yīng)的模塊來(lái)實(shí)現(xiàn):另外還需提供選擇菜單實(shí)現(xiàn)功能,在運(yùn)行時(shí)達(dá)到所要求的目的。3.程序的主要功能圖書(shū)管理在生活中運(yùn)用非常廣泛,因此需要用許多的程序來(lái)對(duì)它們進(jìn)行管理。圖書(shū)借閱管理系統(tǒng)是對(duì)圖書(shū)信息的基本管理,它包括:圖書(shū)信息的錄入、圖書(shū)信息的顯示、圖書(shū)信息的刪除、圖書(shū)信息的查詢、讀者信息的錄入、讀者信息的顯示。通過(guò)編譯一個(gè)C語(yǔ)言函數(shù),其中包含一個(gè)主函數(shù),多個(gè)子函數(shù),主函數(shù)調(diào)用其余的子函數(shù)實(shí)現(xiàn)人們能夠簡(jiǎn)易、快捷的了解并找到自己所學(xué)要的信息的功能。1、圖書(shū)基本信息錄入:對(duì)新到圖書(shū)館的圖書(shū)的信息(編號(hào)、書(shū)名、出版社、作者、價(jià)格)進(jìn)行錄入。2、圖書(shū)基本信息顯示:顯示已被錄入圖書(shū)的所有信息。3、圖書(shū)基本信息刪除:通過(guò)輸入書(shū)名,判斷此圖書(shū)是否存在,若存在,則刪除該圖書(shū)所有信息,若不存在則提示用戶重新輸入圖書(shū)書(shū)名。4、圖書(shū)基本信息查詢:將所有圖書(shū)信息包括編號(hào)、書(shū)名、出版社、作者、價(jià)格等顯示在屏幕上。5、讀者信息的錄入:這里采用注冊(cè)登錄的方法對(duì)讀者信息進(jìn)行統(tǒng)計(jì)。6、讀者信息的顯示:將讀者賬號(hào)、姓名等輸出。7、退出登錄:回到一開(kāi)始的登錄注冊(cè)頁(yè)面。8、退出系統(tǒng):即退出圖書(shū)借閱管理系統(tǒng)。使用模塊化編程的方法每項(xiàng)功能有一個(gè)或多個(gè)函數(shù)組合來(lái)完成,其中菜單選項(xiàng)模塊對(duì)應(yīng)如下:圖書(shū)基本信息錄入==>voidadd()圖書(shū)基本信息顯示==>voidthrough()圖書(shū)基本信息刪除==>voiddel()讀者基本信息顯示==>voidthrough2()圖書(shū)基本信息查詢==>voidsearch()讀者注冊(cè)==>reg()讀者登錄==>login()退出登錄重來(lái)==>restart()這份代碼中各個(gè)變量的定義如下:num圖書(shū)編號(hào)name書(shū)名writer作者publish出版社time出版時(shí)間price單價(jià)具體各個(gè)函數(shù)及其功能詳解:structreader*add2(structreader*llast,characcount[max4],charname[max4]);能模塊的劃分1.主函數(shù)模塊根據(jù)圖書(shū)館信息管理系統(tǒng)的要求,可設(shè)計(jì)一個(gè)主函數(shù),及定義多個(gè)用戶自定義函數(shù)。在主函數(shù)中定義全局變量,即是在函數(shù)外部定義的變量,其不屬于某一個(gè)函數(shù),而屬于一個(gè)源程序文件,在整個(gè)程序內(nèi)可以多次被引用。主函數(shù)主要負(fù)責(zé)菜單的顯示和各個(gè)函數(shù)的調(diào)用,起著最重要的作用。1.圖書(shū)基本信息添加模塊添加書(shū)號(hào)、書(shū)名、作者、出版社、出版時(shí)間(日期)、單價(jià)。2.圖書(shū)基本信息顯示模塊當(dāng)用戶選擇圖書(shū)基本信息顯示時(shí),程序會(huì)將所有圖書(shū)信息一一列出。3.圖書(shū)基本信息輸入模塊在程序開(kāi)始運(yùn)行,創(chuàng)建文件庫(kù)時(shí),調(diào)動(dòng)此模塊,提示用戶輸入新的圖書(shū)編號(hào)(編號(hào)為0時(shí)結(jié)束輸入),然后繼續(xù)輸入圖書(shū)書(shū)名,作者,出版社,出版日期,單價(jià)等信息。結(jié)束輸入時(shí)提示用戶圖書(shū)輸入完成4.圖書(shū)基本信息刪除模塊用戶輸入所要?jiǎng)h除的圖書(shū)書(shū)名,先查找該圖書(shū)是否存在,若存在,則刪除該圖書(shū)所有信息,若不存在則提示無(wú)此圖書(shū)信息。5.圖書(shū)基本信息查詢模塊用戶先選擇圖書(shū)查詢方式(按書(shū)名查找、按書(shū)號(hào)查找、按出版社查找、按作者查找)輸入這四個(gè)中的任意一個(gè)后,查找出該圖書(shū)是否存在,若存在,則顯示該圖書(shū)信息,若不存在則提示用戶無(wú)此圖書(shū)信息。若有多本符合該條件,則輸出最先添加的那本書(shū)的信息。7.讀者信息瀏覽模塊通過(guò)實(shí)名注冊(cè)登記每個(gè)讀者的信息,可統(tǒng)一查詢所有讀者的相關(guān)信息。五.主要功能的實(shí)現(xiàn)程序運(yùn)行流程:但每個(gè)模塊運(yùn)行完即會(huì)回到主函數(shù),然后選擇其他或退出。1、圖書(shū)基本信息錄入:對(duì)新到圖書(shū)館的圖書(shū)的信息(編號(hào)、書(shū)名、出版社、作者、價(jià)格)進(jìn)行錄入。2、圖書(shū)基本信息顯示:顯示已被錄入圖書(shū)的所有信息。3、圖書(shū)基本信息刪除:通過(guò)輸入書(shū)名,判斷此圖書(shū)是否存在,若存在,則刪除該圖書(shū)所有信息,若不存在則提示用戶重新輸入圖書(shū)書(shū)名。4、圖書(shū)基本信息查詢:將所有圖書(shū)信息包括編號(hào)、書(shū)名、出版社、作者、價(jià)格等顯示在屏幕上。5、讀者信息的錄入:這里采用注冊(cè)登錄的方法對(duì)讀者信息進(jìn)行統(tǒng)計(jì)。6、讀者信息的顯示:將讀者賬號(hào)、姓名等輸出。7、退出登錄:回到一開(kāi)始的登錄注冊(cè)頁(yè)面。8、退出系統(tǒng):即退出圖書(shū)借閱管理系統(tǒng)。程序代碼清單如下:.#include<>#include<>#include<>#definemax110#definemax250#definemax3100#definemax420typedefstructbook{ charnum[max1];n讀者賬號(hào):%-12s\n讀者姓名:%-12s\n",cnt2,p->num,p->name); printf("已借書(shū)的數(shù)量:%d\n",p->count); if(p->count!=0) printf("最后一本書(shū)的書(shū)號(hào):%-12s\n",p->shuhao_num); p=p->next; } }}voiddel(){ intj,k; structbook*p,*a; p=link; if(p==NULL) { printf("對(duì)不起,現(xiàn)在圖書(shū)館一本書(shū)還都沒(méi)有,建議您先添加圖書(shū)^_^\n"); } else { through(); printf("請(qǐng)輸入您要?jiǎng)h除第幾本書(shū)吧^_^\n"); scanf("%d",&j); if(j>cnt) { printf("對(duì)不起,壓根就沒(méi)有那么多的書(shū)^_^\n"); } elseif(j<cnt) 書(shū)號(hào)查找\n"); printf("2.按作者查找\n"); printf("3.按書(shū)名查找\n"); printf("4.按出版社查找\n"); scanf("%d",&selete); if(selete==1) { printf("您現(xiàn)在進(jìn)入書(shū)號(hào)查找界面,請(qǐng)輸入書(shū)號(hào)\n"); scanf("%s",a); while(p!=NULL) { m++; if(strcmp(p->num,a)==0) { print(m); break; } else p=p->next; } if(p==NULL) printf("對(duì)不起,數(shù)據(jù)庫(kù)中沒(méi)有您找的書(shū)\n"); } elseif(selete==2) { printf("您現(xiàn)在進(jìn)入作者查找界面,請(qǐng)輸入作者\(yùn)n"); scanf("%s",a); while(p!=NULL) { m++; if(strcmp(p->writer,a)==0) { print(m); break; } else p=p->next; } if(p==NULL) printf("對(duì)不起,數(shù)據(jù)庫(kù)中沒(méi)有您找的書(shū)\n"); } elseif(selete==3) { printf("您現(xiàn)在進(jìn)入書(shū)名查找界面,請(qǐng)輸入書(shū)名\n"); scanf("%s",a); while(p!=NULL) { m++; if(strcmp(p->name,a)==0) { print(m); break; } else p=p->next; } if(p==NULL) printf("對(duì)不起,數(shù)據(jù)庫(kù)中沒(méi)有您找的書(shū)\n"); } elseif(selete==4) { printf("您現(xiàn)在進(jìn)入出版社查找界面,請(qǐng)輸入出版社名\n"); scanf("%s",a); while(p!=NULL) { m++; if(strcmp(p->publish,a)==0) { print(m); break; } else p=p->next; } if(p==NULL) printf("對(duì)不起,數(shù)據(jù)庫(kù)中沒(méi)有您找的書(shū)\n"); } else { printf("對(duì)不起,您的輸入有誤,請(qǐng)重新選擇\n"); } }} voidupdata(charname[max4],charnum[max4]){ structreader*a; a=llink; while(a!=NULL) { if(strcmp(a->name,name)==0) { strcpy(a->num,name); a->count++; strcpy(a->shuhao_num,num); } elsea=a->next; }}voidupdata2(charname[max4],charnum[max4]){ structreader*a; a=llink; while(a!=NULL) { if(strcmp(a->name,name)==0) { a->count--; strcpy(a->shuhao_num,""); } }}voidborrowbook(){ intj,k; structbook*p; p=link; if(p==NULL) { printf("對(duì)不起,現(xiàn)在圖書(shū)館一本書(shū)還都沒(méi)有,建議您先添加圖書(shū)^_^\n"); } else { through(); printf("請(qǐng)輸入您要借第幾本書(shū)吧^_^\n"); scanf("%d",&j); if(j>cnt) { printf("對(duì)不起,輸入出錯(cuò)請(qǐng)重試\n"); } else { for(k=1;k<=j-1;k++) { p=p->next; } if(p->flag==0){ printf("對(duì)不起,該書(shū)已被借走,請(qǐng)借其他書(shū)\n"); } else { p->flag=0; updata(people,p->num); printf("借書(shū)成功,請(qǐng)?jiān)谝?guī)定時(shí)間內(nèi)歸還\n"); } } }}voidreturnbook(){ charnum[max4]; structbook*p; p=link; printf("輸入要還的書(shū)的書(shū)號(hào):\n"); scanf("%s",num); while(p!=NULL) { if(strcmp(p->num,num)==0) { p->flag=1; printf("還書(shū)成功哦!\n"); updata2(people,num); break; } p=p->next; } }voidrestart(){ charn; intj,k; printf("1.已有賬號(hào)登陸\n2.新用戶注冊(cè)\n"); printf("請(qǐng)輸入您的選擇\n"); scanf("%d",&n); if(n==1) { for(j=5;j>=0;j--) { if(j!=0) { k=login(j); if(k==1)break; elsecontinue; flag=0; } else flag=0; } } elseif(n==2) { reg(); } else { printf("對(duì)不起,您的輸入有誤,系統(tǒng)自動(dòng)退出\n"); }}intmain(){ charselete[max1],n;intj,k;printf("歡迎進(jìn)入圖書(shū)管理系統(tǒng)\n");printf("1.已有賬號(hào)登陸\n2.新用戶注冊(cè)\n"); printf("請(qǐng)輸入您的選擇\n"); scanf("%d",&n); if(n==1) { for(j=5;j>=0;j--) { if(j!=0) { k=login(j); if(k==1)break; elsecontinue; flag=0; } else flag=0; } } elseif(n==2) { reg(); } else { printf("對(duì)不起,您的輸入有誤,系統(tǒng)自動(dòng)退出\n"); } while(flag) { printf("*****************************\n\n"); printf("菜單選擇:\n\n"); printf("1.全部圖書(shū)瀏覽\n\n"); printf("2.新圖書(shū)添加\n\n"); printf("3.圖書(shū)刪除\n\n"); printf("
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工作述職報(bào)告3篇
- 二零二五年度綠色環(huán)保廣告字制作與安裝服務(wù)合同3篇
- 2025年度跨行業(yè)員工借調(diào)與資源共享合作協(xié)議3篇
- 2025年度年度勞動(dòng)爭(zhēng)議調(diào)解律師委托協(xié)議終止書(shū)3篇
- 2025年度無(wú)人機(jī)農(nóng)業(yè)病蟲(chóng)害防治與智慧農(nóng)業(yè)平臺(tái)合同3篇
- 2025年度農(nóng)莊租賃與農(nóng)業(yè)資源整合合同3篇
- 二零二五年度獸醫(yī)疾病防控中心獸醫(yī)聘用協(xié)議3篇
- 二零二五年度月嫂服務(wù)滿意度評(píng)價(jià)及改進(jìn)合同2篇
- 二零二五年度化學(xué)論文版權(quán)轉(zhuǎn)讓及國(guó)際學(xué)術(shù)交流合同3篇
- 2025年度教育資源共享合作協(xié)議書(shū)模板集3篇
- 安全生產(chǎn)培訓(xùn)法律法規(guī)
- 廣東省廣州市2021-2022學(xué)年高二上學(xué)期期末五校聯(lián)考生物試題
- 舞蹈演出編導(dǎo)排練合同模板
- 融資合作法律意見(jiàn)
- 污水泵站運(yùn)營(yíng)維護(hù)管理方案
- 湖北省武漢市洪山區(qū)2023-2024學(xué)年六年級(jí)上學(xué)期語(yǔ)文期末試卷(含答案)
- 2024下半年軟考信息安全工程師考試真題-及答案-打印
- 項(xiàng)目經(jīng)理或管理招聘面試題與參考回答
- 中華人民共和國(guó)能源法
- 義務(wù)教育信息科技課程標(biāo)準(zhǔn)(2024年版)
- 《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)(2022年版)》初中內(nèi)容解讀
評(píng)論
0/150
提交評(píng)論