数据库课程设计(书店租赁管理系统).docx

上传人:夺命阿水 文档编号:1092897 上传时间:2024-03-15 格式:DOCX 页数:21 大小:255.15KB
返回 下载 相关 举报
数据库课程设计(书店租赁管理系统).docx_第1页
第1页 / 共21页
数据库课程设计(书店租赁管理系统).docx_第2页
第2页 / 共21页
数据库课程设计(书店租赁管理系统).docx_第3页
第3页 / 共21页
数据库课程设计(书店租赁管理系统).docx_第4页
第4页 / 共21页
数据库课程设计(书店租赁管理系统).docx_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《数据库课程设计(书店租赁管理系统).docx》由会员分享,可在线阅读,更多相关《数据库课程设计(书店租赁管理系统).docx(21页珍藏版)》请在课桌文档上搜索。

1、第一章问题描述11.1问题描述22.1 可行性研究22.1.1 经济可行性22.1.2 时间可行性22.1.3 技术可行性22.1.4 社会可行性2第二章需求分析22.1 功能需求22.2 数据流图32.3 数据字典32.4 书店租赁管理系统的性能需求42.5 书店租赁管理系统的运行需求4第三章概要设计43.1 系统模块划分43.2 书店租赁管理系统层次结构图43.3 模块之间的接口设计5第四章书店租赁管理系统详细设计54.1 书店租赁管理系统数据库的设计5书店租赁管理系统E-R模型5书店租赁管理系统数据库表的结构64.2 书店租赁管理系统主要模块的程序流程图7“会员借书”程序流程图7“会员还

2、书”程序流程图8“查询会员个人借书情况”程序流程图94.3 档案管理模块界面10“会员个人借书情况”界面10“会员借书”界面11“会员还书”界面11第五章书店租赁管理系统编码125.1会员借书界面12“确定”按钮:错误!未定义书签。“借出”按钮:错误!未定义书签。第六章档案管理模块测试126.1“会员借书”单元测试19第七章总结20参考资料20第一章问题描述1.1问题描述在当今社会,随着计算机的开展及网络技术的应用,计算机应用在全球范围内的普及。当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。而在日常生活中信息技术的不断融入,在技术越来越先进的同时,我们应该从以前繁琐的事务中解放出

3、来,来提高了我们的工作效率。而目前在在一些中小型书店中,工作大局部还是进行着手工管理,工作起来效率很低,并且不能及时了解书店各类图书的库存,读者比拟需求的图书难以在短时间里找到、图书的入库和更新比拟麻烦等等,不便于动态及时调整图书结构。由于不可防止的人为因素,造成数据的遗漏、误报。为了更好的适应当前读者的借阅需求,缓解手工管理存在的许多弊端,计算机信息化管理有着储存信息量大,速度快、便于管理等特点,提供应我们的处理信息及时快捷,在工作中不仅减缓了压力,同时提高了我们工作人员的自身素质。因此我们利用计算机提供应我们信息,及时的调整书店图书结构,并且对读者的借阅过程形成-整化动态的管理。2.1可行

4、性研究任何一个系统或项工程,在建立之前,必须首选进行可行性分析,可行性分析包括两层含义,一是可能性,二是必要性。可能性指开发信息系统的条件是否具备,必要性是指客观上是否真正需要,通过可行性研究,可防止盲目投资,减少政治性要的损失。下面从四方面来讨论:经济可行性主要是只指算一个新的系统开发所需要的投资费用和运算费用,并与估计的新系统收益进行比拟,看是否有利。本系统所需的软硬件本钱比拟低,投资小,具有一定的通过性,因此,在经济上是可行的。时间可行性主要包括系统在目前环境下能否正常运行,运行后所引起的各方面,以及这些变化对社会或人的因素所产生的影响。本系统对人事的管理比拟全面,可长期使用。技术可行性

