书店租赁管理系统 2.docx

上传人:b****6 文档编号:6456254 上传时间:2023-01-06 格式:DOCX 页数:26 大小:289.17KB
下载 相关 举报
书店租赁管理系统 2.docx_第1页
第1页 / 共26页
书店租赁管理系统 2.docx_第2页
第2页 / 共26页
书店租赁管理系统 2.docx_第3页
第3页 / 共26页
书店租赁管理系统 2.docx_第4页
第4页 / 共26页
书店租赁管理系统 2.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

书店租赁管理系统 2.docx

《书店租赁管理系统 2.docx》由会员分享,可在线阅读,更多相关《书店租赁管理系统 2.docx(26页珍藏版)》请在冰豆网上搜索。

书店租赁管理系统 2.docx

书店租赁管理系统2

数据库课程设计报告

设计题目:

书店租凭管理系统

学生姓名:

系别:

专业:

班级:

功能模块:

同组同学:

学号:

指导教师:

 

 

目录

第一章问题描述4

1.1问题描述4

2.1可行性研究4

第二章需求分析6

2.1功能需求6

2.2数据流图7

2.3数据字典8

2.4书店租赁管理系统的性能需求10

2.5书店租赁管理系统的运行需求11

第三章概要设计12

3.1系统模块划分12

3.2书店租赁管理系统层次结构图13

3.3模块之间的接口设计13

第四章书店租赁管理系统详细设计15

4.1书店租赁管理系统数据库的设计15

4.1.1书店租赁管理系统E-R模型15

4.1.2书店租赁管理系统数据库表的结构16

4.2书店租赁管理系统主要模块的程序流程图19

4.2.1“会员借书”程序流程图19

4.2.2“会员还书”程序流程图21

4.2.2“查询会员个人借书情况”程序流程图22

4.3档案管理模块界面23

4.3.1“会员个人借书情况”界面23

4.3.2“会员借书”界面23

4.3.2“会员还书”界面24

第五章书店租赁管理系统编码26

5.1核心代码(管理员增删改查操作)26

第六章档案管理模块测试43

6.1“会员借书”单元测试43

第七章总结45

参考资料46

第一章问题描述

1.1问题描述

在当今社会,随着计算机的发展及网络技术的应用,计算机应用在全球范围内的普及。

当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。

而在日常生活中信息技术的不断融入,在技术越来越先进的同时,我们应该从以前繁琐的事务中解放出来,来提高了我们的工作效率。

而目前在在一些中小型书店中,工作大部分还是进行着手工管理,工作起来效率很低,并且不能及时了解书店各类图书的库存,读者比较需求的图书难以在短时间里找到、图书的入库和更新比较麻烦等等,不便于动态及时调整图书结构。

由于不可避免的人为因素,造成数据的遗漏、误报。

为了更好的适应当前读者的借阅需求,缓解手工管理存在的许多弊端,计算机信息化管理有着储存信息量大,速度快、便于管理等特点,提供给我们的处理信息及时快捷,在工作中不仅减缓了压力,同时提高了我们工作人员的自身素质。

因此我们利用计算机提供给我们信息,及时的调整书店图书结构,并且对读者的借阅过程形成一整化动态的管理。

2.1可行性研究

任何一个系统或一项工程,在建立之前,必须首选进行可行性分析,可行性分析包括两层含义,一是可能性,二是必要性。

可能性指开发信息系统的条件是否具备,必要性是指客观上是否真正需要,通过可行性研究,可避免盲目投资,减少政治性要的损失。

下面从四方面来讨论:

2.1.1 经济可行性

主要是只指算一个新的系统开发所需要的投资费用和运算费用,并与估计的新系统收益进行比较,看是否有利。

本系统所需的软硬件成本比较低,投资小,具有一定的通过性,因此,在经济上是可行的。

2.1.2 时间可行性

主要包括系统在目前环境下能否正常运行,运行后所引起的各方面,以及这些变化对社会或人的因素所产生的影响。

本系统对人事的管理比较全面,可长期使用。

2.1.3 技术可行性

利用现有的设备,软件及技术人员,新系统的目标能否达到,这也是可行性研究中需要考虑的一个问题。

关系型数据库的高速发展使管理信息系统具备了良好的开发环境。

