课程设计报告.docx

上传人:b****8 文档编号:29199647 上传时间:2023-07-21 格式:DOCX 页数:44 大小:410.39KB
下载 相关 举报
课程设计报告.docx_第1页
第1页 / 共44页
课程设计报告.docx_第2页
第2页 / 共44页
课程设计报告.docx_第3页
第3页 / 共44页
课程设计报告.docx_第4页
第4页 / 共44页
课程设计报告.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

课程设计报告.docx

《课程设计报告.docx》由会员分享,可在线阅读,更多相关《课程设计报告.docx(44页珍藏版)》请在冰豆网上搜索。

课程设计报告.docx

课程设计报告

绪论

随着人们知识层次的提高,图书馆成为日常生活中不可或缺的一部分,而图书管理系统是一个教育单位不可缺少的部分,它的内容对于学校图书馆的管理十分重要,所以本次系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。

解决以前手工管理的检索速度慢效率低,图书的借阅和归还工作量大,并接统计工作男,藏书不能及时更新的问题!

图书管理系统的主要功能为管理有关读者,书籍,借阅和管理者的信息等。

本系统结构分为读者信息管理模块,书籍信息管理模块,借阅信息管理模块,管理者信息管理模块。

读者信息管理部分有两方面的功能,可以浏览读者的信息,可以对读者信息进行维护。

书籍信息管理可以浏览书籍的信息,可以对书籍信息进行维护。

借阅信息管理可以显示当前数据库中书籍借阅情况,可以对借阅信息进行维护。

管理者信息管理可以显示数据库中管理者的情况,可以对管理者信息进行维护。

可见,本系统并不复杂,主要解决的问题是利用关键字对数据库进行查询。

研究方法是采用结构化设计方法,分工合作,集体的力量是伟大的!

并且团队精神也是现在工作时必须应该具有的素质之一!

以达到数据库中应用的数据量!

并发数量等的技术要求!

也对自己所学进行总结性的梳理!

系统开发系统出现了一些技术难点大致有以下几点:

首先是建立合理的表结构,避免数据冗余各表通过特定字段实现不同表的数据连接,避免数据冗余,需要设计简洁高效的表结构。

其次是建立相当的系统安全性,登录用户身份的验证机制的设计、操作页面的权限保护。

再就是建立严密的数据表操作机制。

同一表有可能在多个模块中被修改,所以严密的数据表操作机制的建立十分比较困难的,但也是必须的。

除了设计时必须有相当程度的考虑,在编制时更应加强程序逻辑的可靠性和程序调试的全面性。

系统的根本目的是方便用户,帮助其节约时间精力。

所以就要保证界面的友好、简洁、易操作性。

使用户能很快的接受并运用本系统。

第一章系统分析

Ø1.1图书馆系统的意义

图书馆是高等院校的重要组成部门,是教师和学生获取知识的重要场所。

随着校园网的发展,各高等院校的图书馆都开始使用“图书管理信息系统软件”开展工作。

图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。

根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。

数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。

总的来说,缺乏系统规范的信息管理手段。

尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。

Ø1.2系统开发工具介绍

MicrosoftVisualC++6.0是一种可视化的编程语言,利用可视化技术进行编程,可使应用程序的开发简单、快捷;编程者不需要了解太多的关于面向对象的程序设计的细节,即可编写出界面友好、功能强大的应用程序。

因此,MicrosoftVisualC++在国内外各个领域中应用非常广泛。

由于其容易学习、功能强、编程效率高,无论是专业人员还是非专业人员,都可以非常容易地掌握好MicrosoftVisualC++的使用。

SQL2000数据库的基本概念是进行数据库编程的基础,了解数据库,就是了解数据库的结构,文件组织方式以及数据库应用程序的基本框架。

数据库是有结构的数据集合,它与一般的数据文件不同,(其中的数据是无结构的)是一串文字或数字流,是提供数据的基地。

它能保存数据并允许用户访问所需的数据。

数据库中保存的数据都是相关数据,为了便于保管和处理这些数据,将这些数据存入数据库时必须有一定的的数据结构和文件组织方式。

数据库中数据的组织形式有多种,最近几年来,关系模型已经成为数据库设计的事实上的标准。

