




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
/一、設(shè)計(jì)題目與要求[問題描述]設(shè)計(jì)一個(gè)計(jì)算機(jī)管理系統(tǒng)完成圖書管理基本業(yè)務(wù)。[基本要求]〔1>每種書的登記內(nèi)容包括書號(hào)、書名、著作者、現(xiàn)存量和庫存量;〔2>對(duì)書號(hào)建立索引表〔線性表以提高查找效率;〔3>系統(tǒng)主要功能如下:①采編入庫:新購一種書.確定書號(hào)后.登記到圖書帳目表中.如果表中已有.則只將庫存量增加;②借閱:如果一種書的現(xiàn)存量大于0.則借出一本.登記借閱者的書證號(hào)和歸還期限.改變現(xiàn)存量;③歸還:注銷對(duì)借閱者的登記.改變?cè)摃默F(xiàn)存量。二、小組分工小組成員:小組分工:圖書初始化、新書入庫、登記讀者信息、文件保存借書系統(tǒng)、還書系統(tǒng)圖書信息查詢、讀者信息查詢?nèi)?、需求分析圖書管理系統(tǒng)共需要八個(gè)模塊.分別是1圖書初始化、2新書入庫、3添加讀者信息、4借書模塊、5還書模塊、6查詢圖書信息、7查詢讀者信息、8退出。我負(fù)責(zé)其中的四個(gè)模塊.如下所示:圖書初始化輸入圖書的一些信息.編號(hào)、作者、書名、數(shù)量.使有一定的庫存。新書入庫新書采編入庫.輸入編號(hào)后如果有次數(shù)只需輸入數(shù)量.沒有則繼續(xù)輸入書名、作者、數(shù)量。添加讀者信息讀者信息初始化.輸入讀書證號(hào)和姓名.只有輸入書證號(hào)和姓名才能進(jìn)行借書還書退出和文件保存退出讀書管理系統(tǒng)并保存讀者和圖書信息。圖書管理系統(tǒng)圖書管理系統(tǒng)圖書管理模塊理讀者管理模塊借閱操作模塊圖書管理模塊理讀者管理模塊借閱操作模塊查詢操作模塊借書系統(tǒng)讀者信息查詢圖書信息查詢輸入讀者信息還書系統(tǒng)采編入庫初始化圖書信息借書系統(tǒng)讀者信息查詢圖書信息查詢輸入讀者信息還書系統(tǒng)采編入庫初始化圖書信息四、概要設(shè)計(jì)圖書信息和讀者信息都采用結(jié)構(gòu)體類型保存。圖書信息里面包括:圖書編號(hào)、圖書名稱、作者、現(xiàn)有量、庫存量、指向下一節(jié)點(diǎn)的指針。讀者信息里面包括:讀者編號(hào)、讀者姓名、借書數(shù)量、可借圖書數(shù)量、指向下一節(jié)點(diǎn)的指針。所有圖書和讀者都分別以鏈表的形式存儲(chǔ).并以編號(hào)為唯一主鍵。采用鏈表形式便于數(shù)據(jù)的添加與刪改。主要的操作為:系統(tǒng)初始化.圖書入庫.讀者信息登記.圖書信息和讀者信息文件的保存。五、詳細(xì)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)的定義:圖書信息:typedefstructbook{charbook_num[10];charbook_name[20];charbook_writer[10];intbook_xy;intbook_kc;structbook*next;}BK;讀者信息:typedefstructreader{charreader_num[10];charreader_name[10];intright;BOborrow[Max];structreader*next;}RD;算法描述:進(jìn)入系統(tǒng)后首先進(jìn)行圖書初始化.輸入圖書的信息。開始1初始化開始輸入圖書編號(hào)、名稱、作者和圖書數(shù)量輸入圖書編號(hào)、名稱、作者和圖書數(shù)量進(jìn)入系統(tǒng)進(jìn)入系統(tǒng)初始化之后.進(jìn)入系統(tǒng).顯示功能列表.可選擇任意系統(tǒng).但在借書之前先要輸入讀者信息。開始開始輸入功能所對(duì)應(yīng)的數(shù)字輸入功能所對(duì)應(yīng)的數(shù)字輸入的數(shù)字小于輸入的數(shù)字小于0大于6錯(cuò)誤!請(qǐng)重新輸入錯(cuò)誤!請(qǐng)重新輸入執(zhí)行所選功能執(zhí)行所選功能采編入庫2>采編入庫采編入庫錄入圖書信息錄入圖書信息判斷是否有此圖書判斷是否有此圖書否是是在原有的紀(jì)錄上加上現(xiàn)有的圖書數(shù)量在原有的紀(jì)錄上加上現(xiàn)有的圖書數(shù)量向系統(tǒng)中加入新紀(jì)錄向系統(tǒng)中加入新紀(jì)錄3>輸入讀者信息登記讀者登記讀者輸入讀者信息:讀者書證號(hào)輸入讀者信息:讀者書證號(hào)判斷是否存在此讀者結(jié)束判斷是否存在此讀者結(jié)束否否向系統(tǒng)中添加新記錄是向系統(tǒng)中添加新記錄重新輸入讀者信息重新輸入讀者信息退出和文件保存退出系統(tǒng)退出系統(tǒng)保存文件保存文件判斷是否保存成功判斷是否保存成功錯(cuò)誤!請(qǐng)重新登陸系統(tǒng)退出系統(tǒng)是錯(cuò)誤!請(qǐng)重新登陸系統(tǒng)退出系統(tǒng)是六、程序源代碼#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#defineMax4typedefstructbook{charbook_num[10];charbook_name[20];charbook_writer[10];intbook_xy;//現(xiàn)有intbook_kc;//庫存structbook*next;}BK;typedefstructborrow{charborrow_book_num[10];charlimit_date[10];}BO;typedefstructreader{charreader_num[10];charreader_name[10];intright;BOborrow[Max];structreader*next;}RD;BK*h_book;RD*h_reader;voidLogin<>;intMenu<>;voidInit<>;voidInit_book<>;voidMenu_select<>;voidInsert_New_Book<>;voidFind_Book<>;voidadd_reader<>;voidSave<>;voidSave_Book<>;voidSave_Reader<>;voidLoad<>;voidLoad_Reader<>;voidLoad_Book<>;voidLogin<>{system<"cls">;printf<"\n\n\n\t\t***************************************\n">;printf<"\n\n\n\t\t\t歡迎使用圖書管理系統(tǒng)\n">;printf<"\n\n\n\t\t***************************************\n">;printf<"\n\n\n\t\t按任意鍵進(jìn)入系統(tǒng)">;getch<>;system<"cls">;}intMenu<>/*主菜單*/{intdm;printf<"\n\t\t圖書管理系統(tǒng)主菜單\n">;printf<"=================================================\n">;printf<"*\t0退出系統(tǒng)\n">;printf<"*\t1采編入庫\n">;printf<"*\t2登記讀者\(yùn)n">;printf<"=================================================\n">;printf<"請(qǐng)選擇相應(yīng)的代碼:">;for<;;>{scanf<"%d",&dm>;//dm輸入的數(shù)字if<dm<0||dm>6>printf<"\n錯(cuò)誤!請(qǐng)重新輸入:">;elsebreak;}returndm;}voidMenu_select<>/*主菜單選擇函數(shù)*/{for<;;>{switch<Menu<>>/*功能選擇*/{case0:system<"cls">;Save<>;printf<"\n\n\t文件保存成功!\n">;printf<"\n\n\t歡迎下次使用本系統(tǒng)!\n">;getch<>;exit<0>;case1:Insert_New_Book<>;break;case2:add_reader<>;break;default:printf<"\n錯(cuò)誤!">;exit<0>;}}}voidInit<>/*初始化*/{BK*p0;printf<"\n圖書初始化開始,請(qǐng)輸入圖書信息\n包括編號(hào).書名.數(shù)量\n">;p0=<BK*>malloc<sizeof<BK>>;h_book=p0;printf<"\n請(qǐng)輸入圖書信息:\n">;printf<"圖書編號(hào):">;/*輸入圖書編號(hào)<唯一>*/scanf<"%s",p0->book_num>;printf<"圖書名稱:">;/*輸入圖書名稱*/scanf<"%s",p0->book_name>;printf<"圖書作者:">;/*輸入圖書作者*/scanf<"%s",p0->book_writer>;printf<"圖書數(shù)量:">;/*輸入圖書數(shù)量*/scanf<"%d",&p0->book_kc>;p0->book_xy=p0->book_kc;/*開始時(shí)圖書現(xiàn)有量和庫存量相等*/p0->next=NULL;printf<"\n圖書信息初始化完畢!按任意鍵繼續(xù)下一步操作\n">;getch<>;system<"cls">;}voidInsert_New_Book<>/*新書入庫*/{BK*p,*p0,*p1;p=p1=h_book;printf<"\n新書入庫模塊\n">;printf<"\n請(qǐng)輸入新書信息\n包括書號(hào).書名.數(shù)量\n">;p0=<BK*>malloc<sizeof<BK>>;printf<"圖書編號(hào):">;scanf<"%s",p0->book_num>;while<strcmp<p0->book_num,p1->book_num>!=0&&p1->next!=NULL>p1=p1->next;if<strcmp<p0->book_num,p1->book_num>==0>/*此處分兩種情況,若圖書編號(hào)存在,則直接進(jìn)庫,只須輸入書的數(shù)量*/{printf<"\n此編號(hào)圖書已存在!!直接入庫!\n">;printf<"圖書數(shù)量:">;scanf<"%d",&p0->book_kc>;p1->book_kc+=p0->book_kc;p1->book_xy+=p0->book_kc;}else/*若不存在,則需要輸入其他的信息,然后在進(jìn)行插入操作*/{printf<"圖書名稱:">;scanf<"%s",p0->book_name>;printf<"圖書作者:">;scanf<"%s",p0->book_writer>;printf<"圖書數(shù)量:">;scanf<"%d",&p0->book_kc>;//庫存數(shù)量while<p->next>{p=p->next;}if<h_book==NULL>h_book=p0;/*此處分兩種情況,鏈表中沒有數(shù)據(jù),head直接指向p0處*/elsep->next=p0;/*此處分兩種情況,鏈表中有數(shù)據(jù),鏈表中最后元素的next指向p0處*/p0->next=NULL;p0->book_xy=p0->book_kc;}printf<"\n新書入庫完畢!按任意鍵繼續(xù)下一步操作\n">;getch<>;system<"cls">;}voidadd_reader<>/*添加讀者*/{RD*p0,*p,*p1;inti; p=h_reader;printf<"\n讀者初始化開始,請(qǐng)輸入讀者信息.\n包括書證號(hào).姓名..\n">;if<p==NULL>{ p0=<RD*>malloc<sizeof<RD>>;/*申請(qǐng)新結(jié)點(diǎn)存儲(chǔ)空間*/ h_reader=p0; p=h_reader;printf<"讀者書證號(hào):">;scanf<"%s",p0->reader_num>; printf<"讀者姓名:">; scanf<"%s",p0->reader_name>;p0->right=0;for<i=0;i<Max;i++>{strcpy<p0->borrow[i].borrow_book_num,"0">;/*所借圖書直接置為<即沒有借書>*/strcpy<p0->borrow[i].limit_date,"0">;} p0->next=NULL;}else{ p0=<RD*>malloc<sizeof<RD>>; p1=h_reader;printf<"\n請(qǐng)輸入讀者的信息:\n">;printf<"讀者書證號(hào):">;scanf<"%s",p0->reader_num>; for<;;> { while<strcmp<p0->reader_num,p1->reader_num>!=0&&p1->next!=NULL>p1=p1->next; if<strcmp<p0->reader_num,p1->reader_num>==0> {printf<"\n此讀者編號(hào)已存在.請(qǐng)重新輸入!\n">;printf<"讀者書證號(hào):">;scanf<"%s",p0->reader_num>; p1=h_reader; } else { printf<"讀者姓名:">; scanf<"%s",p0->reader_name>; break;} }p0->right=0;for<i=0;i<Max;i++>{strcpy<p0->borrow[i].borrow_book_num,"0">;/*所借圖書直接置為<即沒有借書>*/strcpy<p0->borrow[i].limit_date,"0">;}p1->next=p0; p1=p1->next; p1->next=NULL;}printf<"\n讀者信息初始化完畢!按任意鍵繼續(xù)下一步操作..\n">;getch<>;system<"cls">;}voidSave<>/*保存信息*/{Save_Reader<>;Save_Book<>;}voidSave_Reader<>/*保存讀者信息*/{FILE*fp_reader;RD*p,*p0;p=h_reader;if<<fp_reader=fopen<"Reader.txt","wb">>==NULL>/*創(chuàng)建文件,進(jìn)行保存*/{printf<"\n文件保存失敗!\n請(qǐng)重新啟動(dòng)本系統(tǒng)\n">;exit<0>;}while<p!=NULL>{if<fwrite<p,sizeof<RD>,1,fp_reader>!=1>/*將鏈表中的信息寫入文件中*/printf<"\n寫入文件失敗!\n請(qǐng)重新啟動(dòng)本系統(tǒng)!\n">;p0=p;p=p->next;free<p0>;/*釋放所有結(jié)點(diǎn)*/}h_reader=NULL;fclose<fp_reader>;/*關(guān)閉文件*/}voidSave_Book<>/*保存圖書信息*/{FILE*fp_book;/*創(chuàng)建文件型指針*/BK*p,*p0;p=h_book;if<<fp_book=fopen<"Book.txt","wb">>==NULL>/*創(chuàng)建文件,進(jìn)行保存*/{printf<"\n文件保存失敗!\n請(qǐng)重新啟動(dòng)本系統(tǒng)\n">;exit<0>;}while<p!=NULL>{if<fwrite<p,sizeof<BK>,1,fp_book>!=1>/*將鏈表中的信息寫入文件中*/printf<"\n寫入文件失敗!\n請(qǐng)重新啟動(dòng)本系統(tǒng)!\n">;p0=p;p=p->next;free<p0>;}h_book=NULL;fclose<fp_book>;/*關(guān)閉文件*/}voidLoad<>/*加載信息*/{Load_Reader<>;Load_Book<>;}voidLoad_Reader<>/*加載讀者信息*/{RD*p1,*p2,*p3;FILE*fp;/*創(chuàng)建文件型指針*/fp=fopen<"Reader.txt","rb">;/*打開文件*/p1=<RD*>malloc<sizeof<RD>>;fread<p1,sizeof<RD>,1,fp>;h_reader=p3=p2=p1;while<!feof<fp>>/*讀出信息,重新鏈入鏈表*/{p1=<RD*>malloc<sizeof<RD>>;fread<p1,sizeof<RD>,1,fp>;p2->next=p1;p3=p2;p2=p1;}p3->next=NULL;free<p1>;fclose<fp>;/*關(guān)閉文件*/}voidLoad_Book<>/*加載圖書信息*/{BK*p1,*p2,*p3;FILE*fp;/*創(chuàng)建文件型指針*/fp=fopen<"Book.txt","rb">;/*打開文件*/p1=<BK*>malloc<sizeof<BK>>;fread<p1,sizeof<BK>,1,fp>;h_book=p3=p2=p1;while<!feof<fp>>/*讀出信息,重新鏈入鏈表*/{p1=<BK*>malloc<sizeof<BK>>;fread<p1,sizeof<BK>,1,fp>;p2->next=p1;p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024人工智能網(wǎng)絡(luò)安全
- 反違章施工方案
- 保潔外墻清潔合同范例
- 合作收購小麥合同范本
- 涼茶加盟合同范例
- 農(nóng)村開店合同范例
- ktv啤酒供貨合同范例
- 新生代保安人員的職業(yè)發(fā)展情況計(jì)劃
- 保險(xiǎn)公司安全風(fēng)險(xiǎn)評(píng)估與處理方案計(jì)劃
- 財(cái)務(wù)數(shù)據(jù)分析與會(huì)計(jì)決策支持計(jì)劃
- 心理健康教育與防性侵方案
- 關(guān)于父母給子女買房的借款協(xié)議書(2篇)
- 食堂場(chǎng)所及設(shè)施設(shè)備清洗消毒和維修保養(yǎng)制度
- 電子商務(wù)視覺設(shè)計(jì)(第2版)完整全套教學(xué)課件
- 人民醫(yī)院樣本外送檢測(cè)管理制度
- 會(huì)計(jì)制度設(shè)計(jì) 課件 項(xiàng)目三 任務(wù)二 貨幣資金業(yè)務(wù)會(huì)計(jì)制度設(shè)計(jì)
- 【電動(dòng)自行車諧振式無線充電系統(tǒng)設(shè)計(jì)(論文)10000字】
- Unit 3 On the Move單詞講解 課件高中英語外研版(2019)必修第二冊(cè)
- 2024-2030年中國房地產(chǎn)經(jīng)紀(jì)行業(yè)市場(chǎng)發(fā)展分析及競(jìng)爭(zhēng)格局與投資前景研究報(bào)告
- 1shopee課程簡(jiǎn)介認(rèn)識(shí)蝦皮
- 信息系統(tǒng)項(xiàng)目驗(yàn)收方案
評(píng)論
0/150
提交評(píng)論