本系统使用的Delphi普及性好,操作简单,用户可以很快掌握使用方法,因此,在技术上是完全可行的。

2.1.4 社会可行性

人类社会文明的发展已进入信息化的高速发展时期,传统的手工方式支持下的管理模式,已经不能满足各方面的需要。

开发本系统的目标不仅是提高工作效率,减轻劳动强度,而且减少出错率,具有很好的社会意义。

第二章需求分析

2.1功能需求

在本系统中管理员应该完成如下操作:

1.对会员信息,图书信息,借阅信息,收入信息的添加、修改和删除操作。

2.利用关键字对会员个人借阅情况和书籍信息进行查询操作。

3.对会员和非会员进行借书和还书管理。

4.对过期会员进行自动检索,并进行处理。

2.2数据流图

图1.书店租赁系统整体数据流图

2.3数据字典

(1)会员编号数据项定义

数据项定义

数据项编号:

1有关编码的说明:

数据项名称:

会员编号XXXXX

简介:

本书店会员编号会员类别编号

类型及宽度:

char

长度:

5

实例:

A0001

表1.会员编号数据项定义

(2)会员借书信息数据流定义

数据流定义

数据流名称:

会员借书信息数据流编号:

FD-1

简述:

对会员借书进行登记

数据流来源:

管理员

数据流去向:

数据库

数据流组成:

店内编号

会员号

已借册数

允许借书

借出日期

表2.会员借书信息数据流定义

(3)会员信息表数据存储定义

数据存储定义

名称:

会员信息表编号:

D1

简述:

书店会员的基本信息有关数据流:

D1P1

数据存储组成:

会员号

会员姓名

会员性别

会员类型

到期日期

表3.会员信息表数据存储定义

2.4书店租赁管理系统的性能需求

为了保证系统能够长期安全、稳定、可靠、高效的运行,书店租赁管理系统应该满足以下的性能需求:

1.系统处理的准确性和及时性

由于书籍的借出与归还等对书租赁管理系统的修改及查询功能有影响,以致于对于整个系统的功能和性能完成有举足轻重的作用。

作为系统的很多数据来源,会员过期等又影响到书店的管理及收益,其准确性很大程度上决定了书店租赁管理系统的成败。

在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。

2.系统的易用性和易维护性

书店租赁管理系统是直接面对使用人员的,而使用人员往往对计算机并不非常熟悉。

这就要求系统能够提供良好的用户接口,易用的人机交互界面。

要求系统应该尽量使用用户熟悉中文信息的界面;针对用户可能出现的使用问题,提供足够的帮助,缩短用户对系统熟悉的过程。

2.5书店租赁管理系统的运行需求

(1):

硬件配置

个人计算机:

PⅢ500MHz以上/128M内存/10G硬盘

(2):

软件配置

操作系统:

WindowsXP

数据库服务器:

MicrosoftSQLServer2000

前端开发软件:

MicrosoftVisualStudio2005C#

第三章概要设计

3.1系统模块划分

1.信息管理模块:

会员信息,图书信息,借阅信息,收入信息的添加、修改和删除操作。

2.查询模块:

利用相应关键字对会员个人借阅情况和书籍信息进行查询操作。

3.图书借阅模块:

对会员和非会员进行借书和还书管理。

4.过期会员管理模块:

对过期会员进行自动检索,并进行处理。

3.2书店租赁管理系统层次结构图

图2.书店租赁管理系统层次结构图

3.3模块之间的接口设计

1.在书店租赁管理系统中,系统需调用数据维护、查询、借阅管理、过期会员四个模块;

2.查询模块要调用数据维护模块中会员信息子模块和借阅信息子模块。

3.借阅管理模块要调用数据维护模块中所有的子模块信息。

4.过期会员模块中要用到数据维护模块中会员信息子模块的会员编号这个参数。

5.同时,各个模块的子模块都被它的上层模块调用。

6.数据维护各模块对应相应的数据库表,都是相互独立的模块。

第四章书店租赁管理系统详细设计

4.1书店租赁管理系统数据库的设计

4.1.1书店租赁管理系统E-R模型

图3.书店租赁管理系统E-R模型

4.1.2书店租赁管理系统数据库表的结构

会员信息表(MemberInfo)

列名

含义

数据类型

备注

会员编号

会员编号

char

主码

姓名

姓名

char

工作单位

工作单位