在关系数据库,实际保存数据的是一个或多个表,没个表定义了某中特定的结构。

本系统前台的操作窗体使用MicrosoftVisualC++6.0开发,后台使用SQL2000数据库开发,同时利用了ADO和OLEDB数据访问技术,快速开发工具和大容量高性能数据库构成了本系统的特色,前者使得面向数据库应用的开发速度有了大幅度提高,后者使得对数据的存放、处理有了可靠的保证。

Ø1.3本设计的目的及要求

当今时代是飞速发展的信息时代。

在各行各业中离不开信息处理,图书管理系统应运而生。

他运用了管理科学,系统科学,运筹学,统计学,计算机科学等学科的知识。

计算机是20世纪的产物,被广泛应用于信息管理系统的环境。

尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。

图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,数据信息处理工作量大,容易出错。

尽管有的图书馆已经使用计算机,但是尚未用于信息管理,总的来说,缺乏系统、规范的信息管理手段,没有发挥它的效力,资源闲置比较突出。

基于这些问题,有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。

第二章总体设计

本系统是为了方便对图书馆工作人员对读者资料、书籍、借还书等信息进行高效的管理而编写的,面对图书信息管理中出现的各种情况,该图书管理信息系统在实施后应基本达到以下目标:

(1)系统界面友好美观,操作简单易行,管理查询灵活方便。

(2)系统运行可靠,维护方便,灵活通用。

Ø2.1功能模块的划分

通过对图书管系统的功能分析,可以定义出系统的功能模块图如下,其中定义的功能模块包括以下几个方面:

系统登录:

提供系统的访问功能如图2-1。

图2-1系统登录

书库管理:

包括新书登记、借书、还书、书籍挂失、图书信息查询、借书信息查询等功能如图。

借阅证管理:

提供办理借阅证、借阅证信息查询、借阅证挂失功能。

系统管理:

包括添加账号、修改密码和突出系统等功能。

图2-2图书馆信息系统管理界面

Ø2.2系统软件模块

结构示意图如图2-3:

图2-3系统结构示意图

第三章数据库设计

Ø3.1数据库设计步骤

一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。

信息管理系统所涉及的数据库设计分五个步骤:

数据库需求分析、概念设计、逻辑设计、物理设计与加载测试。

(1)数据库需求分析的任务是将业务管理单证流化为数据流,划分主题之间的边界,绘制出DFD图,并完成相应的数据字典。

(2)概念设计的任务是从DFD出发,绘制出本主题的实体-关系图,并列出各个实体与关系的纲要表。

(3)逻辑设计的任务是从E-R图与对应的纲要表出发,确定各个实体及关系的表名属性。

(4) 物理设计的任务是确定所有属性的类型、宽度与取值范围,设计出基本表的主键,将所有的表名与字段名英文化,实现物理建库,完成数据库物理设计字典。

(5) 加载测试工作贯穿于程序测试工作的全过程,整个录入、修改、查询、处理工作均可视为对数据库的加载测试工作。

要设计出一个好的信息管理系统数据库,除满足系统所要求的功能外,还必须遵守下列原则:

(1)基本表的个数越少越好。

(2)主键的个数越少越好。

键是表间连接的工具,主键越少,表间的连接就越简单。

(3)字段的个数越少越好。

(4)所有基本表的设计均应尽量符合第三范式

Ø3.2数据库需求分析

用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出输入。

收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。

在图书馆管理员方面,系统需满足以下功能实现的要求:

1、在进入系统之前,管理员需要经过身份验证:

用户名、密码输入正确后才能进入。

2、管理员可以根据需要进行书库管理。

3、管理员可以进行借书证的办理、查询、挂失等操作

4、管理员可以添加账户以及修改密码。

对于读者而言,该系统须具有以下功能和特点:

1、能方便地查询图书馆的藏书情况。

2、能够方便地借阅图书、续借图书、归还图书。

3、能够查询自己的基本资料、借阅图书情况。

4、能够熟悉图书管理系统的使用。

Ø3.3概念结构设计

系统的需求具体体现在对各种信息的保存、修改和查询的方面。

因此,一个满足系统要求的数据库必须充分照顾到对各种信息的输入输出,以免遗漏导致开发时的返工。

