收藏 分享(赏)

《数据库原理》课程设计-图书管理系统.doc

上传人:精品资料 文档编号:10750296 上传时间:2020-01-07 格式:DOC 页数:62 大小:1.31MB
下载 相关 举报
《数据库原理》课程设计-图书管理系统.doc_第1页
第1页 / 共62页
《数据库原理》课程设计-图书管理系统.doc_第2页
第2页 / 共62页
《数据库原理》课程设计-图书管理系统.doc_第3页
第3页 / 共62页
《数据库原理》课程设计-图书管理系统.doc_第4页
第4页 / 共62页
《数据库原理》课程设计-图书管理系统.doc_第5页
第5页 / 共62页
点击查看更多>>
资源描述

1、1数据库原理课程设计报告题 目: 图书出租管理系统 学生姓名: 学 号: 班 级: 计科081 院 系: 计算机科学与信息学院 专业年级: 计算机科学与技术 2008 级 2010 年 12 月 30 日2一、需求分析1.问题描述: 随着网络化时代的到来,图书出租信息的网络化可以大大节约人工和时间。为此可以开发出图书管理系统,广泛的应用于学校和工业、商业、企业、事业和行政等单位。实际上,该系统的实用性还是比较强的。2.系统功能描述(1)系统功能描述一个图书出租管理系统应该提供包括客户信息管理、图书信息管理、出版社信息管理、用户信息管理、租还书、综合查询等功能。1) 客户、图书、用户信息的数据模

2、块提供增加、删除、改变和查询、浏览等基本的数据维护功能。2) 综合查询模块可以通过用户选择的数据表和相应的查询条件来查询相关内容。3) 客户租还书模块是图书出租管理系统的核心功能,实现客户和图书出租的交互。(2)功能模块划分图书出租管理系统的数据库功能主要体现在对各种信息的提供、保存、更新和查询操作上,包括图书信息、用户信息、客户信息和租借信息,各个部分的数据内容又有内在联系。针对该系统的数据特点,可以总结出如下的需求。A、用户和客户具有不同的身份。B、用户信息记录用户资料。C、客户信息记录客户的详细信息。D、图书信息记录图书的名称、出版社等信息。E、租借信息记录客户租借图书的信息。图书出租管

3、理系统应该具有客户信息管理、图书信息管理、租还书和综合查询等功能。根据系统功能的需求分析,我们把该系统的功能划分为 5 个模块。A、客户信息维护模块B、图书信息维护模块C、用户信息管理模块D、客户租还书管理模块3E、综合查询模块图书出租管理系统的功能模块如图所示其中,客户租还书管理模块包括以下 3 个子模块:A、租借图书B、归还图书C、查询租借信息客户信息维护模块包括以下 5 个子模块:A、增加客户信息B、删除客户信息C、修改客户信息D、查询客户信息E、遍历客户信息该模块图如下图所示:用户客户信息维护图书出租管理系统客户系统管理员图书信息维护客户租还书信息管理综合查询还书租书用户信息管理客户信

4、息维护模块修改客户信息删除客户信息增加客户信息遍历客户信息查询客户信息4同理,如图书信息管理、用户信息管理模块也被类似的分为增加、删除、修改、查询和遍历 5 个模块。(3)系统流程分析图书出租管理系统的开发首先要设计一个登录系统,用户只有输入了正确的用户名和密码方可进入系统内部。系统流程图如下图所示(4)数据流程图用户客户信息维护图书出租管理系统客户系统管理员图书信息维护客户租还书信息管理综合查询还书租书用户信息管理登录判断用户类型5系统管理员用户客户查询 用户表图书表客户表租借信息表增加修改删除查询查询(5)系统功能分析和需求总结后,设计如下的数据项和数据结构。A、图书信息,包括图书编号、图

5、书名称、作者等数据项B、租书信息,包括客户编号、图书编号、租借日期等数据项。C、客户信息,包括客户编号、姓名、密码等数据项。D、用户信息,包括用户编号、密码、分类等数据项。3.系统使用权限方面该信息管理系统的角色可以分为 3 类:(1)普通用户:拥有客户信息维护、图书信息管理以及客户租还书管理、报表显示和综合查询的权限。(2)系统管理员:拥有客户信息维护、图书信息管理、用户信息管理以及客户租还书管理和综合查询权限。但其主要功能还是用户信息管理。(3)客户:租书和还书。二、数据库概念结构设计得到上面的数据项和数据结构后,就可以设计满足需求的各种实体及相互关系,再用实体-关系图,及 E-R(Ent

6、iry-Relationship)图将这些内容表达出来,为后面的逻辑结构设计打下基础。在这个系统中,所存在的实体有:图书信息实体、租书信息实体、出版社信息实体、客户信息实体和用户信息实体,它们之间的6关系如图所示。BookBookIDUserReaderBookNameBookWriterReturnDateReaderIDUserPasswordBookPublishDateBookPublishBookPriceBookSortBookAmountBookRemainBookIDBorrowDateFactReturnDateUserIDReaderIDReaderPasswordRead