5、利用现有的设备,软件及技术人员,新系统的目标能否到达,这也是可行性研究中需要考虑的一个问题。关系型数据库的高速开展使管理信息系统具备了良好的开发环境。本系统使用的DeIPhi普及性好,操作简单,用户可以很快掌握使用方法,因此,在技术上是完全可行的。社会可行性人类社会文明的开展已进入信息化的高速开展时期,传统的手工方式支持下的管理模式,已经不能满足各方面的需要。开发本系统的目标不仅是提高工作效率,减轻劳动强度,而且减少出错率,具有很好的社会意义。第二章需求分析2.1功能需求在本系统中管理员应该完成如下操作:1 .对会员信息,图书信息,借阅信息,收入信息的添加、修改和删除操作。2 .利用关键字对会

6、员个人借阅情况和书籍信息进行查询操作。3 .对会员和非会员进行借书和还书管理。4 .对过期会员进行自动检索,并进行处理。2.2数据流图2.3数据字典(1)会员编号数据项定义数据项定义数据项编号:1数据项名称:会员编号简介:本书店会员编号类型及宽度:Char长度:5实例:AOOOl有关编码的说明:XXXXX会员类别编号表L会员编号数据项定义(2)会员借书信息数据流定义数据流定义数据流名称:会员借书信息数据流编号:FD-I简述:对会员借书进行登记数据流来源:管理员数据流去向:数据库数据流组成:店内编号会员号己借册数允许借书借出日期表2.会员借书信息数据流定义(3)会员信息表数据存储定义数据存储定义

7、名称:会员信息表简述:书店会员的根本信息数据存储组成:会员号会员姓名会员性别会员类型到期日期编号:Di有关数据流:Di_P表3.会员信息表数据存储定义2.4书店租赁管理系统的性能需求为了保证系统能够长期平安、稳定、可靠、高效的运行,书店租赁管理系统应该满足以下的性能需求:1 .系统处理的准确性和及时性由于书籍的借出与归还等对书租赁管理系统的修改及查询功能有影响,以致于对于整个系统的功能和性能完成有举足轻重的作用。作为系统的很多数据来源,会员过期等又影响到书店的管理及收益,其准确性很大程度上决定了书店租赁管理系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。2 .系统的易

8、用性和易维护性书店租赁管理系统是直接面对使用人员的,而使用人员往往对计算机并不非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要求系统应该尽量使用用户熟悉中文信息的界面;针对用户可能出现的使用问题,提供足够的帮助,缩短用户对系统熟悉的过程。2.5书店租赁管理系统的运行需求(1):硬件配置个人计算机:PIII500MHZ以上/128M内存/1OG硬盘(2):软件配置操作系统:WindowsXP数据库效劳器:MicrosoftSQLServer2000前端开发软件:MicrosoftVisualStudio2005C#第三章概要设计3.1系统模块划分1 .信息管理模块:会员信息,

9、图书信息,借阅信息,收入信息的添加、修改和删除操作。2 .查询模块:利用相应关键字对会员个人借阅情况和书籍信息进行查询操作。3 .图书借阅模块:对会员和非会员进行借书和还书管理。4 .过期会员管理模块:对过期会员进行自动检索,并进行处理。3.2 书店租赁管理系统层次结构图3.3 模块之间的接口设计1 .在书店租赁管理系统中,系统需调用数据维护、查询、借阅管理、过期会员四个模块;2 .查询模块要调用数据维护模块中会员信息子模块和借阅信息子模块。3 .借阅管理模块要调用数据维护模块中所有的子模块信息。4 .过期会员模块中要用到数据维护模块中会员信息子模块的会员编号这个参数。5 .同时,各个模块的子

10、模块都被它的上层模块调用。6 .数据维护各模块对应相应的数据库表,都是相互独立的模块。第四章书店租赁管理系统详细设计4.1 书店租赁管理系统数据库的设计书店租赁管理系统E-R模型图3.书店租赁管理系统E-R模型书店租赁管理系统数据库表的结构会员信息表(MemberInfo)列名含义数据类型备注会员编号会员编号char主码姓名姓名char工作单位工作单位char联系联系char性别性别char会员类别权限分类char到期日期会员到期日期datetime已借册数已在书店借的册数char允许借书是否允许借书char表4.会员信息表书籍信息表(BookInfo)列名含义数据类型备注书号图书ISBN编号

