




已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)結(jié)構(gòu)C語(yǔ)言版課程設(shè)計(jì)題目:圖書(shū)管理系統(tǒng) 日期:2011-6-24年級(jí): 班級(jí): 組名:組長(zhǎng):組員:) 一實(shí)習(xí)目的通過(guò)實(shí)習(xí),了解并初步掌握設(shè)計(jì)、實(shí)現(xiàn)較大系統(tǒng)的完整過(guò)程,包括系統(tǒng)分析、編碼設(shè)計(jì)、系統(tǒng)集成、以及調(diào)試分析,熟練掌握數(shù)據(jù)結(jié)構(gòu)的選擇、設(shè)計(jì)、實(shí)現(xiàn)以及操作方法,為進(jìn)一步的應(yīng)用開(kāi)發(fā)打好基礎(chǔ)。2 問(wèn)題描述 本圖書(shū)管理系統(tǒng)可以實(shí)現(xiàn)采編入庫(kù),登記讀者,借閱登記,還書(shū)管理,查詢(xún)圖書(shū)信息,查詢(xún)讀者信息等信息。三需求分析 本圖書(shū)管理系統(tǒng)有七個(gè)主要功能。即退出系統(tǒng),采編入庫(kù),登記讀者,借閱登記,還書(shū)管理,查詢(xún)圖書(shū)信息,查詢(xún)讀者信息。所有的功能采用模塊化的方式開(kāi)發(fā)。 四概要設(shè)計(jì) 系統(tǒng)用到的抽象數(shù)據(jù)類(lèi)型定義: -書(shū)本信息結(jié)構(gòu)體:typedef struct char number100;/圖書(shū)編號(hào)char name20;/書(shū)名char author20;/作者int count;/書(shū)的現(xiàn)有本數(shù)int boo;/庫(kù)存int jinc;/變動(dòng)本數(shù)char backd10;/還書(shū)日期mybook; -讀者信息結(jié)構(gòu)體:typedef struct char names20;/讀者姓名char numb10;/讀者書(shū)證號(hào)char borrd10;/借書(shū)日期char backd10;/還書(shū)日期int number;/ 所借書(shū)的數(shù)量char numbeers100;/圖書(shū)編號(hào)mybook mu10;student; mybook book100;/mybook *my; int booknum;/書(shū)的種類(lèi) int stunum;/讀者人數(shù) student stu100; void save();/保存圖書(shū)信息 void saved(); void enter1();void signr1();void signb1();void backb();void checkb();void checkr();void menu(); 系統(tǒng)中子程序及功能要求的說(shuō)明: 新書(shū)入庫(kù)模塊:包括輸入并保存圖書(shū)編號(hào),圖書(shū)名稱(chēng),圖書(shū)作者,圖書(shū)數(shù)量等信息。 查詢(xún)圖書(shū)信息模塊:輸出圖書(shū)的編號(hào)、名稱(chēng)、作者、現(xiàn)有、庫(kù)存等圖書(shū)信息。 登記讀者模塊:要求包括輸入并保存讀者書(shū)證號(hào)及姓名。 借書(shū)登記模塊:輸入結(jié)束的讀者書(shū)證號(hào),所借書(shū)的編號(hào)以及要?dú)w還的日期,并保存。 查閱讀者信息模塊:顯示讀者書(shū)證號(hào)和姓名,以及所借圖書(shū)的編號(hào)的還書(shū)日期。還書(shū)模塊:輸入要還書(shū)的讀者編號(hào),和要還的書(shū)的編號(hào),并且在庫(kù)存中加載此書(shū)。退出系統(tǒng)模塊:保存所有操作! 各程序模塊之間的調(diào)用關(guān)系 1、主函數(shù): main(),進(jìn)入圖書(shū)管理系統(tǒng),調(diào)用menu()菜單方法。 2、菜單方法:menu(),首先會(huì)執(zhí)行清屏的功能;然后再選擇菜單:選擇0,退出圖書(shū)管理系統(tǒng);選擇1,調(diào)用enter1()方法進(jìn)入采編入庫(kù);選擇2,調(diào)用signr1();方法進(jìn)入登記讀者;選擇3,調(diào)用signb1()方法進(jìn)入借閱登記;選擇4,調(diào)用backb()方法進(jìn)入還書(shū)管理 ;選擇5,調(diào)用checkb()方法進(jìn)入查詢(xún)圖書(shū)信息;選擇6,調(diào)用checkr()方法進(jìn)入查詢(xún)讀者信息;如果輸入錯(cuò)誤,安任意鍵可以回到菜單。 3、 enter1():對(duì)圖書(shū)進(jìn)行采編入庫(kù)。書(shū)名相同分為一類(lèi); 4、 signr1():對(duì)讀者進(jìn)行登記。并用讀者證號(hào)判斷讀者是否已經(jīng)注冊(cè)。 5、 signb1():借閱登記。根據(jù)編號(hào)借書(shū)。如果讀者沒(méi)有注冊(cè),不能借書(shū)。借了一次書(shū),書(shū)庫(kù)中圖書(shū)的現(xiàn)存量會(huì)減1。 6、 backb():還書(shū)管理。還了一次書(shū),書(shū)庫(kù)現(xiàn)存量增加1 7、 checkb():查詢(xún)圖書(shū)信息??梢燥@示每一種書(shū)的圖書(shū)編號(hào)、圖書(shū)名稱(chēng)、圖書(shū)作者、現(xiàn)有量、庫(kù)存量。 8、 checkr():查詢(xún)讀者信息。根據(jù)讀者證號(hào),查詢(xún),已借書(shū)的信息,和個(gè)人信息。 9、 save():保存圖書(shū)信息。 10、 saved():保存讀者信息; 五詳細(xì)設(shè)計(jì)圖書(shū)管理系統(tǒng)的偽碼描述如下:1、 for(j=0;j=booknum) /條件成立,則該圖書(shū)庫(kù)存和現(xiàn)存就是入庫(kù)數(shù)量 bookbooknum.boo=bookbooknum.jinc; bookbooknum.count=bookbooknum.jinc; booknum+;2、 for(j=0;j=stunum) stunum+;/如果條件成立,則證號(hào)還沒(méi)有注冊(cè),將注冊(cè)過(guò)的讀者數(shù)加1。3、 還書(shū)時(shí),從借書(shū)信息中找到該書(shū)的信息的數(shù)組,然后改變信息 if(!strcmp(booki.number,stuj.muk.number)stuj.muk=stuj.muk+1;4、 for(i=0;i 系統(tǒng)主界面按回車(chē)鍵進(jìn)入主界面采編入庫(kù):查閱圖書(shū)信息登記讀者借書(shū)登記查閱閱讀者信息圖書(shū)編號(hào)aa50減少1本,相應(yīng)的在查詢(xún)圖書(shū)信息功能中體現(xiàn)出如下:還書(shū)管理:退出系統(tǒng)7 使用說(shuō)明進(jìn)入主界面然后再選擇菜單中的數(shù)字:選擇1,進(jìn)入采編入庫(kù);選擇2,進(jìn)入登記讀者;選擇3,進(jìn)入借閱登記;選擇4,進(jìn)入還書(shū)管理 ;選擇5,進(jìn)入查詢(xún)圖書(shū)信息;選擇6,進(jìn)入查詢(xún)讀者信息;選擇0,退出圖書(shū)管理系統(tǒng); 如果輸入錯(cuò)誤,按回車(chē)鍵可以回到菜單。八附錄:測(cè)試數(shù)據(jù) 讀者姓名:mm 讀者書(shū)證號(hào):123 圖書(shū)名稱(chēng):aa 圖書(shū)數(shù)量:50 圖書(shū)作者:aaaa 圖書(shū)編號(hào):aa50 圖書(shū)名稱(chēng):bb 圖書(shū)數(shù)量:50 圖書(shū)作者:bbbb 圖書(shū)編號(hào):bb50 圖書(shū)名稱(chēng):cc 圖書(shū)數(shù)量:50 圖書(shū)作者:cccc 圖書(shū)編號(hào):cc509 C語(yǔ)言代碼實(shí)現(xiàn)#include #include#include#define MAXSIZE 100 /最大值定義為100#define yong_SIZE 100/圖書(shū)證使用者最大值定義為100/*-書(shū)本信息結(jié)構(gòu)體-*/typedef struct char number100;/圖書(shū)編號(hào)char name20;/書(shū)名char author20;/作者int count;/書(shū)的現(xiàn)有本數(shù)int boo;/庫(kù)存int jinc;/變動(dòng)本數(shù)char backd10;/還書(shū)日期mybook;/*-讀者信息結(jié)構(gòu)體-*/typedef struct char names20;/讀者姓名char numb10;/讀者書(shū)證號(hào)char borrd10;/借書(shū)日期char backd10;/還書(shū)日期int number;/ 所借書(shū)的數(shù)量char numbeers100;/圖書(shū)編號(hào)mybook mu10;student; mybook book100;/mybook *my; int booknum;/書(shū)的種類(lèi) int stunum;/讀者人數(shù) student stu100; void save();/保存圖書(shū)信息 void saved(); void enter1();void signr1();void signb1();void backb();void checkb();void checkr();void menu();/*-保存方法-*/void save()/保存圖書(shū)信息。FILE *fp;if(fp=fopen(library.txt,wb)=NULL)printf(n不能保存圖書(shū)信息n);fwrite(book,sizeof(mybook),8,fp);fclose(fp);/*-保存讀者信息方法-*/void saved()FILE *fp;if(fp=fopen(reader.txt,wb)=NULL)printf(n不能讀取圖書(shū)信息n);fwrite(stu,sizeof(student),8,fp);fclose(fp);/*-采編入庫(kù)方法-*/void enter1()char a;int j;printf(n圖書(shū)名稱(chēng):);scanf(%s,);printf(圖書(shū)數(shù)量:);scanf(%d,&bookbooknum.jinc);printf(圖書(shū)作者:);scanf(%s,bookbooknum.author);printf(圖書(shū)編號(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新書(shū)入庫(kù)完畢!n按任意鍵繼續(xù)下一步操作n);scanf(%c,&a);menu();/*-登記讀者方法-*/void signr1()char a;int j;printf(n讀者書(shū)證號(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借書(shū)模塊n);printf(n請(qǐng)輸入借書(shū)的讀者書(shū)證號(hào):);scanf(%s,my-numb);for(j=0;jnumb,stuj.numb) printf(n請(qǐng)輸入你要借的書(shū)的編號(hào):);scanf(%s,stuj.mustuj.number.number);for(i=0;i=booknum)printf(n沒(méi)有編號(hào)為%s的書(shū)!n,booki.number);break;break;if(j=stunum) printf(n對(duì)不起!n您還沒(méi)有注冊(cè),不能借書(shū)!n);printf(按任意鍵繼續(xù)下步操作);scanf(%c,&a);menu();/*-還書(shū)管理方法-*/void backb() char a;int i,j,k;student *my=(student*)malloc(sizeof(student);printf(tt你已進(jìn)入還書(shū)模塊.n); printf(n請(qǐng)輸入還書(shū)的讀者證號(hào):);scanf(%s,my-numb); for(j=0;jnumb,stuj.numb) printf(n請(qǐng)輸入讀者還書(shū)的編號(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對(duì)不起!n您還沒(méi)有注冊(cè)!n);printf(n按任意鍵繼續(xù)下步操作n); scanf(%c,&a);menu();/*-查詢(xún)圖書(shū)信息方法-*/void checkb()int i;char a;printf(n圖書(shū)編號(hào)t圖書(shū)名稱(chēng)t圖書(shū)作者t現(xiàn)有t庫(kù)存n);for(i=0;inumb);for(i=0;inumb,stui.numb) )printf(n讀者姓名:%s,s);for(j=0;jstui.number;j+ )printf(n圖書(shū)編號(hào):%stt還書(shū)日期:%sn, stui.muj.number,stui.muj.backd); break;elseprintf(n很抱歉,沒(méi)有該讀者的信息!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-采編入庫(kù) *); printf(ntt* 2-登記讀者 *); printf(ntt* 3-借閱登記 *); printf(ntt* 4-還書(shū)管理 *); printf(ntt* 5-查詢(xún)圖書(shū)信息 *); printf(ntt* 6-查詢(xún)讀者信息 *); printf(ntt* *);printf(ntt請(qǐng)選擇相應(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:/采編入庫(kù)system(cls);/清屏printf(n新書(shū)入庫(kù)模塊:nnn);printf(n請(qǐng)輸入新書(shū)信息:n);printf(包括書(shū)號(hào),書(shū)名,數(shù)量n);enter1();break;case 2:/登記讀者system(cls);/清屏printf(n讀者初始化開(kāi)始,請(qǐng)輸入讀者信息n);printf(包括書(shū)證號(hào),姓名n);printf(n請(qǐng)輸入讀者信息n);signr1();break;case 3:/借閱登記system(cls);/清屏printf(n借書(shū)模塊n);signb1();break;case 4:/還書(shū)管理 system(cls);/清屏printf(n還書(shū)模塊n);backb();break;cas
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小數(shù)點(diǎn)規(guī)則解讀:課件設(shè)計(jì)要點(diǎn)
- 建筑材料應(yīng)用教學(xué)課件
- 財(cái)務(wù)舞弊行為的審計(jì)策略實(shí)施試題及答案
- 導(dǎo)數(shù)的基本性質(zhì)教學(xué)課件
- 江西省上進(jìn)聯(lián)考2025屆高三下學(xué)期2月統(tǒng)一調(diào)研測(cè)試-生物試題+答案
- 2025年長(zhǎng)租公寓項(xiàng)目合作計(jì)劃書(shū)
- 2024年河北省保定高碑店市數(shù)學(xué)三年級(jí)第一學(xué)期期末達(dá)標(biāo)檢測(cè)試題含解析
- 2024年德宏傣族景頗族自治州瑞麗市三上數(shù)學(xué)期末預(yù)測(cè)試題含解析
- 2025年固體制劑設(shè)備合作協(xié)議書(shū)
- 2025年玻璃石材家具項(xiàng)目發(fā)展計(jì)劃
- TTJSFB 002-2024 綠色融資租賃項(xiàng)目評(píng)價(jià)指南
- 2022年上海市楊浦區(qū)四下期末數(shù)學(xué)試卷
- 用En值評(píng)價(jià)人員比對(duì)結(jié)果的范例
- 醫(yī)療信息平臺(tái)資源規(guī)劃及數(shù)據(jù)庫(kù)設(shè)計(jì)方案
- 銀行安全保衛(wèi)知識(shí)培訓(xùn)--ppt課件
- 農(nóng)村小學(xué)音樂(lè)課堂教學(xué)有效性及策略探究
- -綠化安全技術(shù)交底
- 支局一點(diǎn)一策PPT通用課件
- 國(guó)防科大暗室屏蔽部分標(biāo)書(shū)
- 國(guó)家開(kāi)放大學(xué)《電工電子技術(shù)》章節(jié)自測(cè)題參考答案
- 波峰焊作業(yè)指導(dǎo)書(shū)
評(píng)論
0/150
提交評(píng)論