图书管理系统(完成版)(共37页).doc

上传人:飞****2 文档编号:16315249 上传时间:2022-05-16 格式:DOC 页数:37 大小:1.43MB
返回 下载 相关 举报
图书管理系统(完成版)(共37页).doc_第1页
第1页 / 共37页
图书管理系统(完成版)(共37页).doc_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《图书管理系统(完成版)(共37页).doc》由会员分享,可在线阅读,更多相关《图书管理系统(完成版)(共37页).doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上Visual C+课程大作业题目名称: 图书馆管理系统 系 名 称: 计算机科学与信息工程学院 专业班级: 12级软件工程一班 姓名学号: 王 停 1 姓名学号: 徐开放 9 指导老师: 李 源 2013 年 6 月专心-专注-专业目 录第1章 组员分工图书管理系统是一个比较大的系统,本系统有两名成员共同完成。王停主要负责系统中对整个数据库的操作、管理和设置部分,包括权限验证、用户管理、基础数据设置、数据库的备份与恢复,以实现对数据库的管理和维护工作,并提高系统的数据安全性等工作。徐开放主要负责实现对数据库中的具体表的数据项的管理和操作,包括借阅管理、书库管理、读者管

2、理等模块,通过添加、删除、修改等操作,来实现对图书信息、读者信息、借阅信息的管理和登记,从而能够为借阅者提供方便快捷的服务,同时也提高了操作人员的管理效率。第2章 需求分析该图书管理系统是基于利用计算机管理图书信息的需求而设计的,主要致力于为图书借阅人提供方便快捷的服务,以及为图书管理人员提供准确可靠的信息,旨在提高图书管理的效率,节约相关的管理成本,增强图书管理的安全性,为学校的信息化建设提供必要的支持。其具体需求分析如下:1. 系统需求该系统需提供给图书借阅者、信息管理员和图书馆管理人员共三方面的需求,图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息的修改;信息管理员对图书借

3、阅者的借阅及还书要求进行操作,同时对借书或还书信息进行查询;图书馆管理员实现图书采购及验收编目入库。它要满足图书借阅管理、图书书库管理、图书借阅人管理的基本要求,并能实现方便的操作和扩展,满足图书馆发展的需要,保障图书管理书籍的安全、准确。2. 功能需求该图书管理系统主要有以下几项基本功能:用户管理:用于管理系统用户,并能设置用户口令和权限,实现用户的添加、修改和删除,从而为系统的安全性提供保障。 基础数据管理:负责维护图书管理相关的基础数据,主要包括对图书逾期罚款、图书类别、读者类别的设置。 借阅管理:完成图书的借出登记,归还登记信息,以及借书信息和还书信息的查询浏览等借阅相关的管理功能。

4、书库管理:维护书库中的图书信息,能够完成新书的入库登记,图书信息的查询以及图书丢失处理等功能。 读者管理:维护读者的相关信息,能够完成新读者信息的登记,读者信息的查询以及读者注销等功能。 数据库管理:对现有的数据库进行管理,包括数据备份和恢复,以方便用户对数据库的管理和维护工作,提高系统的数据安全性。3. 性能需求Windows XP/2000/98/ME中的Visual C+开发环境,Microsoft Access 2003数据库使用软件。第3章 总体设计3.1 系统功能模块图通过建立该图书馆电子系统,实现借书人员的权限验证,实现管理员对其用户进行管理的使用性能,及借阅图书和借阅用户的管理

5、,同时可实现系统管理员对整个图书馆的数据库的管理。图书管理系统图书管理系统功能模块图如图3-1 所示: 读者管理数据库管理书库管理权限验证用户管理借阅管理基础数据设置图3-1 图书管理系统功能模块图3.2 系统设计流程图图书管理系统流程图如图3-2所示:图3-2 图书管理系统流程图3.3 数据库设计数据库的好坏关系到系统的运行速率、存储数据的效率,合理的数据库设计可以提高系统的性能。数据库结构要能充分满足各种信息的输入和输出,收集基本数据,数据结构处理的流程,组成一份详尽的数据字典,为具体设计做准备。针对一般图书管理系统的需求,通过对数据管理工作过程的内容和数据流程的分析,得到其系统的逻辑模型