通过对系统功能的分析,图书管理系统需要包含以下数据库信息。

读者信息:

读者姓名、编号、性别、班级、身份证号码、电话号码。

图书信息:

包括图书ID、图书名称、作者、出版者、单价、入库时间、图书总量、现存量。

管理员的基本信息:

包括登录ID、登录密码等。

借书信息:

包括借阅书号、借阅证号、所借图书的名字、借书日期。

罚金信息:

包括罚金号、借阅证号、图书号、借书时间、还书时间、罚金。

建立系统的数据模型(E-R图)来理解和表示问题的信息域。

通过以上对图书管理系统的分析,可以得出该系统涉及三个实体及各个实体间的联系:

读者、图书、管理员。

通过各实体数据关系的整理,我们可以画出各实体的E—R图:

读者E—R图如图3-1:

v

图3-1读者信息

实体读者的属性有:

姓名、编号、性别、班级、身份证号码、电话号码。

图书E—R图如图3-2所示:

v

图3-2图书信息

由E—R图我们可以看出图书包括在馆ID、图书名称、作者、出版社、单价、入库时间、图书总量、现存总量等属性。

管理员的E—R图3-3所示:

图3-3管理员信息

图书馆的管理员拥有的属性含有登录ID、登录密码、工作时间属性。

建立了这三个基础的实体后,我们可以想到通过其他的实体可以将这三个实体之间建立起联系。

我们通过引入借阅证来建立起读者与图书的联系,借阅证的属性包括借阅证号、读者姓名。

借阅证的E—R图3-4所示:

v

图3-4借阅证信息

根据读者人群类型的不同,如大学生、研究生、老师等在图书馆管理系统中所拥有的借阅权限是不同的,所以在读者实体基础上我们还可以继续细分出来一个实体——读者类型。

它的E—R如图3-5所示:

 

图3-5读者类型信息

 

同样的我们可以给图书分类,得到图书类型的实体,它包含的属性有:

图书类型编号、图书类型、罚款比等,这样方便图书管理员对图书的借出及读者类型的划分。

E—R图如图3-6所示:

图3-6图书类型信息

在借/还书的过程中,由于没有按时还书会有罚款情况的发生,这时候会出现一个实体——罚金,它的E—R图如下图3-7:

图3-7罚款信息

图书类型与图书的联系是“分类”,是一个1:

n联系。

同样的,读者类型与读者的联系也是“分类”,是1:

n的联系。

读者和借阅证的联系是1:

1的“拥有”,借阅证与图书的联系是m:

n的“借/还”。

管理员管理所有的读者和图书,管理员与图书和读者的联系是1:

n的“管理”。

整个系统的总体E—R图如下图3-8:

图3-8全局E-R图

Ø3.4逻辑结构

结合设计的E-R图,根据实体的属性及其实体之间的联系生成系统的逻辑结构:

对应的主要的关系模型如下

管理员基本信息表(管理员ID,管理员姓名,管理员密码,,工作时间)

读者表(学号,姓名,性别,班级,身份证号,电话号码);

读者类型表(学号,借阅者身份,可借阅图书数目);

图书表(图书ID号,图书名称,作者,出版社,单价,图书类型编号,);

图书类型表(图书类型编号,图书类型名称,可借阅图书的天数);

借阅证表(借阅证号,读者姓名,与读者对应的读者编号,借书证状);

借书证与图书关系表(借阅图书ID号,借书证号,处罚标准,应还书时间,实还时间,已借数目);

借书证与图书关系备份表(借阅图书ID号,借书证号,图书索引号,借书时的时间,实际还书时间);

处罚记录表(借阅图书号,受处罚的借书证的ID号,罚款金额,备注,处罚原因);

Ø3.5物理结构设计

✧3.5.1数据库设计

现在需要将上面的数据库概念转化为SQL2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构、利用相应的SQL语句可以实现其功能数据的装换如下列各表:

●管理员基本信息表

管理员基本信息表(Admin_Info)包含了图书管理员的基本信息,其结构如表3-1所示

表3-1管理员基本信息表

字段名称

数据类型

可否为空

约束条件

说明

WorkID

int

NOTNULL

主键

成员ID

User_Name

VARCHAR(24)

NOTNULL

姓名

Password

VARCHAR(24)

