图书馆登陆管理程序C++课程设计论文.doc
《图书馆登陆管理程序C++课程设计论文.doc》由会员分享,可在线阅读,更多相关《图书馆登陆管理程序C++课程设计论文.doc(25页珍藏版)》请在沃文网上搜索。
1、目 录1题目描述22功能分析33系统设计43.1程序总体结构43.2主功能模块设计53.2.1 图书管理功能53.2.2 读者管理功能53.2.3 借阅管理功能53.3程序设计63.4类与函数的设计与实现73.4.1读者类73.4.2图书类83.4.3读者类库93.4.4图书库类104运行与测试结果125小结166参考文献17 第 1 页1题目描述 请设计一个图书登记管理程序。该程序应该具有下列功能:(1) 通过键盘输入某本图书的信息,并能对图书进行增加、修改、删除和查找;(2) 通过键盘输入读者信息,并可以增加读者、修改读者、删除读者、查找读者和显示读者信息;(3) 实现借阅功能;(4) 实
2、现还书功能。【题目要求】(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;(2) 图书信息应该包含:编号、书名、作者姓名、出版社、价格等;(3) 为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。【输入要求】应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。【输出要求】(1) 应用程序运行后,要在屏幕上显示一个菜单;(2) 要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等
3、。第 2 页2功能分析 根据图书管理的实际要求,结合本系统开发的要求,对与本章所要介绍的“图书管理系统”的需求实现如下功能:1、书籍管理部分:书籍信息管理包括书籍信息的添加、书籍信息的修改、书籍信息的查询、书籍信息的删除等。2、 读者管理部分:读者信息管理包括添加读者信息、修改读者信息、删除读者信息、查询读者信息和读者借阅图书情况等。3、 借阅管理部分:这一部分包括借书信息管理和还书信息管理两部分。main()函数图书维护模块读者维护模块还书模块借书模块图1功能模块图第 25 页3系统设计3.1程序总体结构开始选择相应功能(04)4、读者维护2、还书1、借书5、离开3、图书维护1、 新增2、
4、更改3、 删除4、 查找5、 显示6、 全删1、 新增2、 更改3、 删除4、 查找5、 显示6、 全删图2程序结构图3.2主功能模块设计3.2.1 图书管理功能书籍信息管理:包括书籍信息的添加、书籍信息的修改、书籍信息的查询、书籍信息的删除、书籍信息的显示和书籍信息的全删等6部分功能。其中,书籍信息包括图书编号、书名、图书作者、出版社、价格已及是否在架。 3.2.2 读者管理功能读者信息管理:包括读者信息的添加、读者信息的修改、读者信息的查询和读者信息的删除、读者信息的显示和读者信息的全删等6部分功能。其中,读者信息包括读者姓名、读者编号和已借书数量及编号。3.2.3 借阅管理功能借书管理:
5、借阅信息包括图书编号、读者编号。还书管理:还书信息与借阅信息各部分明细相同。3.3程序设计/main() 函数的实现,程序的主界面的引导 void main() char choice; Book *b; while(choice!=0) cout endlendlttt 图 书 管 理 系 统nnn; cout ttt1 借 书nnttt2 还 书 nnttt3 图 书 维 护nnttt4 读 者 维 护nnttt0 离 开 choice;switch (choice) case 1: 借书 cout 不存在该读者,不能借书 endl; cout 不存在该图书,不能借书 endl; .cou
6、t 该图书已借出,不能借书 endl; break; case 2: 还书cout 不存在该读者,不能还书 endl; cout 不存在该图书,不能还书 endl; break; case 3: 图书维护break; case 4: 读者维护break; default: cout已退出!; 3.4类与函数的设计与实现3.4.1读者类/实现对读者的信息的描述class Reader private: int tag; /删除标记 1:已删 0:未删 int no; /读者编号 char name10; /读者姓名 int borbookMaxbor;/所借图书 public: Reader()
7、 char *getname() return name; /获取姓名 int gettag() return tag; /获取删除标记 int getno() return no; /获取读者编号 void setname(char na) /设置姓名 strcpy(name,na); void delbook() tag=1; /设置删除标记 1:已删 0:未删 void addreader(int n,char *na)/增加读者 tag=0; no=n; strcpy(name,na); for(int i=0;iMaxbor;i+) borbooki=0; void borrowbo
8、ok(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 ;
9、 cout endl; ;3.4.2图书类/实现对图书的描述,图书的编号,书名,借出,还入等class Book private: int tag;/删除标记 1:已删 0:未删 int no;/图书编号 char name20;/书名char author100;/作者char pub200;/出版社int price;/价格int onshelf;/是否再架 1:再架 2:已借 public: Book() char *getname() return name; /获取姓名 int getno() return no; /获取图书编号int getprice() return price
10、; int gettag() return tag; /获取删除标记 void setname(char na)/设置书名 strcpy(name,na); void setauthor(char au)/设置作者 strcpy(author,au); void setpub(char pu)/设置出版社 strcpy(pub,pu); void delbook() tag=1;/删除图书 void addbook(int n,char *na,char *au,char *pu,int t)/增加图书 tag=0; no=n; strcpy(name,na); strcpy(author,a
11、u); strcpy(pub,pu); price=t;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(20) author setw(30) pub setw(6) price setw(10) (onshelf=1? 在架:已借) endl; ;3.4.3读者类库/实现建立读者的个人资料 class RDatabase
12、 private: int top; /读者记录指针 Reader readMaxr;/读者记录 public: RDatabase() /构造函数,将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(); /关闭 reader.txt void clear()/删除所有读者信息 top=-1; int addreade
13、r(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(
14、); void readerdata();/读者库维护 RDatabase() /析构函数,将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(); ;3.4.4图书库类/实现对图书的维护,查找,删除等 class BDatabase private: int top; /图书记录指针 Book bookMaxb; /图书记录 public: BD
15、atabase()/构造函数,将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,char *au,char *pu,int t)/增加图书 Book *p=query(n); if (NULL=p) top+; booktop.addboo
16、k(n,na,au,pu,t); 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()/析构函数,将book写到book.txt文件中 fstream f
17、ile(book.txt,ios:out); for (int i=0;i=top;i+) if (booki.gettag()=0) file.write(char *)&booki,sizeof(booki); file.close(); ;4运行与测试结果运行程序,在主界面选择要进行的操作。选择3 图书维护操作,进入图书维护界面。选择1新增操作,依次输入图书信息。若有无用信息,可以选择3删除操作,或者2更改操作。输入完毕后,选择5显示操作,可以显示刚输入的信息,核对是否正确。界面上有3删除,4查找和6全删操作,可依次进行操作。0退出操作,离开图书维护界面,回到主界面。选择4读者维护,进行
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 登陆 管理程序 C+ 课程设计 论文