6、,根据综合条件的需求为本系统的数据库设计如下数据项和数据结构: 1. 用户表:用户名、用户密码、用户类型。用户表(user)具体设计如表3-1所示。表3-1 用户表(user)名称字段名称类型主键非空用户名user文本YesYes用户密码passward文本NoNo用户类型isAdmin是/否NoYes2. 罚款设置表:罚款类型、罚款金额。罚款设置表(publishType)具体设计如表3-2所示。表3-2 罚款设置表(publishType)名称字段名称类型主键非空罚款类型type文本YesYes罚款金额money文本NoYes3. 图书类型设置表:类别名称、可借出天数。图书类型设置表(bo

7、okType)具体设计如表3-3所示。表3-3 图书类型设置表(publishType)名称字段名称类型主键非空类别名称type文本YesYes可借出天数number数字NoYes4. 读者类型设置表:类别名称、可借书册数。读者类型设置表(readerType)具体设计如表3-4所示。表3-4 读者类型设置表(readerType)名称字段名称类型主键非空类别名称type文本YesYes可借书册数number数字NoYes5. 归还信息表:记录号、读者编号、读者姓名、图书编号、图书名称、图书类别、图书价格、借出日期、归还日期、罚款金额、其他金额、总计金额、操作员。图书信息表(bookInfo)

8、具体设计如表3-5所示。 表3-5 图书信息表(bookInfo)名称字段名称类型主键非空图书编号code文本YesYes图书名称name文本NoYes图书类别type文本NoYes出版社press文本NoNo作者writer文本NoNo图书价格price文本NoNo登记日期in_date日期/时间NoYes是否借出isBorrow是/否NoNo借阅人编号reader_code文本NoNo说明brief文本NoNo6. 读者信息表:读者编号、读者姓名、读者性别、读者类别、注册日期、联系电话、单位部门、住址、说明。读者信息表(readerInfo)具体设计如表3-6所示。表3-6 读者信息表(r

9、eaderInfo)名称字段名称类型主键非空读者编号code文本YesYes读者姓名name文本NoYes读者性别sex文本NoYes读者类别type文本NoYes注册日期reg_date日期/时间NoYes联系电话phone文本NoNo单位部门dept文本NoNo住址address文本NoNo说明brief文本NoNo7. 借出信息表:记录号、读者编号、读者姓名、图书编号、图书名称、图书类别、图书价格、借出日期、归还日期、是否归还、操作员。借出信息表(borrowInfo)具体设计如表3-7所示。表3-7 借出信息表(borrowInfo)名称字段名称类型主键非空记录号ID自动编号YesYe

10、s读者编号reader_code文本NoYes读者姓名reader_name文本NoYes图书编号book_code文本NoYes图书名称book_name文本NoYes图书类别book_type文本NoNo图书价格price文本NoNo借出日期borrow_date日期/时间NoYes归还日期return_date日期/时间NoYes是否归还isReturn文本NoNo操作员operator文本NoYes8. 归还信息表:记录号、读者编号、读者姓名、图书编号、图书名称、图书类别、图书价格、借出日期、归还日期、罚款金额、其他金额、总计金额、操作员。归还信息表(returnInfo)具体设计如表

11、3-8所示。表3-8 归还信息表(returnInfo)的结构名称字段名称类型主键非空记录号ID自动编号YesYes读者编号reader_code文本NoYes读者姓名reader_name文本NoYes图书编号book_code文本NoYes图书名称book_name文本NoYes图书类别book_type文本NoNo图书价格price文本NoNo借出日期borrow_date日期/时间NoYes归还日期return_date日期/时间NoYes罚款金额punish文本NoNo其他金额other文本NoNo总计金额total文本NoNo操作员operator文本NoYes第4章 功能模块详细

