1、C+课程设计论文目 录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参考文献 171题目描述 请设计一个图书登记管理程序。该程序应该具有下列功能:(1) 通过键盘输入某本图书的信息,并能对图书进行增加、修改、删除和查找;(2) 通过键盘输入读者信息,并可以增加读者、修改读者、删除读者、查找读者和显示读者
2、信息;(3) 实现借阅功能;(4) 实现还书功能。【题目要求】(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;(2) 图书信息应该包含:编号、书名、作者姓名、出版社、价格等;(3) 为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。【输入要求】应用程序运行后,在屏幕上显示一个菜单(菜单显示外观见前面的图示)。用户可以根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。【输出要求】(1) 应用程序运行后,要在屏幕上显示一个菜单;(2) 要求用户输入数据时,要给出清晰、明确的提示信息
3、,包括输入的数据内容、格式及结束方式等。2功能分析 根据图书管理的实际要求,结合本系统开发的要求,对与本章所要介绍的“图书管理系统”的需求实现如下功能:1、书籍管理部分:书籍信息管理包括书籍信息的添加、书籍信息的修改、书籍信息的查询、书籍信息的删除等。2、 读者管理部分:读者信息管理包括添加读者信息、修改读者信息、删除读者信息、查询读者信息和读者借阅图书情况等。3、 借阅管理部分:这一部分包括借书信息管理和还书信息管理两部分。图1功能模块图3系统设计3.1程序总体结构图2程序结构图3.2主功能模块设计3.2.1 图书管理功能书籍信息管理:包括书籍信息的添加、书籍信息的修改、书籍信息的查询、书籍
4、信息的删除、书籍信息的显示和书籍信息的全删等6部分功能。其中,书籍信息包括图书编号、书名、图书作者、出版社、价格已及是否在架。 3.2.2 读者管理功能读者信息管理:包括读者信息的添加、读者信息的修改、读者信息的查询和读者信息的删除、读者信息的显示和读者信息的全删等6部分功能。其中,读者信息包括读者姓名、读者编号和已借书数量及编号。3.2.3 借阅管理功能借书管理:借阅信息包括图书编号、读者编号。还书管理:还书信息与借阅信息各部分明细相同。3.3程序设计/main() 函数的实现,程序的主界面的引导 void main() char choice; Book *b; while(choice!
5、=0) cout endlendlttt 图 书 管 理 系 统nnn; cout ttt1 借 书nnttt2 还 书 nnttt3 图 书 维 护nnttt4 读 者 维 护nnttt0 离 开 choice; switch (choice) case 1: 借书 cout 不存在该读者,不能借书 endl; cout 不存在该图书,不能借书 endl; . cout 该图书已借出,不能借书 endl; break; case 2: 还书 cout 不存在该读者,不能还书 endl; cout 不存在该图书,不能还书 endl; break; case 3: 图书维护break; case
6、 4: 读者维护break; default: cout已退出!; 3.4类与函数的设计与实现3.4.1读者类/实现对读者的信息的描述class Reader private: int tag; /删除标记 1:已删 0:未删 int no; /读者编号 char name10; /读者姓名 int borbookMaxbor;/所借图书 public: Reader() char *getname() return name; /获取姓名 int gettag() return tag; /获取删除标记 int getno() return no; /获取读者编号 void setname(
7、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 borrowbook(int bookid)/借书操作 for(int i=0;iMaxbor;i+) if (borbooki=0) borbooki=bookid; return; int retbook(int bookid)/还书操作
8、 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; ;3.4.2图书类/实现对图书的描述,图书的编号,书名,借出,还入等class Book private: int tag;/删除标记 1:已删 0:未删 int no;/图书编号 char name2
9、0;/书名 char author100;/作者 char pub200;/出版社 int price;/价格 int onshelf;/是否再架 1:再架 2:已借 public: Book() char *getname() return name; /获取姓名 int getno() return no; /获取图书编号 int getprice() return price; int gettag() return tag; /获取删除标记 void setname(char na)/设置书名 strcpy(name,na); void setauthor(char au)/设置作者
10、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,au); strcpy(pub,pu); price=t; onshelf=1; int borrowbook()/借书操作 if (onshelf=1) onshelf=0; return 1; return 0;
11、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 private: int top; /读者记录指针 Reader readMaxr;/读者记录 public: RDatabase() /构造函数,将reader.txt读到read中 Reader s; top
12、=-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 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() /析构函数
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1