




已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)結(jié)構(gòu)C語言版課程設(shè)計(jì)題目:圖書管理系統(tǒng) 日期:2011-6-24年級(jí): 班級(jí): 組名:組長:組員:) 一實(shí)習(xí)目的通過實(shí)習(xí),了解并初步掌握設(shè)計(jì)、實(shí)現(xiàn)較大系統(tǒng)的完整過程,包括系統(tǒng)分析、編碼設(shè)計(jì)、系統(tǒng)集成、以及調(diào)試分析,熟練掌握數(shù)據(jù)結(jié)構(gòu)的選擇、設(shè)計(jì)、實(shí)現(xiàn)以及操作方法,為進(jìn)一步的應(yīng)用開發(fā)打好基礎(chǔ)。2 問題描述 本圖書管理系統(tǒng)可以實(shí)現(xiàn)采編入庫,登記讀者,借閱登記,還書管理,查詢圖書信息,查詢讀者信息等信息。三需求分析 本圖書管理系統(tǒng)有七個(gè)主要功能。即退出系統(tǒng),采編入庫,登記讀者,借閱登記,還書管理,查詢圖書信息,查詢讀者信息。所有的功能采用模塊化的方式開發(fā)。 四概要設(shè)計(jì) 系統(tǒng)用到的抽象數(shù)據(jù)類型定義: -書本信息結(jié)構(gòu)體:typedef struct char number100;/圖書編號(hào)char name20;/書名char author20;/作者int count;/書的現(xiàn)有本數(shù)int boo;/庫存int jinc;/變動(dòng)本數(shù)char backd10;/還書日期mybook; -讀者信息結(jié)構(gòu)體:typedef struct char names20;/讀者姓名char numb10;/讀者書證號(hào)char borrd10;/借書日期char backd10;/還書日期int number;/ 所借書的數(shù)量char numbeers100;/圖書編號(hào)mybook mu10;student; mybook book100;/mybook *my; int booknum;/書的種類 int stunum;/讀者人數(shù) student stu100; void save();/保存圖書信息 void saved(); void enter1();void signr1();void signb1();void backb();void checkb();void checkr();void menu(); 系統(tǒng)中子程序及功能要求的說明: 新書入庫模塊:包括輸入并保存圖書編號(hào),圖書名稱,圖書作者,圖書數(shù)量等信息。 查詢圖書信息模塊:輸出圖書的編號(hào)、名稱、作者、現(xiàn)有、庫存等圖書信息。 登記讀者模塊:要求包括輸入并保存讀者書證號(hào)及姓名。 借書登記模塊:輸入結(jié)束的讀者書證號(hào),所借書的編號(hào)以及要?dú)w還的日期,并保存。 查閱讀者信息模塊:顯示讀者書證號(hào)和姓名,以及所借圖書的編號(hào)的還書日期。還書模塊:輸入要還書的讀者編號(hào),和要還的書的編號(hào),并且在庫存中加載此書。退出系統(tǒng)模塊:保存所有操作! 各程序模塊之間的調(diào)用關(guān)系 1、主函數(shù): main(),進(jìn)入圖書管理系統(tǒng),調(diào)用menu()菜單方法。 2、菜單方法:menu(),首先會(huì)執(zhí)行清屏的功能;然后再選擇菜單:選擇0,退出圖書管理系統(tǒng);選擇1,調(diào)用enter1()方法進(jìn)入采編入庫;選擇2,調(diào)用signr1();方法進(jìn)入登記讀者;選擇3,調(diào)用signb1()方法進(jìn)入借閱登記;選擇4,調(diào)用backb()方法進(jìn)入還書管理 ;選擇5,調(diào)用checkb()方法進(jìn)入查詢圖書信息;選擇6,調(diào)用checkr()方法進(jìn)入查詢讀者信息;如果輸入錯(cuò)誤,安任意鍵可以回到菜單。 3、 enter1():對圖書進(jìn)行采編入庫。書名相同分為一類; 4、 signr1():對讀者進(jìn)行登記。并用讀者證號(hào)判斷讀者是否已經(jīng)注冊。 5、 signb1():借閱登記。根據(jù)編號(hào)借書。如果讀者沒有注冊,不能借書。借了一次書,書庫中圖書的現(xiàn)存量會(huì)減1。 6、 backb():還書管理。還了一次書,書庫現(xiàn)存量增加1 7、 checkb():查詢圖書信息??梢燥@示每一種書的圖書編號(hào)、圖書名稱、圖書作者、現(xiàn)有量、庫存量。 8、 checkr():查詢讀者信息。根據(jù)讀者證號(hào),查詢,已借書的信息,和個(gè)人信息。 9、 save():保存圖書信息。 10、 saved():保存讀者信息; 五詳細(xì)設(shè)計(jì)圖書管理系統(tǒng)的偽碼描述如下:1、 for(j=0;j=booknum) /條件成立,則該圖書庫存和現(xiàn)存就是入庫數(shù)量 bookbooknum.boo=bookbooknum.jinc; bookbooknum.count=bookbooknum.jinc; booknum+;2、 for(j=0;j=stunum) stunum+;/如果條件成立,則證號(hào)還沒有注冊,將注冊過的讀者數(shù)加1。3、 還書時(shí),從借書信息中找到該書的信息的數(shù)組,然后改變信息 if(!strcmp(booki.number,stuj.muk.number)stuj.muk=stuj.muk+1;4、 for(i=0;i 系統(tǒng)主界面按回車鍵進(jìn)入主界面采編入庫:查閱圖書信息登記讀者借書登記查閱閱讀者信息圖書編號(hào)aa50減少1本,相應(yīng)的在查詢圖書信息功能中體現(xiàn)出如下:還書管理:退出系統(tǒng)7 使用說明進(jìn)入主界面然后再選擇菜單中的數(shù)字:選擇1,進(jìn)入采編入庫;選擇2,進(jìn)入登記讀者;選擇3,進(jìn)入借閱登記;選擇4,進(jìn)入還書管理 ;選擇5,進(jìn)入查詢圖書信息;選擇6,進(jìn)入查詢讀者信息;選擇0,退出圖書管理系統(tǒng); 如果輸入錯(cuò)誤,按回車鍵可以回到菜單。八附錄:測試數(shù)據(jù) 讀者姓名:mm 讀者書證號(hào):123 圖書名稱:aa 圖書數(shù)量:50 圖書作者:aaaa 圖書編號(hào):aa50 圖書名稱:bb 圖書數(shù)量:50 圖書作者:bbbb 圖書編號(hào):bb50 圖書名稱:cc 圖書數(shù)量:50 圖書作者:cccc 圖書編號(hào):cc509 C語言代碼實(shí)現(xiàn)#include #include#include#define MAXSIZE 100 /最大值定義為100#define yong_SIZE 100/圖書證使用者最大值定義為100/*-書本信息結(jié)構(gòu)體-*/typedef struct char number100;/圖書編號(hào)char name20;/書名char author20;/作者int count;/書的現(xiàn)有本數(shù)int boo;/庫存int jinc;/變動(dòng)本數(shù)char backd10;/還書日期mybook;/*-讀者信息結(jié)構(gòu)體-*/typedef struct char names20;/讀者姓名char numb10;/讀者書證號(hào)char borrd10;/借書日期char backd10;/還書日期int number;/ 所借書的數(shù)量char numbeers100;/圖書編號(hào)mybook mu10;student; mybook book100;/mybook *my; int booknum;/書的種類 int stunum;/讀者人數(shù) student stu100; void save();/保存圖書信息 void saved(); void enter1();void signr1();void signb1();void backb();void checkb();void checkr();void menu();/*-保存方法-*/void save()/保存圖書信息。FILE *fp;if(fp=fopen(library.txt,wb)=NULL)printf(n不能保存圖書信息n);fwrite(book,sizeof(mybook),8,fp);fclose(fp);/*-保存讀者信息方法-*/void saved()FILE *fp;if(fp=fopen(reader.txt,wb)=NULL)printf(n不能讀取圖書信息n);fwrite(stu,sizeof(student),8,fp);fclose(fp);/*-采編入庫方法-*/void enter1()char a;int j;printf(n圖書名稱:);scanf(%s,);printf(圖書數(shù)量:);scanf(%d,&bookbooknum.jinc);printf(圖書作者:);scanf(%s,bookbooknum.author);printf(圖書編號(hào):);scanf(%s,bookbooknum.number);for(j=0;j=booknum) bookbooknum.boo=bookbooknum.jinc;bookbooknum.count=bookbooknum.jinc;booknum+;fflush(stdin);save();fflush(stdin);printf(n新書入庫完畢!n按任意鍵繼續(xù)下一步操作n);scanf(%c,&a);menu();/*-登記讀者方法-*/void signr1()char a;int j;printf(n讀者書證號(hào):);scanf(%s,stustunum.numb);printf(n讀者姓名:);scanf(%s,s);for(j=0;j=stunum) stunum+;saved();fflush(stdin);printf(n讀者信息初始化完畢!按任意鍵繼續(xù)下一步操作n);scanf(%c,&a);menu();/*-借閱登記方法-*/void signb1()char a;int i,j;student *my=(student*)malloc(sizeof(student);printf(n借書模塊n);printf(n請輸入借書的讀者書證號(hào):);scanf(%s,my-numb);for(j=0;jnumb,stuj.numb) printf(n請輸入你要借的書的編號(hào):);scanf(%s,stuj.mustuj.number.number);for(i=0;i=booknum)printf(n沒有編號(hào)為%s的書!n,booki.number);break;break;if(j=stunum) printf(n對不起!n您還沒有注冊,不能借書!n);printf(按任意鍵繼續(xù)下步操作);scanf(%c,&a);menu();/*-還書管理方法-*/void backb() char a;int i,j,k;student *my=(student*)malloc(sizeof(student);printf(tt你已進(jìn)入還書模塊.n); printf(n請輸入還書的讀者證號(hào):);scanf(%s,my-numb); for(j=0;jnumb,stuj.numb) printf(n請輸入讀者還書的編號(hào):);scanf(%s,stuj.numbeers);for(i=0;ibooknum;i+) if(!strcmp(booki.number,stuj.numbeers) booki.count+; for(k=0;kbooknum)printf(n輸入錯(cuò)誤!n);break;if(j=stunum) printf(n對不起!n您還沒有注冊!n);printf(n按任意鍵繼續(xù)下步操作n); scanf(%c,&a);menu();/*-查詢圖書信息方法-*/void checkb()int i;char a;printf(n圖書編號(hào)t圖書名稱t圖書作者t現(xiàn)有t庫存n);for(i=0;inumb);for(i=0;inumb,stui.numb) )printf(n讀者姓名:%s,s);for(j=0;jstui.number;j+ )printf(n圖書編號(hào):%stt還書日期:%sn, stui.muj.number,stui.muj.backd); break;elseprintf(n很抱歉,沒有該讀者的信息!n);break;fflush(stdin);printf(n讀者信息打印完畢!按任意鍵繼續(xù)下一步操作n);scanf(%c,&a);menu();/*-菜單方法-*/void menu() char c;int a;system(cls); printf(ntt*); printf(ntt* 0-退出系統(tǒng) *); printf(ntt* 1-采編入庫 *); printf(ntt* 2-登記讀者 *); printf(ntt* 3-借閱登記 *); printf(ntt* 4-還書管理 *); printf(ntt* 5-查詢圖書信息 *); printf(ntt* 6-查詢讀者信息 *); printf(ntt* *);printf(ntt請選擇相應(yīng)的代碼:); scanf(%d,&a); getchar(); printf(n);/system(cls);清屏switch(a) case 0:/退出系統(tǒng)system(cls);/清屏printf(n文件保存成功!n);printf(n歡迎下次使用本系統(tǒng)!n);break;case 1:/采編入庫system(cls);/清屏printf(n新書入庫模塊:nnn);printf(n請輸入新書信息:n);printf(包括書號(hào),書名,數(shù)量n);enter1();break;case 2:/登記讀者system(cls);/清屏printf(n讀者初始化開始,請輸入讀者信息n);printf(包括書證號(hào),姓名n);printf(n請輸入讀者信息n);signr1();break;case 3:/借閱登記system(cls);/清屏printf(n借書模塊n);signb1();break;case 4:/還書管理 system(cls);/清屏printf(n還書模塊n);backb();break;cas
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年數(shù)學(xué)浙教版八下素養(yǎng)檢測卷-學(xué)生用卷
- 工業(yè)廢水處理與環(huán)境影響評(píng)價(jià)研究
- 工業(yè)廢水處理技術(shù)與工藝
- 工業(yè)安全監(jiān)控的機(jī)器學(xué)習(xí)技術(shù)應(yīng)用
- 工業(yè)建筑設(shè)計(jì)及產(chǎn)能優(yōu)化
- 工業(yè)機(jī)器人技術(shù)及其發(fā)展動(dòng)態(tài)
- 工業(yè)機(jī)器人技術(shù)及產(chǎn)業(yè)發(fā)展
- 工業(yè)污染的防治與控制
- 工業(yè)自動(dòng)化中的智能灌裝機(jī)技術(shù)
- 工業(yè)設(shè)計(jì)中的用戶體驗(yàn)與界面美學(xué)
- JJF(浙) 1156-2019 過氧化氫檢測儀校準(zhǔn)規(guī)范
- 省道公路養(yǎng)護(hù)改善工程施工組織設(shè)計(jì)
- 重慶市2024+年春高二(下)期末聯(lián)合檢測+語文試卷(含答案)
- 臨終關(guān)懷中的文化敏感性
- 運(yùn)動(dòng)改造大腦閱讀記錄
- DL∕T 2011-2019 大型發(fā)電機(jī)定子繞組現(xiàn)場更換處理試驗(yàn)規(guī)程
- 從黃土高原視角品黃河生態(tài)變遷智慧樹知到期末考試答案章節(jié)答案2024年西北工業(yè)大學(xué)
- 廣東省東莞市2023-2024學(xué)年高二下學(xué)期7月期末英語試題
- 2024年云南省職業(yè)院校技能大賽(中職組)植物嫁接賽項(xiàng)考試題庫(含答案)
- 河北省建設(shè)項(xiàng)目概算其他費(fèi)用定額
- 腫瘤科護(hù)理組長競聘
評(píng)論
0/150
提交評(píng)論