NOTNULL

密码

worktime

VARCHAR(24)

NOTNULL

工作时间

●图书信息表

图书信息基本表(Book_Info)包含了图书馆里所有的图书的基本信息,用来方便读者查询和借阅,其结构如表3-2所示

表3-2图书信息表

字段名称

数据类型

可否为空

约束条件

说明

Book_ID

VARCHAR(50)

NOTNULL

主键

书籍ID

Book_Name

VARCHAR(50)

NOTNULL

书名

Writer

VARCHAR(50)

NOTNULL

作者

Press

VARCHAR(50)

NOTNULL

出版社

Price

float

NOTNULL

单价

InLibrary_Date

datetime

NOTNULL

入库时间

Total_Amount

int

NOTNULL

总量

Now_Amount

int

NOTNULL

现存量

●借阅卡信息表

借阅卡信息表(Proof_Info)包含了所有读者的借阅卡信息,用来方便读者借阅和管理员管理,其结构表如表3-3所示

表3-3借阅卡信息表

字段名称

数据类型

可否为空

约束条件

说明

Proof_ID

VARCHAR(50)

NOTNULL

主键

借阅证ID

Name

VARCHAR(50)

NOTNULL

姓名

Sex

VARCHAR(50)

NOTNULL

性别

Birth_Time

datetime

NOTNULL

出生日期

Address

VARCHAR(50)

NOTNULL

地址

ID_Number

VARCHAR(50)

NOTNULL

身份证号

Tel_Number

VARCHAR(50)

NOTNULL

电话号码

Now_Borrow_Amount

int

NOTNULL

现借书量

●借书信息表

结束信息表(Borrow_Info)包含了所有图书借阅的信息,用来方便图书管理员的管理图书馆的图书出借情况,其结构表如表3-4所示

表3-4结束信息表

字段名称

数据类型

可否为空

约束条件

说明

BorrowID

int

NOTNULL

主键

借书ID

Proof_ID

VARCHAR(50)

NOTNULL

外键(Proof_Info)

借阅证ID

Book_ID

VARCHAR(50)

NOTNULL

外键(Book_Info)

书籍ID

Borrow_Date

datetime

NOTNULL

借出时间

●罚单信息表

罚单信息表(Punish_Info)包含了所有读者的罚金信息,用来方便管理员管理图书过期情况,其结构如表3-5所示

表3-5罚单信息表

字段名称

数据类型

可否为空

约束条件

说明

Puni_ID

int

NOTNULL

主键

罚单ID

Proof_ID

VARCHAR(50)

NOTNULL

借阅证ID

Book_ID

VARCHAR(50)

NOTNULL

书籍ID

Borrow_Date

datetime

NOTNULL

借出时间

Return_Date

datetime

NOTNULL

还书时间

Puni_Money

float

NOTNULL

罚金

通过以上对各实体结构表的介绍,可以通过SQLServer企业查询器来创建各表。

在对各表初始化设置完毕以后,通过用户登录系统可以实现用户的登录,使用过程注意数据源的配置和相应功能的实现。

✧3.5.2编码设计

●WorkID,BorrowID,Puni_ID都设置了标识规范,增加记录时自动加1,保持其唯一性。

●Borrow_Date,Return_Date,InLibrary_Date都设置成datetime类型,插入记录时自动获取当前日期,不需要管理员输入日期。

●Proof_ID,Book_ID,ID_Number,Tel_Number,Proof_ID由于它们只是代表一个标识,不是一个表示大小的数字,所以用VARCHAR类型,用int或可能会有溢出现象。

第四章详细设计和实现

本系统需要编码实现的主要功能有登录、图书管理、借阅证管理系统及其他模块的管理4个模块的功能,为了完成系统功能模块的设计和数据库表的创建,下面介绍一个可以创建图书管理系。

通过MicrosoftVisualC++6.0和后台使用SQL2000进行数据源连接,实现数据的互通,从而实现各个模块的功能。

Ø4.1登录模块的设计

●功能说明:

验证管理员的用户名和密码是否正确,正确则进入主界面。

在进入主对话框之前,首先调用登录对话框可以创建一个对话框,包含了数据源的名称、用户名称和密码3个部分,界面如图2-1所示。