12、设计1. 基本界面创建一个基于单文档的MFC应用程序,建立系统主体框架,生成应用程序类、文档类、视图类等;在菜单项中添加相应的子菜单项;在工具栏中选择必要的控件置于菜单栏,在相应的视图类中添加消息处理函数;按功能模块的划分,使用资源编辑器创建系统菜单;在视图类的Paint事件处理函数OnPaint()中添加代码,实现加载背景图片的功能。基本界面设计如下图4-1所示。图4-1 基本界面2. 登录界面即为权限验证模块,主要是根据用户输入的用户名和密码验证用户身份并决定其操作权限,而且会对用户的输入情况给出相应的提示信息。在添加过相应的“用户名”、“密码”、“登录”、“退出”等功能键的基本控件后,在

13、类视图中添加相应的消息处理函数;在视图类的Paint事件处理函数OnPaint()中添加代码,实现加载背景图片使登陆界面更加美观。登陆界面如图4-2所示。图4-2 登陆界面登录界面的实现核心代码如下:CUserSet recordset;m_ctrUser.SetFocus(); /用户身份分配权限设置m_ctrPass.SetFocus(); CLibraryApp* ptheApp = (CLibraryApp *) AfxGetApp();CArchive ar(&file,CArchive:store); /密码设置在用户登录时,如果密码错误时,系统会给出提示 “密码错误,请重新输入!

14、”,同时系统内部会进行信息初始化,供用户进行重新输入操作。密码验证界面如图4-3所示。图4-3 错误提示完成初始化工作,从数据表中提取用户名列表中的数据,以便用户选择并登录CDialog:OnInitDialog();CUserSet recordset ;m_ctrUser.AddString(recordset.m_user);recordset.MoveNext();/用户信息初始化3. 用户管理模块提供添加新用户、删除指定用户、修改用户的密码和权限的功能,该模块功能只限于具有系统管理员权限的用户使用。模块结构:包括添加新用户、修改用户口令、修改用户权限、删除用户。用户管理界面设计如图4

15、-4所示。图4-4 用户管理界面用户管理模块实现的核心代码如下:CUserSet:CUserSet(CDatabase* pdb): CRecordset(pdb)m_user = _T();m_passwd = _T();m_isadmin = FALSE;m_nFields = 3;m_nDefaultType = snapshot;/新增用户设置CString CUserSet:GetDefaultConnect()CString CUserSet:GetDefaultSQL()void CUserSet:DoFieldExchange(CFieldExchange* pFX)pFX-S

16、etFieldType(CFieldExchange:outputColumn);RFX_Text(pFX, _T(user), m_user);RFX_Text(pFX, _T(passwd), m_passwd);RFX_Bool(pFX, _T(isadmin), m_isadmin);CRecordset:AssertValid();CRecordset:Dump(dc);4. 基础数据设置模块主要通过图书逾期罚款设置、图书类别设置和读者类别设置三个子模块分别来实现相应子基础数据的维护和管理。模块结构:罚款设置、图书类别设置、读者类别设置。 罚款设置界面设计如下:图4-5 罚款设置界面

17、罚款设置核心代码如下:void CPunishTypeDlg:OnOK() UpdateData(); if(m_strMoney.IsEmpty() AfxMessageBox(请输入罚款金额); return; /检查金额输入 rs.Close(); CDialog:OnOK();/ 罚款金额设置 读者类型设置可根据读者类别设置可节约图书的数量,可以增加、修改和删除读者的类别设置、可借阅图书量。读者类型设置界面如图4-6所示。图4-6 读者类型界面读者类型模块实现核心代码如下: CReaderTypeDlg:OnInitDialog() /初始化读者类型对话框m_ctrList.Inser

18、tColumn(0,类别名称);m_ctrList.SetColumnWidth(0,120);m_ctrList.InsertColumn(1,可借册数);m_ctrList.SetColumnWidth(1,60);m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);CReaderTypeDlg:RefreshData() /刷新读者类型对话框的数据m_ctrList.SetFocus(); /清空列表m_ctrList.DeleteAllItems();m_ctrList.SetRedraw(FALSE);U

