《2022年面向对象程序设计语言课设 .docx》由会员分享,可在线阅读,更多相关《2022年面向对象程序设计语言课设 .docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品_精品资料_南京航空航天高校面对对象程序设计语言课程设计报告图 书 管 理 系 统学号: 姓名:日期:可编辑资料 - - - 欢迎下载精品_精品资料_目 录一. 需求分析 .2二. 程序主要功能.2三. 程序运行平台.2四. 系统功能框架图.3五. 程序类说明.4六. 模块分析.6七. 比较有特色的的方.7八. 存在的不足与计策.11九. 编程体会.12十. 程序源代码.13可编辑资料 - - - 欢迎下载精品_精品资料_一 需求分析本系统旨在实现一个小型的图书治理系统,对于一个小型的图书馆或藏书室来说,实施本系统不仅可以削减工作人员数量,降低成本,而且可以大大提高工作效率,降低工作强度,
2、便利读者借书查书及办理各种手续,更便利工作人员对图书进行更有效的治理.程序主要实现读者治理、图书基本信息及库存治理、图书借仍治理以及一些帮助功能等.二 程序主要功能该程序的主要功能有:读者功能可进行读者注册、登录查看、修改密码、注销读者、清除全部及查看帮忙等操作.其中登录时要输入姓名密码.图书信息治理可以进行查找图书、添加新书、删除图书、清空全部、修改、显示全部等操作.其中添加内容包括:书名、 ISBN 编号、作者、出版商、出版日期及内容简介、是否在架,便利读者依据不同需要进行查找、查看.修改图书中假如某一项不想修改,可以输入0 保留该项原有信息.图书借仍功能应当说这是整个系统最主要的功能,用
3、户需先登录,借仍时要输入ISBN 号可编辑资料 - - - 欢迎下载精品_精品资料_图书治理系统读者书库信息借 书/仍书帮助退出系统统 有的 关一 该些 系说 明. 登录查看. 新书入库仍书.借书. 注册. 查找( 登录). 注销. 删除. 修改密码. 修改3 / 9. 帮忙说明. 显示全部在架. 返回 上 一书(查看图书时要记住 ISBN 号,这是依据实际情形).帮忙一个简洁的操作指南,指导用户下一步该如何操作.退出系统退出时将把全部内容以二进制储存到文件里,在运行时将从文件载入信息.另外,仍制作了有关该系统的一些说明,版本信息等.运行程序后每一步都会有具体的提示,操作简便,大多数的方都考虑
4、到防止用户显现误操作的情形,以提高程序的健壮性,可以放心使用;三程序运行平台该程序是用 VC+6.0 制做的,使用 Microsoft Visual C+ 6.0 运行该程序, 具体操作是:打开 Microsoft Visual C+ 6.0 ,菜单栏里点文件打开工作区找到“图书治理系统 .dsw ”这个文件打开,或者在资源治理器中双击该文件, 此时, VC+6.0 会自动打开,并载入该系统相关资源,点击Run 命令菜单或者或用快捷键 Ctrl+F5运行该程序.四系统功能框架图可编辑资料 - - - 欢迎下载精品_精品资料_五程序类说明有关图书信息的类和书库类class Book/ 储备图书信
5、息的类char BookName20 ./书名,用于查找char ISBN20 ./ISBN 号,用于查找char Writer20 ./作者名,用于查找char Publisher20 ./出版商,用于查找char PublishDate20 ./出版日期,用于查找 char BriefIntroduction100./ 该书内容简介int i_o ./判定书是否借出, 0 为在架, 1 为借出Book *next ./ 指向下一个节点的指针 ./*书库类链表 */ class BookListpublic:Book *node,*head_ptr ./定义两个 Book 指针, head_
6、ptr 为头指针, node 为活动指针BookList/ 构造函数,使指针初始化node = new BooksizeofBook.可编辑资料 - - - 欢迎下载精品_精品资料_head_ptr = NULL .node-next = NULL .void save_file ./ 储备文件void load_file ./ 上传文件void AddNewBook./ 新 书 登 记 , 对node 指向的类对象赋值void Add_listBook *p./ 增加结点到 Book 链表中,用于添加新书时char *borrow_book ./ 借书手续char *return_book
7、./仍书手续int search_ISBNchar *p ./按 ISBN 号查找图书int search_BookNamechar *p ./ 按书名查找图书int search_Writerchar *p ./按作者名查找图书int search_Publisherchar *p ./按出版商查找图书int search_PublishDatechar *p ./ 按出版日期查找图书void search ./ 进入查找菜单void show_contentint n ./显示某本书的内容void show_all ./ 显示全部库存的未被借出的图书void delete_onebook
8、./ 删除某本书void change_content ./更换某本书的信息void GoInto_BookInfo./进入书库信息菜单 .有关读者信息的类和读者类class Reader/储备读者信息的类char ReaderName20./读者姓名可编辑资料 - - - 欢迎下载精品_精品资料_char Password13./密码char book120,book220./ 每人最多借两本书,可以依据需要增减限额int y_n./记录借的书的数目, 0 为没有借书, 1 为借了一本, 2 为借了二本Reader *next./指向下一节点的指针 ./*读者类链表 */ class Rea
9、derListprivate:可编辑资料 - - - 欢迎下载精品_精品资料_public:int position./说明链表中的第几个节点Reader *point,*head_point./定义两个 Rreader指针, head_point可编辑资料 - - - 欢迎下载精品_精品资料_为头指针, point为活动指针ReaderList/ 构造函数,使指针初始化head_point = NULL.point = new ReadersizeofReader.point-next = NULL.void save_readerfilevoid load_readerfile./储备文件
10、上传文件void reader_registervoid Add_PointReader *p void reader_land./读者注册增加新结点到链表读者登录int search_ReaderNamechar *p./按姓名查找void show_OneReaderReader *p./显示某读者信息void change_password./修改密码 void delete_reader./读者注销 void GoInto_ReaderInfo./读者信息菜单 .可编辑资料 - - - 欢迎下载精品_精品资料_六. 模块分析1、读者信息:下设子菜单,包括:a.登录查看b.注册c.注销d
11、.修改密码e.帮忙说明f. 返回上一层g.清空全部读者信息.全部函数均封装在读者类中(Reader_List),信息储备在类 Reader 中,类中定义了两个 Reader 指针,一个是 *head_point, 作为链表的头结点,另一个是*point ,作为活动指针,在不同的类的成员函数中都可使用,为了防止该活动指针使用过频,造成几个函数同时使用同一个指针指向不明,在有些函数里仍定义了一些暂时指针.其主要思路是:输入姓名密码后,将姓名放到一个暂时数组中,让point 指到 head_point 的 位置 , 使 用 point = point-next 在链 表中 移动 指针 , 用strc
12、mpa,b找到与暂时数组中字符相同的point-ReaderName,再对其所在的类进行修改、删除、查看等一系列操作.2、书库信息:该部分内容最丰富,下设子菜单,包括a.新书入库b.查找c. 删除d. 修改e. 显示全部在架书f. 返回上一层g. 清空全部图书内容查找的子菜单包括: a.按书名查找 b.按 ISBN 号查找 c.按作者查找 d.按出版商查找 e.按出版日期查找 f.返回上一层.链表的思路也跟读者信息一样,从头结点开头建,每当新增加一个类节点时,就把新增结点加到链表尾部,再让其中的next 指向 NULL 空,这里没有对链表进行排序.查找功能中,几个函数与读者查询类似不再赘述,只
13、是把其中的变量名改了一下,查找方法也与上述方法一样.有关菜单的制作,就是先显示菜单,让用户输入挑选,进行输入有效性检查,然后用 switch 来对不同的挑选调用类中不同的函数.3、借书/仍书:这部分是系统最主要的功能,也是整个系统实现中有肯定难度的的方,需要建立两个类之间的联系.GoInto_bor_retBookList *book_ptr,ReaderList *reader_ptr 函数,把这两个类的的址传到函数中去,函数中分别又相应的定义了两个指针分别指向这两个类,再调用类成员函数或成员指针进行数据处理,读者类中(Reader)定义了可编辑资料 - - - 欢迎下载精品_精品资料_一个
14、 int y_n 变量,记录了该读者借了几本书( 0 没借, 1 借了一本, 2 借了两本,由于是小型图书馆,所以上限为两本),图书类中(Book)定义了一个 int i_o 变量( 1 为借出, 0 为在架),记录了该书是否被借出,在进行借书时,分别更换两变量的记录,以说明书从图书馆借出到了读者手中,然后再把书名复制到读者中的 book1 或 book2 数组中,这样显示的时候就可以看到借了什么书了,另外在其它函数中也要依据两个 int 的变量的值来判定书有没有借出等,同样的,仍书原理也类似上述.4、其它:主菜单中剩下的 3 个选项: 4.帮忙 5.退出系统 6.有关该系统的一些说明, 都是
15、些文字说明,便利用户有不懂的的方时参考看一下,可能帮忙里面写得不是很具体,以后有机会渐渐补充吧.选了退出系统后,将对文件进行储存,就是把新的修改过的链表放到指定文件中掩盖原先的链表以更新文件,所以必需要正常退出,不然直接按窗口的关闭的话就不会储存修改后的链表了.七比较有特色的函数有特色的函数指的是实现的较为奇妙的类的构造函数、成员函数、友元函数等函数,也可以是指针处理的函数,文件处理的函数等比较有特色的函数,能表达奇妙构思即可.特殊应表达运算符重载;八存在的不足与计策此处主要总结自己在程序制作过程中存在的不足之处,有待进一步完善之处, 考察同学对问题的总体把握和熟悉才能.同学应客观的做出分析,并说明为何存在不足,应如何进行完善等信息.九编程体会这里是同学对于完成整个系统过程中的一个总体的感受和体会,在这里同学可以自由的发挥,可以从各个方面进行总结,应中肯.此部分内容可以经提炼归纳后可作为以后教案改进的一个直接依据.十程序源代码略可编辑资料 - - - 欢迎下载