
面向对象程序设计语言课设.docx
11页精品名师归纳总结南京航空航天高校《面对对象程序设计语言》课程设计报告图 书 管 理 系 统学号: 姓名:日期:可编辑资料 -- -- -- 欢迎下载精品名师归纳总结目 录一. 需求分析 ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ .2二. 程序主要功能⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ .2三. 程序运行平台⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ .2四. 系统功能框架图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ .3五. 程序类说明⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ .4六. 模块分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ .6七. 比较有特色的的方⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ .7八. 存在的不足与计策⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ .11九. 编程体会⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ .12十. 程序源代码⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ .13可编辑资料 -- -- -- 欢迎下载精品名师归纳总结一. 需求分析本系统旨在实现一个小型的图书治理系统,对于一个小型的图书馆或藏书室来说,实施本系统不仅可以削减工作人员数量,降低成本,而且可以大大提高工作效率,降低工作强度,便利读者借书查书及办理各种手续,更便利工作人员对图书进行更有效的治理。
程序主要实现读者治理、图书基本信息及库存治理、图书借仍治理以及一些帮助功能等二. 程序主要功能该程序的主要功能有:读者功能可进行读者注册、登录查看、修改密码、注销读者、清除全部及查看帮忙等操作其中登录时要输入姓名密码图书信息治理可以进行查找图书、添加新书、删除图书、清空全部、修改、显示全部等操作其中添加内容包括:书名、 ISBN 编号、作者、出版商、出版日期及内容简介、是否在架,便利读者依据不同需要进行查找、查看修改图书中假如某一项不想修改,可以输入 0 保留该项原有信息图书借仍功能应当说这是整个系统最主要的功能,用户需先登录,借仍时要输入 ISBN 号可编辑资料 -- -- -- 欢迎下载精品名师归纳总结图书治理系统读者书库信息借 书/仍书帮助退出系统统 有的 关一 该些 系说 明. 登录查看. 新书入库仍书.借书. 注册. 查找( 登录). 注销. 删除. 修改密码. 修改3 / 9. 帮忙说明. 显示全部在架. 返回 上 一书(查看图书时要记住 ISBN 号,这是依据实际情形)帮忙一个简洁的操作指南,指导用户下一步该如何操作退出系统退出时将把全部内容以二进制储存到文件里,在运行时将从文件载入信息。
另外,仍制作了有关该系统的一些说明,版本信息等运行程序后每一步都会有具体的提示,操作简便,大多数的方都考虑到防止用户显现误操作的情形,以提高程序的健壮性,可以放心使用!三.程序运行平台该程序是用 VC++6.0 制做的,使用 Microsoft Visual C++ 6.0 运行该程序, 具体操作是:打开 Microsoft Visual C++ 6.0 ,菜单栏里点文件→打开工作区→找到“图书治理系统 .dsw ”这个文件→打开,或者在资源治理器中双击该文件, 此时, VC++6.0 会自动打开,并载入该系统相关资源,点击 Run 命令菜单或者或用快捷键 Ctrl+F5 运行该程序四.系统功能框架图可编辑资料 -- -- -- 欢迎下载精品名师归纳总结五.程序类说明①有关图书信息的类和书库类class Book// 储备图书信息的类{char BookName[20] //书名,用于查找char ISBN[20] //ISBN 号,用于查找char Writer[20] //作者名,用于查找char Publisher[20] //出版商,用于查找char PublishDate[20] 。
//出版日期,用于查找 char BriefIntroduction[100] // 该书内容简介int i_o //判定书是否借出, 0 为在架, 1 为借出Book *next // 指向下一个节点的指针} /**** 书库类链表 ****/ class BookList{public:Book *node, *head_ptr // 定义两个 Book 指针, head_ptr 为头指针, node 为活动指针BookList〔〕{ // 构造函数,使指针初始化node = new Book[sizeof〔Book〕] 可编辑资料 -- -- -- 欢迎下载精品名师归纳总结head_ptr = NULL node->next = NULL }void save_file〔〕 // 储备文件void load_file〔〕 // 上传文件void AddNewBook〔〕 // 新 书 登 记 , 对node 指向的类对象赋值void Add_list〔Book *p〕 // 增加结点到 Book 链表中,用于添加新书时char *borrow_book〔〕 。
// 借书手续char *return_book〔〕 //仍书手续int search_ISBN〔char *p〕 //按 ISBN 号查找图书int search_BookName〔char *p〕 // 按书名查找图书int search_Writer〔char *p〕 //按作者名查找图书int search_Publisher〔char *p〕 //按出版商查找图书int search_PublishDate〔char *p〕 // 按出版日期查找图书void search〔〕 // 进入查找菜单void show_content〔int n〕 //显示某本书的内容void show_all〔〕 // 显示全部库存的未被借出的图书void delete_onebook〔〕 // 删除某本书void change_content〔〕 //更换某本书的信息void GoInto_BookInfo〔〕 //进入书库信息菜单} ②有关读者信息的类和读者类class Reader// 储备读者信息的类{char ReaderName[20] // 读者姓名可编辑资料 -- -- -- 欢迎下载精品名师归纳总结char Password[13] 。
// 密码char book1[20],book2[20] // 每人最多借两本书,可以依据需要增减限额int y_n // 记录借的书的数目, 0 为没有借书, 1 为借了一本, 2 为借了二本Reader *next // 指向下一节点的指针} /**** 读者类链表 ****/ class ReaderList{private:可编辑资料 -- -- -- 欢迎下载精品名师归纳总结public:int position // 说明链表中的第几个节点Reader *point,*head_point // 定义两个 Rreader 指针, head_point可编辑资料 -- -- -- 欢迎下载精品名师归纳总结为头指针, point 为活动指针ReaderList〔〕 // 构造函数,使指针初始化{head_point = NULL point = new Reader[sizeof〔Reader〕] point->next = NULL }void save_readerfile〔〕void load_readerfile〔〕////储备文件上传文件void reader_register〔〕void Add_Point〔Reader *p〕 void reader_land〔〕 。
//////读者注册增加新结点到链表读者登录int search_ReaderName〔char *p〕//按姓名查找void show_OneReader〔Reader *p〕//显示某读者信息void change_password〔〕 // 修改密码 void delete_reader〔〕 // 读者注销 void GoInto_ReaderInfo〔〕 // 读者信息菜单} 可编辑资料 -- -- -- 欢迎下载精品名师归纳总结六. 模块分析1、读者信息:下设子菜单,包括:a.登录查看b.注册c.注销d.修改密码e.帮忙说明f. 返回上一层g.清空全部读者信息全部函数均封装在读者类中( Reader_List),信息储备在类 Reader 中,类中定义了两个 Reader 指针,一个是 *head_point, 作为链表的头结点,另一个是*point ,作为活动指针,在不同的类的成员函数中都可使用,为了防止该活动指针使用过频,造成几个函数同时使用同一个指针指向不明,在有些函数里仍定义了一些暂时指针其主要思路是:输入姓名密码后,将姓名放到一个暂时数组中,让 point 指到 head_point 的 位置 , 使 用 point = point->next 在链 表中 移动 指针 , 用strcmp〔a,b〕找到与暂时数组中字符相同的 point->ReaderName,再对其所在的类进行修改、删除、查看等一系列操作。
2、书库信息:该部分内容最丰富,下设子菜单,包括a.新书入库b.查找c. 删除d. 修改e. 显示全部在架书f. 返回上一层g. 清空全部图书内容查找的子菜单包括: a.按书名查找 b.按 ISBN 号查找 c.按作者查找 d.按出版商查找 e.按出版日期查找 f.返回上一层链表的思路也跟读者信息一样,从头结点开头建,每当新增加一个类节点时,就把新增结点加到链表尾部,再让其中的 next 指向 NULL 空,这里没有对链表进行排序查找功能中,几个函数与读者查询类似不再赘述,只是把其中的变量名改了一下,查找方法也与上述方法一样有关菜单的制作,就是先显示菜单,让用户输入挑选,进行输入有效性检查,然后用 switch 来对不同的挑选调用类中不同的函数。