19、pdateData(TRUE); /打开记录集m_ctrList.InsertItem(i,m_recordset.m_type);itoa(m_recordset.m_number,buffer,10);m_ctrList.SetItemText(i,1,buffer); m_recordset.MoveNext(); /添加记录CReaderTypeDlg:OnButtonNew() /添加新读者类型m_recordset.AddNew();m_recordset.m_type = dlg.m_strType;m_recordset.m_number = dlg.m_nNumber;m_r

20、ecordset.Update();m_recordset.Close();CReaderTypeDlg:OnButtonModify() /修改读者类别数据m_recordset.Edit();m_recordset.m_type = dlg.m_strType;m_recordset.m_number = dlg.m_nNumber;m_recordset.Update();m_recordset.Close();CReaderTypeDlg:OnButtonDelete() /删除读者类别数据m_recordset.Delete();m_recordset.Close(); 图书类别设置

21、主要包括图书类别名称和可借出天数,并且带有增加、修改、删除图书类别的功能。图书类型设置功能界面如图4-7所示。图4-7 图书类别设置功能界面CBookTypeDlg:OnButtonNew() / 新增图书类型m_recordset.AddNew();m_recordset.m_type = dlg.m_strType;m_recordset.m_number = dlg.m_nNumber;CBookTypeDlg:OnButtonModify() / 修改图书类型m_recordset.Edit();m_recordset.m_type = dlg.m_strType;m_recordse

22、t.m_number = dlg.m_nNumber;RefreshData();CBookTypeDlg:OnButtonDelete()/ 删除图书类型CBookTypeDlg:OnInitDialog() / 初始化对话框m_ctrList.SetColumnWidth(0,120); m_ctrList.SetColumnWidth(1,60);CBookTypeDlg:RefreshData() /刷新图书类型数据m_ctrList.InsertItem(i,m_recordset.m_type);itoa(m_recordset.m_number,buffer,10);m_ctrL

23、ist.SetItemText(i,1,buffer);m_recordset.MoveNext();5. 借阅管理模块该模块主要实现借书和还书的登记功能,同时提供借书记录和还书记录的查询和浏览功能。模块结构:借书、借书查询、还书、还书查询。 借书设置界面如图4-8所示。图4-8 借书设置界面借书设置实现的核心代码如下:CBorrowDlg:CBorrowDlg(CWnd* pParent /*=NULL*/) : CDialog(CBorrowDlg:IDD, pParent) /借书对话框的构建BEGIN_MESSAGE_MAP(CBorrowDlg, CDialog)CBorrowDlg

24、:OnChangeEditReaderCode() /设置读者编号m_nAlready=rs_BookInfoSet.GetRecordCount();m_nLeft = m_nAllow - m_nAlready;rs_BookInfoSet.Close();m_bReaderEnable = TRUE;CBorrowDlg:OnChangeEditBookCode() /设置图书编号m_strBookName = rs_book.m_name;m_strBookType = rs_book.m_type;m_strBookPrice = rs_book.m_price;rs_book.Cl

25、ose();m_nDays = rs_bookType.m_number;rs_bookType.Close();m_bBookEnable = TRUE;CBorrowDlg:OnOK() /借书对话框确定键函数rs_book.Edit();rs_book.m_isBorrow = TRUE;rs_book.m_reader_code = m_strReaderCode;rs_book.Update();rs_book.Close();m_recordset.AddNew();m_recordset.m_book_code =m_strBookCode;m_recordset.m_book_

