




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VisualVisual C+C+课程大作业课程大作业 题目名称: 图书馆管理系统 系 名 称: 计算机科学与信息工程学院 专业班级: 12 级软件工程一班 姓名学号: 王 停 1 姓名学号: 徐开放 9 指导老师: 李 源 2013 年 6 月 I - - 目目 录录 第第 1 章章 组员分工组员分工.1 第第 2 章章 需求分析需求分析.2 第第 3 章章 总体设计总体设计.3 3.1 系统功能模块图 .3 3.2 系统设计流程图.3 3.3 数据库设计.4 第第 4 章章 功功能能模块详细设计模块详细设计.8 第第 5 章章 系统测试系统测试.27 第第 6 章章 总结总结.31 第第 7 章章 参考文献参考文献.32 - 1 - 第第 1 1 章章 组员分工组员分工 图书管理系统是一个比较大的系统,本系统有两名成员共同完成。 王停主要负责系统中对整个数据库的操作、管理和设置部分,包括权限验证、用户 管理、基础数据设置、数据库的备份与恢复,以实现对数据库的管理和维护工作,并提 高系统的数据安全性等工作。 徐开放主要负责实现对数据库中的具体表的数据项的管理和操作,包括借阅管理、 书库管理、读者管理等模块,通过添加、删除、修改等操作,来实现对图书信息、读者 信息、借阅信息的管理和登记,从而能够为借阅者提供方便快捷的服务,同时也提高了 操作人员的管理效率。 - 2 - 第第 2 2 章章 需求分析需求分析 该图书管理系统是基于利用计算机管理图书信息的需求而设计的,主要致力于为图 书借阅人提供方便快捷的服务,以及为图书管理人员提供准确可靠的信息,旨在提高图 书管理的效率,节约相关的管理成本,增强图书管理的安全性,为学校的信息化建设提 供必要的支持。 其具体需求分析如下: 1. 系统需求 该系统需提供给图书借阅者、信息管理员和图书馆管理人员共三方面的需求,图书 借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息的修改;信息管理员 对图书借阅者的借阅及还书要求进行操作,同时对借书或还书信息进行查询;图书馆管 理员实现图书采购及验收编目入库。它要满足图书借阅管理、图书书库管理、图书借阅 人管理的基本要求,并能实现方便的操作和扩展,满足图书馆发展的需要,保障图书管 理书籍的安全、准确。 2. 功能需求 该图书管理系统主要有以下几项基本功能: 用户管理:用于管理系统用户,并能设置用户口令和权限,实现用户的添加、修 改和删除,从而为系统的安全性提供保障。 基础数据管理:负责维护图书管理相关的基础数据,主要包括对图书逾期罚款、 图书类别、读者类别的设置。 借阅管理:完成图书的借出登记,归还登记信息,以及借书信息和还书信息的查 询浏览等借阅相关的管理功能。 书库管理:维护书库中的图书信息,能够完成新书的入库登记,图书信息的查询 以及图书丢失处理等功能。 读者管理:维护读者的相关信息,能够完成新读者信息的登记,读者信息的查询 以及读者注销等功能。 数据库管理:对现有的数据库进行管理,包括数据备份和恢复,以方便用户对数 据库的管理和维护工作,提高系统的数据安全性。 3. 性能需求 Windows XP/2000/98/ME 中的 Visual C+开发环境,Microsoft Access 2003 数据库 使用软件。 - 3 - 第第 3 3 章章 总体设计总体设计 3.1 系统功能模块图 通过建立该图书馆电子系统,实现借书人员的权限验证,实现管理员对其用户进行 管理的使用性能,及借阅图书和借阅用户的管理,同时可实现系统管理员对整个图书馆 的数据库的管理。 图书管理系统功能模块图如图 3-1 所示: 图 3-1 图书管理系统功能模块图 3.2 系统设计流程图 图书管理系统流程图如图 3-2 所示: 图 3-2 图书管理系统流程图 图书管理系统 权 限 验 证 用 户 管 理 基 础 数 据 设 置 借 阅 管 理 书 库 管 理 读 者 管 理 数 据 库 管 理 - 4 - 3.3 数据库设计 数据库的好坏关系到系统的运行速率、存储数据的效率,合理的数据库设计可以提 高系统的性能。数据库结构要能充分满足各种信息的输入和输出,收集基本数据,数据 结构处理的流程,组成一份详尽的数据字典,为具体设计做准备。针对一般图书管理系 统的需求,通过对数据管理工作过程的内容和数据流程的分析,得到其系统的逻辑模型, 根据综合条件的需求为本系统的数据库设计如下数据项和数据结构: 1. 用户表:用户名、用户密码、用户类型。 用户表(user)具体设计如表 3-1 所示。 表 3-1 用户表(user) 名称字段名称类型主键非空 用户名 user 文本 YesYes 用户密码 passward 文本 NoNo 用户类型 isAdmin 是/否 NoYes 2. 罚款设置表:罚款类型、罚款金额。 罚款设置表(publishType)具体设计如表 3-2 所示。 表 3-2 罚款设置表(publishType) 名称字段名称类型主键非空 罚款类型 type 文本 YesYes 罚款金额 money 文本 NoYes 3. 图书类型设置表:类别名称、可借出天数。 图书类型设置表(bookType)具体设计如表 3-3 所示。 表 3-3 图书类型设置表(publishType) 名称字段名称类型主键非空 类别名称 type 文本 YesYes 可借出天数 number 数字 NoYes 4. 读者类型设置表:类别名称、可借书册数。 读者类型设置表(readerType)具体设计如表 3-4 所示。 - 5 - 表 3-4 读者类型设置表(readerType) 名称字段名称类型主键非空 类别名称 type 文本 YesYes 可借书册数 number 数字 NoYes 5. 归还信息表:记录号、读者编号、读者姓名、图书编号、图书名称、图书类别、 图书价格、借出日期、归还日期、罚款金额、其他金额、总计金额、操作员。 图书信息表(bookInfo)具体设计如表 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 文本 NoNo 6. 读者信息表:读者编号、读者姓名、读者性别、读者类别、注册日期、联系电话、 单位部门、住址、说明。 读者信息表(readerInfo)具体设计如表 3-6 所示。 表 3-6 读者信息表(readerInfo) 名称字段名称类型主键非空 读者编号 code 文本 YesYes 读者姓名 name 文本 NoYes 读者性别 sex 文本 NoYes 读者类别 type 文本 NoYes 注册日期 reg_date 日期/时间 NoYes 联系电话 phone 文本 NoNo 单位部门 dept 文本 NoNo - 6 - 住址 address 文本 NoNo 说明 brief 文本 NoNo 7. 借出信息表:记录号、读者编号、读者姓名、图书编号、图书名称、图书类别、 图书价格、借出日期、归还日期、是否归还、操作员。 借出信息表(borrowInfo)具体设计如表 3-7 所示。 表 3-7 借出信息表(borrowInfo) 名称字段名称类型主键非空 记录号 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 是否归还 isReturn 文本 NoNo 操作员 operator 文本 NoYes 8. 归还信息表:记录号、读者编号、读者姓名、图书编号、图书名称、图书类别、 图书价格、借出日期、归还日期、罚款金额、其他金额、总计金额、操作员。 归还信息表(returnInfo)具体设计如表 3-8 所示。 表 3-8 归还信息表(returnInfo)的结构 名称字段名称类型主键非空 记录号 ID 自动编号 YesYes 读者编号 reader_code 文本 NoYes 读者姓名 reader_name 文本 NoYes 图书编号 book_code 文本 NoYes 图书名称 book_name 文本 NoYes 图书类别 book_type 文本 NoNo 图书价格 price 文本 NoNo - 7 - 借出日期 borrow_date 日期/时间 NoYes 归还日期 return_date 日期/时间 NoYes 罚款金额 punish 文本 NoNo 其他金额 other 文本 NoNo 总计金额 total 文本 NoNo 操作员 operator 文本 NoYes - 8 - 第第 4 4 章章 功能模块详细设计功能模块详细设计 1. 基本界面 创建一个基于单文档的 MFC 应用程序,建立系统主体框架,生成应用程序类、文档 类、视图类等;在菜单项中添加相应的子菜单项;在工具栏中选择必要的控件置于菜单 栏,在相应的视图类中添加消息处理函数;按功能模块的划分,使用资源编辑器创建系 统菜单;在视图类的 Paint 事件处理函数OnPaint()中添加代码,实现加载背景图片的 功能。 基本界面设计如下图 4-1 所示。 图 4-1 基本界面 2. 登录界面 即为权限验证模块,主要是根据用户输入的用户名和密码验证用户身份并决定其操 作权限,而且会对用户的输入情况给出相应的提示信息。在添加过相应的“用户名” 、 “密码” 、 “登录” 、 “退出”等功能键的基本控件后,在类视图中添加相应的消息处理函 数;在视图类的 Paint 事件处理函数 OnPaint()中添加代码,实现加载背景图片使登陆 界面更加美观。 登陆界面如图 4-2 所示。 - 9 - 图 4-2 登陆界面 登录界面的实现核心代码如下: CUserSet recordset; m_ctrUser.SetFocus(); /用户身份分配权限设置 m_ctrPass.SetFocus(); CLibraryApp* ptheApp = (CLibraryApp *) AfxGetApp(); CArchive ar( /密码设置 在用户登录时,如果密码错误时,系统会给出提示 “密码错误,请重新输入!” , 同时系统内部会进行信息初始化,供用户进行重新输入操作。 密码验证界面如图 4-3 所示。 图 4-3 错误提示 - 10 - 完成初始化工作,从数据表中提取用户名列表中的数据,以便用户选择并登录 CDialog:OnInitDialog(); CUserSet recordset ; m_ctrUser.AddString(recordset.m_user); recordset.MoveNext();/用户信息初始化 3. 用户管理模块 提供添加新用户、删除指定用户、修改用户的密码和权限的功能,该模块功能只限 于具有系统管理员权限的用户使用。 模块结构:包括添加新用户、修改用户口令、修改用户权限、删除用户。 用户管理界面设计如图 4-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() - 11 - CString CUserSet:GetDefaultSQL() void CUserSet:DoFieldExchange(CFieldExchange* pFX) pFX-SetFieldType(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 罚款设置界面 罚款设置核心代码如下: void CPunishTypeDlg:OnOK() UpdateData(); if(m_strMoney.IsEmpty() - 12 - AfxMessageBox(请输入罚款金额); return; /检查金额输入 rs.Close(); CDialog:OnOK(); / 罚款金额设置 读者类型设置可根据读者类别设置可节约图书的数量,可以增加、修改和删除读 者的类别设置、可借阅图书量。 读者类型设置界面如图 4-6 所示。 图 4-6 读者类型界面 读者类型模块实现核心代码如下: CReaderTypeDlg:OnInitDialog() /初始化读者类型对话框 m_ctrList.InsertColumn(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); UpdateData(TRUE); /打开记录集 - 13 - 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_recordset.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(); 图书类别设置主要包括图书类别名称和可借出天数,并且带有增加、修改、删除 图书类别的功能。 图书类型设置功能界面如图 4-7 所示。 图 4-7 图书类别设置功能界面 - 14 - 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_recordset.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_ctrList.SetItemText(i,1,buffer); m_recordset.MoveNext(); 5. 借阅管理模块 该模块主要实现借书和还书的登记功能,同时提供借书记录和还书记录的查询和浏 览功能。 模块结构:借书、借书查询、还书、还书查询。 借书设置界面如图 4-8 所示。 图 4-8 借书设置界面 - 15 - 借书设置实现的核心代码如下: CBorrowDlg:CBorrowDlg(CWnd* pParent /*=NULL*/) : CDialog(CBorrowDlg:IDD, pParent) /借书对话框的构建 BEGIN_MESSAGE_MAP(CBorrowDlg, CDialog) CBorrowDlg: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.Close(); 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_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_return_date = CTime:GetCurrentTime()+m_nDays*24*3600; m_recordset.m_isReturn = FALSE; m_recordset.Update(); m_recordset.Close(); m_strBookCode=; /更新界面显示 m_strBookName=; - 16 - m_strBookType=; m_strBookPrice=; m_nDays=0; m_nAlready+; m_nLeft-; m_bBookEnable = FALSE; UpdateData(FALSE); RefreshData(); CBorrowDlg:RefreshData() /刷新借书对话框数据 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(),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*/) - 17 - : CDialog(CReturnDlg:IDD, pParent) 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_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_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_ReturnSet.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(); - 18 - m_strBookName = _T(); m_strBookType = _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 = 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();/设置按钮状态 m_bntReturn.EnableWindow(); CReturnDlg:OnChangeEditOther() m_fTotal = m_fOther + m_fPunish; 还书查询设置界面如图 4-10 所示。 图 4-10 还书查询设置界面 - 19 - 还书查询设置实现的核心代码如下: CReturnSearchDlg:CReturnSearchDlg(CWnd* pParent /*=NULL*/) : CDialog(CReturnSearchDlg:IDD, pParent) m_strBookCode = _T(); m_strReaderCode = _T(); CReturnSearchDlg: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.SetItemText(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. 书库管理模块 实现对所有图书信息的管理功能,包括新书的入库登记,图书信息的查询浏览,以 及图书的挂失等。 模块结构:新书登记、图书信息查询、图书挂失。 新书登记设置界面如图 4-11 所示。 图 4-11 新书登记设置界面 新书登记界面实现核心代码如下: - 20 - 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(CDataExchange* 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, 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_ctrList.InsertItem(i,m_recordset.m_code); m_ctrList.SetItemText(i,1,m_recordset.m_name); m_ctrList.SetItemText(i,2,m_recordset.m_type); m_ctrList.SetItemText(i,3,m_recordset.m_writer); m_ctrList.SetItemText(i,4,m_recordset.m_press); m_ctrList.SetItemText(i,5,m_recordset.m_price); m_ctrList.SetItemText(i,6,strTime); - 21 - m_ctrList.SetItemText(i,7,m_recordset.m_brief); i+; m_recordset.MoveNext(); CNewBookDlg:OnButtonDelete() int i = m_ctrList.GetSelectionMark(); AfxMessageBox(请选择一条记录进行删除!); strSQL.Format(select * from bookInfo where code = %s ,m_ctrList.GetItemText(i,0); AfxMessageBox(打开数据库失败!); m_recordset.Delete(); m_recordset.Close(); m_ctrList.DeleteItem(i); 图书信息查询界面如图 4-12 所示。 图 4-12 图书信息查询界面 图书信息查询界面实现代码如下: CBookSearchDlg:CBookSearchDlg(CWnd* pParent /*=NULL*/) : CDialog(CBookSearchDlg:IDD, pParent) m_strCode = _T(); CBookSearchDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST1, m_ctrList); CBookSearchDlg:OnButtonSearch() - 22 - strSQL=select * from bookInfo; strSQL.Format(select * from bookInfo where code = %s,m_strCode); RefreshData(strSQL); CBookSearchDlg:OnButtonAll() strSQL.Format( select * from bookInfo ); CBookSearchDlg:RefreshData(CString strSQL) m_ctrList.DeleteAllItems(); m_ctrList.SetRedraw(FALSE); MessageBox(打开数据库失败!,数据库错误,MB_OK); 图书挂失设置界面如图 4-13 所示。 图 4-13 图书挂失设置界面 图书挂失设置界面实现核心代码如下: CBookLostDlg:OnButtonLost() if(m_strCode.IsEmpty() AfxMessageBox(请输入待挂失的图书编号!); strSQL.Format(select * from bookInfo where code = %s ,m_strCode); if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL) AfxMessageBox(打开数据库失败!); if(m_recordset.GetRecordCount()=0) AfxMessageBox(没有找到该图书!); m_recordset.Close(); - 23 - m_recordset.Delete(); m_recordset.Close(); AfxMessageBox(图书挂失成功!,MB_ICONINFORMATION ); m_ctrList.DeleteAllItems(); m_strCode = _T(); CBookLostDlg:OnButtonAll() strSQL.Format( select * from bookInfo ); 7. 读者管理模块:实现对所有读者信息的管理功能,如读者登记,读者信息的查询 浏览,以及读者信息的注销等。 模块结构:读者登记、读者信息查询、读者注销 读者登记界面设置如图 4-14、4-15 所示。 图 4-14 读者登记界面 读者登记界面实现核心代码如下: CReaderInfoSet:CReaderInfoSet(CDatabase* pdb): CRecordset(pdb) m_code = _T(); m_name = _T(); m_sex = _T(); m_type = _T(); m_phone = _T(); m_dept = _T(); m_address = _T(); m_brief = _T(); - 24 - CReaderInfoSet:GetDefaultConnect() return _T(ODBC;DSN=LibraryDB); CReaderInfoSet:GetDefaultSQL() return _T(readerInfo); CReaderInfoSet:DoFieldExchange(CFieldExchange* pFX) pFX-SetFieldType(CFieldExchange:outputColumn); RFX_Text(pFX, _T(code), m_code); RFX_Text(pFX, _T(name), m_name); RFX_Text(pFX, _T(sex), m_sex); RFX_Text(pFX, _T(type), m_type); RFX_Date(pFX, _T(reg_date), m_reg_date); RFX_Text(pFX, _T(address), m_address); 读者信息查询界面设置如图 4-15 所示。 图 4-15 读者信息查询界面 读者信息查询界面实现核心代码如下: CReaderSearchDlg:CReaderSearchDlg(CWnd* pParent /*=NULL*/) : CDialog(CReaderSearchDlg:IDD, pParent) m_strType = _T(); m_strCode = _T(); CReaderSearchDlg:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建省榕圣市政工程股份有限公司招聘3人笔试历年参考题库附带答案详解
- 2025甘肃华瑞农业股份有限公司招聘5人笔试历年参考题库附带答案详解
- 2025年安徽省农业科学院引进31人模拟试卷及答案详解(易错题)
- 2025年滨州市面向社会公开招聘硕博士高层次人才(168人)模拟试卷及答案详解(夺冠)
- 2025四川绵阳科技城科技创新投资有限公司招聘公司第二批中层管理人员及员工9人笔试历年参考题库附带答案详解
- 2025北京中水科工程集团有限公司监测事业部实习生招聘笔试历年参考题库附带答案详解
- 2025中国有色集团这一公司招聘21人笔试历年参考题库附带答案详解
- 2025北京昌平区第二批乡村助理员招5人考前自测高频考点模拟试题及一套参考答案详解
- 2025海南三亚人民医院四川大学华西三亚医院海南医科大学校园招聘考前自测高频考点模拟试题及答案详解参考
- 2025年福建供电服务公司招聘笔试考前自测高频考点模拟试题参考答案详解
- 2025年产前诊断知识考核试题及答案
- 涂装技能师考试题及答案
- 国庆节前安全培训课件
- 药品执法课件
- 获得性长尖端扭转性室速朱俊讲课文档
- 驾照换证考试题库及答案
- 2025年陕西省事业单位招聘考试卫生类护理学专业知识试题
- 急性高原反应救治课件
- 项目初步验收汇报
- 概算控制管理办法
- 黑龙江省公物仓管理办法
评论
0/150
提交评论