11、char主码书名图书名称date定价图书价格mumeric所属丛书图书分类char出版社出版社char出版日期出版日期datetime作者图书作者char责任编辑图书责任编辑char引进册数书店购置的册数numeric目前库存量目前图书库存量numeric关键字图书内容关键字char表5.书籍信息表书号店内编号表(BOOklDInsidelD)列名含义数据类型备注书号图书ISBN号char主码店内编号图书店内编号char主码是否借出图书是否借出char表6.书号店内编号表收入表(InCOme)列名含义数据类型备注日期收入日期datetime主码类别收入类别char金额收入金额numeric表7

12、.收入表昔阅信息表(BorrowInfo)列名含义数据类型备注会员编号会员编号char主码店内编号图书店内编号char主码借出日期图书借出日期datetime归还日期图书归还日期datetime是否归还图书是否归还char押金押金numeric表8.借阅信息表4.2 书店租赁管理系统主要模块的程序流程图“会员借书”程序流程图图4.“会员借书”程序流程图“会员还书”程序流程图“会员还书”程序流程图“查询会员个人借书情况”程序流程图图6.“查询会员个人借书情况”程序流程图4.3 档案管理模块界面“会员个人借书情况”界面-ll Xl重生员个人借书情况查询依据I会员编号3*ooi包含已归还查询会员编号

13、店内缜号憎出日期归还日期,I是否借出押金A001Aoooootoooi2010-8-25否0/AOOOOl000000022010-9-12010-9-3是4米图7.“会员个人借书情况”界面“会员借书”界面图8.“会员借书”界面“会员还书”界面图9.“会员还书”界面第五章书店租赁管理系统编码5.1核心代码(管理员增删改查操作)usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem

14、.Windows.Forms;usingSystem.Data.SqlClient;namespacemyBookStorepublicpartialclassAdminForm:FormprivateDataSetdataset=newDataSetO;privateSqlDataAdapterdataAdapter;publicAdminFormOInitializeComponentO;)privatevoidtsmiAddMemberInfoClick(objectsender,EventArgse)(.AddMemberInfoFormaddMemberInfoForm=new.Ad

15、dMemberInfoFormO;addMemberInf0F0rm.Show():)privatevoidbtnSearchMemberClick(objectsender,EventArgse)(if(txtSearchMemberld.Text=*&tXtSearchName.Text=)(MessageBox.ShOW(请输入要查找的会员Id或会员姓名!”);/txtSearchMemberld.Focus();)elseif(txtSearchMemberld.Text!=*)/dataset.Tables*MemberInfo*.Clear();stringsql=string.F

16、ormat(*select*fromMemberInfowhereMemberId=0*,txtSearchMemberld.Text);SqlCommandcommand=newSqlCommand(sql,DBHelper.connection);SqlDataReaderdataReader;定义一个DataReader对象DBHelper.connection.Open();dataReader=Command.ExecuteReader();/执行查询用户命令/lvSeaichMember.Items.ClearO:去除LiStVieW中所有项如果没有要找的数据项,提示if(!dat

17、aReader.HasRows)(MessageBox.ShoW(没有找到你要查询的会员Id,请重新输入!”);dataReader.CloseO;DBHelper.connection.Close();)elsedataReader.CloseO;DBHelper.connection.Close();FillListViewl();)else(stringSqI=string.Format(*select*fromMemberInfowhereName1ike,%0%,*,txtSearchName.Text);SqlCommandcommand=newSq!Command(sql,DBH

18、elper.connection);SqlDataReaderdataReader;定义一个DataReader对象DBHelper.connection.Open();dataReader=Command.ExecuteReader();/执行查询用户命令/IvSearchMember.Items.ClearO;去除LiStVieW中所有项如果没有要找的数据项,提示if(!dataReader.HasRows)MessageBox.ShOW(没有找到你要查询的姓名,请重新输入!”);dataReader.CloseO;DBHelper.connection.Close();)elsedata

