书店租赁管理系统 (2)_第1页
书店租赁管理系统 (2)_第2页
书店租赁管理系统 (2)_第3页
书店租赁管理系统 (2)_第4页
书店租赁管理系统 (2)_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

数据库课程设计报告设计题目: 书店租凭管理系统 学生姓名: 系 别: 专 业: 班 级: 功能模块: 同组同学: 学 号: 指导教师: 评阅意见: 目 录第一章 问题描述41.1 问题描述42.1 可行性研究4第二章 需求分析62.1功能需求62.2数据流图72.3数据字典82.4书店租赁管理系统的性能需求102.5书店租赁管理系统的运行需求11第三章 概要设计123.1系统模块划分123.2书店租赁管理系统层次结构图133.3模块之间的接口设计13第四章 书店租赁管理系统详细设计154.1书店租赁管理系统数据库的设计154.1.1书店租赁管理系统E-R模型154.1.2书店租赁管理系统数据库表的结构164.2书店租赁管理系统主要模块的程序流程图194.2.1“会员借书”程序流程图194.2.2“会员还书”程序流程图214.2.2“查询会员个人借书情况”程序流程图224.3档案管理模块界面234.3.1“会员个人借书情况”界面234.3.2“会员借书”界面234.3.2“会员还书”界面24第五章 书店租赁管理系统编码265.1核心代码(管理员增删改查操作)26第六章 档案管理模块测试436.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 有关编码的说明:数据项名称:会员编号 X XX XX 简 介:本书店会员编号 会员类别 编号类型及宽度:char长 度:5 实 例:A0001表1. 会员编号数据项定义(2)会员借书信息数据流定义 数据流定义数据流名称:会员借书信息 数据流编号:FD-1简 述:对会员借书进行登记数据流来源:管理员数据流去向:数据库数据流组成:店内编号 会员号 已借册数 允许借书 借出日期表2. 会员借书信息数据流定义 (3)会员信息表数据存储定义 数据存储定义名称:会员信息表 编号:D1简述:书店会员的基本信息 有关数据流:D1 P1数据存储组成:会员号 会员姓名 会员性别 会员类型 到期日期表3. 会员信息表数据存储定义2.4书店租赁管理系统的性能需求为了保证系统能够长期安全、稳定、可靠、高效的运行,书店租赁管理系统应该满足以下的性能需求:1系统处理的准确性和及时性由于书籍的借出与归还等对书租赁管理系统的修改及查询功能有影响,以致于对于整个系统的功能和性能完成有举足轻重的作用。作为系统的很多数据来源,会员过期等又影响到书店的管理及收益,其准确性很大程度上决定了书店租赁管理系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。2 系统的易用性和易维护性书店租赁管理系统是直接面对使用人员的,而使用人员往往对计算机并不非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要求系统应该尽量使用用户熟悉中文信息的界面;针对用户可能出现的使用问题,提供足够的帮助,缩短用户对系统熟悉的过程。2.5书店租赁管理系统的运行需求(1):硬件配置个人计算机:P 500MHz以上/128M内存/10G硬盘(2):软件配置操作系统:Windows XP数据库服务器:Microsoft SQL Server 2000前端开发软件:Microsoft Visual Studio 2005 C#第三章 概要设计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核心代码(管理员增删改查操作)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace myBookStore public partial class AdminForm : Form private DataSet dataset = new DataSet(); private SqlDataAdapter dataAdapter; public AdminForm() InitializeComponent(); private void tsmiAddMemberInfo_Click(object sender, EventArgs e) AddMemberInfoForm addMemberInfoForm = new AddMemberInfoForm(); addMemberInfoForm.Show(); private void btnSearchMember_Click(object sender, EventArgs e) if (txtSearchMemberId.Text = & txtSearchName.Text = ) MessageBox.Show(请输入要查找的会员Id或会员姓名!); /txtSearchMemberId.Focus(); else if (txtSearchMemberId.Text != ) /dataset.TablesMemberInfo.Clear(); string sql = string.Format(select * from MemberInfo where MemberId=0, txtSearchMemberId.Text); SqlCommand command = new SqlCommand(sql, DBHelper.connection); SqlDataReader dataReader; /定义一个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 string sql = string.Format(select * from MemberInfo where Name like %0%, txtSearchName.Text); SqlCommand command = new SqlCommand(sql, DBHelper.connection); SqlDataReader dataReader; /定义一个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(); private void FillListView1() /查询语句 string sql = string.Format(select * from MemberInfo where MemberId=0, txtSearchMemberId.Text); dataAdapter = new SqlDataAdapter(sql, DBHelper.connection); dataAdapter.Fill(dataset, MemberInfo); dgvInFrom.DataSource = dataset.TablesMemberInfo; private void FillListView2() /查询语句 string sql = string.Format(select * from MemberInfo where Name like %0%, txtSearchName.Text); dataAdapter = new SqlDataAdapter(sql, DBHelper.connection); dataAdapter.Fill(dataset, MemberInfo); dgvInFrom.DataSource = dataset.TablesMemberInfo; private void FillListView3() /查询语句 string sql = string.Format(select * from BookInfo where BookNum = 0, txtBookNum.Text); dataAdapter = new SqlDataAdapter(sql, DBHelper.connection); dataAdapter.Fill(dataset, BookInfo); dgvInFrom.DataSource = dataset.TablesBookInfo; private void FillListView4() /查询语句 string sql = string.Format(select * from BookInfo where BookName like %0%, txtBookName.Text); dataAdapter = new SqlDataAdapter(sql, DBHelper.connection); dataAdapter.Fill(dataset, BookInfo); dgvInFrom.DataSource = dataset.TablesBookInfo; private void btnClear_Click(object sender, EventArgs e) dataset.TablesMemberInfo.Clear(); private void button4_Click(object sender, EventArgs e) DialogResult result = MessageBox.Show(确定要将修改保存到数据库吗?, 操作提示, MessageBoxButtons.OKCancel, MessageBoxIcon.Information); if (result = DialogResult.OK) /自动生成用于修改的Command命令 SqlCommandBuilder builder = new SqlCommandBuilder(dataAdapter); /将数据集中的member表的数据提交给数据库更新 dataAdapter.Update(dataset, MemberInfo); private void button5_Click(object sender, EventArgs e) foreach (DataGridViewRow r in dgvInFrom.SelectedRows) if (!r.IsNewRow) dgvInFrom.Rows.Remove(r); private void btnSearchBookInfo_Click(object sender, EventArgs e) if (txtBookNum.Text = & txtBookName.Text = ) MessageBox.Show(请输入要查找的书籍Id或书籍名称!); /txtSearchMemberId.Focus(); else if (txtSearchMemberId.Text != ) /dataset.TablesMemberInfo.Clear(); string sql = string.Format(select * from BookInfo where BookNum=0, txtBookNum.Text); SqlCommand command = new SqlCommand(sql, DBHelper.connection); SqlDataReader dataReader; /定义一个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 string sql = string.Format(select * from BookInfo where BookName like %0%, txtBookName.Text); SqlCommand command = new SqlCommand(sql, DBHelper.connection); SqlDataReader dataReader; /定义一个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(); FillListView4(); private void button1_Click(object sender, EventArgs e) DialogResult result = MessageBox.Show(确定要将修改保存到数据库吗?, 操作提示, MessageBoxButtons.OKCancel, MessageBoxIcon.Information); if (result = DialogResult.OK) /自动生成用于修改的Command命令 SqlCommandBuilder builder = new SqlCommandBuilder(dataAdapter); /将数据集中的member表的数据提交给数据库更新 dataAdapter.Update(dataset, BookInfo); private void button6_Click(object sender, EventArgs e) DialogResult result = MessageBox.Show(确定要将修改保存到数据库吗?, 操作提示, MessageBoxButtons.OKCancel, MessageBoxIcon.Information); if (result = DialogResult.OK) /自动生成用于修改的Command命令 SqlCommandBuilder builder = new SqlCommandBuilder(dataAdapter); /将数据集中的member表的数据提交给数据库更新 dataAdapter.Update(dataset, BorrowInfo); private void button2_Click(object sender, EventArgs e) /查询语句 string sql = select * from BorrowInfo; dataAdapter = new SqlDataAdapter(sql, DBHelper.connection); dataAdapter.Fill(dataset, BorrowInfo); dgvInFrom.DataSource = dataset.TablesBorrowInfo; private void button7_Click(object sender, EventArgs e) dataset.TablesBookInfo.Clear(); private void button8_Click(object sender, EventArgs e) dataset.TablesBorrow

温馨提示

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

评论

0/150

提交评论