char

联系电话

联系电话

char

性别

性别

char

会员类别

权限分类

char

到期日期

会员到期日期

datetime

已借册数

已在书店借的册数

char

允许借书

是否允许借书

char

表4.会员信息表

书籍信息表(BookInfo)

列名

含义

数据类型

备注

书号

图书ISBN编号

char

主码

书名

图书名称

date

定价

图书价格

mumeric

所属丛书

图书分类

char

出版社

出版社

char

出版日期

出版日期

datetime

作者

图书作者

char

责任编辑

图书责任编辑

char

引进册数

书店购买的册数

numeric

目前库存量

目前图书库存量

numeric

关键字

图书内容关键字

char

表5.书籍信息表

书号_店内编号表(BookID_InsideID)

列名

含义

数据类型

备注

书号

图书ISBN号

char

主码

店内编号

图书店内编号

char

主码

是否借出

图书是否借出

char

表6.书号_店内编号表

收入表(Income)

列名

含义

数据类型

备注

日期

收入日期

datetime

主码

类别

收入类别

char

金额

收入金额

numeric

表7.收入表

借阅信息表(BorrowInfo)

列名

含义

数据类型

备注

会员编号

会员编号

char

主码

店内编号

图书店内编号

char

主码

借出日期

图书借出日期

datetime

归还日期

图书归还日期

datetime

是否归还

图书是否归还

char

押金

押金

numeric

表8.借阅信息表

4.2书店租赁管理系统主要模块的程序流程图

4.2.1“会员借书”程序流程图

图4.“会员借书”程序流程图

4.2.2“会员还书”程序流程图

图5.“会员还书”程序流程图

4.2.2“查询会员个人借书情况”程序流程图

图6.“查询会员个人借书情况”程序流程图

4.3档案管理模块界面

4.3.1“会员个人借书情况”界面

图7.“会员个人借书情况”界面

4.3.2“会员借书”界面

图8.“会员借书”界面

4.3.2“会员还书”界面

图9.“会员还书”界面

第五章书店租赁管理系统编码

5.1核心代码(管理员增删改查操作)

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.Data.SqlClient;

namespacemyBookStore