19、Reader.CloseO;DBHelper.connection.Close();FilILiStVieW2();)privatevoidFillListViewl()(查询语句stringsql=string.Format(*select*fromMemberInfowhereMemberId=0)*,IxtSearchMemberId.Text);datadapter=newSqlDataAdapter(sql,DBHelper.connection);datadapter.FilKdataset,“MemberInfo);dgvInFrom.DataSource=dataset.Tab

20、leswMemberInfo*:)privatevoidFillListView2()查询语句stringsql=string.Format(*select*fromMemberInfowhereName1ike,%0%,txtSearchName.Text);datadapter=newSqlDataAdapter(sql,DBHelper.connection);datadapter.Fill(dataset,“MemberInfo);dgvInFrom.DataSource=dataset.Tables*MemberInfo*:)privatevoidFiHListView3()(查询语

21、句stringsql=string.Format(*select*fromBookInfowhereBookNum=0*,txtBookNum.Text);datadapter=newSqlDataAdapter(sql,DBHelper.connection);datadapter.FilKdataset,“Bookinfo);dgvInFrom.DataSource=dataset.TablesvBookInfo*;)privatevoidFillListView4()(查询语句stringsql=string.Format(*select*fromBookInfowhereBookNam

22、e1ike,%0%,*,txtBookName.Text);datadapter=newSqlDataAdapter(sql,DBHelper.connection);datadapter.FilKdataset,“Bookinfo);dgvInFrom.DataSource=dataset.Tables*BookInfo*;privatevoidbtnClearClick(objectsender,EventArgse)(dataset.Tables*MemberInfo*.ClearO;)p,ivatevoidbutton4Click(objectsender,EventArgse)(Di

23、alogResultresult=MeSSageBOX.Show(确定要将修改保存到数据库吗?,操作提示,MessageBoxButtons.OKCancel,MessageBoxIcon.Information);if(result=DialogResult.OK)自动生成用于修改的COmmand命令SqlCommandBuiIderbuiIder=newSqlCommandBuiIder(datadapter):将数据集中的member表的数据提交给数据库更新datadapter.Update(dataset,“MemberInfo);p,ivatevoidbutton5Click(obj

24、ectsender,EventArgse)(foreach(DataGridViewRowrindgvInFrom.SelectedRows)(if(!r.IsNewRow)(dgvInFrom.Rows.Remove(r);)privatevoidbtnSearchBooklnfoClick(objectsender,EventArgse)(if(txtBookNum.Text=*&txtBookName.Text=)(MessageBox.ShoW(请输入要查找的书籍Id或书籍名称!”);/ZtxtSearchMemberId.Focus();)elseif(txtSearchMember

25、ld.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();/执行查询用户命令/IvSearc

26、hMember.Items.ClearO;去除LiStVieW中所有项如果没有要找的数据项,提示if(!dataReader.HasRows)MessageBox.ShOW(没有找到你要查询的会员Id,请重新输入!”);dataReader.CloseO;DBHelper.connection.Close();elsedataReader.CloseO;DBHelper.connection.Close();FillListView3();)else(stringsql=string.Format(*select*fromBookInfowhereBookName1ike,%0%,*,txtB

27、ookName.Text);SqlCommandcommand=newSqIConunand(sql,DBHelper.connection);SqlDataReaderdataReader;定义一个DataReader对象DBHelper.connection.Open();dataReader=Command.ExecuteReader();执行查询用户命令/IvSearchMember.Items.Clear();去除LiStVieW中所有项如果没有要找的数据项,提示if(!dataReader.HasRows)(MessageBox.ShOW(没有找到你要查询的姓名,请重新输入!”);

28、dataReader.CloseO;DBHelper.connection.Close();else(dataReader.CloseO;DBHelper.connection.Close();FillListView4();)privatevoidbuttonlClick(objectsender,EventArgse)(DialogResultresult=MeSSageBoX.Show(确定要将修改保存到数据库吗?,操作提示”,MessageBoxButtons.OKCancel,MessageBoxIcon.Information);if(result=DialogResult.OK)

29、(自动生成用于修改的ComnIand命令SqlCommandBuiIderbuiIder=newSqlCommandBuiIder(datadapter);将数据集中的member表的数据提交给数据库更新datadapter.Update(dataset,“Bookinfo);)privatevoidbutton6Click(objectsender,EventArgse)(DialogResultresult=MeSSageBOX.Show(确定要将修改保存到数据库吗?,操作提示”,MessageBoxButtons.OKCancel,MessageBoxIcon.Information);

30、if(result=DialogResult.OK)(自动生成用于修改的COmnland命令SqlCommandBuiIderbuiIder=newSqlCommandBuiIder(datadapter);将数据集中的member表的数据提交给数据库更新datadapter.Update(dataset,*BorrowInfo*);)privatevoidbutton2Click(objectsender,EventArgse)查询语句stringsql=*select*fromBorrowInfo*;datadapter=newSqlDataAdapter(sql,DBHelper.con

31、nection);datadapter.Fill(dataset,“BorrowInfo);dgvInFrom.DataSource=dataset.Tables*BorrowInfo*:)privatevoidbutton7Click(objectsender,EventArgse)(dataset.Tables*BookInfo*.ClearO;)privatevoidbutton8Click(objectsender,EventArgse)(dataset.Tables*BorrowInfo*.Clear();)privatevoidtsmiExit_Click(objectsender

32、,EventArgse)(1.oginFormIoginForm=newLoginFormO;IoginForm.Show();this.Visible=false;)第六章档案管理模块测试61 “会员借书”单元测试 口, 用路径覆盖测试测试用例测试结果预想结果是否一致会员编号;提示没有找到该提示没有找到该图10. “会员借书”单元测试路径图或会员编号:OOOOOl;会员信息会员信息i致会员编号=AOOOl;提示该会员已不允许借书提示该会员已不允许借书一致会员编号=BOOOl;提示该会员已不允许借书提示该会员已不允许借书i致会员编号=0002,:店内编号:oooooooooi,提示没有找到您要

33、查找的书籍提示没有找到您要查找的书籍一致会员编号=A0002;店内编号=Aoooooooor提示该书已经借出提示该书已经借出一致会员编号=A0002;店内编号:Aoooooooir弹出借书成功窗口弹出借书成功窗口一致表9.“会员借书”单元测试用例分析第七章总结第一次做数据库的一书店租赁管理系统,很小,但是从中收获很多,不仅仅是为了交设计,而是为了稳固知识,打下个好根底。编程标准这块是感触最深的地方。一个系统开发完了不适用一次就不用了,而是要不断的升级,不断的维护,以满足客户的需要,在这个过程中,不一定是有你本人完成,可能是他人,这就要求任何人都能独立的阅读看懂你的代码,所以这个时候编程标准的价

34、值就自然地表达出来了。鉴于此,代码的编写要符合标准和标准,关于系统设计的层次结构。一个系统的好坏直接与系统的生命持久挂钩,因为衡量一个好的系统的标准要看其是否能够漏足用户不断变化的要求,是否满足可复用性和可扩展性的要求。要实现这样的目的,就要把相同的功能放到同一层,各层之间不直接调用,而是通过试图来调用,而各个层之间却可以紧密联系,实现高内聚低耦合。本次的课程设计中,我们曾遇到很多困难,应为数据库是我们第一次接触做设计,难免有些生疏,很容易出错,但是要对自己有信心,要对设计有耐心,只要有心就能成功。参考资料1.崔巍书名:数据库系统及应用出版社:高等教育出版社2.张志清书名:管理信息系统使用教程出版社:电子工业出版社3.刘瑞新书名:使用C#开发数据库应用程序出版社:科学技术文献出版社

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

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号