潍坊学院数学与信息科学学院课程设计报告书课题名称姓名学号专业班级指导教师2009年06月26日※※※※※※※※※※※※※※※※※※※※※※※※2006级信息与计算科学专业课程设计一、设计任务及要求:设计任务:通过所学过的《VisualBasic》、《C++:面向对象程序设计》、《数据库系统概论》和《软件工程—理论、方法与实践》及相关资料的查询,设计一个仓库管理系统,使之具有一般的仓库所需要的功能。要求:1.分析设计仓库管理系统所要应用的功能,正确做出分析设计图。2.运用所学的知识和相关资料的查询,上机编写及调试源程序,进一步提高编程技巧及调试程序能力。3.所设计的系统能够正确的运行,且认真书写课程设计说明书。4.遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成。指导教师签名:年月日二、指导教师评语及成绩:成绩:指导教师签名:年月日目录1概述.............................................................12需求分析.........................................................13系统设计.........................................................23.1总体设计框架................................................23.2系统流程分析................................................23.3数据库设计..................................................34系统实现过程.....................................................44.1连接数据库..................................................44.2用户进入界面................................................44.3系统的主界面................................................64.4书库管理....................................................84.5借阅证管理.................................................244.6系统管理...................................................285总结............................................................306参考文献........................................................30数学与信息科学学院课程设计稿纸11概述随着人们知识层次的提高图书馆成为日常生活中不可缺少的一部分。而图书馆的存书量和业务量庞大,仅仅靠传统的记账式管理式不可行的。图书馆管理系统应运而生,逐渐成为信息化建设的重要组成部分。图书馆管理系统为学校或者社会型图书馆的管理员提供所有借阅者的详细信息,以及馆内库存的详细情况,对借书和还书两大功能进行合理操纵并登记。本系统主要包括以下几个主要功能(1)进入系统前需要身份验证、用户名、密码,输入正确后方可进入。(2)用户可以根据需要进行书库管理。(3)用户可以进行借书证的办理、查询、挂失等操作。(4)用户可以添加账号和修改密码和退出系统等功能。2需求分析2.1数据库需求分析通过对图书馆管理系统功能的分析和实际调查情况,图书馆管理系统需要包括以下数据库信息。(1)管理员基本信息:包括图书ID、密码等。(2)图书信息:包括图书ID、图书名称、作者、出版社、单价、入库时间、图书总量、现存总量。(3)借书信息:包括借书号、借阅卡号、所借图书的名字、借书日期。(4)借阅卡信息:包括借阅卡号、读者姓名、性别、出生日期、家庭住址、身份证号码、电话号码、现借书总数。(5)罚金管理:包括罚金号、借阅证号、图书号、借出时间、返还时间、罚金。2.2系统功能分析本系统功能模块主要包括以下几部分:身份验证、书库管理、借阅证管理、系统管理和退出。(1)身份验证:提供系统的访问控制功能。(2)书库管理:包括新书登记、借书、还书、书籍挂失、图书信息查询、借书信息查询等功能。(3)借阅证管理:其提供办理借阅证、借阅证信息查询、借阅证挂失功能。数学与信息科学学院课程设计稿纸2(4)系统管理:包括添加账号、修改密码和退出系统等功能。(5)系统管理:其功能是为系统的使用者提供密码管理和数据备份、恢复管理。3系统设计3.1总体设计框架系统总体设计图如下:图1图书馆管理系统总计设计图3.2系统流程分析在系统运行时的动态模型应该由系统的流程决定。当用户登录系统后,可以根据拥有的权限来进行书库的管理、借阅证的管理等操作,具体的流程如图2所示。图2图书馆管理系统流程图图书馆管理系统身份验证书库管理新书登记借书/还书书籍挂失图书信息查询查询借书信息查询借阅证管理办理借阅证借阅证查询借阅证挂失系统管理添加帐号修改密码退出登录界面用户验证登录失败登录成功书库管理系统管理借阅管理退出系统数学与信息科学学院课程设计稿纸33.3数据库设计基本表的设计如下:(1)管理员基本信息表管理员基本信息表(Admin_Info)包含了图书馆管理员的基本信息,其结构如表1所示。表1管理员基本信息表字段名称数据类型可否为空约束条件说明WorkIDINTEGERNOTNULL主键地方ID值User_nameVARCHAR2(24)NOTNULL无姓名PasswordVARCHAR2(24)NOTNULL无密码(2)图书信息表图书信息表(Book_Info)包含了图书馆所有图书的基本信息,用来方便读者查询和借阅,其结构如表2所示。表2:图书信息表字段名称数据类型可否为空约束条件说明Book_IDVARCHAR(50)NOTNULL主键书籍ID值Book_NameVARCHAR(50)NOTNULL无书名WriterVARCHAR(50)NOTNULL无作者PressVARCHAR(50)NOTNULL无出版社PricefloatNOTNULL无单价InLibrary_DataDATANOTNULL无入库时间Total_AmoutINTEGERNOTNULL无总量Now_AmountINTEGERNOTNULL无现存量(3)借阅卡信息表借阅卡信息表(Proof_Info)包含了所有读者的借阅卡信息,用来方便读者借阅和管理员,其结构如表3所示。表3:借阅卡信息表字段名称数据类型可否为空约束条件说明Proof_IDVARCHAR(50)NOTNULL主键借阅卡IDNameVARCHAR(50)NOTNULL无姓名SexVARCHAR(50)NOTNULL无性别Birth_TimeDATANOTNULL无出生日期AddressVARCHAR(50)NOTNULL无地址ID_NumberVARCHAR(50)NOTNULL无身份证号码Tel_NumberVARCHAR(50)NOTNULL无电话号码Now_Borrow_AmountINTEGERNOTNULL无现借书总量(4)借书信息表借书信息表(Borrow_Info)包含了所有图书借阅的信息,用来方便管理员管理图书馆的图书出借情况,其结构如表4所示。表4:借书信息表字段名称数据类型可否为空约束条件说明BorrowIDINTEGERNOTNULL主键借书ID数学与信息科学学院课程设计稿纸4Proof_IDVARCHAR(50)NULL外键(Proof_Info)借书卡IDBook_IDVARCHAR(50)NULL外键(Proof_Info)书籍IDBorrow_DateDATANULL无产品备注(5)罚单信息表罚单信息表(Punish_Info)包含了所有读者的罚金信息,用来方便管理员管理图书过期的情况,其结构表如表5所示。表5罚单信息表字段名称数据类型可否为空约束条件说明Puni_IDINTEGERNOTNULL主键罚单IDProof_IDVARCHAR(50)NOTNULL外键(Proof_Info)借书卡IDBook_IDVARCHAR(50)NOTNULL外键(Proof_Info)图书IDBorrow_DateDATANOTNULL无借出日期Return_DateDATANOTNULL无返还日期Puni_MoneyINTEGER)NOTNULL无罚金4系统实现过程打开VisualC++6.0,新建工程名为“Library”的基于对话框的MFCAppWizard[exe]。VisualC++6.0会自动生成一些类、文件和主题框架。为了实现系统与数据库的连接,VisualC++6.0有支持ODBC的文件,只需在“stdafx.h”中添加#includeafxdb.h即可实现和数据库的连接。4.1连接数据库当函数启动后,就要连接数据库,需要3个参数:ODBC数据源名称、数据库用户名称、数据库用户密码。登录到主界面之前,首先调用管理员登录模块。从数据库中读入Admin_Info表中的内容,判断用户输入的用户名和密码是否正确。4.2用户进入界面功能:当使用者使用此系统时,只有用户名和密码都正确时,才可以通过进入界面进入此系统的主界面。其窗体如下:数学与信息科学学院课程设计稿纸5图3登录界面主要代码如下。voidCLibraryDlg::OnOK(){//TODO:AddextravalidationhereUpdateData();if(m_strUsername.IsEmpty()){MessageBox(Pleaseinputyourusername!,登录系统,MB_OK|MB_ICONEXCLAMATION);m_strUsername.Empty();UpdateData(FALSE);return;}if(!m_database.IsOpen()){//连接数据源if(!m_database.Open(_T(Library))){MessageBox(连接数据库失败!,图书管理系统,MB_OK|MB_ICONINFORMATION);return;}}CLoginSet*m_pLogset=newCLoginSet(&m_database);//编写SQL语句CStringstrSQL;strSQL.Format(select*fromAdmin_InfowhereUser_Name='%s'ANDPassword='%s',m_strUsername,m_strPassword);//编写SQL语句结束m_pLogset-Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);if(m_pLogset-GetRecordCount()==0){if(count5){MessageBox(登录失败!,图书管理系统,MB_OK|MB_ICONERROR);count++;m_strPassword.Empty();m_strUsername.Empty();UpdateData(FALSE);}else{m_database.Close();MessageBox(您登录失败超过5次,请与管理员联系!,图书管理系统);数学与信息科学学院课程设计稿纸6OnOK();}}else{m_database.Close();*b_Login=0;CDialog::OnOK();}}4.3系统的主界面功能:本模块包含了系统的主对话框界面,其中包括书库管理、借阅证管理和系统管理3个部分。其窗体如:图4系统主界面主要代码如下。voidCLibDBSDlg::