程序設計-圖書管理系統(tǒng)_第1頁
程序設計-圖書管理系統(tǒng)_第2頁
程序設計-圖書管理系統(tǒng)_第3頁
程序設計-圖書管理系統(tǒng)_第4頁
程序設計-圖書管理系統(tǒng)_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、程序設計報告( 2014 / 2015 學年 第 一 學期)題 目:南郵圖書館管理系統(tǒng) 專 業(yè) 計算機科學與技術 組長 學號姓名 B13040415 馮加成 組員 學號姓名 B13040405 楊雨虹 B13040425 秦浩程 B13040435 丁九勝 指 導 教 師 汪云云 指 導 單 位 計算機軟件教學中心 日 期 2014年 11月21 日 成員分工馮加成框架設計,文件讀取寫入,菜單楊雨虹添加,刪除秦浩程修改信息,排序,搜索丁九勝借書,還書評分細則評分項優(yōu)秀良好中等差遵守機房規(guī)章制度上機時的表現(xiàn)學習態(tài)度程序準備情況程序設計能力團隊合作精神課題功能實現(xiàn)情況算法設計合理性用戶界面設計報告

2、書寫認真程度內容詳實程度文字表達熟練程度回答問題準確度簡短評語 教師簽名: 汪云云 2014 年 11 月 22 日評分等級備注評分等級共五種:優(yōu)秀、良好、中等、及格、不及格南郵圖書館管理系統(tǒng)課題內容和要求該系統(tǒng)要求建立一個南郵圖書館管理系統(tǒng),并具有排序、查找、計算、顯示等功能。通過此課題,熟練掌握文件、數(shù)組、指針的各種操作,以及一些算法思想的應用。一、 需求分析功能框架圖:圖書管理系統(tǒng)查詢圖書添加刪除修改借書還書借書信息退出程序(1)查詢圖書:按書名搜索books.txt(2)添加:添加圖書到文件books.txt(3)刪除:刪除圖書到文件books.txt(4)修改:修改某本書的信息,保存

3、到books.txt(5)借書:借書,并修改books.txt和borrowedbooks.txt(6)還書:還書,并修改books.txt和borrowedbooks.txt(7)借書信息:讀取borrowedbooks.txt,顯示借的書及借書人和即將到期的書(8)退出程序二、 概要設計1) 主要結構體:class Bookpublic:string id;string name;string adress;string classification;int num;string price;string In_date;long Back_date;string borrowername

4、;long borrowtime;int times;int state;public:void copy(Book &book);2) 主要函數(shù)流程圖:buffer和borrowedbookbuffer函數(shù):將文件讀取,以一個數(shù)組返回開始讀取文件能否打開申請空間,讀入數(shù)據(jù)返回空間首地址結束否是 借書: 還書:開始Buffer能否找到還書,修改數(shù)據(jù)保存,修改借書庫(borrowedbookupdate)結束遍歷搜索保存圖書數(shù)據(jù)庫(update)否是開始Buffer能否找到借書,修改數(shù)據(jù)保存,插入到借書庫(borrowedbookupdate)結束遍歷搜索保存圖書數(shù)據(jù)庫(update)否是 添加

5、: 刪除:開始Buffer能否找到刪除書,修改數(shù)據(jù)結束遍歷搜索保存圖書數(shù)據(jù)庫(update)否是開始輸入信息能否找到寫入數(shù)據(jù)庫(writeIn)結束搜索同名圖書是否 排序: 修改數(shù)據(jù):開始Buffer能否找到修改數(shù)據(jù)結束遍歷搜索保存圖書數(shù)據(jù)庫(update)是否繼續(xù)修改否否是是開始Buffer選擇排序結束保存圖書數(shù)據(jù)庫(update)三、 源程序代碼 1.book.h#include#includeusing namespace std;class Bookpublic:string id;string name;string adress;string classification;int

