面向对象程序设计语言课设参考_第1页
面向对象程序设计语言课设参考_第2页
面向对象程序设计语言课设参考_第3页
面向对象程序设计语言课设参考_第4页
面向对象程序设计语言课设参考_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南京航空航天大学面向对象程序设计语言课程设计报告图书管理系统学号:姓名:日期:面向对象程序设计课程设计报告(图书管理系统)目 录一. 需求分析 .2二. 程序主要功能.2三. 程序运行平台.2四. 系统功能框架图.3五. 程序类说明.4六. 模块分析 .6七. 比较有特色的地方 .7八. 存在的不足与对策 .11九. 编程体会 .12十.程序源代码.131面向对象程序设计课程设计报告(图书管理系统)一. 需求分析本系统旨在实现一个小型的图书管理系统,对于一个小型的图书馆或藏书室 来说,实施本系统不仅可以减少工作人员数量,降低成本, 而且可以大大提高工 作效率,降低工作强度,方便读者借书查书及办

2、理各种手续, 更方便工作人员对 图书进行更有效的管理。程序主要实现读者管理、图书基本信息及库存管理、图书借还管理以及一些 辅助功能等。二. 程序主要功能该程序的主要功能有:读者功能可进行读者注册、登录查看、修改密码、注销读者、清除全部及查看帮助等操作。 其中登录时要输入姓名密码。图书信息管理可以进行查找图书、添加新书、删除图书、清空全部、修改、显示全部等操作。 其中添加内容包括:书名、ISBN编号、作者、出版商、出版日期及内容简介、 是否在架,方便读者根据不同需要进行查找、查看;修改图书中如果某一项不想修改,可以输入 0保留该项原有信息。图书借还功能应该说这是整个系统最主要的功能,用户需先登录

3、,借还时要输入ISBN号(查看图书时要记住ISBN号,这是根据实际情况)3面向对象程序设计课程设计报告(图书管理系统)帮助一个简单的操作指南,指导用户下一步该如何操作。退出系统退出时将把所有内容以二进制保存到文件里,在运行时将从文件载入信息。 另外,还制作了有关该系统的一些说明,版本信息等。运行程序后每一步都会有详细的提示, 操作简便,大多数地方都考虑到防止 用户出现误操作的情况,以提高程序的健壮性,可以放心使用!.程序运行平台5层返回上一 .层该程序是用VC+6.0制做的,使用Microsoft Visual C+ 6.0运行该程序,具 体操作是:打开 Microsoft Visual C+

4、 6.0,菜单栏里点文件打开工作区找到“图书管理系统.dsw”这个文件打开,或者在资源管理器中双击该文件,此时, VC+6.0会自动打开,并载入该系统相关资源,点击 Run命令菜单或者或用快捷 键Ctrl+F5运行该程序。四. 系统功能框架图图书管理系统书库信息退出系统有关该系 统的一些说明.登录查看r.新书入库.注册.注销.查找.删除.修改密码.帮助说明.修改.显示全部在架登录借书厂还书.返回上面向对象程序设计课程设计报告(图书管理系统)五. 程序类说明有关图书信息的类和书库类class Book/存储图书信息的类char BookName20;char ISBN20;char Writer

5、20;char Publisher20;char PublishDate20;/书名,用于查找/ISBN号,用于查找/作者名,用于查找出版商,用于查找 出版日期,用于查找char Briefin troductio n 100;int i_o;Book *n ext;/该书内容简介/判断书是否借出,0为在架,1为借出/指向下一个节点的指针/*书库类链表*/class BookList public:Book *node, *head_ptr;/定义两个 Book 指针,head_ptr 为头指针,node为活动指针BookList()/构造函数,使指针初始化node = new Booksiz

6、eof(Book);head_ptr = NULL;no de->next = NULL;11/存储文件/上传文件/新书登记,对node指向的类对象赋值增加结点到Book链表中,用于添加新书时/借书手续/还书手续/按ISBN号查找图书按书名查找图书/按作者名查找图书读者姓名密码/每人最多借两本书,可以根据需要增减限额记录借的书的数目,0为没有借书,1为借了一void save_file();void load_file();void AddNewBook();void Add_list(Book *p);char *borrow_book();char *retur n_book();i

7、nt search_ISBN(char *p);int search_BookName(char *p);int search_Writer(char *p);int search_Publisher(char *p);int search_PublishDate(char *p);void search();void show_c onten t(i nt n);void show_all();void delete_ on ebook();void cha nge_c onten t();void GoI nto_BookI nfo();有关读者信息的类和读者类class Reader /

