版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
.../...課程設計報告課程名稱面向對象程序設計課題名稱圖書管理系統(tǒng)專業(yè)計算機科學與技術班級計算機0981學號200913310608姓名譚俐莎指導教師李珍輝鄧作杰2010年12月0XX工程學院XX工程學院課程設計任務書課程名稱面向對象程序設計課題圖書管理系統(tǒng)專業(yè)班級計算機0981學生姓名譚俐莎學號200913310608指導老師李珍輝鄧作杰審批李珍輝任務書下達日期2010年12月05日任務完成日期2011年01月15日一、設計內容與設計要求1.課程設計目的:面向對象程序設計課程設計是集中實踐性環(huán)節(jié)之一,是學習完《面向對象程序設計》課程后進行的一次全面的綜合練習。要求學生達到熟練掌握C++語言的基本知識和技能;基本掌握面向對象程序設計的思想和方法;能夠利用所學的基本知識和技能,解決簡單的面向對象程序設計問題,從而提高動手編程解決實際問題的能力。2.課題題目1公司庫存管理系統(tǒng)2高校學籍管理系統(tǒng)3高校工資管理系統(tǒng)4高校人事管理系統(tǒng)5通訊錄程序設計6學生成績管理系統(tǒng)7>圖書管理系統(tǒng)8文本編輯器的設計與實現(xiàn)9學生考勤管理系統(tǒng)10公司人員管理系統(tǒng)3.設計要求:⑴設計課題題目:每位同學根據(jù)自己學號除以9所得的余數(shù)加一選擇相應題號的課題。換題者不記成績。〔課題10只做為參考課題⑵根據(jù)自己對應的課題完成以下主要工作:①完成系統(tǒng)需求分析:包括系統(tǒng)設計目的與意義;系統(tǒng)功能需求〔系統(tǒng)流程圖;輸入輸出的要求。②完成系統(tǒng)總體設計:包括系統(tǒng)功能分析;系統(tǒng)功能模塊劃分與設計〔系統(tǒng)功能模塊圖。③完成系統(tǒng)詳細設計:包括數(shù)據(jù)庫需求分析;數(shù)據(jù)庫概念結構設計〔E-R圖;數(shù)據(jù)庫邏輯結構設計;類層次圖;界面設計與各功能模塊實現(xiàn)。④系統(tǒng)調試:調試出現(xiàn)的主要問題,編譯語法錯誤及修改,重點是運行邏輯問題修改和調整。⑤使用說明書及編程體會:說明如何使用你編寫的程序,詳細列出每一步的操作步驟。⑥關鍵源程序〔帶注釋⑶按規(guī)定格式完成課程設計報告,將其打印稿<A4紙>上交給老師存檔。⑷不得抄襲他人程序、課程設計報告,每個人應體現(xiàn)自己的個性設計。二、進度安排第18周星期一8:00——12:00星期二8:00——12:00星期四8:00——12:00第19周星期一8:00——12:00星期二14:00——18:00星期三8:00——12:00三、參考書籍 1.《C++程序設計課程設計》劉振安編著TP312C563 2.《C++Builder和Delphi課程設計與系統(tǒng)開發(fā)案例》伍俊良清華大學出版社7-302-06072-X 3.VisualC++課程設計案例精編嚴華峰中國水利水電出版社7-5084-2007-120044.VisualC++課程設計與系統(tǒng)開發(fā)案例伍俊良清華大學出版社7-302-05968-320025.VisualC++語言課程設計:案例精選與編程指導陳清華朱紅東南大學出版社7-81089-275-420036.VisualC++課程設計案例精編中國水利水電出版社7-5084-1004-120027.數(shù)據(jù)結構課程設計案例精編:用C/C++描述李建學李光元吳春芳清華大學出版社7-302-14536-92007〔編程平臺不限,vc++,c++Builder等等。課題8:圖書管理系統(tǒng)〔一、課程設計題目: 圖書管理系統(tǒng)〔二、目的與要求:1、目的:〔1要求學生達到熟練掌握C++語言的基本知識和技能;〔2基本掌握面向對象程序設計的基本思路和方法;〔3能夠利用所學的基本知識和技能,解決簡單的面向對象程序設計問題。2、基本要求:〔1要求利用面向對象的方法以及C++的編程思想來完成系統(tǒng)的設計;〔2要求在設計的過程中,建立清晰的類層次;〔3在系統(tǒng)中至少要定義四個類,每個類中要有各自的屬性和方法;〔4在系統(tǒng)的設計中,至少要用到面向對象的一種機制。3、創(chuàng)新要求:在基本要求達到后,可進行創(chuàng)新設計,如根據(jù)查找結果進行修改的功能。4、寫出設計說明書〔三、設計方法和基本原理:1、問題描述〔功能要求:在圖書管理系統(tǒng)中,要為每個借閱者建立一個賬戶,并給借閱者發(fā)放借閱卡〔借閱卡可以提供借閱卡號、借閱者名,賬戶中存儲借閱者的個人信息、借閱信息以及預定信息。持有借閱卡的借閱者可以借閱書刊、返還書刊、查詢書刊信息、預定書刊并取消預定,但這些操作都是通過圖書管理員進行的,也即借閱者不直接與系統(tǒng)交互,而是圖書管理員充當借閱者的代理與系統(tǒng)交互。在借閱書刊時,需要輸入所借閱的書刊名,書刊的ISBN/ISSN號,然后輸入借閱者的圖書卡號和借閱者名,完成后提交所填表格,系統(tǒng)驗證借閱者是否有效〔在系統(tǒng)中存在賬戶,若有效,借閱請求被接受,系統(tǒng)查詢數(shù)據(jù)庫系統(tǒng),看借閱者所借閱的書刊是否存在,若存在,則借閱者可借出書刊,建立并在系統(tǒng)中存儲借閱記錄。借閱者還書后,刪除關于所還書刊的借閱記錄。如果借閱者所借的書刊已被借出,借閱者還可預定該書刊,一旦借閱者預定的書刊可以獲得,就將書刊直接寄給預定人〔為了簡化系統(tǒng),預定書刊可獲得時就不通知借閱者了。另外,為了簡化系統(tǒng),也不考慮書刊的最長借閱期限,假設借閱者可以無限期地保存所借閱的書刊。2、問題的解決方案:根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:〔1應用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設計;〔2分析系統(tǒng)中的各個實體及它們之間的關系包括屬性和行為;〔3根據(jù)問題描述,設計系統(tǒng)的類層次;〔4完成類層次中各個類的描述〔包括屬性和方法;〔5完成類中各個成員函數(shù)的定義;〔6完成系統(tǒng)的應用模塊;〔7功能調試;〔8完成系統(tǒng)總結報告以及系統(tǒng)使用說明書目錄1.系統(tǒng)需求分析……………….8TOC\o"1-2"\h\z\u1.1系統(tǒng)設計的目的與意義…………………….81.2系統(tǒng)功能需求……..…………..82.總體設計………………...…………………..82.1系統(tǒng)功能分析………………..………………..82.2系統(tǒng)功能模塊劃分與設計…………….……..…………….…82.3系統(tǒng)功能模塊圖………….…...……………93.詳細設計...…………………..93.1讀者類的設計………………93.2讀者庫類的設計…………103.3圖書類的設計………103.4圖書庫類的設計………..…………...…114.系統(tǒng)調試………………...……………..115.結果分析………...……..…..136.總結………146.1感想與體會……………….…..147.附錄………147.1源程序清單………..…...……...14...系統(tǒng)需求分析1.1系統(tǒng)設計的目的與意義:圖書系統(tǒng)在生活中運用相當廣泛,因此需要很多程序對他進行管理。1.2系統(tǒng)功能需求:本系統(tǒng)有四個類,Book類,BDatebase類、Reader類、RDatebase類,存儲借閱者的個人信息、借閱信息以及預定信息。持有借閱卡的借閱者可以借閱書刊、返還書刊、查詢書刊信息、預定書刊并取消預定等功能??傮w設計2.1系統(tǒng)功能分析:系統(tǒng)通過調用函數(shù)來實現(xiàn)刪除圖書、讀者信息,添加圖書、讀者信息等功能。delbook<>函數(shù)用于刪除圖書信息;addbook<>函數(shù)用于增加圖書信息;borrowbook<>函數(shù)用于實現(xiàn)借書操作;returnbook<>函數(shù)用于實現(xiàn)還書操作等等;主函數(shù)用于掉用這些函數(shù)。2.2系統(tǒng)功能模塊劃分與設計本系統(tǒng)定義了Book類、BDatebase類、Reader類、RDatebase類這四個類,定義了addbook<>、addreader<>、borrowbook<>、setname<>等函數(shù)來實現(xiàn)系統(tǒng)所需功能。2.3系統(tǒng)功能模塊圖:圖書圖書管理系統(tǒng)四個類程序實現(xiàn)功能輸出顯示圖書類圖書庫類實驗員讀者類行政人員讀者庫類文件錄入查詢信息刪除信息退出程序圖圖2.3詳細設計3.1讀者類的設計該類定義了借書操作,還書操作,設置讀者姓名等功能。Reader+name[20]:char+no:int+tag:int+borbook:int+getname<>:char+gettag<>:int+getno<>:int+setname<charna[]>:void+delbook<>:void+addreader<intn,char*na>:void+borrowbook<intbookid>:void+retbook<intbookid>:int+disp<>:void圖3.13.2讀者庫類類的設計該類實現(xiàn)了建立讀者的個人資料,刪除讀者信息,輸出讀者信息等功能。RDatebase+top:int+rname[20]:char+readerid:int+readerdata<>:void+choice:char+addreader<intn,char*na>:int+clear<>:void+disp<>:void圖3.23.3圖書類的設計圖書類,可以實現(xiàn)對圖書的描述,圖書的編號,書名,借出,還入等操作。Book+no:int+name[20]:char+onshelf:int+getname<>:char+getno<>:int+gettag<>:int+setname<charna[]>:void+delbook<>:void+addbook<>:void+borrowbook<>:int+retbook<>:void+disp<>:void圖3.33.4圖書庫類的設計Xingzhengrenyuan+top:int+clear<>:void+addbook<intn,char*na>:int+bookdata<>:void+bookdata<>:void+disp<>:void圖3.4系統(tǒng)調試在調試過程中,出現(xiàn)了一些錯誤。1、輸入數(shù)據(jù)時,輸錯了數(shù)據(jù)的類型會造成死循環(huán),因此輸入時需要注意。2、一開始主界面輸入非正確數(shù)字時,沒有提示錯誤。容易造成用戶誤解圖4.1在主函數(shù)的switch語句結束處加上default:cout<<"輸入錯誤,請從新輸入:";就可以了,修改后:圖4.2具體調試過程。主界面圖4.3圖書維護圖4.4讀者維護圖4.15.結果分析本程序總共設計了四個類,滿足了課題對類的要求,在設計的過程中,建立了較為清晰的類層次,也利用了面向對象的方法以及C++的編程思想來完成系統(tǒng)的設計,做到了每個借閱者建立一個賬戶,賬戶中存儲借閱者的個人信息、借閱信息等要求。而且界面美觀,容易操作。但是程序太長,不夠簡練,導致出現(xiàn)錯誤很難發(fā)現(xiàn)和修改??偨Y6.1感想和體會:通過這次的課程設計,讓我充分的感覺到了要自己設計一個程序是多么的難,以及學習好c++是多么的重要。在這個程序的設計過程中,我清楚的意識到自己的水平有多么的薄弱,課程的知識學得有多么的不扎實。看網(wǎng)上的例子好像覺得也沒那么難,自己一上機實際操作就出現(xiàn)了很多問題,調試的時候系統(tǒng)總是在報錯,還有很多警告,每增加一個函數(shù)就要調試好久,有時候應為少了一個大括號或是分號,導致要找很久很久。雖然系統(tǒng)可以運行,也具有了一些基本的功能,但我意識到了自己有太多的不足。以后還會有很多的課程設計,一定要吸取這次的教訓,把知識學懂學透學精,真正的為我所用,這樣走上社會我才能真正的發(fā)揮所長。7、附錄7.1源程序清單:#include<iostream>#include<iomanip>#include<string>#include<fstream>usingnamespacestd;constintMaxr=100;constintMaxb=100;constintMaxbor=5;classReader{private:inttag;intno;charname[10];intborbook[Maxbor];public:Reader<>{}char*getname<>{returnname;}intgettag<>{returntag;}intgetno<>{returnno;}voidsetname<charna[]>{strcpy<name,na>;}voiddelbook<>{tag=1;}voidaddreader<intn,char*na>{tag=0;no=n;strcpy<name,na>;for<inti=0;i<Maxbor;i++>borbook[i]=0;}voidborrowbook<intbookid>{for<inti=0;i<Maxbor;i++>{if<borbook[i]==0>{borbook[i]=bookid;return;}}}intretbook<intbookid>{for<inti=0;i<Maxbor;i++>{if<borbook[i]==bookid>{borbook[i]=0;return1;}}return0;}voiddisp<>{cout<<setw<5><<no<<setw<10><<name<<"借書編號:[";for<inti=0;i<Maxbor;i++>if<borbook[i]!=0>cout<<borbook[i]<<"|";cout<<"]"<<endl;}};classRDatabase{private:inttop;Readerread[Maxr];public:RDatabase<>{Readers;top=-1;fstreamfile<"reader.txt",ios::in>;while<1>{file.read<<char*>&s,sizeof<s>>;if<!file>break;top++;read[top]=s;}file.close<>;}voidclear<>{top=-1;}intaddreader<intn,char*na>{Reader*p=query<n>;if<p==NULL>{top++;read[top].addreader<n,na>;return1;}return0;}Reader*query<intreaderid>{for<inti=0;i<=top;i++>if<read[i].getno<>==readerid&&read[i].gettag<>==0>{return&read[i];}returnNULL;}voiddisp<>{for<inti=0;i<=top;i++>read[i].disp<>;}voidreaderdata<>;~RDatabase<>{fstreamfile<"reader.txt",ios::out>;for<inti=0;i<=top;i++>if<read[i].gettag<>==0>file.write<<char*>&read[i],sizeof<read[i]>>;file.close<>;}};voidRDatabase::readerdata<>{charchoice;charrname[20];intreaderid;Reader*r;while<choice!='0'>{cout<<"\n\n\t\t\t讀者維護\n\n\n\t\t1新增\n\n\t\t2更改\n\n\t\t3刪除\n\n\t\t4查找\n\n\t\t5顯示\n\n\t\t6全刪\n\n\t\t0退出"<<endl;cin>>choice;switch<choice>{case'1':cout<<"輸入讀者編號:";cin>>readerid;cout<<"輸入讀者姓名:";cin>>rname;addreader<readerid,rname>;break;case'2':cout<<"輸入讀者編號:";cin>>readerid;r=query<readerid>;if<r==NULL>{cout<<"該讀者不存在"<<endl;break;}cout<<"輸入新的姓名:";cin>>rname;r->setname<rname>;break;case'3':cout<<"輸入讀者編號:";cin>>readerid;r=query<readerid>;if<r==NULL>{cout<<"該讀者不存在"<<endl;break;}r->delbook<>;break;case'4':cout<<"讀入讀者編號:";cin>>readerid;r=query<readerid>;if<r==NULL>{cout<<"該讀者不存在"<<endl;break;}r->disp<>;break;case'5':disp<>;break;case'6':clear<>;break;default:cout<<"輸入錯誤,請從新輸入:";break;}}}classBook{private:inttag;intno;charname[20];intonshelf;public:Book<>{}char*getname<>{returnname;}intgetno<>{returnno;}intgettag<>{returntag;}voidsetname<charna[]>{strcpy<name,na>;}voiddelbook<>{tag=1;}voidaddbook<intn,char*na>{tag=0;no=n;strcpy<name,na>;onshelf=1;}intborrowbook<>{if<onshelf==1>{onshelf=0;return1;}return0;}voidretbook<>{onshelf=1;}voiddisp<>{cout<<setw<6><<no<<setw<18><<name<<setw<10><<<onshelf==1?"在架":"已借"><<endl;}};classBDatabase{private:inttop;Bookbook[Maxb];public:BDatabase<>{Bookb;top=-1;fstreamfile<"book.txt",ios::in>;while<1>{file.read<<char*>&b,sizeof<b>>;if<!file>break;top++;book[top]=b;}file.close<>;}voidclear<>{top=-1;}intaddbook<intn,char*na>{Book*p=query<n>;if<NULL==p>{top++;book[top].addbook<n,na>;return1;}return0;}Book*query<intbookid>{for<inti=0;i<=top;i++>if<book[i].getno<>==bookid&&book[i].gettag<>==0>{return&book[i];}returnNULL;}voidbookdata<>;voiddisp<>{for<inti=0;i<=top;i++>if<book[i].gettag<>==0>book[i].disp<>;}~BDatabase<>{fstreamfile<"book.txt",ios::out>;for<inti=0;i<=top;i++>if<book[i].gettag<>==0>file.write<<char*>&book[i],sizeof<book[i]>>;file.close<>;}};voidBDatabase::bookdata<>{charchoice;charbname[40];intbookid;Book*b;while<choice!='0'>{cout<<"\n\n\n\t\t\t圖書維護"<<endl<<endl;cout<<"\t\t1新增\n\t\t2更改\n\t\t3刪除\n\t\t4查找\n\t\t5顯示\n\t\t6全刪\n\t\t0退出"<<endl;cin>>choice;switch<choice>{case'1':cout<<"輸入圖書編號:"<<endl;cin>>bookid;cout<<"輸入圖書書名:"<<endl;cin>>bname;addbook<bookid,bname>;break;case'2':cout<<"輸入圖書編號:"<<endl;cin>>bookid;b=query<bookid>;if<b==NULL>{cout<<"該圖書不存在"<<endl;break;}cout<<"輸入新的書名:"<<endl;cin>>bname;b->setname<bname>;break;case'3':cout<<"讀入圖書編號:"<<endl;cin>>bookid;b=query<bookid>;if<b==NULL>{cout<<"該圖書不存在"<<endl;break;}b->delbook<>;break;case'4':cout<<"讀入圖書編號:"<<endl;cin>>bookid;b=query<bookid>;if<b==NULL>{cout<<"該圖書不存在"<<endl;break;}b->disp<>;break;case'5':disp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇常州卷2020-2021學年九年級化學上學期期末測試卷(解析版)
- 集團采購豬崽合同范例
- 門承攬合同范例
- 機械費購買合同范例
- 合同范例中種類
- 商鋪房訂購合同范例
- 赤坎租房合同范例
- 采購運費協(xié)議合同范例
- 閑置大棚出租合同范例
- 基輔租房合同范例
- GB/T 13538-2017核電廠安全殼電氣貫穿件
- 英語書法比賽專用紙
- 保安服務項目服務質量標準及日常檢查考核標準
- 2022年1月福建省高中學生學業(yè)基礎會考物理試卷及答案
- 信息系統(tǒng)運維服務方案
- 空調檢驗報告
- 陜西省西安市碑林區(qū)鐵一中學2020-2021學年七年級上學期期末數(shù)學試題(含答案解析)
- 埋地鋼管結構計算
- X-Y數(shù)控工作臺及其控制系統(tǒng)設計
- 電工新技術介紹(課堂PPT)
- 我最喜歡的節(jié)日的小學英語作文我喜歡的節(jié)日英語作文.doc
評論
0/150
提交評論