6、num;string price;string In_date;long Back_date;string borrowername;long borrowtime;int times;int state;public:void copy(Book &book);void Book:copy(Book &book)id=book.id;name=;adress=book.adress;classification=book.classification;num=book.num;price=book.price;In_date=book.In_date;Back_date=b

7、ook.Back_date;borrowername=book.borrowername;borrowtime=book.borrowtime;times=book.times;state=book.state;2.borrowed_return.h#include#include#include#include#includefile.husing namespace std;void borrowedDelete(string bookname,int m,string name);void borrowedInsert(Book b,int num,string name);void b

8、orrowBook();void returnBook();void borrowedDelete(string bookname,int m,string name)Book* b;int n;int i;int j;int k=0;b=borrowedbookbuffer(n); /for (i=0;in;i+)if(bipare(bookname)=0 & bipare(name)=0)k=1;bi.num=bi.num-m;if(bi.num=0)for (j=i;jn-1;j+)bj.copy(bj+1);n-;break;if(k=0)cout輸入信息錯誤endl;return;b

9、orrowedbookupdate(b,n);/delete b;void borrowedInsert(Book b,int num,string name)ofstream outf(borrowedbooks.txt,ios:app);if(!outf)coutcannot open the fileendl;return ;outfb.id ; ;outfb.adress ;outfb.classification ;outfnum ;outfb.price ; time_t timeval; timeval=time(NULL); outftimeval ; ou

10、tftimeval+86400*14 ; /兩周到期outfname ;outfendl;outf.close();void borrowBook()string bookname;coutbookname;Book* b;int i;int m;int n;int k=0;string name;b=buffer(n); /for (i=0;in;i+)if(bipare(bookname)=0)cout借幾本?m;cout姓名:name;if(bi.numm)cout書不夠。endl;return ;bi.num=bi.num-m;bi.times=bi.times+m;if(bi.num

11、=0)bi.state=0;k=1;break;if(k=0)cout沒有該書.endl;return ;update(b,n); /borrowedInsert(bi,m,name);delete b;sort(); /void returnBook()Book* b;int i;int n;int k=0;int m;string name;string bookname;b=buffer(n); /cout還的書名:bookname;for (i=0;in;i+)if(bipare(bookname)=0)k=1;cout姓名:name;cout還幾本?m;bi.num=bi.num+m

12、;if(k=0)cout沒有該書.endl;return ;borrowedDelete(bookname,m,name);update(b,n);delete b;3.change_sort_search.h#ifndef CHANGE_SORT_SEARCH_H#define CHANGE_SORT_SEARCH_H#include#include#include#include#includefile.husing namespace std;bool search(string bookname);bool search();void sort();void menuDetails()

13、;void changeDetails();bool search(string bookname)/search函數(shù)重載Book* b;int i=0;int k=0;int n;b=buffer(n); /調用緩存函數(shù),將b指針指向緩存區(qū)for (i=0;in;i+)if(bipare(bookname)=0)view(bi); /找到后,輸出k=1;if(k=1)return true;elsecout沒有該書.endl;return false;delete b;bool search() /search函數(shù)重載string bookname;cout輸入書名:bookname;Boo

14、k* b;int i=0;int k=0;int n;b=buffer(n); /調用緩存函數(shù),將b指針指向緩存區(qū)for (i=0;in;i+)if(bipare(bookname)=0)view(bi);k=1;if(k=1)return true;elsecout沒有該書.endl;return false;delete b;void sort()Book* b;int i=0;int j=0;int index;int n;b=buffer(n); /調用緩存函數(shù),將b指針指向緩存區(qū)for(i=0;in-1;i+) /選擇排序法index=i;for(j=i+1;jn;j+)if(bin

15、dex.timesbj.times)index=j;if(index!=i)Book temp;temp.copy(bi);bi.copy(bindex);bindex.copy(temp);update(b,n);delete b;void menuDetails()coutendl;cout 修改哪一項: endl;cout 1.索引號 endl;cout 2.書名 endl;cout 3.館藏地 endl;cout 4.分類 endl;cout 5.數(shù)量 endl;cout 6.價格 endl;cout 7.入館時間 endl;cout 8.接觸次數(shù) endl;cout 9.是否可借 e