8、 存储读者信息的类char ReaderName20; /char Password13;/char book120,book220;int y_n;/本,2为借了二本/按出版商查找图书/按出版日期查找图书进入查找菜单显示某本书的内容显示所有库存的未被借出的图书删除某本书/更改某本书的信息进入书库信息菜单为头Reader *n ext;/;/*读者类链表*/class ReaderListprivate:int positi on;/public:Reader *po in t,*head_po int;/指针,point为活动指针ReaderList()head_poi nt = NULL;

9、point = new Readersizeof(Reader); poin t-> next = NULL;void save_readerfile();/void load_readerfile();/void reader_register();/void Add_Poi nt(Reader *p);/void reader_la nd();/int search_ReaderName(char *p);/void show_O neReader(Reader *p);/void cha nge_password();/void delete_reader();/void GoI

10、nto_Readerl nfo();/;指向下一节点的指针表明链表中的第几个节点定义两个 Rreader 指针,head_point/构造函数,使指针初始化存储文件上传文件读者注册增加新结点到链表读者登录按姓名查找显示某读者信息修改密码读者注销读者信息菜单六. 模块分析1、读者信息:下设子菜单,包括:a. 登录查看b. 注册c. 注销d. 修改密码e. 帮助说明f. 返回上一层g. 清空全部读者信息。所有函数均封装在读者类中(Reader_List),信息存储在类Reader中,类中 定义了两个 Reader指针,一个是*head_point,作为链表的头结点,另一个是 *point,作为活动

11、指针,在不同的类的成员函数中都可使用,为了防止该活动指 针使用过频,造成几个函数同时使用同一个指针指向不明,在有些函数里还定义 了一些临时指针。其主要思路是:输入姓名密码后,将姓名放到一个临时数组中,让point指到head_point的位置,使用point = point->next在链表中移动指针,用strcmp(a,b) 找到与临时数组中字符相同的point->ReaderName,再对其所在的类进行修改、删除、查看等一系列操作。2、书库信息:该部分内容最丰富,下设子菜单,包括a. 新书入库b. 查找c删除d. 修改e. 显示全部在架书f. 返回上一层g. 清空全部图书内容查

12、找的子菜单包括:a.按书名查找b.按ISBN号查找c.按作者查找d.按出 版商查找 e.按出版日期查找f.返回上一层。链表的思路也跟读者信息一样,从头结点开始建,每当新增加一个类节点时, 就把新增结点加到链表尾部,再让其中的 next指向NULL空,这里没有对链表 进行排序。查找功能中,几个函数与读者查询类似不再赘述,只是把其中的变量 名改了一下,查找方法也与上述方法一致。有关菜单的制作,就是先显示菜单,让用户输入选择,进行输入有效性检查, 然后用switch来对不同的选择调用类中不同的函数。3、借书/还书:这部分是系统最主要的功能,也是整个系统实现中有一定难度的地方,需要建立两个类之间的联系

13、。GoInto_bor_ret(BookList *book_ptr,ReaderList *reader_ptr)函数,把这两个类 的地址传到函数中去,函数中分别又相应地定义了两个指针分别指向这两个类, 再调用类成员函数或成员指针进行数据处理,读者类中(Reade)定义了一个int y_n变量,记录了该读者借了几本书(0没借,1借了一本,2借了两本,由于是 小型图书馆,所以上限为两本),图书类中(Book)定义了一个int i_o变量(1 为借出,0为在架),记录了该书是否被借出,在进行借书时,分别更改两变量 的记录,以表明书从图书馆借出到了读者手中,然后再把书名复制到读者中的 book1或

14、book2数组中,这样显示的时候就可以看到借了什么书了,另外在其它 函数中也要根据两个int的变量的值来判断书有没有借出等,同样的,还书原理 也类似上述。4、其它:主菜单中剩下的3个选项:4帮助 5.退出系统6有关该系统的一些说明, 都是些文字说明,方便用户有不懂的地方时参考看一下,可能帮助里面写得不是 很详细,以后有机会慢慢补充吧。选了退出系统后,将对文件进行保存,就是把新的修改过的链表放到指定文 件中覆盖原来的链表以更新文件, 所以必须要正常退出,不然直接按窗口的关闭 的话就不会保存修改后的链表了。七. 比较有特色的函数有特色的函数指的是实现地较为巧妙的类的构造函数、成员函数、友元函数 等函数,也可以是指针处理的函数,文件处理的函数等比较有特色的函数,能体 现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论