版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、BeijingInstituteofPetrochemicalTechnology數(shù)據(jù)結(jié)構(gòu)課程設(shè)計課程設(shè)計實驗報告院(系、部兒信息工程學(xué)院姓名:計141范文虎指導(dǎo)教師簽名:2016年6月29日北京目錄一設(shè)計題目二設(shè)計目的三實驗分工四算法思想分析五算法描述實現(xiàn)1數(shù)據(jù)結(jié)構(gòu)類型定義2.算法流程圖3.程序代碼六運行結(jié)果七結(jié)論一設(shè)計題目圖書管理基本業(yè)務(wù)模擬圖書管理一般包括圖書采編、圖書編目、圖書查詢及圖書流通(借、還書)等基本業(yè)務(wù)。要求設(shè)計一個圖書管理信息系統(tǒng),用計算機模擬實現(xiàn)上述系統(tǒng)功能。(1)書的登記內(nèi)容包括書號、書名、著作者、現(xiàn)存量和庫存量等;學(xué)生信息包括借書證號、借閱信息等;(2)以書號建立索引
2、表(線性表)以提高查找效率;(3)主要功能如下:a)采編入庫:新購一種書,確定書號后,登記到圖書帳目表中,如果表中已有,則只將庫存量增加;b)借閱:如果一種書的現(xiàn)存量人于0,則借出一本,登記借閱者的書號和歸還期限,改變現(xiàn)存量;c)歸還:注銷對借閱者的登記,改變該書的現(xiàn)存量。(4)輸出形式:能按書號、書名、著作者查找?guī)齑娴臅畔⒛馨磳W(xué)生的借書證號顯示學(xué)生信息和借閱信息書籍入庫借書功能實現(xiàn)還書功能實現(xiàn)二設(shè)計目的了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備初步的獨立分析和設(shè)計能力:初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能:提高綜合運用所學(xué)的理論知識和方法獨立分析和解決問
3、題的能力;訓(xùn)練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風(fēng)。開發(fā)壞境:VC6.0或者DEC+.三實驗分工范文虎:總體程序框架構(gòu)思,算法分析,主程序編寫,子函數(shù)調(diào)用,圖書信息記錄存儲子函數(shù)編寫,結(jié)合,主控制面板編寫,哈希函數(shù),結(jié)構(gòu)體定義。算法實現(xiàn),添加圖書信息子函數(shù)編寫,借閱圖書字函數(shù)編寫,查詢子函數(shù)設(shè)計編寫,還書子函數(shù)設(shè)計編寫,最終程序調(diào)試,寫報告。算法實現(xiàn),刪除圖書子函數(shù)設(shè)計編寫,查找圖書信息子函數(shù)編寫,測試整體程序,程序缺陷糾正,最終修改后程序綜合。算法實現(xiàn),查詢圖書信息子函數(shù)設(shè)計編寫,程序缺陷修改和測試。四算法思想分析用線性表進(jìn)行存儲,充分利用
4、它易添加、易刪除、查找方便的特點,進(jìn)行程序的編寫,符合題目的需求。而線性表是最基本、最簡單、也是最常用的一種數(shù)據(jù)結(jié)構(gòu)。五算法描述實現(xiàn)1.數(shù)據(jù)結(jié)構(gòu)類型定義typed出tructintyeai-;mtmonth;iiitday;data;typed出tructchainum5;讀者編號記錄databio;databack;ReaderNode;typed出tructchaititle15;charwriter15;iiitcurrent;mttotal;mtkey;書的編號ReadeiNodereader10;記錄借讀該書的讀者記錄BookNode;typed出tructBookNode*elem
5、;mtcount;/記錄節(jié)點中的總數(shù)HashTable;2.算法流程圖程序代碼#iiicludeHstdafx.hM#include#include#iiiclude#iiiclude#iiiclude#defiiieSUCCESS1defineUNSUCCESS0#defiiieDUPLICATE-1#defhieNULL_KEY0無記錄元素mthashsize=17,1923,29;/存儲容量mtm=0;/表長typedefstmctintyear;mtmonth;mtday;data;typedefstmctchainum5;讀者編號記錄databro;databack;ReaderNo
6、de;typedefstmctchaititle15;chaiwriter15;iiitcurrent;iiittotal;iiitkey;intmore;/書的編號ReaderNodereader10;記錄借讀該書的讀者記錄BookNode;typed亡fstmctBookNode*elem;Ultcount;記錄節(jié)點中的總數(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請輸入書的編號(形如:1*scanf(n%ci,&e.key);getcharQ;prmtf(nt請輸入書名:”);gets(e.title);prmtf(f*jit請輸入該書作者);gets(e.wiiter);prmtf(nt請輸入該書現(xiàn)庫存量:”);scanfd&e.current);prmtf(nt請輸入該書總庫存量:”);scanf(n%d%*c,&亡.total);for(i=0;i0,來初始化借該書的讀者證號,表示一開始時沒人借
10、書if(InseitHash(&(*H),e)圖書添加成功!5”);(*H).count+;voidShowBook(HashTableH)system(HCLSH);prmtf(-t你能在此目錄查看圖書信息”);if(H.elemi.key!=NULL.KEY)/*有數(shù)據(jù)*/prmtf(H圖書編號:%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你能在此目錄卜按借書證號查找圖書信息J;prmtHQ*qh)pnntf(-nt請輸入你的借書證號:”);scanf(H%d%*c,&e);if(SearcliHash(*H,e.&i;&t)prmtf(H借書證編號:%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你能在此目錄卜按編號查找圖書信息J;pnntf(-nt請輸入你想查找的書的編號:”);scanf(n%d%*c,&x);if(S亡archHash(*Hx&p、&c)priiitf(H圖書編號:%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(”對不起,不存在該書!1T);voidBonowBook(HashTable*H)iiiti.k,x,t;system(nCLSH);*iiH)pnntf(%你能在此目錄卜按編號借閱圖書J;*nH)prmtfC*nt請輸入你想借的書編號: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)庫存量:%d,(*H).elemk.current);pnntfpntt=getch();總庫存量:%dn,(*H).elemk.total);if(t=y|t=,Y,)if(*H).elemk.current)=O)prmtf(Hnt對不起,這本書己經(jīng)被借光了J;elsefbr(i=0;i10;i+)if(H).elemk.readeri).numO=,Ot)break;prmtf(iit請輸入你的借書證號:”);scanf(,%s,(*H).elemk.readeri).num);pnntf(”nt請輸入借書口期:”);/輸入借書口期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你能在此目錄下按編號歸還圖書J;prmtf(Hnt請輸入你還的書: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)庫存量:%dn,(*H).elemk.current);pnntfpnt總庫存量:%d”fH)elemk.total);t=getchQ;if(t=y|t=,Y,)prmtf(-nt請輸入你的借書證號小);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;該借書證號的人沒借書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你要還一本沒庫存的書??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圖書編號:%dnH.elemi.key);fprmtf(fp1書名:%sirH.elemi.title);量:%dn*H.elemi.current);fprmtf(fp1,”作者:%sirH.elemi.writei);fprmtfCfjpl;現(xiàn)庫存fpi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版房屋代持業(yè)務(wù)合同范本3篇
- 二零二五版電機維修智能化改造合同范本3篇
- 二零二五年度房地產(chǎn)經(jīng)紀(jì)服務(wù)合同7篇
- 二零二五版購房借款及房地產(chǎn)開發(fā)商風(fēng)險控制擔(dān)保服務(wù)合同3篇
- 二零二五版商業(yè)地產(chǎn)買賣合同模板下載3篇
- 二零二五年度高等教育機構(gòu)外國專家項目合作合同參考書3篇
- 二零二五版家用空調(diào)安裝與室內(nèi)環(huán)境改善合同3篇
- 二零二五年度成都上灶師父招聘與餐飲業(yè)人才服務(wù)合同2篇
- 展會創(chuàng)意展示合同(2篇)
- 2025年度油氣田2#配電房土建安裝與防爆電氣設(shè)備合同3篇
- 下肢皮牽引護(hù)理PPT課件(19頁PPT)
- 臺資企業(yè)A股上市相關(guān)資料
- 電 梯 工 程 預(yù) 算 書
- 參會嘉賓簽到表
- 機械車間員工績效考核表
- 形式發(fā)票格式2 INVOICE
- 2.48低危胸痛患者后繼治療評估流程圖
- 人力資源管理之績效考核 一、什么是績效 所謂績效簡單的講就是對
- 山東省醫(yī)院目錄
- 云南地方本科高校部分基礎(chǔ)研究
- 廢品管理流程圖
評論
0/150
提交評論