




已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
目錄第一章 需求分析3(一) 系統(tǒng)總體功能需求3(二)圖書借書模塊功能分析4(四)圖書維護模塊功能的需求5(七) 離開功能7第二章 圖書管理系統(tǒng)界面設(shè)計8(一) 初始界面8(二) 圖書維護8(三) 讀者維護界面9(四) 圖書借還10(五)不存在提示10(六) 離開11第三章 圖書管理系統(tǒng)應(yīng)用程序代碼11(一) 讀者模塊121)讀者類,實現(xiàn)對讀者的信息的描述122)讀者類庫,實現(xiàn)建立讀者的個人資料13(二) 圖書模塊161)圖書類,實現(xiàn)對圖書的描述,圖書的編號,書名,借出,還入等172)圖書庫類,實現(xiàn)對圖書的維護,查找,刪除等18(三) 主程序模塊21main() 函數(shù)的實現(xiàn),程序的主界面的引導(dǎo)21(四)完整程序23第四章 結(jié)束語32第五章 參考文獻32*圖書館管理系統(tǒng)運用面向?qū)ο蠓椒▽D書館管理系統(tǒng)進行分析圖書館管理系統(tǒng)是我國大部分院校或其它部門不可缺少的部分,書籍是人類精神食糧,尤其對一些學(xué)校,圖書館來說,非常重要。在軟件開發(fā)中,以計算機圖書為主,稱“計算機圖書管理系統(tǒng)”。計算機圖書管理系統(tǒng)能夠為用戶實現(xiàn)借閱圖書、管理等,隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。作為計算機應(yīng)用的一部分,使用計算機對圖書資源信息進行管理,具有著手工管理所無法比擬的優(yōu)點.例如:查閱迅速、安全性高、可靠性高、存儲量大、保密性好、成本低等。計算機圖書管理系統(tǒng)能夠單一定向計算機圖書方面,具有實用,精簡功能等效率,這些優(yōu)點能夠極大地提高圖書館管理的效率,也是企業(yè)、學(xué)校的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。因此,開發(fā)這樣一套管理軟件是很有必要. 本案例開發(fā)的是“計算機圖書管理系統(tǒng)” =第一章 需求分析(一) 系統(tǒng)總體功能需求圖書館可以為借閱者提供借還書、查詢書目等服務(wù)。借閱者每次最多能借5本書。借書員主要負責(zé)借還及新增更改書目讀者,查詢等工作,圖書管理員負責(zé)圖書信息的增減及讀者信息的維護。所有人員都可以瀏覽和查詢圖書信息。經(jīng)過初步分析,圖書館管理系統(tǒng)應(yīng)該具有以下幾個模塊:1)借書模塊2)還書模塊3)圖書維護模塊4)讀者維護模塊5)提示6)離開圖書管理系統(tǒng)借書模塊還書模塊圖書維護模塊讀者維護模塊提示離開(二)圖書借書模塊功能分析圖書借閱功能需要完成借閱者對相應(yīng)圖書的借閱。借閱者的借閱數(shù)量是有限定的,系統(tǒng)會自動檢查是超過限定借閱的數(shù)量,若超過限定數(shù)量則不允許借閱。若當(dāng)前要借閱的圖書已經(jīng)被其他人預(yù)約,讀者也無法完成借閱。輸入:借閱者的編號及圖書的編號處理:系統(tǒng)進行分析比較借閱數(shù)量及是否預(yù)約輸出:是否允許借閱借書模塊需求(三)圖書還書模塊功能分析圖書歸還功能需要完成圖書的歸還工作。輸入:圖書的編號處理:系統(tǒng)進行分析比較是否已超歸還期輸出:是否進行罰款還書模塊需求(四)圖書維護模塊功能的需求實現(xiàn)對圖書的描述,圖書的編號,書名,借出,還入等,需要實現(xiàn)的功能為:圖書編目,圖書注冊,更新書目,圖書刪除。1) 登記新書:將圖書的特征信息(書名、圖書編號等)存儲在數(shù)據(jù)庫中,圖書的借閱、圖書信息的查詢都是以其作為基礎(chǔ)的。2) 更新書目:當(dāng)發(fā)現(xiàn)圖書信息錯誤時,可以進行圖書信息的修改。3) 圖書查找:對圖書館新引進的書進行編制唯一的號碼(圖書編號),以便于圖書的管理和查找。4) 圖書刪除:將廢舊的或丟失的圖書信息刪除,以減少數(shù)據(jù)庫中的無用信息,也會減少圖書查詢中的錯誤信息。輸入:圖書的相關(guān)信息(如:編號、名稱、作者等)處理:系統(tǒng)進行保存、更新、刪除等操作輸出:圖書變更的后的信息,操作是否成功圖書維護模塊需求(五) 讀者維護模塊功能的需求 對讀者信息描述,建立讀者個人資料,借閱者管理需要實現(xiàn)的功能包括:借閱者注冊,借閱者信息更新,借閱者注銷,借閱者信息的查詢。1) 讀者新增:借閱者作為圖書館流通的主體,其信息的注冊(將讀者的特征信息存儲在數(shù)據(jù)庫中)也是圖書館自動化必須完成的任務(wù)。2) 讀者信息更改:當(dāng)發(fā)現(xiàn)借閱者信息錯誤或者當(dāng)借閱者的某些信息發(fā)生變動時,可以對讀者信息進行修改。3) 讀者刪除:由于某些原因需要對該借閱者注銷,只有滿足條件的借閱者才能進行注銷。4)讀者查找:借閱者借閱書籍的歷史查詢。輸入:借閱者的相關(guān)信息處理:系統(tǒng)進行注冊、更新、注銷、查詢等操作輸出:借閱者信息維護后的結(jié)果,及修改是否成功讀者維護模塊需求(六) 提示功能當(dāng)出現(xiàn)庫存查無此書或讀者時,給予相應(yīng)提示。(七) 離開功能實現(xiàn)管理后的系統(tǒng)退出。=第二章 圖書管理系統(tǒng)界面設(shè)計(一) 初始界面鍵盤輸入相應(yīng)數(shù)字進入相應(yīng)界面。(二) 圖書維護選擇3,進入圖書維護界面,注冊圖書;1)圖書新增2)圖書更改3)圖書查找4)圖書刪除(三) 讀者維護界面選擇4,進入讀者維護界面,注冊讀者。1)讀者新增2)讀者更改3)讀者刪除4)讀者查找(四) 圖書借還1)圖書借閱,選擇1,進入借書界面。2)圖書歸還,選擇2,進入歸還界面。(五)不存在提示進入系統(tǒng)后,如果有不存在的書籍或讀者,給予提示。(六) 離開管理后的系統(tǒng)退出。=第三章 圖書管理系統(tǒng)應(yīng)用程序代碼 程序一共分為3個模塊:讀者模塊,圖書模塊和主程序模塊。 讀者模塊是由劉鳴靜負責(zé)的,分為讀者類和讀者庫類。讀者類主要實現(xiàn)對讀者的信息的描述。讀者庫類主要實現(xiàn)建立讀者的個人資料。 圖書模塊是由李悅負責(zé)的,分為圖書類和圖書庫類。圖書類主要實現(xiàn)對圖書的描述,圖書的編號,書名,借出,還入等。圖書庫類主要實現(xiàn)對圖書的維護,查找,刪除等。主程序模塊是由馬春艷負責(zé)的,主要實現(xiàn)的是程序的主界面的引導(dǎo)。(一) 讀者模塊1)讀者類,實現(xiàn)對讀者的信息的描述class Reader private:int tag; /刪除標(biāo)記 1:已刪 0:未刪int no; /讀者編號char name10; /讀者姓名int borbookMaxbor;/所借圖書 public:Reader() char *getname() return name; /獲取姓名int gettag() return tag; /獲取刪除標(biāo)記 int getno() return no; /獲取讀者編號 void setname(char na) /設(shè)置姓名 strcpy(name,na);void delbook() tag=1; /設(shè)置刪除標(biāo)記 1:已刪 0:未刪void addreader(int n,char *na)/增加讀者 tag=0;no=n;strcpy(name,na);for(int i=0;iMaxbor;i+)borbooki=0;void borrowbook(int bookid)/借書操作for(int i=0;iMaxbor;i+) if (borbooki=0)borbooki=bookid;return;int retbook(int bookid)/還書操作 for(int i=0;iMaxbor;i+) if(borbooki=bookid)borbooki=0;return 1;return 0;void disp()/讀出讀者信息 cout setw(5) no setw(10) name借書編號:;for(int i=0;iMaxbor;i+)if(borbooki!=0)cout borbooki |;cout endl;2)讀者類庫,實現(xiàn)建立讀者的個人資料 class RDatabase private: int top; /讀者記錄指針 Reader readMaxr;/讀者記錄public:RDatabase() /構(gòu)造函數(shù),將reader.txt讀到read中Reader s;top=-1;fstream file(reader.txt,ios:in);/打開一個輸入文件while (1)file.read(char *)&s,sizeof(s);if (!file)break;top+;readtop=s;file.close(); /關(guān)閉 reader.txt void clear()/刪除所有讀者信息top=-1;int addreader(int n,char *na)/添加讀者時先查找是否存在Reader *p=query(n);if (p=NULL) top+; readtop.addreader(n,na); return 1;return 0; Reader *query(int readerid)/按編號查找for (int i=0;i=top;i+)if (readi.getno()=readerid & readi.gettag()=0)return &readi;return NULL;void disp() /輸出所有讀者信息 for (int i=0;i=top;i+) readi.disp();void readerdata();/讀者庫維護RDatabase() /析構(gòu)函數(shù),將read寫到reader.txt文件中fstream file(reader.txt,ios:out); for (int i=0;i=top;i+)if (readi.gettag()=0)file.write(char *)&readi,sizeof(readi);file.close(); ;void RDatabase:readerdata() char choice;char rname20;int readerid;Reader *r;while (choice!=0) cout nnttt讀 者 維 護nnntt 1 新 增nntt 2 更 改nntt 3 刪 除nntt 4 查 找nntt 5 顯 示nntt 6 全 刪nntt 0 退 出 choice;switch (choice) case 1:cout readerid;cout rname;addreader (readerid,rname);break; case 2:cout readerid;r=query(readerid);if (r=NULL)cout 該讀者不存在 endl; break;cout rname;r-setname(rname); break; case 3: cout readerid;r=query(readerid);if (r=NULL) cout 該讀者不存在 delbook();break;case 4:cout readerid;r=query(readerid);if (r=NULL)cout 該讀者不存在disp();break;case 5:disp();break;case 6:clear();break;default:cout輸入錯誤,請從新輸入:;break;(二) 圖書模塊1)圖書類,實現(xiàn)對圖書的描述,圖書的編號,書名,借出,還入等class Bookprivate: int tag;/刪除標(biāo)記 1:已刪 0:未刪int no;/圖書編號char name20;/書名int onshelf;/是否再架 1:再架 2:已借public:Book()char *getname() return name; /獲取姓名int getno() return no; /獲取圖書編號int gettag() return tag; /獲取刪除標(biāo)記void setname(char na)/設(shè)置書名strcpy(name,na);void delbook() tag=1;/刪除圖書void addbook(int n,char *na)/增加圖書tag=0;no=n;strcpy(name,na);onshelf=1;int borrowbook()/借書操作if (onshelf=1)onshelf=0;return 1;return 0;void retbook()/還書操作onshelf=1;void disp()/輸出圖書cout setw(6) no setw(18) name setw(10)(onshelf=1? 在架:已借) endl;2)圖書庫類,實現(xiàn)對圖書的維護,查找,刪除等class BDatabaseprivate: int top; /圖書記錄指針Book bookMaxb; /圖書記錄public:BDatabase()/構(gòu)造函數(shù),將book.txt讀到book中 Book b;top=-1;fstream file(book.txt,ios:in);while (1)file.read(char *)&b,sizeof(b);if (!file) break;top+;booktop=b;file.close(); void clear()/全刪top=-1; int addbook(int n,char *na)/增加圖書Book *p=query(n);if (NULL=p)top+;booktop.addbook(n,na);return 1;return 0;Book *query(int bookid)/查找圖書for (int i=0;i=top;i+)if (booki.getno()=bookid &booki.gettag()=0)return &booki;return NULL;void bookdata();/圖書庫維護void disp() for (int i=0;i=top;i+) if (booki.gettag()=0) booki.disp();BDatabase()/析構(gòu)函數(shù),將book寫到book.txt文件中fstream file(book.txt,ios:out); for (int i=0;i=top;i+)if (booki.gettag()=0)file.write(char *)&booki,sizeof(booki);file.close();void BDatabase:bookdata() char choice;char bname40;int bookid;Book *b;while (choice!=0)cout nnnttt圖 書 維 護 endlendl;couttt1 新 增n tt2 更 改ntt3 刪 除ntt4 查 找ntt5 顯 示ntt6 全 刪ntt0 退 出 choice;switch (choice) case 1:cout 輸入圖書編號: bookid; cout 輸入圖書書名: bname;addbook(bookid,bname);break; case 2:cout 輸入圖書編號: bookid;b=query(bookid);if (b=NULL)cout 該圖書不存在 endl; break;cout 輸入新的書名: bname;b-setname(bname); break; case 3: cout 讀入圖書編號: bookid;b=query(bookid);if (b=NULL) cout 該圖書不存在 delbook();break;case 4:cout 讀入圖書編號: bookid;b=query(bookid);if (b=NULL)cout 該圖書不存在disp();break;case 5:disp();break;case 6:clear();break;default:cout輸入錯誤,請從新輸入:;(三) 主程序模塊main() 函數(shù)的實現(xiàn),程序的主界面的引導(dǎo)int main() char choice;int bookid,readerid;RDatabase ReaderDB;Reader *r;BDatabase BookDB;Book *b;while(choice!=0) cout endlendlttt 圖 書 管 理 系 統(tǒng)nnn; cout ttt1 借 書nnttt2 還 書 nnttt3 圖 書 維 護nnttt4 讀 者 維 護nnttt0 離 開 choice;switch (choice)case 1:cout readerid;cout bookid;r=ReaderDB.query(readerid);/按編號查找if (NULL=r)cout 不存在該讀者,不能借書 endl;break;b=BookDB.query(bookid);if (b=NULL)cout 不存在該圖書,不能借書borrowbook()=0)cout 該圖書已借出,不能借書borrowbook(b-getno();break;case 2:coutreaderid;cout bookid;r=ReaderDB.query(readerid);if (r=NULL)cout 不存在該讀者,不能還書 endl;break;b=BookDB.query(bookid);if (b=NULL)cout 不存在該圖書,不能還書 retbook();r-retbook(b-getno();break;case 3:BookDB.bookdata();break;case 4: ReaderDB.readerdata(); break;default:cout輸入錯誤,請從新輸入:;(四)完整程序#include #include #include #include /輸入/輸出文件流類using namespace std;const int Maxr=100;/最多的讀者const int Maxb=100;/最多的圖書const int Maxbor=5;/每位讀者最多借五本書/讀者類,實現(xiàn)對讀者的信息的描述class Reader private:int tag; /刪除標(biāo)記 1:已刪 0:未刪int no; /讀者編號char name10; /讀者姓名int borbookMaxbor;/所借圖書 public:Reader() char *getname() return name; /獲取姓名int gettag() return tag; /獲取刪除標(biāo)記 int getno() return no; /獲取讀者編號 void setname(char na) /設(shè)置姓名 strcpy(name,na);void delbook() tag=1; /設(shè)置刪除標(biāo)記 1:已刪 0:未刪void addreader(int n,char *na)/增加讀者 tag=0;no=n;strcpy(name,na);for(int i=0;iMaxbor;i+)borbooki=0;void borrowbook(int bookid)/借書操作for(int i=0;iMaxbor;i+) if (borbooki=0)borbooki=bookid;return;int retbook(int bookid)/還書操作 for(int i=0;iMaxbor;i+) if(borbooki=bookid)borbooki=0;return 1;return 0;void disp()/讀出讀者信息 cout setw(5) no setw(10) name借書編號:;for(int i=0;iMaxbor;i+)if(borbooki!=0)cout borbooki |;cout endl;/讀者類庫,實現(xiàn)建立讀者的個人資料 class RDatabase private: int top; /讀者記錄指針 Reader readMaxr;/讀者記錄public:RDatabase() /構(gòu)造函數(shù),將reader.txt讀到read中Reader s;top=-1;fstream file(reader.txt,ios:in);/打開一個輸入文件while (1)file.read(char *)&s,sizeof(s);if (!file)break;top+;readtop=s;file.close(); /關(guān)閉 reader.txt void clear()/刪除所有讀者信息top=-1;int addreader(int n,char *na)/添加讀者時先查找是否存在Reader *p=query(n);if (p=NULL) top+; readtop.addreader(n,na); return 1;return 0; Reader *query(int readerid)/按編號查找for (int i=0;i=top;i+)if (readi.getno()=readerid & readi.gettag()=0)return &readi;return NULL;void disp() /輸出所有讀者信息 for (int i=0;i=top;i+) readi.disp();void readerdata();/讀者庫維護RDatabase() /析構(gòu)函數(shù),將read寫到reader.txt文件中fstream file(reader.txt,ios:out); for (int i=0;i=top;i+)if (readi.gettag()=0)file.write(char *)&readi,sizeof(readi);file.close(); ;void RDatabase:readerdata() char choice;char rname20;int readerid;Reader *r;while (choice!=0) cout nnttt讀 者 維 護nnntt 1 新 增nntt 2 更 改nntt 3 刪 除nntt 4 查 找nntt 5 顯 示nntt 6 全 刪nntt 0 退 出 choice;switch (choice) case 1:cout readerid;cout rname;addreader (readerid,rname);break; case 2:cout readerid;r=query(readerid);if (r=NULL)cout 該讀者不存在 endl; break;cout rname;r-setname(rname); break; case 3: cout readerid;r=query(readerid);if (r=NULL) cout 該讀者不存在 delbook();break;case 4:cout readerid;r=query(readerid);if (r=NULL)cout 該讀者不存在disp();break;case 5:disp();break;case 6:clear();break;default:cout輸入錯誤,請從新輸入:;break;/圖書類,實現(xiàn)對圖書的描述,圖書的編號,書名,借出,還入等class Bookprivate: int tag;/刪除標(biāo)記 1:已刪 0:未刪int no;/圖書編號char name20;/書名int onshelf;/是否再架 1:再架 2:已借public:Book()char *getname() return name; /獲取姓名int getno() return no; /獲取圖書編號int gettag() return tag; /獲取刪除標(biāo)記void setname(char na)/設(shè)置書名strcpy(name,na);void delbook() tag=1;/刪除圖書void addbook(int n,char *na)/增加圖書tag=0;no=n;strcpy(name,na);onshelf=1;int borrowbook()/借書操作if (onshelf=1)onshelf=0;return 1;return 0;void retbook()/還書操作onshelf=1;void disp()/輸出圖書cout setw(6) no setw(18) name setw(10)(onshelf=1? 在架:已借) endl;/圖書庫類,實現(xiàn)對圖書的維護,查找,刪除等class BDatabaseprivate: int top; /圖書記錄指針Book bookMaxb; /圖書記錄public:BDatabase()/構(gòu)造函數(shù),將book.txt讀到book中 Book b;top=-1;fstream file(book.txt,ios:in);while (1)file.read(char *)&b,sizeof(b);if (!file) break;top+;booktop=b;file.close(); void clear()/全刪top=-1; int addbook(int n,char *na)/增加圖書Book *p=query(n);if (NULL=p)top+;booktop.addbook(n,na);return 1;return 0;Book *query(int bookid)/查找圖書for (int i=0;i=top;i+)if (booki.getno()=bookid &booki.gettag()=0)return &booki;return NULL;void bookdata();/圖書庫維護void disp() for (int i=0;i=top;i+) if (booki.gettag()=0) booki.disp();BDatabase()/析構(gòu)函數(shù),將book寫到book.txt文件中fstream file(book.txt,ios:out); for (int i=0;i=top;i+)if (booki.gettag()=0)file.write(char *)&booki,sizeof(booki);file.close();void BDatabase:bookdata() char choice;char bname40;int bookid;Book *b;while (choice!=0)cout nnnttt圖 書 維 護 endlendl;couttt1 新 增n tt2 更 改ntt3 刪 除ntt4 查 找ntt5 顯 示ntt6 全 刪ntt0 退 出 choice;switch (choice) case 1:cout 輸入圖書編號: bookid; cout 輸入圖書書名: bname;addbook(bookid,bname);break; case 2:cout 輸入圖書編號: bookid;b=query(bookid);if
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 品牌宣傳在包裝設(shè)計中的情感訴求考核試卷
- 保健品市場品牌宣傳策略的傳播渠道選擇考核試卷
- 智能物流設(shè)備維護市場分析考核試卷
- 價值創(chuàng)造與傳遞考核試卷
- 優(yōu)惠價房買賣合同4篇
- 兒科護士長年度工作總結(jié)(4篇)
- 化工行業(yè)綠色物流與循環(huán)經(jīng)濟智能倉儲方案
- 株洲酒店開業(yè)活動方案
- 武漢五四活動方案
- 道路施工工藝培訓(xùn)
- 建筑工程設(shè)計合作協(xié)議書
- 谷子介紹課件
- 直播肖像權(quán)使用合同協(xié)議
- 2025屆高考政治復(fù)習(xí)重點知識大全(全7冊)
- 電梯公告板制度
- 餐飲內(nèi)部考核管理制度
- 酒吧股東合伙協(xié)議書
- 臥床病人康復(fù)鍛煉課件
- 兒科換錯藥護理不良事件
- 糖尿病管理工作制度
評論
0/150
提交評論