C++大型实验报告--图书管理系统(共27页).doc
《C++大型实验报告--图书管理系统(共27页).doc》由会员分享,可在线阅读,更多相关《C++大型实验报告--图书管理系统(共27页).doc(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上C/C+语言程序设计大型实验报告-图书管理系统浙江工业大学软件学院二零零九年五月目录第一章 概述1.1 实验意义1.2 说明1.3 实验内容第二章 简单的LMS功能及设计思路2.1 功能描述 2.1.1 读者管理模式功能 2.1.2 工作人员管理模式功能 2.1.3 管理员管理模式功能2.2 基本设计思路第三章 用户类3.1 用户类的定义3.2 用户的登陆3.3 修改用户信息3.4 查询图书信息第四章 读者管理模式4.1查看个人信息4.2查找馆藏图书信息第五章 工作人员管理模式5.1查询读者信息(个人信息和读者借书情况)5.2还书5.3借书5.4查询图书信息第六章 管
2、理员管理模式6.1添加、删除图书信息 6.1.1 添加图书信息 6.1.2 删除图书信息6.2添加、删除用户信息6.3查询图书信息第七章 图书类第八章 建立数据库8.1 数据储存文件说明8.2 数据库操作说明第九章 主程序结构附:在VC6环境下的测试截图第一章 概述1.1 实验意义本实验通过分析并实现一个简单的系统以图书管理系统,让学生从一个参与项目开发的角度全新的体验项目开发的全过程。学生在独立完成一个简单的系统的开发的过程中,不但真正的学到程序设计的实战知识,更为重要的是能够体验开发的乐趣并培养程序开发的兴趣。选择图书管理系统作为实验的目的是因为图书管理系统学生能经常接触到,对其功能有一定
3、的了解,能够在使用中提出自己的一些需求的系统。图书管理系统虽然简单,但是随着需求功能的不断增加,开发的难度也不断增加,不仅能满足初学编程的需求,也能让更高年级的学生通过将学到的知识直接用于该系统的开发而巩固和提高编程水平。1.2 说明本实验报告分为三个部分,第一部分为概述,介绍图书管理系统的实验基本内容以及对图书管理系统的功能描述,以及基本设计思路;第二部分为具体的类定义及实现的介绍,是本实验报告的重点部分;第三部分为主程序设计部分,包括对数据库的操作以及主程序登录界面的说明。1.3 实验内容开发一个基于DOS界面的图书馆管理系统,通过命令的方式进行借书还书等图书馆需要的功能;用户界面友好,让
4、非计算机人员通过简短的培训即可使用;系统的可扩展性良好,可以在此基础上方面的增加其他的功能模块。第二章 简单的LMS功能及设计思路2.1 功能描述图书管理系统(LMS)用于图书馆进行图书的管理,主要的功能包括借书、还书、查找等。不同的使用对象具有不同的权限,包括读者管理、工作人员管理、管理员管理等三种模式。选择登录模式(读者、工作人员、管理员),输入用户名和密码,成功后进行相应的功能模块。2.1.1 读者管理模式功能读者可以查找馆藏书目,了解图书馆有哪些书,是否可借。读者可以查看个人借书情况和修改基本个人信息、修改密码。2.1.2 工作人员管理模式功能可以查找馆藏书目,了解图书馆有哪些书,是否
5、可借。根据读者号查询读者信息,显示该读者基本信息,和借书情况(借了哪里书)。读者信息高级查找可以根据姓名等其他信息进行查找。借书功能:首先输入读者号,在该状态下依次输入该读者借的书,完成图书的借阅工作。还书功能:直接输入图书ID号,将该书的信息改为入库,并修改读者的借书记录。2.1.3 管理员管理模式功能可以查找馆藏书目,了解图书馆有哪些书,是否可借。维护图书信息:添加:进入添加状态,根据提示依次输入图书的基本信息,默认状态下为继续输入,当输入-1回到上一层。修改:首先进行查找,列出所有符合条件的图书,根据列出的需要选择要修改的图书,如果只有一条记录则直接进入修改。根据提示选择该图书需要修改的
6、字段,并进行修改。选择“完成”回到上一层。删除:维护读者信息:添加、删除、编辑读者信息。维护人员信息:添加、删除、编辑工作人员信息。2.2 基本设计思路采用面向对象的方式实现图书管理系统,根据不同的使用权限,使用对象分为读者、工作人员和管理员。图 21 系统主要类结构图分别设计读者类、工作人员类、管理员类(如上图),用户类为基类实现通用的功能(登录,查询图书信息,修改用户信息)。用数据库进行数据的保存,需要保存的数据主要包括图书数据、用户数据(包括读者、工作人员、管理员)、借阅索引表。设置数据操作类,实现所有的数据库操作相关的功能。设计图书类,显示图书信息,记录、更新借阅信息。第三章 用户类3
7、.1 用户类的定义用户类的公开定义中,包括6个构造函数,重载不同类型的用户构造,登陆函数(userLogin(void))用于用户登陆,图书查询函数(searchBook()),用户密码修改函数(resetPassWord(void)),用户信息修改函数(resetInfo)。另有四个虚函数,分别用于判断用户是否存在(isExisted(void))、从键盘读取用户信息(getFromStdin (void))、将信息存入数据库(addToData(void))以及显示信息(showInfo(void)),用于被不同模式的用户继承。用户类的保护定义中,包括编号(no)、姓名(name)、密码(
8、passWord)以及用户类型(usertype)四个成员变量。3.2 用户的登陆bool User:userLogin()若登陆成功,返回true,否则返回fasle判断用户是否存在,若不存在,返回false否则判断密码是否正确,若错误,返回false否则返回true3.3 修改用户信息bool User:resetPassWord(void)修改用户密码,修改成功返回true,返回菜单返回false1.读取新密码和确认密码2.若新密码和确认密码相同,密码修改成功,返回true 否则询问重新输入或者返回菜单 重新输入则再次执行该函数 返回菜单,返回faslebool User:resetIn
9、fo(const std:string &_name, const std:string &_passWord, UserType _type)重新设置用户名,密码,用户类型3.4 查询图书信息void User:searchBook()1. 读取根据何种方式进行查找2. 读取关键字3. 调用sqlOpenConnection函数打开数据库4. 调用getDataRecord函数按照指定方式和关键词在数据库中搜索5. 若数据不存在,输出提示,返回否则显示图书信息6. 关闭数据库第四章 读者管理模式4.1查看个人信息void BookReader:showInfo(void)虚继承自User类,
10、调用User类的showInfo(void)函数显示该工作人员的序号、姓名、权限,并且显示借书数目。4.2查找馆藏图书信息直接调用User类的searchBook()函数第五章 工作人员管理模式5.1查询读者信息(个人信息和读者借书情况)void Worker:showInfo(void)虚继承自User类,调用User类的showInfo(void)函数显示该工作人员的序号,姓名、权限,并且显示性别和部门。void Worker:showReaderInfo(BookReader* reader) 将BookReader类型的指针reader指向showInfo(void)函数,即调用Boo
11、kReader类的showInfo(void)函数以显示读者借书情况。5.2还书bool Worker:returnBook(const string& bno, const string& rno)5.3借书bool Worker:borrowBook(const string& bno, const string& rno)首先调用图书类和读者类的isExisted检查5.4查询图书信息直接调用User类的searchBook()函数第六章 管理员管理模式6.1添加、删除图书信息6.1.1添加图书信息bool LAdmin:AddBook(void)添加图书函数,添加成功返回true,返回
12、上层返回false1.新建Book类型的指针。2.用该指针调用Book类的getFromStdin()函数以及addToData()函数,获取图书信息并添加入数据库。3.提示成功添加图书,返回true4.若失败,提示选择重新输入或者返回上层 重新输入则再次调用该函数 返回上层则返回false。6.1.2 删除图书信息bool LAdmin:DeleteBook(Book* aBook, bool warning)删除图书函数,删除成功返回true,若图书不存在,或者数据库出错,或者操作被取消返回false1.用aBook指针调用Book类的isExisted()判断图书是否存在。若不存在,返回
13、false2.用aBook指针调用showInfo()显示图书信息。3.询问是否要删除该书,若取消,返回false 否则调用DBManager类的sqlOperate函数对数据库进行删除图书操作,操作成功返回true,失败返回false6.2添加、删除用户信息bool LAdmin:AddMember(void)添加用户函数,添加成功返回true,返回上层返回false1.新建User类型的指针。2.选择具体人员类型,并新建对应类型的指针2.用该指针调用该类类的getFromStdin()函数以及addToData()函数,获取用户信息并添加入数据库。3.提示成功添加用户,返回true4.若失
14、败,提示选择重新输入或者返回上层 重新输入则再次调用该函数 返回上层则返回false。bool LAdmin:deleteMember(User *aUser, int _type, bool warning)删除用户函数,删除成功返回true,若用户不存在,或者数据库出错,或者操作被取消返回false1.用aUser指针调用User类的isExisted()判断用户是否存在。若不存在,返回false2.用aUser指针调用showInfo()显示用户信息。3.询问是否要删除该用户,若取消,返回false 否则调用DBManager类的sqlOperate函数对数据库进行删除用户操作,操作成功
15、返回true,失败返回false6.3查询图书信息直接调用User类的searchBook()函数第七章 图书类图书类的公开定义中,包括2个构造函数,重载不同类型的图书构造,重设借书数量函数(setNewBorrowNum(const string& newNum))用于设置图书借出数量,更新数据函数(updateData(void))。另有四个函数,同用户类的虚函数一样,分别用于判断图书是否存在(isExisted(void))、从键盘读取图书信息(getFromStdin (void))、将信息存入数据库(addToData(void))以及显示信息(showInfo(void))。用户类
16、的保护定义中,包括编号(no),书名(name),作者(author),出版社(press),库存量(storenum),借出量(borrownum)等六个成员变量。#ifndef BOOK_H#define BOOK_H#include #include #include DBManage.husing namespace std;class Bookpublic:Book(void);Book(const string& _no);bool isExisted(void);bool getFromStdin(void);bool addToData(void) const;void sho
17、wInfo(void) const;string getNo(void) const;string getBorrowNum(void) const;string getStoreNum(void) const;void setNewBorrowNum(const string& newNum);bool updateData(void) const;private:string no, name, author, press, storenum, borrownum;#endif第八章 建立数据库8.1 数据储存文件说明8.2 数据库操作说明读、存、查找、删除数据的函数全部写在DBManag
18、e.h和DBManage.cpp文件中。DBManage.h放所有的数据操作函数的声明,在DBManage.cpp文件中放置数据操作函数的实现。#ifndef DBMANAGE_H#define DBMANAGE_H#import c:program filescommon filessystemadomsado15.dll no_namespace rename (EOF, adoEOF)#include #include #include using namespace std;class DBManagepublic:static _ConnectionPtr sqlOpenConnec
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 大型 实验 报告 图书 管理 系统 27
限制150内