7、erPhoneNoReaderEmailReaderBorrowBooksReaderNameUserSort图书信息实体 E-R 图租借书信息关系的属性 E-R客户信息实体 E-R 图BorrowBook用户信息实体 E-R 图7三、逻辑结构设计1.模式设计: (1)关系模式:Book(BookID、BookName、BookWriter、BookPublish、BookPublishDate、BookPrice、BookSort、BookAmount、BookRemain)BorrowBook(ReaderID、BookID、BorrowDate、ReturnDate、FactReturn

8、Date)Reader(ReaderID、ReaderName、ReaderPassword、ReaderPhoneNo、ReaderEmail、ReaderBorrowBooks)User(UserID、UserPassword、UserSort)(2)数字字典:图书表(Book)编号 字段名称 数据结构 说明1 BookID nvarchar(50)图书编号2 BookName nvarchar(50)图书名称3 BookWriter nvarchar(20)图书作者4 BookPublish nvarchar(50)出版社5 BookPublishDatedatetime 出版日期书用户

9、客户租借书管理查询与管理查询与管理nnm 1nn11实体及其联系的 E-R 图86 BookPrice float 图书定价7 BookSort nvarchar(50)图书分类8 BookAmount int 图书库存数量9 BookRemain int 现在库存数量租借信息表(BorrowBook)编号 字段名称 数据结构 说明1 ReaderID char(6) 客户编号2 BookID nvarchar(50)图书编号3 BorrowDate datetime 租借日期4 ReturnDate datetime 应归还日期5 FactReturnDatedatetime 实际归还日期客

10、户表(Reader)编号 字段名称 数据结构 说明1 ReaderID char(6) 客户编号2 ReaderName varchar(20) 客户姓名3 ReaderPasswor varchar(10) 客户密码9d4 ReaderPhoneNo varchar(15) 电话号码5 ReaderEmail varchar(50) 电子邮箱6 ReaderBorrowedBooksint 借书数量用户表(User)编号 字段名称 数据结构 说明1 UserID char(10) 用户编号2 UserPassword char(10) 用户密码3 UserSort varchar(10) 用

11、户分类在建立完所有数据表后,要根据数据表之间的关系在属性页中添加关系。为 Book 表和 BorrowBook 表之间添加FK_BorrowBook_Book 关系,为 Book 表和 PublishCompany 之间添加FK_Book_PublishCompany 关系,为 Reader 表和 BorrowBook 表之间添加 FK_BorrowBook_Reader 关系。同时在两关系中实现表间的级联更新和级联删除。(2)子模式设计:1)视图在图书出租管理系统中,为便于浏览目前客户租借图书的信息,创建了一个 Borrow 视图来显示租借记录中客户和所租借图书的一些详细信息以便以后综合浏览

12、。该视图涉及到 Book 表、BorrowBook表和 Reader 表,三表间的联系及其各自想要显示的字段,如下图所示。a)三表间的联系10b)数据字典2)存储过程在图书出租管理系统中,创建实现在客户租还书时对客户表中的客户所借书目和图书表中图书库存量的改变的存储过程和客户借书之前查询客户租借图书数目和图书库存量的存储过程。 图书出租管理系统中,需要创建 6 个存储过程,分别为:a) ReaderBorrowedNumber 存储过程该存储过程负责获取客户已经租借的图书数目。其目的是为了在客户租借图书之前判断此客户是否达到借书数目的上限。b) BookNumber 存储过程此存储过程的功能是

13、根据输入的图书编号得到该图书现在的库存数量。c) BorrowReader 存储过程当客户租借某种图书后,该存储过程向客户表的客户的目前所借图书一项添加 1。d) BorrowBook 存储过程当客户租借某种图书后,该存储过程向图书表的相应的图书库现存量中减去 1。e) ReturnReader 存储过程当客户归还所借的图书时,该存储过程在客户表中把客户所借的图书数量减 1。f) ReturnBook 存储过程当客户归还所借的图书时,该存储过程在图书表中相应的图书现存量中增加 1。四、数据库的物理设计11为了提高在表中搜索元组的速度,于是在各表中分别建立关于主键升序的索引,如下:1.User表

