图书管理信息系统的设计与开发设计书.doc_第1页
图书管理信息系统的设计与开发设计书.doc_第2页
图书管理信息系统的设计与开发设计书.doc_第3页
图书管理信息系统的设计与开发设计书.doc_第4页
图书管理信息系统的设计与开发设计书.doc_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图书管理信息系统的设计与开发设计书1.1目标与可行性分析1.1.1目标图书管理系统主要致力于为图书借阅人提供方便快捷的服务,以及为图书管理人员提供准确可靠的信息。具体目标如下:n 提高图书管理的效率,借阅相关的管理成本。n 增强图书管理的安全性。n 为学校提供系统、规范的图书管理手段。n 满足借阅人、图书管理人员和学校领导的不同层次个不同方面的需要。n 为学校的整体信息化建设提供必要的支持。总之,通过该系统的建设来优化该学校的图书管理系统,提高管理效率,为学校的进一步发展提供更有力的支持。1.1.2可行性分析本次毕业设计题目:“图书管理系统”主要目的是利用数据库软件编制一个管理软件,用以实现图书、读者以及日常工作等多项管理。同时对整个系统的分析、设计过程给出一个完整论证。图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。本系统的设计主要从以下几方面做起:系统业务流程分析、系统的功能设计、系统的数据库结构设计、详细设计等。作这些工作需对数据库知识有足够认识,并深入的了解VC+6.0的使用和管理系统的相关知识。在信息时代的今天,人类需要对在政治、经济、军事、文化、科研、教育等领域产生的大量信息进行管理,并对数据进行加工处理,数据库技术则是信息管理与数据处理的先进技术。随着信息量的不断增加,作为计算机的三大主要应用(科学计算、过程控制和数据处理)之一的数据处理,已迅速上升为计算机应用的主要方面,数据库技术则成为人们日常生活中处理数据不可缺少的有力工具,并且现代的信息管理系统几乎都以数据库技术作为核心。1.2所用开发语言简介1.2.1 VC+的特点Visual C+是功能最为强大可视化开发工具,它不仅支持传统的软件开发方法,更重要的是它能支持面向对象、可视化的开发风格。因此Visual C+又称作是一个集成开发工具,它提供了软件代码自动生成和可视化的资源编辑功能。Visual C+具有的优点:提供了面向对象的应用程序框架MFC(Microsoft Foundation Class),简化了程序员的编程工作,提高了模块的可重用性;提供了基于CASE技术的可视化软件的自动生成和维护工具AppWizard、ClassWizard、Visual Studio、WizardBar等,实现了直观、可视的程序设计风格,方便地编和管理各种类,维护程序的源代码;封装了Windows的API函数、USER、KERNEL、GDI函数,简化了编程时创建、维护窗口的许多复杂的工作。61.2.2本程序中使用的VC+控件及其属性简介(1)CStatic(静态控件):显示一些几乎固定不变的文字或图形描述。(2)CButton(按钮控件):产生某些命令或改变某些选项设置。(3)CEdit(编辑框控件):完成文字的输入输出双向操作,查看并编辑文字。(4)CListBox(列表框控件):显示一个列表,让用户从中选取一个或多个项。(5)CComboBox(组合框):将列表框和编辑框有机地组合在一起,可选择列表中已有的项,还可以编辑出新的项。1.2.3系统数据访问接口的选择 Visual C+中可用的数据访问对象接口有三种:ODBC(Open Database Connectity,开放数据库连接)、DAO(Data Access Objects,数据访问对象)及OLE DB(OLE data Base,OLE数据库)。1ODBC(Open Database Connectity,开放数据库连接)ODBC提供了应用程序接口(API),使得任何一个数据库都可以通过ODBC驱动器与指定DBMC相联,用户的程序就可以通过调用ODBC驱动管理器中相应的驱动程序达到管理数据库的目的。作为Microsoft Windows Open Standards Architecture(WOSA,Windows开放式服务体系结构)的主要组成部分,ODBC一直沿用至今。2.DAO(Data Access Objects,数据访问对象)DAO 提供了一种通过程序代码创建和操纵数据库的机制。多个DAO 对象构成了一个体系结构,在这个结构里,各个DAO 对象协同工作,通过 Microsoft Jet 数据库访问数据库中的数据和数据库的结构定义。可以访问的数据库类型主要有:Microsoft Jet 数据库、ODBC 数据源、可安装的ISAM数据库。DAO 是我们可以通过程序访问和操纵本地的或远程的数据和数据定义,管理数据库中的对象或结构。DAO 支持两种不同的数据库环境称为工作区(Workspace). Microsoft Jet Workspace 这是一种使用Microsoft Jet 数据库引擎来访问数据源的工作区。ODBC Direct Workspace 这是一种使用 ODBC Direct 来直接访问一个ODBC 数据源,并绕过Microsoft Jet 数据库引擎的工作区。可通过ODBC访问数据库服务器,而无须安装Microsoft Jet 数据库引擎。3OLE DB(OLE data Base,OLE数据库)。OLE DB试图提高一种统一的数据访问接口,并能处理除了标准的关系型数据库中的数据之外,还能处理包括邮件数据、Web上的文本或图形、目录服务(Directory Services),以及主机系统中的IMS和VSAM数据。OLE DB提供一个数据库编程COM(组件对象模型)接口,使得数据的使用者(应用程序)可以使用同样的方法访问各种数据,而不用考虑数据的具体存储地点、格式或类型。这个COM接口与ODBC相比,其健壮性和灵活性要高的多。但是,由于OLE DB的程序比较复杂,因而对于一般用户来说使用ODBC和DAO方式已能满足一般数据库处理的需要。第二章 需求分析2.1系统分析图书管理系统需要满足来自三方面的需求,分别是图书借阅者、信息管理员和图书馆管理人员。图书借阅者的需求是查询图书馆所存在的图书、个人借阅情况及个人信息的修改;信息管理员对图书借阅者的借阅及还书要求进行操作,同时对借书或还书信息进行查询;图书馆管理人员实现图书采购及验收编目入库。在图书管理信息系统开发时应该满足以下具体的系统要求:1. 满足图书借阅管理的基本要求。2. 满足图书书库管理的基本要求。3. 满足图书借阅人管理的基本要求。4. 对操作人员的技能要求比较低,操作方便。5. 能够实现方便的扩展,满足图书馆发展的需要。6. 能够保障图书管理数据的安全,准确。2.2功能需求基于系统需求分析,该系统需要实现以下基本功能:1. 用户管理:管理系统操作人员,设置操作人员口令和权限。在满足不同系统用户的操作需求的基础上,提高系统的安全性。2. 基础数据管理:维护图书管理的一些基础数据。它主要包括以下功能:罚款设置:根据相应的规定设置图书超期归还的罚款金额。图书类别设置:设置管理图书的类别信息,并设定各类图书能借出的天数。读者类别设置:设置图书读者的类别信息,并设定各种类别读者能同时借阅图书的册数。3. 借阅管理:完成图书的借出登记,归还登记信息,以及借书信息和还书信息的查询浏览等借阅相关的管理功能。4. 书库管理:维护书库中的图书信息,能够完成新书的入库登记,图书信息的查询记忆图书丢失处理等功能。5. 读者管理:维护读者的相关信息,能够完成新读者信息的登记,读者信息的查询以及读者注销等功能。6. 数据库管理:对现有的数据库进行管理,包括数据备份和恢复,以方便用户对数据库的管理和维护工作,提高系统的数据安全性。2.3性能需求1 硬件环境在最低配置的情况下,系统的性能往往不尽如人意,现在的硬件性能已经相当出色,而且价格也很便宜,因此通常给服务器端配置高性能硬件。n 处理器:Inter Pentium II 266 MX或更高n 内存:64MBn 硬盘空间:2GBn 显卡:SVGA显示适配器2 软件环境n 操作系统:Windows 98/ME/2000/XP8n 数据库:Microsoft Acess 200064 第三章 总体设计第三章 总体设计3.1基本设计概念和处理流程学校的图书管理职能有该学校图书馆独立完成,因此将本系统设计成一个相对封闭的单机运行系统,同时,也出于安全性考虑,该系统不提供于该单位其他系统的数据交互。系统应该界面美观、简单易用,实现图书管理基本业务的计算机处理。本系统采用Visual C+6.0开发,采用Microsoft Acess 2000作用后台数据库,在满足需求的前提下,将系统对运行环境的性能要求降到最低。系统基本的流程适:用户登录主界面选择各项功能3.2系统层次模块图 学校图书管理信息系统可以分为七个模块:权限验证、用户管理、基础数据设置、借阅管理、书库管理、读者管理和数据管理,如图31所示。系统业务流程如图32所示,权限验证用户管理模块用户管理基础数据设置借阅管理书库管理读者管理数据库管理3-1图书管理信息系统主模块3-2系统业务流程基础数据录入图书信息录入读者信息录入借阅信息录入基础数据设置图书管理读者管理借阅管理生成生成生成生成基础数据库图书信息数据库读者信息数据库借阅信息数据库读取3.3数据库设计9 根据系统功能设计的要求以及功能模块的划分,对于本系统的数据库,可以列出以下数据项和数据结构:1. 名称:系统用户表(见表3-1) 表名称标识:user数据来源:用户管理模块进行录入表31 系统用户表名称字段名称类型主键非空用户名user文本YesYes用户密码passwd文本NoYes用户类型admin是/否NoYes2. 名称:罚款设置表(见表3-2)表名称标识:pulishType数据来源:基础数据设置模块进行录入表32 罚款设置表名称字段名称类型主键非空罚款类型type文本YesYes罚款金额money文本NoYes3.名称:图书类型设置表(见表3-3)表名称标识:bookType数据 来源:基础数据设置模块进入录入 33 图书类型设置表名称字段名称类型主键非空类别名称type文本YesYes可借出天数number数字NoYes4.名称:读者类型设置表(见表3-4)表名称标识:readerType数据来源:基础数据设置模块进行录入表34读者类型设置表 名称字段名称类型主键非空类别名称type文本YesYes可借书册数number数字NoYes5.名称:图书信息表(见表3-5)表名称标识:bookInfo数据来源:书库管理模块进行录入表35图书信息表 名称字段名称类型主键非空图书编号code文本YesYes图书名称name文本NoYes图书类别type文本YesYes出版社press文本NoNo作者writer文本NoNo图书价格price文本NoNo登记日期In_date日期/时间NoYes是否借出isBorrow是/否NoNo借阅人编号Reader_code文本NoNo说明brief文本NoNo6名称:读者信息表(见表3-6)表名称标识:readetInfo数据来源:读者管理模块进行录入表36读者信息表 名称字段名称类型主键非空读者编号code文本YesYes读者姓名name文本NoYes读者性别sex文本NoYes读者类别type文本NoYes注册日期Reg_date日期/时间NoYes联系电话phone文本NoNo是否借出dept文本NoNo住址address文本NoNo说明brief文本NoNo第一章 名称:借出信息表(见表3-7)表名称标识:borrowInfo数据来源:借阅管理模块进行录入 表37借出信息表 名称字段名称类型主键非空记录号自动编号文本YesYes读者编号code文本YesYes读者姓名name文本NoYes图书编号book_code文本YesYes图书名称book_name文本NoYes图书类别book_type文本YesYes图书价格price文本NoNo借出日期borrow_date日期/时间NoYes归还日期return_date日期/时间NoYes是否归还isReturn文本NoNo操作员operator文本NoYes第二章 名称 :归还信息表(见表3-8)表名称标识:returnInfo数据来源:借阅管理模块进行录入 表38归还信息表 名称字段名称类型主键非空记录号自动编号文本YesYes读者编号code文本YesYes读者姓名name文本NoYes图书编号book_code文本YesYes图书名称book_name文本NoYes图书类别book_type文本YesYes图书价格price文本NoNo借出日期borrow_date日期/时间NoYes归还日期return_date日期/时间NoYes罚款金额punish文本NoNo其他金额other文本NoNo总计金额total文本NoNo操作员operator文本NoYes 第四章 详细设计第四章 详细设计本系统的详细设计是基于系统需求分析于系统总体设计的结论来进行的,并采用VC+6.0实现个模块的功能。因此,系统的设计和实现按照模块的划分来分别阐述。4.1系统主控平台1. 主控平台界面设计充分考虑易于操作的系统需求,主控制平台使用简单和直观的布局设计。2. 主控平台的实现1) 主体框架:使用MFC AppWizard创建一个单文档结构的应用程序工程,建立起系统主控框架,生成应用程序类(CLibraryApp)、视图类(CLibraryView)和主框架类(CMainFram)。2) 菜单:根据系统总体设计钟功能模块的划分,使用资源编辑器创建系统菜单。3) 背景图:通过修改系统视图类Paint事件处理函数OnPaint()来实现加载背景图,具体代码如下:void CLibraryView:OnPaint() CPaintDC* pDC=new CPaintDC(this); / 创建设备上下文CBitmap bmp; RECTRect;RECTRectView;POINTptSize;CDCdcmem;BITMAPbm;int b = bmp.LoadBitmap(IDB_BITMAP_BG); /将位图取出;dcmem.CreateCompatibleDC(pDC); /创建兼容设备上下文。dcmem.SelectObject(&bmp); /用设备上下文选择位图;dcmem.SetMapMode(pDC-GetMapMode(); /设置映射方式;GetObject(bmp.m_hObject, sizeof(BITMAP), (LPSTR)&bm); /映射位图;GetClientRect(&Rect);ptSize.x=bm.bmWidth;ptSize.y=bm.bmHeight;pDC-DPtoLP(LPPOINT)&ptSize,1); /设备单元to逻辑单元;GetClientRect(&RectView);CRect RectBmp = RectView;/当位图宽度容纳不下的处理if(RectView.right - RectView.left) bm.bmWidth) RectBmp.left = RectView.left + (RectView.right - RectView.left - bm.bmWidth) / 2;RectBmp.right = bm.bmWidth;else13RectBmp.left = RectView.left;RectBmp.right = RectView.right - RectBmp.left;/当位图高度容纳不下的处理if(RectView.bottom - RectView.top) bm.bmHeight)RectBmp.top = RectView.top + (RectView.bottom - RectView.top - bm.bmHeight) / 2;RectBmp.bottom = bm.bmHeight;elseRectBmp.top = RectView.top;RectBmp.bottom = RectView.bottom - RectBmp.top;/加载视图到设备上下文中pDC-StretchBlt(RectBmp.left, RectBmp.top, RectBmp.right,RectBmp.bottom, &dcmem, 0, 0, bm.bmWidth, bm.bmHeight,SRCCOPY);/删除设备上下文dcmem.DeleteDC();4.2权限验证模块根据需求分析和总体设计,此模块主要示根据用户输入的用户名和密码验证用户身份并且决定其操作权限。1. 权限验证IPO图 输入:用户名和密码处理:1) 用户登录对话框启动。2) 从系统用户表中读取用户的名称信息,并写入用户名下拉框中,以方便登录。3) 用户选择用户名并输入密码。4) 从操作人员表中检查是否有相应的用户名和密码。5) 如果用户名或密码错误,进行提示。6) 如果输入的用户名和相应密码正确,则根据该用户的权限类别进行权限设置。7) 进入主控制平台。输出:主控制平台2. 权限验证模块的界面设计界面设计如程序界面所示。3. 权限验证模块的实现根据权限验证的IPO图,通过定义CloginDlg类来实现权限验证模块的功能。其主要代码如下:1) 根用户名和密码验证用户身份和分配权限。void CLoginDlg:OnOK() / TODO: Add extra validation hereCUserSet recordset;CString strSQL;UpdateData(TRUE);if(m_strUser.IsEmpty()AfxMessageBox(请输入用户名!);m_ctrUser.SetFocus();return;/检查密码是否输入if(m_strPass.IsEmpty()AfxMessageBox(请输入密码!);m_ctrPass.SetFocus();return;CLibraryApp* ptheApp = (CLibraryApp *) AfxGetApp();strSQL.Format(select*fromuser where user=%s AND passwd=%s,m_strUser,m_strPass);if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;if(recordset.GetRecordCount()=0)recordset.Close();MessageBox(密码错误,请重新输入!);m_strPass=;m_ctrPass.SetFocus();UpdateData(FALSE);elseptheApp-m_bIsAdmin = recordset.m_isadmin;recordset.Close();CDialog:OnOK();2)登录对话框创建时,需要完成的一些初始化工作,读取可以登录的用户名称,并形成列表,供用户进行选择。BOOL CLoginDlg:OnInitDialog() CDialog:OnInitDialog();CUserSet recordset ;CString strSQL;UpdateData(TRUE);strSQL=select * from user;if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return FALSE;while(!recordset.IsEOF()m_ctrUser.AddString(recordset.m_user);recordset.MoveNext();recordset.Close();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE4.3用户管理模块 根据需求分析和总体设计,权限管理模块负责对操作人员基本信息的建立,以及对操作人员的权限进行基本维护,不同权限的操作人员,可以使用的模块范围不一样。此模块功能只限于具有系统管理员权限的用户使用。 用户管理模块实现三个主要功能:添加新用户、修改用户口令、修改用户权限和删除指定的用户。用户管理模块如图55所示。添加新用户用户管理模块修改用户口令修改用户权限删除用户4-1用户管理模块1.用户管理IPO 图输入:用户名、密码和用户权限处理:1) 用户管理对话框启动。2) 从系统用户表中读取用户信息,并写入用户列表。3) 根据系统管理员的选择进行相应的处理。输出:更新的系统用户表具体处理过程:(1)增加新用户的处理1) 设置用户名编辑框为可用状态。2) 根据管理员输入的用户名判断用户是否存在,如果存在,提示错误,并要求重新输入。3) 如果用户不存在,根据管理员输入的用户名、用户口令和权限的类别,在数据库中用户表中添加新记录。4) 提示新用户添加成功。(2)修改用户口令和权限的处理1) 在“用户列表”中选择需要编辑的用户。2) 输入新的用户口令和权限的类别。3) 确认操作。4) 完成对数据库中系统用户表的相应操作。(3)删除指定用户的处理1) 在“用户列表”中选择需要删除的用户。2) 删除操作。3) 玩笑横对数据库中系统用户表的相应操作。2.用户管理模块的界面设计其界面设计如系统所示3.用户管理模块的实现根据用户管理模块的IPO图,通过定义CUserDlg类俩实现用户管理模块的功能。其主要实现代码如下:1) CUserDlg类使用的用户表记录集类CUserDlg。此类可以通过ClassWizard根据数据库表结构自动创建。代码不在此列出。2) 添加用户或编辑某用户的相关资料。流程:检查当前的状态为添加或者编辑,如果为添加状态,先检查用户名称是否已经存在,然后插入新的用户;如果为编辑状态,更新用户信息。更改相关组件的状态。void CUserDlg:RefreshData() m_ctrList.SetFocus();/清空用户列表m_ctrList.DeleteAllItems();m_ctrList.SetRedraw(FALSE);CString strSQL;UpdateData(TRUE);/打开记录集strSQL=select * from user;if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;/添加用户名到用户列表中int i=0;while(!m_recordset.IsEOF()m_ctrList.InsertItem(i+,m_recordset.m_user);m_recordset.MoveNext();m_recordset.Close();m_ctrList.SetRedraw(TRUE);void CUserDlg:OnClickListUsername(NMHDR* pNMHDR, LRESULT* pResult) CString strSQL;UpdateData(TRUE);/从数据库中获取选择用户名的资料int i = m_ctrList.GetSelectionMark();m_strUser = m_ctrList.GetItemText(i,0);strSQL.Format(select * from user where user=%s,m_strUser);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;/显示用户资料m_strPass = m_recordset.m_passwd;m_strRePass = m_strPass;m_bIsAdmin = m_recordset.m_isadmin;m_recordset.Close();UpdateData(FALSE);*pResult = 0;void CUserDlg:OnButtonNew() /清空用户资料m_strUser = ;m_strPass = ;m_strRePass = ;m_bIsAdmin = FALSE;/设置用户名编辑框为可用m_ctrUser.EnableWindow(TRUE);m_ctrUser.SetFocus();/更新数据到界面UpdateData(FALSE);void CUserDlg:OnOK() UpdateData();if(m_ctrUser.IsWindowEnabled()/增加新用户的输入检查if(m_strUser=)MessageBox(请填写用户名!);m_ctrUser.SetFocus();return;else/修改用户信息的输入检查if(m_strUser=)MessageBox(请选择一个用户!);return;/限制密码不能为空if(m_strPass=) MessageBox(密码不能为空,请输入密码!);m_ctrPass.SetFocus();return;/验证密码与确认密码是否一致if(m_strPass!=m_strRePass) MessageBox(两次输入地密码不一致,请重新输入密码!);m_ctrPass.SetFocus();m_strPass = ;m_strRePass = ;UpdateData(FALSE);return;/打开记录集CString strSQL;strSQL.Format(select * from user where user=%s,m_strUser);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;if(m_ctrUser.IsWindowEnabled()/增加新用户/判断用户是否已经存在if(m_recordset.GetRecordCount()!=0)m_recordset.Close();MessageBox(该用户已经存在!);return;m_recordset.AddNew();m_recordset.m_user = m_strUser;m_recordset.m_passwd = m_strPass;m_recordset.m_isadmin = m_bIsAdmin;m_recordset.Update();MessageBox(用户添加成功!请记住用户名和密码!);m_recordset.Close();else/修改用户信息/判断用户是否不存在if(m_recordset.GetRecordCount()=0) m_recordset.Close();MessageBox(该用户不存在!请更新数据库);return;m_recordset.Edit();m_recordset.m_user = m_strUser;m_recordset.m_passwd = m_strPass;m_recordset.m_isadmin = m_bIsAdmin;m_recordset.Update();MessageBox(用户修改成功!请记住用户名和密码!);m_recordset.Close();m_ctrUser.EnableWindow(FALSE);/更新用户列表RefreshData();3)删除指定的操作人员流程:判断“用户列表”中的每一行是否被选择,如果被选择,删除该用户;如果删除失败,提示用户。void CUserDlg:OnButtonDelete() UpdateData(TRUE);/判断是否指定用户if(m_strUser=)MessageBox(请选择一个用户!);return;CString strSQL;strSQL.Format(select * from user where user=%s,m_strUser);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;/删除该用户m_recordset.Delete();m_recordset.Close();/刷新用户列表RefreshData();m_strUser = ;m_strPass = ;m_strRePass = ;m_bIsAdmin = FALSE;UpdateData(FALSE);4) 话框初始化时需要完成的一些工作。BOOL CUserDlg:OnInitDialog() CDialog:OnInitDialog();/创建用户列表m_ctrList.InsertColumn(0,用户名);m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);m_ctrList.SetColumnWidth(0,120);/在添加用户列表中添加用户名RefreshData();return TRUE; 5) 撤消操作,恢复对话框的初始状态。void CUserDlg:OnButtonCancel() / TODO: Add your control notification handler code herem_strUser = ;m_strPass = ;m_strRePass = ;m_bIsAdmin = FALSE;m_ctrUser.EnableWindow(FALSE);UpdateData(FALSE);4.4基础数据设置模块根据需求分析和总体设计,基础数据设置模块负责维护图书管理相关的基础数据,主要包括:图书逾期罚款设置、图书类别设置和读者类别设置。该模块的功能主要是对这些基础数据的添加、修改和删除,如图57所示。基础数据设置模块的功能主要是通过图书逾期罚款设置、图书类别设置和读者类别设置三个子模块分别来实现相应基础数据的维护与管理。下面按照者三个子模块的划分来阐述基础数据设置模块的详细设计与实现。基础数据设置图书馆逾期罚款设置图书类别设置读者类别设置4-2基础数据设置模块1.图书逾期罚款设置子模块(1) 罚款设置子模块的IPO图功能:从罚款类型数据表中读取并显示逾期一天的罚金金额信息,同时实现对罚款金额的修改功能。输入:逾期一天的罚款金额处理:1) 罚款设置对话框启动。2) 从罚款类型数据表中读取并显示罚款金额信息。3) 用户确定后,将用户修改的罚款金额数据更新。输出:更新的罚款类型数据表(2) 罚款设置子模块的界面设计效果图书预期归还罚款设置的界面设计效果如如程序界面所示。(3) 罚款设置子模块的实现根据罚款设置子模块的IPO图,通过定义CpunishiTypeDlg类来实现罚款设置子模块的功能。其主要实现代码如下:1) CpunishiTypeDlg类使用的记录集类CpunishiTypeSet。此类可以通过ClassWizard根据数据库表结构自动创建,代码不在此列出。2) 罚款金额设置功能的实现处理过程:首先从罚款类型数据表中提取罚款金额并显示,然后根据 用户输入的数据更新罚款类型数据表。void CPunishTypeDlg:OnOK() UpdateData();/检查金额输入if(m_strMoney.IsEmpty()AfxMessageBox(请输入罚款金额);return;/构造记录集,保存数据CPunishTypeSet rs;CString strSQL;strSQL=select * from punishType;if(!rs.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_OK);return ;/判断记录是否已经存在if(rs.GetRecordCount()!=0)rs.Edit();rs.m_type = 超出罚款;rs.m_money = m_strMoney;rs.Update();elsers.AddNew();rs.m_type = 超出罚款;rs.m_money = m_strMoney;rs.Update();rs.Close();CDialog:OnOK();2.图书类型设置子模块(1)图书类型设置子模块的IPO图。功能:从图书类型数据表中读取图书类型数据并显示,同时实现对图书类型数据的添加、修改和删除功能。输入:图书类型数据处理:1)书类型设置对话框启动。2)从图书类型数据星系表中读取图书类型数据并显示到列表中。3)根据用户选择,完成图书类型数据的添加、修改和删除。输出:更新的图书类型数据库(2)图书类型设置的界面设计效果图书类型设置的界面可以通过图书类型设置对话框来实现,该对话框的界面设计效果如系统所示。(3)书类型设置子模块的实现根据图书类型设置子模块的IPO图,通过定义CbookTypeDlg类来实现图书类型设置功能。其主要实现代码如下:1)CbookTypeDlg类使用的记录集CbookTypeSet。此类可以通过ClassWizard根据数据库表结构自动创建,代码不在此列出。2)类型设置对话框的初始化。处理过程:首先设置数据显示列表,然后从图书类型数据表中提取数据并显示在数据列表中。其主要代码如下:BOOL CBookTypeDlg:OnInitDialog() CDialog: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);/显示数据到列表中RefreshData();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CBookTypeDlg:RefreshData() m_ctrList.SetFocus();/清空列表m_ctrList.DeleteAllItems();m_ctrList.SetRedraw(FALSE);CString strSQL;UpdateData(TRUE);/打开记录集strSQL=select * from bookType;if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(打开数据库失败!,数据库错误,MB_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论