{

publicpartialclassAdminForm:

Form

{

privateDataSetdataset=newDataSet();

privateSqlDataAdapterdataAdapter;

publicAdminForm()

{

InitializeComponent();

}

privatevoidtsmiAddMemberInfo_Click(objectsender,EventArgse)

{

AddMemberInfoFormaddMemberInfoForm=newAddMemberInfoForm();

addMemberInfoForm.Show();

}

privatevoidbtnSearchMember_Click(objectsender,EventArgse)

{

if(txtSearchMemberId.Text==""&&txtSearchName.Text=="")

{

MessageBox.Show("请输入要查找的会员Id或会员姓名!

");

//txtSearchMemberId.Focus();

}

elseif(txtSearchMemberId.Text!

="")

{

//dataset.Tables["MemberInfo"].Clear();

stringsql=string.Format("select*fromMemberInfowhereMemberId={0}",txtSearchMemberId.Text);

SqlCommandcommand=newSqlCommand(sql,DBHelper.connection);

SqlDataReaderdataReader;//定义一个DataReader对象

DBHelper.connection.Open();

dataReader=command.ExecuteReader();//执行查询用户命令

//lvSearchMember.Items.Clear();//清除ListView中所有项

//如果没有要找的数据项,提示

if(!

dataReader.HasRows)

{

MessageBox.Show("没有找到你要查询的会员Id,请重新输入!

");

dataReader.Close();

DBHelper.connection.Close();

}

else

{

dataReader.Close();

DBHelper.connection.Close();

FillListView1();

}

}

else

{

stringsql=string.Format("select*fromMemberInfowhereNamelike'%{0}%'",txtSearchName.Text);

SqlCommandcommand=newSqlCommand(sql,DBHelper.connection);

SqlDataReaderdataReader;//定义一个DataReader对象

DBHelper.connection.Open();

dataReader=command.ExecuteReader();//执行查询用户命令

//lvSearchMember.Items.Clear();//清除ListView中所有项

//如果没有要找的数据项,提示

if(!

dataReader.HasRows)

{

MessageBox.Show("没有找到你要查询的姓名,请重新输入!

");

dataReader.Close();

DBHelper.connection.Close();

}

else

{

dataReader.Close();

DBHelper.connection.Close();

FillListView2();

}

}

}

privatevoidFillListView1()

{

//查询语句

stringsql=string.Format("select*fromMemberInfowhereMemberId={0}",txtSearchMemberId.Text);

dataAdapter=newSqlDataAdapter(sql,DBHelper.connection);

dataAdapter.Fill(dataset,"MemberInfo");

dgvInFrom.DataSource=dataset.Tables["MemberInfo"];

}

privatevoidFillListView2()

{

//查询语句

stringsql=string.Format("select*fromMemberInfowhereNamelike'%{0}%'",txtSearchName.Text);

dataAdapter=newSqlDataAdapter(sql,DBHelper.connection);

dataAdapter.Fill(dataset,"MemberInfo");

dgvInFrom.DataSource=dataset.Tables["MemberInfo"];

}

privatevoidFillListView3()

{

//查询语句

stringsql=string.Format("select*fromBookInfowhereBookNum={0}",txtBookNum.Text);

dataAdapter=newSqlDataAdapter(sql,DBHelper.connection);

dataAdapter.Fill(dataset,"BookInfo");

dgvInFrom.DataSource=dataset.Tables["BookInfo"];

}

privatevoidFillListView4()

{

//查询语句

stringsql=string.Format("select*fromBookInfowhereBookNamelike'%{0}%'",txtBookName.Text);

dataAdapter=newSqlDataAdapter(sql,DBHelper.connection);

dataAdapter.Fill(dataset,"BookInfo");

dgvInFrom.DataSource=dataset.Tables["BookInfo"];

}

privatevoidbtnClear_Click(objectsender,EventArgse)

{

dataset.Tables["MemberInfo"].Clear();

}

privatevoidbutton4_Click(objectsender,EventArgse)

{

DialogResultresult=MessageBox.Show("确定要将修改保存到数据库吗?

","操作提示",

MessageBoxButtons.OKCancel,MessageBoxIcon.Information);

if(result==DialogResult.OK)

{

//自动生成用于修改的Command命令

SqlCommandBuilderbuilder=newSqlCommandBuilder(dataAdapter);

//将数据集中的member表的数据提交给数据库更新

dataAdapter.Update(dataset,"MemberInfo");

}

}

privatevoidbutton5_Click(objectsender,EventArgse)

{

foreach(DataGridViewRowrindgvInFrom.SelectedRows)

{

if(!

r.IsNewRow)

{

dgvInFrom.Rows.Remove(r);

}

}

}

privatevoidbtnSearchBookInfo_Click(objectsender,EventArgse)

{

if(txtBookNum.Text==""&&txtBookName.Text=="")

{

MessageBox.Show("请输入要查找的书籍Id或书籍名称!

");

//txtSearchMemberId.Focus();

}

elseif(txtSearchMemberId.Text!

="")

{

//dataset.Tables["MemberInfo"].Clear();

stringsql=string.Format("select*fromBookInfowhereBookNum={0}",txtBookNum.Text);

SqlCommandcommand=newSqlCommand(sql,DBHelper.connection);

SqlDataReaderdataReader;//定义一个DataReader对象

DBHelper.connection.Open();

dataReader=command.ExecuteReader();//执行查询用户命令

//lvSearchMember.Items.Clear();//清除ListView中所有项

//如果没有要找的数据项,提示

if(!

dataReader.HasRows)

{

MessageBox.Show("没有找到你要查询的会员Id,请重新输入!

");

dataReader.Close();

DBHelper.connection.Close();

}

else

{

dataReader.Close();

DBHelper.connection.Close();

FillListView3();

}

}

else

{

stringsql=string.Format("select*fromBookInfowhereBookNamelike'%{0}%'",txtBookName.Text);

SqlCommandcommand=newSqlCommand(sql,DBHelper.connection);

SqlDataReaderdataReader;//定义一个DataReader对象

DBHelper.connection.Open();

dataReader=command.ExecuteReader();//执行查询用户命令

//lvSearchMember.Items.Clear();//清除ListView中所有项

//如果没有要找的数据项,提示

if(!

dataReader.HasRows)

{

MessageBox.Show("没有找到你要查询的姓名,请重新输入!

");

dataReader.Close();

DBHelpe

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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