14、的PK_User索引(以UserID的升序建立的)2.Reader表的PK_Reader索引(以ReaderID的升序建立的)3.BorrowBook表的PK_BorrowBook索引(以ReaderID、BookID的升序建立的)4.Book表的PK_Book索引(以BookID的升序建立的)五、数据库设计实现及运行由同组同学完成六、界面与数据库的连接由同组同学完成12七、界面的实现(模块中的功能实现)【开发工具:Visual Studio 2000用户登录界面由同组同学完成系统主控界面由同组同学完成用户信息管理界面由同组同学完成由主控界面点击客户信息进入客户信息管理界面点击“添加” ,可添

15、加记录,截图如下:13点击“修改” ,可对记录进行修改,截图如下:点击“删除” ,可对记录进行删除,截图如下:14代码:namespace Library/ / Reader 的摘要说明。/ public class Reader : System.Windows.Forms.Formprivate System.Windows.Forms.GroupBox groupBox1;private System.Windows.Forms.Label label1;private System.Windows.Forms.Label label2;private System.Windows.Fo

16、rms.Label label3;private System.Windows.Forms.Label label4;private System.Windows.Forms.Label label5;private System.Data.SqlClient.SqlConnection sqlConnection1;private System.Data.SqlClient.SqlDataAdapter sqlDataAdapter1;private System.Windows.Forms.Button btnFirst;private System.Windows.Forms.Butto

17、n btnLast;private System.Windows.Forms.Button btnNext;private System.Windows.Forms.Button btnPrevious;private System.Windows.Forms.Button btnExit;private System.Windows.Forms.Button btnAdd;private System.Windows.Forms.Button btnModify;private System.Windows.Forms.Button btnDelete;private System.Wind

18、ows.Forms.GroupBox groupBox3;private System.Windows.Forms.Label label7;private System.Windows.Forms.TextBox textPassword;private System.Windows.Forms.Button btnCancel;private System.Windows.Forms.Button btnApply;private System.Windows.Forms.TextBox textBorrowBooks;private System.Windows.Forms.TextBo

19、x textEmail;private System.Windows.Forms.TextBox textTelNo;private System.Windows.Forms.TextBox textName;private System.Windows.Forms.TextBox textId;private System.Windows.Forms.Label lblDatasetPosition;private System.Data.SqlClient.SqlCommand sqlSelectCommand1;private System.Data.SqlClient.SqlComma

20、nd sqlInsertCommand1;private System.Data.SqlClient.SqlCommand sqlUpdateCommand1;15private System.Data.SqlClient.SqlCommand sqlDeleteCommand1;private Library.DataSetReader objDataSetReader;/ / 必需的设计器变量。/ private System.ComponentModel.Container components = null;public Reader()/ Windows 窗体设计器支持所必需的/In

21、itializeComponent();/ TODO: 在InitializeComponent 调用后添加任何构造函数代码/ / 清理所有正在使用的资源。/ protected override void Dispose( bool disposing )if( disposing )if(components != null)components.Dispose();base.Dispose( disposing );#region Windows 窗体设计器生成的代码/ / 设计器支持所需的方法- 不要使用代码编辑器修改/ 此方法的内容。/ private void Initialize

22、Component()System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Reader);this.groupBox1 = new System.Windows.Forms.GroupBox();this.textPassword = new System.Windows.Forms.TextBox();this.objDataSetReader = new Library.DataSetReader();this

23、.label7 = new System.Windows.Forms.Label();this.textEmail = new System.Windows.Forms.TextBox();this.textName = new System.Windows.Forms.TextBox();this.textId = new System.Windows.Forms.TextBox();this.label4 = new System.Windows.Forms.Label();this.label2 = new System.Windows.Forms.Label();this.label1

24、 = new System.Windows.Forms.Label();this.label3 = new System.Windows.Forms.Label();this.textTelNo = new System.Windows.Forms.TextBox();this.label5 = new System.Windows.Forms.Label();this.textBorrowBooks = new System.Windows.Forms.TextBox();this.btnFirst = new System.Windows.Forms.Button();16this.btn

25、Last = new System.Windows.Forms.Button();this.btnNext = new System.Windows.Forms.Button();this.btnPrevious = new System.Windows.Forms.Button();this.lblDatasetPosition = new System.Windows.Forms.Label();this.btnCancel = new System.Windows.Forms.Button();this.btnApply = new System.Windows.Forms.Button

