c++课程实践图书管理系统实践报告(共42页).doc
《c++课程实践图书管理系统实践报告(共42页).doc》由会员分享,可在线阅读,更多相关《c++课程实践图书管理系统实践报告(共42页).doc(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上机电工程学院 中 南 大 学计算机程序设计基础C+ 课 程 设 计题 目 图书信息管理系统 成员姓名 学号 班级: 成员姓名 学号 班级:指导教师 学 院 日 期 年 月 日 目录1. 课程目的和要求.32. 图书管理系统的分析和功能描述.33. 流程图.54. 成员组成与分工与进度安排.65. 使用说明.76. 程序代码.137. 设计心得.40C+课程实践设计报告1. 课程目的和要求使我们能掌握系统的各种功能模块的基本工作原理;掌握C+的基本编程原理和基本的编程方法;学会如何去调试系统,并提高我们团队之间的软件文档写作能力和团队合作精神;提高我们的分析,解决问题的
2、能力。通过本课程设计的实验,全面总结C+课程学习中的数据类型,程序结构,数组,函数,指针,容器等的基本概念,并掌握其使用方法。掌握面向对象程序设计中有关类,对象,重载,多态性,输入输出流体系,文件操作的基本概念。了解系统开发的需求分析,类层次设计,模块分解,编码测试,模块组装与整体调试的全过程。并养成良好的编程习惯。并使系统具有(1)所有记录保存在一个数据文件中;(2)具备记录添加功能;(3)具备记录删除功能;(4)具备记录修改功能;(5)具备记录查询功能;(6)计算统计功能;(7)良好操作界面菜单;等功能。2. 图书管理系统的分析和功能描述该程序总共有五个功能,分别是:添加图书,查找图书,删
3、除图书,添加用户和用户管理。其中,用户管理里面又有四个功能,分别是 借书,查看已借书籍,还书和删除用户四个功能。五个功能由两个类封装实现。people类中有两个构造函数,用来初始化新建的用户对象;有一个析构函数;还有inborrow(借出函数),inback(归还函数),inWatch(查看函数),getName(返回用户名字函数);还有两个的友元函数newuser(新建用户函数),user(用户界面函数)。book类中,也有两个构造函数用来初始化用户对象;一个的析构函数用来在删除对象的同时,更改在文本中的写入信息;然后有clook(查看书籍函数),inwhere(书籍被借出时的更改数据的函数
4、),onWhere(书籍被归还时的更改数据的函数),findbook(查找书籍的函数),clook(书籍信息写出函数)这个函数被重载了,因为书籍输出时需要输出到屏幕,也需要输出到txt文件中,Newbook(用来新建书籍信息的函数)。 两个类的对象储存与查找都是通过map容器来进行的。 3.流程图:main函数用户管理界面添加用户添加书籍查找书籍删除书籍输入书名输入名字手动还是文本输入已注册显示信息删除用户查看已借书还书借书确定删除输入书籍信息是Y否N继续操作或退出系统退出用户界面确定删除显示书籍继续借书输入书名继续输入?专心-专注-专业4.成员组成与分工:我们小组共有两个人,xx和xx,xx
5、负责统筹这次的编写计划,时间安排和一半的编写任务,责收集资料xx负和查找各种有用的信息并编写另一般的代码信息。在后期的调试中,由xx负责编写main函数,然后两个人共同对代码进行调试和修改。两个人同时的修改,然后把修改的优点组合在一起,是程序更加的完善,更加的可行。在程序中共有两个新建的类,分别是people和book,两个类由小组两人分别编写。xx负责的是book的类,xx负责的是people的类,两个类分别封装人员和图书两个方面。进度安排:在18周的星期一到星期三,我们在计划着该如何去编写这个小系统,并通过参考同类型的编写代码,做好了编写的计划,并查找资料去了解了需要用到的一些语法和模板。
6、在这两天中,我们不断尝试的编写书本当中的习题,以记住各种语法的使用方法。在18周的星期四到星期天,我们分别编写了两个类出来,然后组合在一起,并编写了main()函数来尝试调用两个类的各种功能。但因为不太懂,出现了很多的错误。在第19周的周一到周三,我们都在不断的调试和改正错误。很多的错误都不懂是怎么出错的,在不断的百度后,才慢慢的修正了很多。5.使用说明:开始的图书系统运行界面。手动输入时的界面。如果通过文本输入时, 在程序中,添加书籍时会通过生成一个result.txt 文件在D盘的根目录下用来储存书籍的信息;而且添加书籍时,可以通过D盘根目录下自己新建的一个 “图书信息.txt”文件来写入
7、图书信息。查找书的信息,根据书名显示书籍的内容。输入书本的名字然后就能删除该书籍。输入名字后,就可以添加新的用用户。用户的信息被储存在map容器中,当输入用户的编号时,就可以进入到用户的使用界面。这就是用户的使用界面。重新返回用户界面书籍被归还。若图书被借出,就不能再被借。6.程序代码:#include#include#include#include#includeusing namespace std;class peopleprotected:string _name;int _id;bool _creditline;int Btime;string Nbook5; /没个人限借5本书in
8、t Bnumber;public:people(string name, int id);people();void inBorrow(); /借书的动作void inBack(); /还书的动作void inWatch(); /查看已借书籍动作string getName(); /返回用户的名字friend void newuser(); friend void user();people();mappeoples;class Bookprotected:string _name; /书名int _ID; /书编号string _writter; /作者string _press; /出版社
9、string _briefintroduction; /简介bool _cwhere; /是否被借出public:Book(string name, int id, string writter, string press, string briefintroduction, bool cwhere);Book();Book();void newBook(); /新建书籍void deleteBook(); /删除书籍void cLook(); /书籍的信息列出bool inWhere(); /书本被借出bool onWhere(); /书本被归还void findbook(); / 查找书籍
10、void cLook(ofstream& cout);bool jiechu();mapbooks; /建立一个书本的map容器,用来储存书本的信息。iostream& operator (iostream&cout, Book &_book); /重载_name;people:people(string name, int id)_name = name;_id = id;_creditline = true;Btime = 60;Bnumber = 0;people:people()void people:inBorrow() /用户借书int bbq = 0;this-inWatch()
11、;docout bname;map:iterator it;it = books.find(bname);if (it = books.end()cout 没有此书。 second)-jiechu()cout 这本书已经被借出。 Bnumber Bnumber;(this-Bnumber)+;(this-Nbookt) = bname;booksbname-onWhere();cout 你已借书成功。;elsecout 你借的书数目已达到上限,不能再借书,请先归还书籍。;cout 是否重新查找书籍? Y of N bq;if (bq = Y)bbq = 1;elsebbq = 0; while
12、 (bbq);void people:inWatch() /查看用户已借书籍cout 用户名为: _name t用户的编号是: _id n用户已借的书有: Bnumber = 0)cout 尊敬的用户,你还没有任何借书的记录。 endl;elsefor (i; i Bnumber); +i)cout i + 1 tNbooki Bnumber)=0)cout 你还没有借书。 inWatch();cout 请问你要还哪一本书呢?请输入是你借的书中的第几本: ss;if (ss - 1 (this-Bnumber)cout 你输入的数值有错误。 inWhere();this-Nbookss - 1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 课程 实践 图书 管理 系统 报告 42
限制150内