版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、BeijingInstituteofPetrochemicalTechnology數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告院(系、部?jī)盒畔⒐こ虒W(xué)院姓名:計(jì)141范文虎指導(dǎo)教師簽名:2016年6月29日北京目錄一設(shè)計(jì)題目二設(shè)計(jì)目的三實(shí)驗(yàn)分工四算法思想分析五算法描述實(shí)現(xiàn)1數(shù)據(jù)結(jié)構(gòu)類型定義2.算法流程圖3.程序代碼六運(yùn)行結(jié)果七結(jié)論一設(shè)計(jì)題目圖書管理基本業(yè)務(wù)模擬圖書管理一般包括圖書采編、圖書編目、圖書查詢及圖書流通(借、還書)等基本業(yè)務(wù)。要求設(shè)計(jì)一個(gè)圖書管理信息系統(tǒng),用計(jì)算機(jī)模擬實(shí)現(xiàn)上述系統(tǒng)功能。(1)書的登記內(nèi)容包括書號(hào)、書名、著作者、現(xiàn)存量和庫(kù)存量等;學(xué)生信息包括借書證號(hào)、借閱信息等;(2)以書號(hào)建立索引
2、表(線性表)以提高查找效率;(3)主要功能如下:a)采編入庫(kù):新購(gòu)一種書,確定書號(hào)后,登記到圖書帳目表中,如果表中已有,則只將庫(kù)存量增加;b)借閱:如果一種書的現(xiàn)存量人于0,則借出一本,登記借閱者的書號(hào)和歸還期限,改變現(xiàn)存量;c)歸還:注銷對(duì)借閱者的登記,改變?cè)摃默F(xiàn)存量。(4)輸出形式:能按書號(hào)、書名、著作者查找?guī)齑娴臅畔⒛馨磳W(xué)生的借書證號(hào)顯示學(xué)生信息和借閱信息書籍入庫(kù)借書功能實(shí)現(xiàn)還書功能實(shí)現(xiàn)二設(shè)計(jì)目的了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力:初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能:提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問
3、題的能力;訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風(fēng)。開發(fā)壞境:VC6.0或者DEC+.三實(shí)驗(yàn)分工范文虎:總體程序框架構(gòu)思,算法分析,主程序編寫,子函數(shù)調(diào)用,圖書信息記錄存儲(chǔ)子函數(shù)編寫,結(jié)合,主控制面板編寫,哈希函數(shù),結(jié)構(gòu)體定義。算法實(shí)現(xiàn),添加圖書信息子函數(shù)編寫,借閱圖書字函數(shù)編寫,查詢子函數(shù)設(shè)計(jì)編寫,還書子函數(shù)設(shè)計(jì)編寫,最終程序調(diào)試,寫報(bào)告。算法實(shí)現(xiàn),刪除圖書子函數(shù)設(shè)計(jì)編寫,查找圖書信息子函數(shù)編寫,測(cè)試整體程序,程序缺陷糾正,最終修改后程序綜合。算法實(shí)現(xiàn),查詢圖書信息子函數(shù)設(shè)計(jì)編寫,程序缺陷修改和測(cè)試。四算法思想分析用線性表進(jìn)行存儲(chǔ),充分利用
4、它易添加、易刪除、查找方便的特點(diǎn),進(jìn)行程序的編寫,符合題目的需求。而線性表是最基本、最簡(jiǎn)單、也是最常用的一種數(shù)據(jù)結(jié)構(gòu)。五算法描述實(shí)現(xiàn)1.數(shù)據(jù)結(jié)構(gòu)類型定義typed出tructintyeai-;mtmonth;iiitday;data;typed出tructchainum5;讀者編號(hào)記錄databio;databack;ReaderNode;typed出tructchaititle15;charwriter15;iiitcurrent;mttotal;mtkey;書的編號(hào)ReadeiNodereader10;記錄借讀該書的讀者記錄BookNode;typed出tructBookNode*elem
5、;mtcount;/記錄節(jié)點(diǎn)中的總數(shù)HashTable;2.算法流程圖程序代碼#iiicludeHstdafx.hM#include#include#iiiclude#iiiclude#iiiclude#defiiieSUCCESS1defineUNSUCCESS0#defiiieDUPLICATE-1#defhieNULL_KEY0無記錄元素mthashsize=17,1923,29;/存儲(chǔ)容量mtm=0;/表長(zhǎng)typedefstmctintyear;mtmonth;mtday;data;typedefstmctchainum5;讀者編號(hào)記錄databro;databack;ReaderNo
6、de;typedefstmctchaititle15;chaiwriter15;iiitcurrent;iiittotal;iiitkey;intmore;/書的編號(hào)ReaderNodereader10;記錄借讀該書的讀者記錄BookNode;typed亡fstmctBookNode*elem;Ultcount;記錄節(jié)點(diǎn)中的總數(shù)HashTable;voidIiutHashTable(HashTable*H)mti;(*H).count=0;m=hashsizeO;(*H).elem=(BookNode*)nialloc(m*sizeof(BookNode);(*H).elemi.key=NUL
7、L.KEY;unsignedHash(iiitK)哈希函數(shù),自己設(shè)定retuinK%m;voidcollision(iiitd)/開放定址法處理沖突*p=(*p+d)%m;mtSearcliHash(HashTableH,iiitK,int*p,int*c)/p為數(shù)據(jù)的地址位置,返回*p=Hash(K);wliile(H.elem*p.key!=NULL_KEY&(K!=H.elem*p.key)(*c)+;collision(p,*c);/卜一地址elsebreak;if(K=H.elem*p.kev)returnSUCCESS;elsereturnUNSUCCESS;mtInsertHas
8、h(HashTable*H.BookNodee)mtc,p;c=0;if(SeaicliHash(*H,e.key,&p,&c)returnDUPLICATE;elseif(chashsize0/2)(*H).elemp=e;+(*H).count;return1;leturn0;mtDeleteHash(HashTable*H.BookNodee)Ultc.p;c=0;if(SeaicliHash(*H,e.key,&p,&c)(*H).elemp.key=NULL_KEY;-(*H).count;return1;elsepnntf(不好意思,不存在n”);leturn0;voidAddBo
9、ok(HashTable*H)BookNodee;mti;system(,rCLS,r);pnntf(%你能在此目錄下添加圖書信息J;prmtf(Hjit請(qǐng)輸入書的編號(hào)(形如:1*scanf(n%ci,&e.key);getcharQ;prmtf(nt請(qǐng)輸入書名:”);gets(e.title);prmtf(f*jit請(qǐng)輸入該書作者);gets(e.wiiter);prmtf(nt請(qǐng)輸入該書現(xiàn)庫(kù)存量:”);scanfd&e.current);prmtf(nt請(qǐng)輸入該書總庫(kù)存量:”);scanf(n%d%*c,&亡.total);for(i=0;i0,來初始化借該書的讀者證號(hào),表示一開始時(shí)沒人借
10、書if(InseitHash(&(*H),e)圖書添加成功!5”);(*H).count+;voidShowBook(HashTableH)system(HCLSH);prmtf(-t你能在此目錄查看圖書信息”);if(H.elemi.key!=NULL.KEY)/*有數(shù)據(jù)*/prmtf(H圖書編號(hào):%dnH,H.elemi.key);prmtf(H書名:snHJI.elemi.title);作者:%sii,H.elemfi.writer);prmtf(H圖書現(xiàn)存量:%dn,H.elemfi.cunent);prmtf(H圖書總量:%dnll,H.elemi.total);voidBoSeai
11、ch(HashTable*H)/借閱查詢iiitejj;svstem(HCLSH);prmtf(Mnii*ji)printfft你能在此目錄卜按借書證號(hào)查找圖書信息J;prmtHQ*qh)pnntf(-nt請(qǐng)輸入你的借書證號(hào):”);scanf(H%d%*c,&e);if(SearcliHash(*H,e.&i;&t)prmtf(H借書證編號(hào):%dii,(*H).eleme.key);prmtf(H書名:snH,(*H).eleme.title);prmtf(H作者:%sir(*H).eleme.writer);圖書現(xiàn)存量:%diiH,(*H).eleme.current);prmtf(H圖書總
12、量:%dn,(*H).eleme.total);elsepnntf(“您沒有借過書!”);voidFiiid(HashTable*H)mtxpc;system(HCLSH);printfft你能在此目錄卜按編號(hào)查找圖書信息J;pnntf(-nt請(qǐng)輸入你想查找的書的編號(hào):”);scanf(n%d%*c,&x);if(S亡archHash(*Hx&p、&c)priiitf(H圖書編號(hào):%dnH,(*H).elemp.key);prmtf(H書名:sn,(*H).elemp.title);prmtf(H作者:%sir(*H).elemp.writer);prmtf(H圖書現(xiàn)存量:%dnH,(*H).
13、elemp.cuirent);printf(”圖書總量:%dnH,(*H).elemp.total);elsepiintf(”對(duì)不起,不存在該書!1T);voidBonowBook(HashTable*H)iiiti.k,x,t;system(nCLSH);*iiH)pnntf(%你能在此目錄卜按編號(hào)借閱圖書J;*nH)prmtfC*nt請(qǐng)輸入你想借的書編號(hào):J;scanf(n%d%*c,&x);if(SearcliHash(*H,x,&k,&f)pnntfpnt你想借這本書嗎?(y/n)”);pnntfpnt書名:sH,(*H).elemk.title);pnntfpnt作者:%s,(*H)
14、.elemk.wntei);pnntfpnt現(xiàn)庫(kù)存量:%d,(*H).elemk.current);pnntfpntt=getch();總庫(kù)存量:%dn,(*H).elemk.total);if(t=y|t=,Y,)if(*H).elemk.current)=O)prmtf(Hnt對(duì)不起,這本書己經(jīng)被借光了J;elsefbr(i=0;i10;i+)if(H).elemk.readeri).numO=,Ot)break;prmtf(iit請(qǐng)輸入你的借書證號(hào):”);scanf(,%s,(*H).elemk.readeri).num);pnntf(”nt請(qǐng)輸入借書口期:”);/輸入借書口期TOC o
15、 1-5 h zprmtf(niit年:”);scanf(,%d&(*H).elemk.readeri).bro.year);prmtf(Ht月:M);scanf(,%d&(*H).elemk.ieaderi).bro.month);prmtf(Ht口:”);scanfC%:!,&(*H).elemk.readeri).bro.day);prmtf(iit輸入應(yīng)還書口期:);輸入應(yīng)還書口期prmtf(niit年:”);scanf(,%d&(*H).elemk.readeri).back.year);prmtf(Ht月:M);scanf(,%d&(*H).elemk.readeri).back.
16、month);prmtf(Ht口:”);scanf(,%d%*c,&(*H).elemk.readeri).back.day);(*H)elemk.current-;現(xiàn)存書量減1printf(”nt你已借了該書.);elseprintf(Hnt這本書不存在!1T);voidRetuniBook(HashTable*H)mti,k,x,t,j;mtyeai;monthjav?d;floatpay;chartemp20;system(nCLSH);pimtfC*t你能在此目錄下按編號(hào)歸還圖書J;prmtf(Hnt請(qǐng)輸入你還的書:M);scanf(”d%*c”,&x);if(SearcliHash(
17、*H5x,&k,&f)pnntfpnt你想還這本書嗎?(y/n)”);pnntfpnt書名:s,(*H).elemk.title);pnntfpnt作者:%s,(*H).elemk.wnter);pnntfpnt現(xiàn)庫(kù)存量:%dn,(*H).elemk.current);pnntfpnt總庫(kù)存量:%d”fH)elemk.total);t=getchQ;if(t=y|t=,Y,)prmtf(-nt請(qǐng)輸入你的借書證號(hào)小);scaufC%s”,temp);J=o;foi(i=0;i5;i+)if(!(strcmp(tempX(*H).elemk.readeri).num)j=l;break;/查看是否
18、有借書】f(J=O)傷般有借書*etum;該借書證號(hào)的人沒借書prmtf(nQt今天是小);TOC o 1-5 h zprmtf(nQt年:scaufC%d”,&yeaQ;prmtf(Ht月:scanf(H%d,&month);prmtf(Ht口:M);scanf(H%d%*c*&day);d=0:if(year(*H).elemk.readeri).back.year)d=l;/判斷是否己過了還書口期,d=l還沒過期,d=0過期if(year=(*H).elemk.readeri).back.year&montli(*H).elemk.readeri).back.month)d=l;if(y
19、ear=(*H).elemk.readeri).back.year&month=(*H).elemk.readeri).back.month&day(*H).elemk.ieaderi).back.day)d=l;if(d=O)pay=(year-(*H).elemk.readeri).back.year)*365+(month-(*H).elemk.readeri).back.month)*30+(day-(*H).elemk.ieaderi).back.day);prmtf(nQt你在%d-%d-%d借了這本書(*H).elemk.ieaderi).bro.year,(*H).elemk.
20、ieaderi).bio.montli,(*H).elemk.readeri).bro.day);priiitf(iit你應(yīng)該在d-%d-%d還這本書(*H).elemk.readeri).back.year,(*H).elemk.readeri).back.month,(*H).elemk.readeri).back.day);prmtf(nQt今天是ddd血day);pnntf(恤nt所以你超出了還書口期”);pimtf(Hnt你應(yīng)該被罰款%2.1f元/0.1*pay);過期一天還1角錢(*H).elemk.readeri).numO=O;/己還,清除該讀者借書記錄(*H).elemk.c
21、unent+;現(xiàn)存書量加1pimtf(Mnt你已經(jīng)還了這本書.n”);elseprmtf(”nt你要還一本沒庫(kù)存的書??n”);voidSaveBook(HashTableH)FILE*fpl;mti;fpl=fbpen(,C:/record.txtH;,wn);fpiintf(fp1;=圖書信息記錄表=n);for(i=0;ini;i-H-)if(H.elemi.kev!=NULL_KEY)一=才);fprmtf(fp1J圖書編號(hào):%dnH.elemi.key);fprmtf(fp1書名:%sirH.elemi.title);量:%dn*H.elemi.current);fprmtf(fp1,”作者:%sirH.elemi.writei);fprmtfCfjpl;現(xiàn)庫(kù)存fpi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版房屋代持業(yè)務(wù)合同范本3篇
- 二零二五版電機(jī)維修智能化改造合同范本3篇
- 二零二五年度房地產(chǎn)經(jīng)紀(jì)服務(wù)合同7篇
- 二零二五版購(gòu)房借款及房地產(chǎn)開發(fā)商風(fēng)險(xiǎn)控制擔(dān)保服務(wù)合同3篇
- 二零二五版商業(yè)地產(chǎn)買賣合同模板下載3篇
- 二零二五年度高等教育機(jī)構(gòu)外國(guó)專家項(xiàng)目合作合同參考書3篇
- 二零二五版家用空調(diào)安裝與室內(nèi)環(huán)境改善合同3篇
- 二零二五年度成都上灶師父招聘與餐飲業(yè)人才服務(wù)合同2篇
- 展會(huì)創(chuàng)意展示合同(2篇)
- 2025年度油氣田2#配電房土建安裝與防爆電氣設(shè)備合同3篇
- 下肢皮牽引護(hù)理PPT課件(19頁(yè)P(yáng)PT)
- 臺(tái)資企業(yè)A股上市相關(guān)資料
- 電 梯 工 程 預(yù) 算 書
- 參會(huì)嘉賓簽到表
- 機(jī)械車間員工績(jī)效考核表
- 形式發(fā)票格式2 INVOICE
- 2.48低危胸痛患者后繼治療評(píng)估流程圖
- 人力資源管理之績(jī)效考核 一、什么是績(jī)效 所謂績(jī)效簡(jiǎn)單的講就是對(duì)
- 山東省醫(yī)院目錄
- 云南地方本科高校部分基礎(chǔ)研究
- 廢品管理流程圖
評(píng)論
0/150
提交評(píng)論