26、();this.sqlConnection1 = new System.Data.SqlClient.SqlConnection();this.sqlDataAdapter1 = new System.Data.SqlClient.SqlDataAdapter();this.sqlDeleteCommand1 = new System.Data.SqlClient.SqlCommand();this.sqlInsertCommand1 = new System.Data.SqlClient.SqlCommand();this.sqlSelectCommand1 = new System.Dat

27、a.SqlClient.SqlCommand();this.sqlUpdateCommand1 = new System.Data.SqlClient.SqlCommand();this.btnExit = new System.Windows.Forms.Button();this.btnAdd = new System.Windows.Forms.Button();this.btnModify = new System.Windows.Forms.Button();this.btnDelete = new System.Windows.Forms.Button();this.groupBo

28、x3 = new System.Windows.Forms.GroupBox();this.groupBox1.SuspendLayout();(System.ComponentModel.ISupportInitialize)(this.objDataSetReader).BeginInit();this.groupBox3.SuspendLayout();this.SuspendLayout();/ / groupBox1/ this.groupBox1.BackColor = System.Drawing.Color.Transparent;this.groupBox1.Controls

29、.Add(this.textPassword);this.groupBox1.Controls.Add(this.label7);this.groupBox1.Controls.Add(this.textEmail);this.groupBox1.Controls.Add(this.textName);this.groupBox1.Controls.Add(this.textId);this.groupBox1.Controls.Add(this.label4);this.groupBox1.Controls.Add(this.label2);this.groupBox1.Controls.A