对话框的名称为“图书管理系统”。

“图书管理系统”对话框中的控件类型、ID及说明如表4-1所示

表4-1图书管理系统控件表

控件类型

ID

属性

Label

IDC_STATIC

登录图书管理系统

Label

IDC_STATIC

管理员用户名称

EditBox

IDC_EDIT_USER

Label

IDC_STATIC

管理员密码

EditBox

IDC_EDIT_PASSWD

BUTTON

IDOK

登录

BUTTON

IDCANCEL

退出

Ø4.2图书管理模块设计

书库管理包括新书登记、借书/还书、书籍挂失、图书信息查询和借书信息查询5个部分,下面分别介绍着5个部分的功能以及实现过程。

✧4.2.1新书登记

●功能说明:

入库的实现过程是首先要输入书籍的各种信息,包括书的书号、书名、作者、出版社、价钱、总量、现存量等,这里书的数量由两个变量来记录,总量代表图书馆中这种这种书的总量,现存量是目前正在管中的量,两者之差就是被读者借出去的数量。

其中每个信息不能有遗漏或者格式不正确,因为这是每一本书的基本信息,在函数的实现过程中有检验的功能。

然后判断图书馆中是否存在这种图书,如果存在,那么时间简单的把库存的数量加上新加入的数量,如果不存在,那么就要新建记录。

新书登记管理包括新书入库、查询图书和显示所有图书的功能。

为了方便添加图书和查询所有图书的基本信息,可以创建一个对话框,入库成功后的界面如图4-1所示。

图4-1入库成功

“新书登记入库”对话框中的控制类型、ID以及说明如表4-2所示。

表4-2新书登记入库控件表

控件类型

ID

属性

Label

IDC_STATIC

书号

EditBox

IDC_EDIT_BOOK_NO

Label

IDC_STATIC

书名

EditBox

IDC_EDIT_BOOK_NAME

Label

IDC_STATIC

作者

EditBox

IDC_EDIT_WRITE

Label

IDC_STATIC

单价

EditBox

IDC_EDIT_PRICE

Label

IDC_STATIC

出版社

EditBox

IDC_EDIT_PRESS

Label

IDC_STATIC

总量

EditBox

IDC_EDIT_TOTAL

Label

IDC_STATIC

现存量

EditBox

IDC_EDIT_NOW

BUTTON

IDC_BUTTON_IN

入库

BUTTON

IDC_BUTTON_CHECK_BOOK

查询

BUTTON

IDC_BUTTON_CHECK_ALL

显示全部书籍

BUTTON

IDC_BUTTON_CHECK_BACK

返回

ListControl

IDC_LIST_RESULT

◆1.入库

入库是图书馆系统中的重要功能之一,时图书管理系统不可缺少的一部分。

入库的现存量的实现过程时首先输入书籍的各种信息,其中每个信息不能有遗漏或者格式不正确,因为这是每一本书的基本信息,在函数的实现过程中有检验的功能。

然后判断图书馆中是否存在这种图书,如果存在,那么只是简单地吧库存的数量加上新加入得数量,如果不存在,那么解药建立新的纪录。

其对应的部分函数为CNewBooksDlg:

:

OnButtonIn()代码如下。

voidCNewBooksDlg:

:

OnButtonIn()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

//从控件到对话框成员变量的数据交换

UpdateData();//判断是否输入了书号

if(m_strBookID.Compare("")==0)

{

MessageBox("请正确填写要求的数据","新书入库登记");

return;

}

//判断数据库是否打开,如果没有打开,那么重新打开数据库

if(!

m_database.IsOpen())

{

if(!

m_database.Open(_T("Library")))

{

MessageBox("Cannotaccessdatabase!

","新书登记");

return;

}

}

CBookSet*m_pset=newCBookSet(&m_database);//新生成CBookSet实例

//判断书库中是否有该书,进行相应操作

//有,把数量加到库中

CStringstrSQL;

strSQL.Format("select*fromBook_InfowhereBook_ID='%s'",m_strBookID);

m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);

if(m_pset->GetRecordCount()!

=0)

{

m_pset->Edit();

m_pset->m_Total_Amount=m_pset->m_Total_Amount+m_lTotal;

m_pset->m_Now

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 工作总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1