16、ndl;cout 0.完成 endl;coutendl;void changeDetails()Book * b;int n;int i;string x;int s;int k=0;string bookname;b=buffer(n);/調用緩存函數(shù),將b指針指向緩存區(qū)cout修改哪一本?name?bookname;for (i=0;in;i+)if(bipare(bookname)=0)k=1;view(bi);break;if(k=0)cout沒有該書.endl;return ;do coutx;getchar();stringstream sin(x);if(!(sins)cout非

17、法輸入endl;continue;stringstream sin2;sin2s;if(sin2.str().compare(x)!=0)cout非法輸入bi.id;break;case 2:;break;case 3:cinbi.adress;break;case 4:cinbi.classification;break;case 5:cinbi.num;break;case 6:cinbi.price;break;case 7:cinbi.In_date;break;case 8:cinbi.times;break;case 9:cinbi.state;break;ca

18、se 0:break ;while(s!=0);view(bi); update(b,n); /保存delete b;#endif4.delete_add.h#include#include#include#include#includechange_sort_search.h#includefile.husing namespace std;void add_book();void deleteBook();void add_book()string name;Book newbook;coutnewbook.id;;name=;if(

19、search(name) /cout已存在該書,添加失敗endl;return ;coutnewbook.adress;coutnewbook.classification;coutnewbook.num;coutnewbook.price;coutnewbook.In_date;newbook.times=0;newbook.state=1;writeIn(newbook); /cout添加成功endl;void deleteBook()Book* b;int n;int i;int j;int k=0;b=buffer(n);string bookname;cout輸入待刪除的書:book

20、name;for (i=0;in;i+)if(bipare(bookname)=0)/ string s1; pare(s2)=0;k=1;for (j=i;jn-1;j+)bj.copy(bj+1); /n-;break;if(k=0)cout沒有該書.endl;return ;update(b,n); /delete b;5.file.h#ifndef FILE_H#define FILE_H#include#include#include#include#includebook.husing namespace std;Book* borrowedbookbuffer(int &n);B

21、ook* buffer(int &n);void writeIn(Book &b);void update(Book *b,int n);void borrowedbookupdate(Book *b,int n);void borrowedbookupdate(Book *b,int n)int i;ofstream outf(borrowedbooks.txt);if(!outf)coutcannot open the fileendl;return ;for(i=0;in;i+)outfbi.id ; ;outfbi.adress ;outfbi.classific

22、ation ;outfbi.num ;outfbi.price ;outfbi.borrowtime ;outfbi.Back_date ;outfbi.borrowername ;outfendl;outf.close();void writeIn(Book &b)ofstream outf(books.txt,ios:app);if(!outf)coutcannot open the fileendl;return ;outfb.id ; ;outfb.adress ;outfb.classification ;outfb.num ;outfb.price ;outfb

23、.In_date ;outfb.times ;outfb.state ;outfendl;outf.close();void update(Book *b,int n)int i=0;ofstream outf(books.txt);if(!outf)coutcannot open the fileendl;return ;for(i=0;in;i+)outfbi.id ; ;outfbi.adress ;outfbi.classification ;outfbi.num ;outfbi.price ;outfbi.In_date ;outfbi.times ;outfb

24、i.state ;outfendl;outf.close();Book* borrowedbookbuffer(int &n)string s;n=0;int i=0;ifstream inf(borrowedbooks.txt); if(!inf)coutcannot open the files;n+;n=n/9;Book* b=new Bookn;inf.clear();inf.seekg(0,ios:beg);while(!inf.eof()&ibi.id;;infbi.adress;infbi.classification;infbi.num;infbi.pric

25、e;infbi.borrowtime;infbi.Back_date;infbi.borrowername;i+;return b;Book* buffer(int &n)string s;int i=0;ifstream inf(books.txt); if(!inf)coutcannot open the files;n+;n=n/9;Book* b=new Bookn;inf.clear();inf.seekg(0,ios:beg);while(!inf.eof()&ibi.id;;infbi.adress;infbi.classification;infbi.num

26、;infbi.price;infbi.In_date;infbi.times;infbi.state;i+;return b;#endif6.view.h#include#include#include#include#includefile.husing namespace std;void view(Book b);void outPutDirectory();void soonExpire();void borrowedview();void viewAll();void view(Book b)cout索引號 : b.idendl;cout書名 : endl;cout館藏地

27、 : b.adressendl;cout分類 : b.classificationendl;cout數(shù)目 : b.numendl;cout價格 : b.priceendl;cout入庫時間 : b.In_dateendl;cout次數(shù) : b.timesendl;if(b.state)cout可/不可借: 可借endl;elsecout可/不可借: 不可借endl;coutendl;void outPutDirectory()Book *b;int n;int i;b=buffer(n);for(i=0;in;i+)coutid : bi.id ;coutname: ;cout

28、endl;delete b;void soonExpire()Book* b;int n=0;int i;int k=0;b=borrowedbookbuffer(n); time_t timeval; timeval=time(NULL); int threeDay=86400*3;for (i=0;in;i+)if(bi.Back_date)=(timeval+threeDay)k=1;cout索引號 : bi.idendl;cout書名 : endl;cout館藏地 : bi.adressendl;cout分類 : bi.classificationendl;cout數(shù)目

29、: bi.numendl;cout價格 : bi.priceendl;cout借書日期 : ctime(&bi.borrowtime);cout到期時間 : ctime(&bi.Back_date);cout借書人 : bi.borrowernameendl;coutendl;if(k=0)cout沒有即將到期的書endl;void borrowedview()Book* b;int n=0;int i;b=borrowedbookbuffer(n);for (i=0;in;i+)cout索引號 : bi.idendl;cout書名 : endl;cout館藏地 : bi.adr

30、essendl;cout分類 : bi.classificationendl;cout數(shù)目 : bi.numendl;cout價格 : bi.priceendl;cout借書日期 : ctime(&bi.borrowtime);cout到期時間 : ctime(&bi.Back_date);cout借書人 : bi.borrowernameendl;coutendl;void viewAll()Book* b;int i=0;int j=0;int n;b=buffer(n);for(i=0;in;i+)view(bi);coutendl;delete b;7.南郵圖書管理系統(tǒng).cpp#inc

31、lude#include#include#include#include#includeview.h#includedelete_add.h#includechange_sort_search.h#includeborrow_return.husing namespace std;class Book;void search_menu();void add_menu();void delete_menu();void return_menu();void change_menu();void borrowedBook_menu();void Menu();void search_menu()c

32、outendl;cout 1. 顯示圖書館所有圖書 endl;cout 2. 查詢 endl;cout 0. 返回 endl;coutendl;string x;int s;docoutx;getchar();stringstream sin(x);if(!(sins)cout非法輸入endl;continue;stringstream sin2;sin2s;if(sin2.str().compare(x)!=0)cout非法輸入endl;continue;switch(s)case 1: viewAll();system(PAUSE);system(cls);coutendl;cout 1. 顯示圖書館所有圖書 endl;cout 2. 查詢 endl;cout 0. 返回 endl;coutendl;break;case 2: search();system(PAUSE);system(cls);coutendl;cout 1. 顯示圖書館所有圖書 endl;cout 2. 查詢 endl;cout 0. 返回 endl;coutendl;break;case 0: system(cls);Menu() ;default:cout非法輸入endl;break;while(s!=0);voi

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論