30、dd(this.label1);this.groupBox1.Controls.Add(this.label3);this.groupBox1.Controls.Add(this.textTelNo);this.groupBox1.Controls.Add(this.label5);this.groupBox1.Controls.Add(this.textBorrowBooks);this.groupBox1.Font = new System.Drawing.Font(“宋体“, 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.

31、GraphicsUnit.Point, (byte)(134);this.groupBox1.Location = new System.Drawing.Point(16, 16);this.groupBox1.Name = “groupBox1“;this.groupBox1.Size = new System.Drawing.Size(408, 160);this.groupBox1.TabIndex = 0;this.groupBox1.TabStop = false;this.groupBox1.Text = “客户信息维护“;this.groupBox1.Enter += new S

32、ystem.EventHandler(this.groupBox1_Enter);/ / textPassword/ this.textPassword.DataBindings.Add(new System.Windows.Forms.Binding(“Text“, this.objDataSetReader, “Reader.ReaderPassword“, true);this.textPassword.Location = new System.Drawing.Point(88, 80);this.textPassword.Name = “textPassword“;this.text

33、Password.Size = new System.Drawing.Size(100, 23);this.textPassword.TabIndex = 13;/ / objDataSetReader/ this.objDataSetReader.DataSetName = “DataSetReader“;17this.objDataSetReader.Locale = new System.Globalization.CultureInfo(“zh-CN“);/ / label7/ this.label7.Location = new System.Drawing.Point(16, 88

34、);this.label7.Name = “label7“;this.label7.Size = new System.Drawing.Size(72, 23);this.label7.TabIndex = 12;this.label7.Text = “客户口令“;/ / textEmail/ this.textEmail.DataBindings.Add(new System.Windows.Forms.Binding(“Text“, this.objDataSetReader, “Reader.ReaderEmail“, true);this.textEmail.Location = ne

35、w System.Drawing.Point(288, 16);this.textEmail.Name = “textEmail“;this.textEmail.Size = new System.Drawing.Size(100, 23);this.textEmail.TabIndex = 10;/ / textName/ this.textName.DataBindings.Add(new System.Windows.Forms.Binding(“Text“, this.objDataSetReader, “Reader.ReaderName“, true);this.textName.

36、Location = new System.Drawing.Point(88, 48);this.textName.Name = “textName“;this.textName.Size = new System.Drawing.Size(100, 23);this.textName.TabIndex = 8;/ / textId/ this.textId.DataBindings.Add(new System.Windows.Forms.Binding(“Text“, this.objDataSetReader, “Reader.ReaderID“, true);this.textId.L

37、ocation = new System.Drawing.Point(88, 16);this.textId.Name = “textId“;this.textId.Size = new System.Drawing.Size(100, 23);this.textId.TabIndex = 7;/ / label4/ this.label4.Location = new System.Drawing.Point(216, 24);this.label4.Name = “label4“;this.label4.Size = new System.Drawing.Size(72, 23);this

38、.label4.TabIndex = 3;this.label4.Text = “电子邮件“;/ / label2/ this.label2.Location = new System.Drawing.Point(16, 56);this.label2.Name = “label2“;this.label2.Size = new System.Drawing.Size(72, 23);this.label2.TabIndex = 1;this.label2.Text = “客户姓名“;/ / label1/ this.label1.Location = new System.Drawing.P

39、oint(16, 24);this.label1.Name = “label1“;this.label1.Size = new System.Drawing.Size(72, 23);this.label1.TabIndex = 0;18this.label1.Text = “客户编号“;/ / label3/ this.label3.Location = new System.Drawing.Point(216, 56);this.label3.Name = “label3“;this.label3.Size = new System.Drawing.Size(64, 23);this.la

40、bel3.TabIndex = 2;this.label3.Text = “联系电话“;/ / textTelNo/ this.textTelNo.DataBindings.Add(new System.Windows.Forms.Binding(“Text“, this.objDataSetReader, “Reader.ReaderPhoneNo“, true);this.textTelNo.Location = new System.Drawing.Point(288, 48);this.textTelNo.Name = “textTelNo“;this.textTelNo.Size =

41、 new System.Drawing.Size(100, 23);this.textTelNo.TabIndex = 9;/ / label5/ this.label5.Location = new System.Drawing.Point(216, 88);this.label5.Name = “label5“;this.label5.Size = new System.Drawing.Size(72, 23);this.label5.TabIndex = 4;this.label5.Text = “已租书目“;/ / textBorrowBooks/ this.textBorrowBoo

42、ks.DataBindings.Add(new System.Windows.Forms.Binding(“Text“, this.objDataSetReader, “Reader.ReaderBorrowedbooks“, true);this.textBorrowBooks.Location = new System.Drawing.Point(288, 80);this.textBorrowBooks.Name = “textBorrowBooks“;this.textBorrowBooks.Size = new System.Drawing.Size(100, 23);this.te

43、xtBorrowBooks.TabIndex = 11;/ / btnFirst/ this.btnFirst.BackColor = System.Drawing.Color.Transparent;this.btnFirst.FlatStyle = System.Windows.Forms.FlatStyle.Flat;this.btnFirst.Image = (System.Drawing.Image)(resources.GetObject(“btnFirst.Image“);this.btnFirst.Location = new System.Drawing.Point(128,

44、 136);this.btnFirst.Name = “btnFirst“;this.btnFirst.Size = new System.Drawing.Size(32, 24);this.btnFirst.TabIndex = 1;this.btnFirst.UseVisualStyleBackColor = false;this.btnFirst.Click += new System.EventHandler(this.btnFirst_Click);/ / btnLast/ this.btnLast.BackColor = System.Drawing.Color.Transpare

45、nt;this.btnLast.FlatStyle = System.Windows.Forms.FlatStyle.Flat;this.btnLast.Image = (System.Drawing.Image)(resources.GetObject(“btnLast.Image“);this.btnLast.Location = new System.Drawing.Point(272, 136);this.btnLast.Name = “btnLast“;this.btnLast.Size = new System.Drawing.Size(32, 24);this.btnLast.T

46、abIndex = 2;19this.btnLast.UseVisualStyleBackColor = false;this.btnLast.Click += new System.EventHandler(this.btnLast_Click);/ / btnNext/ this.btnNext.BackColor = System.Drawing.Color.Transparent;this.btnNext.FlatStyle = System.Windows.Forms.FlatStyle.Flat;this.btnNext.Image = (System.Drawing.Image)

47、(resources.GetObject(“btnNext.Image“);this.btnNext.Location = new System.Drawing.Point(240, 136);this.btnNext.Name = “btnNext“;this.btnNext.Size = new System.Drawing.Size(32, 24);this.btnNext.TabIndex = 3;this.btnNext.UseVisualStyleBackColor = false;this.btnNext.Click += new System.EventHandler(this

48、.btnNext_Click);/ / btnPrevious/ this.btnPrevious.BackColor = System.Drawing.Color.Transparent;this.btnPrevious.FlatStyle = System.Windows.Forms.FlatStyle.Flat;this.btnPrevious.Image = (System.Drawing.Image)(resources.GetObject(“btnPrevious.Image“);this.btnPrevious.Location = new System.Drawing.Poin

49、t(160, 136);this.btnPrevious.Name = “btnPrevious“;this.btnPrevious.Size = new System.Drawing.Size(32, 24);this.btnPrevious.TabIndex = 4;this.btnPrevious.UseVisualStyleBackColor = false;this.btnPrevious.Click += new System.EventHandler(this.btnPrevious_Click);/ / lblDatasetPosition/ this.lblDatasetPosition.Anchor = System.Windows.Forms.AnchorStyles.Top;this.lblDatasetPosition.BackColor = System.Drawing.Color.Transparent

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报