26、name =m_strBookName;m_recordset.m_book_type = m_strBookType;m_recordset.m_borrow_date =CTime:GetCurrentTime();m_recordset.m_operator =ptheApp-m_strOperator;m_recordset.m_price =m_strBookPrice ;m_recordset.m_reader_code= m_strReaderCode ;m_recordset.m_reader_name= m_strReaderName ;m_recordset.m_retur

27、n_date = CTime:GetCurrentTime()+m_nDays*24*3600;m_recordset.m_isReturn = FALSE;m_recordset.Update();m_recordset.Close();m_strBookCode=; /更新界面显示m_strBookName=;m_strBookType=;m_strBookPrice=;m_nDays=0;m_nAlready+;m_nLeft-;m_bBookEnable = FALSE;UpdateData(FALSE);RefreshData();CBorrowDlg:RefreshData() /

28、刷新借书对话框数据m_ctrList.InsertItem(i,m_recordset.m_book_code);m_ctrList.SetItemText(i,1,m_recordset.m_book_name);m_ctrList.SetItemText(i,2,m_recordset.m_price);m_ctrList.SetItemText(i,3,m_recordset.m_book_type);strTime.Format(%d-%d-%d,m_recordset.m_borrow_date.GetYear(),m_recordset.m_borrow_date.GetMonth

29、(),m_recordset.m_borrow_date.GetDay();m_ctrList.SetItemText(i,5,strTime);m_ctrList.SetItemText(i,6,m_recordset.m_operator);i+;m_recordset.MoveNext();CBorrowDlg:OnInitDialog() /初始化借书对话框 还书设置界面如图4-9所示。图4-9 还书设置界面还书设置实现的核心代码如下:CReturnDlg:CReturnDlg(CWnd* pParent /*=NULL*/) : CDialog(CReturnDlg:IDD, pPa

30、rent)CReturnDlg:DoDataExchange(CDataExchange* pDX)CReturnDlg:OnInitDialog()m_bntReturn.EnableWindow(FALSE);CReturnDlg:OnButtonReturn()rs_book.Edit(); rs_book.m_isBorrow = FALSE; rs_book.m_reader_code = _T(); rs_book.Update(); rs_book.Close();if(m_BorrowSet.GetRecordCount()!=0) m_BorrowSet.Edit(); m_

31、BorrowSet.m_isReturn = TRUE; m_BorrowSet.Update(); m_BorrowSet.Close();strSQL.Format(select * from borrowInfo where book_code = %s and isReturn = False ,m_strBookCode);m_ReturnSet.AddNew(); m_ReturnSet.m_book_code = m_strBookCode; m_ReturnSet.m_book_name = m_strBookName; m_ReturnSet.m_book_type = m_

32、strBookType; m_ReturnSet.m_borrow_date = m_tmBorrow; m_ReturnSet.m_operator = ptheApp-m_strOperator; gcvt(m_fOther,7,buffer); m_ReturnSet.m_other = buffer; m_ReturnSet.m_price = m_strPrice; gcvt(m_fPunish,7,buffer); m_ReturnSet.m_punish = buffer; m_ReturnSet.m_reader_code = m_strReaderCode; m_Return

33、Set.m_reader_name = m_strReaderName; m_ReturnSet.m_return_date = CTime:GetCurrentTime(); m_ReturnSet.m_total = buffer; m_ReturnSet.Update(); m_ReturnSet.Close(); AfxMessageBox(图书归还成功!,MB_ICONINFORMATION ); /恢复到初始状态CReturnDlg:OnButtonClear() m_strBookCode = _T(); m_strBookName = _T(); m_strBookType =

34、 _T(); m_nOverDays = 0; m_strPrice = _T(); m_strReaderCode = _T(); m_strReaderName = _T();CReturnDlg:OnChangeEditBookcode()m_strBookName = m_BorrowSet.m_book_name; m_strBookType = m_BorrowSet.m_book_type; m_strPrice = m_BorrowSet.m_price; m_strReaderCode = m_BorrowSet.m_reader_code; m_strReaderName

35、= m_BorrowSet.m_reader_name; m_tmBorrow = m_BorrowSet.m_borrow_date; m_tmReturn = m_BorrowSet.m_return_date; CPunishTypeSet rs; /显示罚款数据 rs.Open(AFX_DB_USE_DEFAULT_TYPE,select * from punishtype); m_fPunish =(float)( m_nOverDays*(atof(rs.m_money); m_fTotal = m_fOther + m_fPunish; m_BorrowSet.Close();/

36、设置按钮状态 m_bntReturn.EnableWindow();CReturnDlg:OnChangeEditOther() m_fTotal = m_fOther + m_fPunish; 还书查询设置界面如图4-10所示。图4-10 还书查询设置界面还书查询设置实现的核心代码如下:CReturnSearchDlg:CReturnSearchDlg(CWnd* pParent /*=NULL*/) : CDialog(CReturnSearchDlg:IDD, pParent) m_strBookCode = _T(); m_strReaderCode = _T();CReturnSea

37、rchDlg:OnButtonSearch()m_ctrList.DeleteAllItems();m_ctrList.InsertItem(i,m_recordset.m_reader_code);m_ctrList.SetItemText(i,2,m_recordset.m_book_code);strTime.Format(%d-%d-%d,m_recordset.m_borrow_date.GetYear(),m_recordset.m_borrow_date.GetMonth(),m_recordset.m_borrow_date.GetDay();m_ctrList.SetItem

38、Text(i,6,strTime);m_return_date.GetMonth(),m_recordset.m_return_date.GetDay();m_ctrList.SetItemText(i,7,strTime);m_ctrList.SetItemText(i,8,m_recordset.m_punish);m_ctrList.SetItemText(i,9,m_recordset.m_other);m_recordset.MoveNext();5. 书库管理模块实现对所有图书信息的管理功能,包括新书的入库登记,图书信息的查询浏览,以及图书的挂失等。模块结构:新书登记、图书信息查询

39、、图书挂失。 新书登记设置界面如图4-11所示。图4-11 新书登记设置界面新书登记界面实现核心代码如下:CNewBookDlg:CNewBookDlg(CWnd* pParent /*=NULL*/): CDialog(CNewBookDlg:IDD, pParent)m_strBookType = _T();m_strBookCode = _T();m_strBookName = _T();m_strPrice = _T();m_strPress = _T();m_strWriter = _T();m_strBrief = _T();CNewBookDlg:DoDataExchange(C

40、DataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_CBString(pDX, IDC_COMBO_BOOKTYPE, m_strBookType);DDX_Text(pDX, IDC_EDIT_BOOK_CODE, m_strBookCode);DDX_Text(pDX, IDC_EDIT_BOOK_NAME, m_strBookName);DDX_Text(pDX, IDC_EDIT_BOOK_PRICE, m_strPrice);DDX_Text(pDX, IDC_EDIT_PRESS, m_strPress);DDX_Text(pDX,

41、IDC_EDIT_WRITER, m_strWriter);DDX_Text(pDX, IDC_EDIT_BRIEF, m_strBrief);CNewBookDlg:OnInitDialog() CNewBookDlg:OnButtonNew() AfxMessageBox(请输入图书编号!);AfxMessageBox(请输入图书类型!);AfxMessageBox(请输入图书名称!);MessageBox(打开数据库失败!,数据库错误,MB_OK);AfxMessageBox(该图书编号已经存在,请重新输入!);MessageBox(打开数据库失败!,数据库错误,MB_OK);CNewBookDlg:OnButtonAll() m_ctrList.DeleteAllItems();strSQL.Format( select * from bookInfo );MessageBox(打开数据库失败!,数据库错误,MB_OK);while(!m_recordset.IsEOF()m_

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