题 目 书店销售管理系统
专 业
班 级
姓 名
成 绩
指 导 老 师
2019 年 12 月 30 日至 2019 年 1月 3日一、课程设计目的与任务《数据库系统原理课程设计》是针对计算机专业基础课《数据库系统原理》开设的课程设计,目的是使学生通过本课程设计之后,对数据库设计的基本概念、基本原理和优化技术有较全面的了解和领会,并能 *** 作当前流行的DBMS,了解数据库在计算机应用系统的作用,独立地开发实现一个小型的基于DBMS上的应用系统。结合具体的开发案例,理解并初步掌握数据库系统需求分析、概念结构设计、逻辑结构设计、物理结构设计、应用功能设计(视图,索引,游标,存储过程,触发器等)数据录入及测试等系统设计与系统实施及维护管理的主要环节和步骤以及软件文档的制作能力。二、课程设计的题目与基本要求1.设计题目:书店销售管理系统数据库设计2.基本要求:(1)图书入库管理:维护入库图书信息(如图书编号、书名、作者、价格、图书分类、出版社等),自动计算库存。(2)图书查询统计:按图书分类,出版社、书名、作者等条件查询图书的详细信息。(3)销售管理: 销售过的图书都记录在销售列表中,方便统计收入。图书销售后,实时记录图书库存,按每天统计销售额、按每个月或季度统计销售额,并能根据销售数量统计生成畅销书名单。(4)设计报告内容包括:基本原理、设计方案的选择与确定,详细的设计过程及结果做出评价,分析存在的问题,提出改进意见并写出心得体会。三、学时分配进度安排
序号 设计内容 所用时间
1 选题及调研 1天
2 数据库结构设计 1天
3 数据库查询优化 1天
4 调试及撰写报告 1天
5 答辩 1天
合计 1周
四、课程设计考核及评分标准1.设计报告要求课程设计报告要求逻辑清晰、层次分明、书写整洁。格式包括标题、提要、正文(包括①设计项目要求与说明。②数据模型分析。③软件流程分析。④调试分析。⑤实验数据分析。⑥答辩。⑦成绩评定。)附录(图纸、程序清单或软盘)。设计报告须每人一份,独立完成。2.图纸要求系统结构框图、概念模型图等。3.评分标准
评分依据 评分成绩
1.设计方案正确,具有可行性、创新性 30分
2.数据库测试性能达到任务书要求 25分
3.设计报告的规范化、内容充实、参考文献 15分
4.答辩 20分
5.平时成绩(考勤等) 10分
总分 100分
注:成绩等级:优(90分—100分)、良(80分—89分)、中(70分—79分)、及格(60分—69分)、60分以下为不及格。五、指导时间
周次 星期一 星期二 星期三 星期四 星期五
第17周 第3-4节 第3-4节 第3-4节 第3-4节
地点 233 231 现教 现教
1.引言Internet的迅速发展正以前所未有的深度和广度影响和改善着人类生活的各个方面,越来越多的人开始意识到Internet所起到的重大作用随着书店规模的不断扩大,员工人数的不断增多,使得书店管理的手工 *** 作管理模式的局限性越发突出.本书店管理系统应用了科学的管理模式对员工.书籍.订单信息进行管理和维护,并且还提供了给类报表的打印,使原本非常复杂的手工管理变得简洁明了。计算机信息管理技术的应用,除了能在相当大的程度.上代替人工作业,从而减少人员工作量,减轻工作负担,减少工作中因人为原因而产生的错误从而避免不必要的损失外,更重要的是能建立准确畅通、简便的信息流通渠道,为工作提供所需要的准确、及时的信息以帮助做出正确而及时的选择与决定,从而给采用这门]技术的单位带来了巨大的可见或不可见的利益与效益。2.需求阶段分析2.1需求分析书店管理系统是适应时代发展的需要,提高管理的效率而开发设计的。通过对信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,及时为书店管理人员提供全面、准确的各种数据。实现了书店管理的简单化和规划化,提高了书店的工作效率,从而使书店能够以少的投入获得更好的社会效益与经济效益。2.2数据分析顾客表:应包含顾客号,顾客姓名以及顾客联系方式订单表:应包含订单号,销售图书号,销售数量,金额以及日期图书表:应包含图书编号,图书名,作者,单价,类别和出版社库存表:应包含图书编号,总量和余量2.3功能分析数据库应实现的功能有:(1)图书入库管理:维护入库图书信息(如图书编号、书名、作者、价格、图书分类、出版社等),自动计算库存。(2)按图书分类,出版社、书名、作者等条件查询图书的详细信息。(3)销售过的图书都记录,并且能显示每种图书的销售量,将销售量高的图书定为热销书,能够查询出某一天到某一天的销售额以及订单消息2.3.1书籍管理功能系统设置包括图书名称设置、书籍编号、书籍出版社、书籍价格、书籍类别。基本信息管理模块可以实现添加和重置书籍信息功能。
2.3.2订单管理功能系统设置包括顾客姓名设置、订单日期设置、订单编号设置、订单数量设置、订单金额设置。基本信息管理模块可以实现对订单的查询。2.3.3顾客管理功能系统设置包括顾客编号设置、顾客姓名设置、顾客联系方式设置。基本信息管理模块可以实现对顾客的查询。2.3.4库存管理功能系统设置包括图书编号、图书总量、图书余量设置。基本信息管理模块可以实现对图书数量的查询2.4安全性和完整性要求(1)安全性要求 :系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同 *** 作者对数据库的 *** 作来提高数据库的安全性;系统平台的安全性体现在 *** 作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。(2)完整性要求:系统完整性要求系统中数据的正确性以及相容性。可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。3 .结构设计3.1总体功能模块图图3.13.2书籍信息模块图图3.23.3订单信息模块图图3.33.4顾客信息模块图图3.43.5数据字典表3.5.1顾客表
列名 数据类型 约束
顾客号(Gno) Char(7) primary key
姓名(Gname) Nchar(20) Not null
联系方式(Gnumber) Char(20)
表3.5.2订单表
列名 数据类型 约束
订单号(Dno) Char(7) primary key
购买图书号(Bno) Char(7) primary key
购买数量(Dshul) Int Not null
金额(Dmoney) Int Not null
日期(Dtime) Smalldatetime Not null
顾客号(Gno) Char(7) External code
表3.5.3 图书表
列名 数据类型 约束
编号(Bno) Char(7) primary key
书名(Bname) nchar (20) not null
作者(Bwriter) nchar (20) not null
价格(Bjiage) Int not null
类别(Bleibie) nchar (20) not null
出版社(Bcbs) nchar (20) not null
表3.5.4库存表
列名 数据类型 约束
编号(Bno) Char(7) Primary key
总量(Kzong) Int Not null
余量(Kyu) Int
3.6 ER图设计3.6..1顾客ER图3.6.2 图书ER图图3.6.3图3.6.4图3.6.54 逻辑结构设计4.1 关系模型顾客与订单是1:m类型 订单与库存是1:1类型 库存与图书是1:m类型 关系模型如下:顾客表(顾客号、姓名、联系方式)订单表(订单号、购买图书号、购买数量、金额、日期、顾客号)图书表(编号、书名、作者、价格、类别、出版社)库存表(编号、总量、余量)(——代表主键,...代表外码)4.2 函数依赖在顾客表中,顾客号是主码,其它属性完全依赖于顾客号在订单表中,订单号是主码,顾客号是外码,其余属性完全依赖于订单号在图书表中,编号是主码,其余属性完全依赖于编号在库存表中,编号是主码,其余属性完全依赖于编号5.物理结构设计5.1创建图书表use books /*创建图书表*/create table book(Bno char (7) primary key,Bname nchar (20) not null,Bwirter nchar (20) not null,Bjiage int not null,Bleibie nchar (20) not null,Bcbs nchar (20) not null,)5.2 创建顾客表use books /* 创建顾客表*/create table guke(Gno char(7) primary key,Gname nchar (20) not null,Gnumber char(20),)5.3创建库存表use books /*创建库存表*/Create table kucun(Bno char(7) primary key,
Kzong int not null,Kyu int,)5.4创建订单表use books /*创建订单表*/Create table Dingdan(Dno char(7) primary key,Bno char(7) primary key,Dshul int not null,Dmoney int not null,Dtime smalldatetime not null,Gno char(10) not null,)6 数据库的实施6.1 给各个表添加数据例use books /*给图书表添加一行数据*/insert into bookvalues('101','白夜行','东野圭吾','30','侦探','天空出版社')使用语句添加完数据的表如下:6.1.1图书表6.1.2订单表6.1.3 顾客表6.1.4库存表6.2创建存储过程6.2.1图书的存储过程create proc tushu@Bno char(7),@Bname nchar(20),@Bwirter nchar(20),@Bjiage int, @Bleibie nchar(20),@Bcbs nchar(20),@MM INTasif not exists (select * from bookwhere Bno=@Bno)BEGINinsert into bookvalues (@Bno,@Bname,@Bwirter,@Bjiage,@Bleibie,@Bcbs)INSERT INTO KucunVALUES (@Bno,@MM,@MM)ENDELSEBEGINUPDATE KucunSET Kzong=KZONG+@MMWHERE BNO=@BNOUPDATE KucunSET KYU=KYU+@MM
WHERE BNO=@BNOEND图5.2.16.2.2顾客的存储过程create proc gukecun@Gno char(7),@gname nchar(10),@gnumber nchar(20)asinsert into gukevalues (@Gno,@gname,@gnumber )图5.2.26.2.3 订单的存储过程create proc dingdan@dno char(10),@Bno char(10),@Dshul int,@Dtime smalldatetime, @Gno char(10)asdeclare @Dmoney intselect @Dmoney=@Dshul*Bjiagefrom book,Dingdaninsert into Dingdanvalues (@dno,@Bno,@Dshul,@Dmoney,@Dtime,@Gno)图5.2.36.3 创建触发器针对图书信息表创建一个触发器,当向表book插入一条信息时,自动显示表中book中的记录create trigger 插入显示on bookfor insertasSelect * from bookInsert into book values('115','幻想之城','中此撒','30','悬疑','飒飒我出版社')6.4 建立视图6.4.1建立视图建立一个图书类别为侦探的视图,包括图书编号,图书名,作者,单价以及图书总量和余量create view v_leibieasselect book.Bno ,bname,bwirter,bjiage,kzong,kyufrom book,Kucunwhere book.Bno =Kucun.Bno and Bleibie ='侦探'图6.4.1图6.4.26.5 调试运行6.5.1查询姓张的顾客的购买记录select * from Dingdan
where Gno in (select Gno from gukewhere Gname like '张%')图6.5.16.5.2 添加一条图书信息后图书表以及库存表的显示exec tushu'115','幻想之城','中此撒','30','悬疑','飒飒我出版社','60'图6.5.2图6.5.36.5.3 查询销售量在10本以上的书,以此为畅销书select SUM(dshul),bnofrom Dingdangroup by Bnohaving SUM(Dshul)>10图6.5.46.5.4查询某一天的销售额select sum (Dmoney )总金额 from Dingdanwhere Dtime between '2019-11-01 'and '2019-11-02'图6.5.57.设计体会一个个星期的时间非常快就过去了,这一个星期不敢说自己有多大的进步。获得了多少如识,但起码是了解了项目开发的部分过程。虽说上过数据库的课程,但是没有亲身经历过相关的设计工作细节。这次课程设计刚好提供了一个很好的机会。通过这次课程设计发现这其中需要的很多知识我们都接触过,去图书馆查资料的时侯发现我们前边所学到的仅仅是皮毛还有很多需要我们掌握的东西我们根本不知道。同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。本次课程设计即将结束,我完成了自己所选的课题。通过完成这次课程设计,我加深了对相关知识的理解,加强了知识之间的联吊,促进了知识的迁移和应用。从需求分析、概念结构设计、逻辑结构设计、物理结构设计。亲身体验了一回系统的设计开发过程。很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。但真正需要自己想办法去设计一个系统的时候才发现其中的难度。经常做到后面突然就发现自己-开始的设计有问题,然后又回去翻工在各种反复中不断完善自己的想法。
致谢在这次数据库的课程设计过程中,我选择了书店销售管理系统的设计与实现。该系统能够顺利的完成,得益于老师的悉心指导和同学的帮助。更重要的是老师帮我们解决了许多技术的难题,以至于我们能够将书店销售管理系统的功能做得尽可能的完善。在这过程中,我周围的同学给了我许多启发,让我把书店销售管理系统设计的更加完善,老师渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪,使我不仅了解到许多新知识、开阔了视野,更提高了自身的数据库设计能力。另外,感谢老师给我们提供这样-一个课程设计的机会,使我们在学得专业知识的基础上能够自己动手并独立地完成数据库的设计与开发,使我们能够更多的学习-些实践应用知识,增强实际 *** 作和动手应用能力。最后,我再一次感谢在整个课程设计期间,在各个方面给予我们帮助的老师和同学,正是因为有了你们的帮助,才使我们的课程设计得以顺利完成。参考文献[1]李彦,韩光林,李玉波. SQL SERVE完全自学手册[M].北京:电子工业出版社,2007[2]萨师煊,王珊.数据库系统概论.北京:高等教育出版社.2005[3]Y.Daniel Liang.Java.万波. JAVA语言程序设计[M].第六版.北京:机械工业出版社,2008[4]《数据库原理及应用》 ,钱雪忠主编,北京邮电大学出版社,2007,第二版[5]《SQL server 2000数据仓库与Analysis Services》,Bain T著 ,中国电力出版社, 2003[6]《数据库技术与联机分析处理》 王珊主编,北京科学出版社,1998课程设计成绩评定表
课程设计题目 书店销售管理系统
课程设计学生答辩或质疑记录:
评 分 依 据 分 值 评分成绩
1.设计方案正确,具有可行性、创新性 30 分
2.系统调试与结果(系统功能正确、软件程序完整) 25分
3.设计报告的规范化、内容充实、参考文献 15分
4.平时成绩(考勤等) 10分
5.答辩 20分
总 分 100分
最终评定等级为:指导老师签字: 年月日
¥
5.9
百度文库VIP限时优惠现在开通,立享6亿+VIP内容
立即获取
书店销售管理系统数据库设计
学号 1
课程 设 计
课程名称 《数据库系统原理》课程设计
题 目 书店销售管理系统
专 业
班 级
姓 名
成 绩
指 导 老 师
2019 年 12 月 30 日至 2019 年 1月 3日
一、课程设计目的与任务
第 1 页
《数据库系统原理课程设计》是针对计算机专业基础课《数据库系统原理》开设的课程设计,目的是使学生通过本课程设计之后,对数据库设计的基本概念、基本原理和优化技术有较全面的了解和领会,并能 *** 作当前流行的DBMS,了解数据库在计算机应用系统的作用,独立地开发实现一个小型的基于DBMS上的应用系统。结合具体的开发案例,理解并初步掌握数据库系统需求分析、概念结构设计、逻辑结构设计、物理结构设计、应用功能设计(视图,索引,游标,存储过程,触发器等)数据录入及测试等系统设计与系统实施及维护管理的主要环节和步骤以及软件文档的制作能力。
一、设计简介这次的《数据库系统原理课程设计》中我选择的题目是《XingBin.net图书销售系统》。选择这个题目的原因有:这个系统在现实生活中很常用,且容易得到其设计需求;同时又不在老师给提供的参考题目里面,可以体现出创新性,同时避免和其他同学的设计雷同。
图书销售系统可以提供给书店包括图书编目、进退货、销售、财务报表等方面的一体化解决方案。同时还提供会员折扣功能,BS模式下的网上会员系统等等。
二、业务需求
图书零售购买:顾客购书后收银台进行结账。对于书店的会员可以提供相应的折扣。输入需要购买的图书和数量,计算出总金额,由用户选择使用现金或会员卡进行结账。并提供销售小票流水号作为销售的单据。对于会员,还要计算相应的积分。
图书零售退货:顾客对已购买的图书进行退货。需要提供图书和销售的小票以作为购买凭证。系统查询数据库进行数据验证,对符合要求的图书进行退货。
新书编目:书店从出版社购买新的图书后在这里进行编目。只有编目后的图书才可以进行销售。
图书查找:可以使用ISBN、书名、出版社三种方式进行查找已编目的图书。
图书资料修改:对已编目的图书修改图书的基本信息、零售价和最低折扣价。
图书进货:对已编目的图书再进货,同时处理其金额差异。
图书退货:对已编目的图书退货,同时处理其金额差异。
出版社管理:添加、删除、修改出版社。同时查询出版社的资料。
会员添加:添加新的会员,同时登记会员的基本信息、有效期、指定会员组等等。
会员查找:提供会员编号、身份z号、会员姓名等方式复合查询。
会员删除:删除已存在的会员。
会员信息修改:对会员的基本资料进行修改。
会员充值:向会员的虚拟账户充值。
挂失与特别处理:将会员的状态在正常、挂失、特别处理之间调整。也可以找回会员的密码。
会员组管理:添加、删除和列出会员组。可以对会员组的名称、折扣、积分换算等方面进行设置。
系统设置:添加、删除、修改系统 *** 作员,同时为相应的 *** 作员设置其控制权限。
密码修改:对当前的系统 *** 作员的密码进行修改。
数据管理:提供系统数据库的备份与恢复。
报表处理:提供图书销售单、图书进货单、会员列表、出版社列表、销售单等等报表。
三、设计目标
软件的用户特点是具有基本的Windows *** 作水平的用户,设计时要考虑到用户的 *** 作习惯,因此要定义多个快捷键,界面尽量友好。
对于Web界面,则应尽量简洁,便于用户登录与查询。
四、运行环境
服务器配置
*** 作系统:推荐Microsoft Windows Server 2003或其他服务器版本
数据库服务器:Microsoft SQL Server 2000 Enterprise Edition
Web服务器:IIS 6或更高
.Net平台:.Net Framework 2.0版本
客户机配置
*** 作系统:推荐Microsoft Windows 2000或更高版本
数据库客户端:Microsoft SQL Server 2000 Client
.Net平台:.Net Framework 2.0版本
输入设备:键盘、鼠标、条形码扫描器
五、演示实例
总体功能框图
图书销售
图书与出版社管理
会员管理
报表管理
浏览器模式下的网上书店
用户管理
图书销售系统
六、结束语
这次的数据库课程设计完成得比较顺利。因为在暑假已经先期查询了一些书籍,同时在以前也曾经做过类似的设计,因此没有遇到很大的困难。
以前在C语言课程设计中我完成了《教务信息管理系统》的程序,从中了解了数据存储的底层结构。但是这种数据是有局限性的。在信息化的今天,我们必须使用数据库服务器来专门解决数据的存放问题。而程序怎样和数据库服务器结合,就是我这次的设计的重点。
由于以前曾经使用过C++做过一些开发,为了能够在学习数据库的同时也学习更多的编程语言,因此这次大胆的使用了.Net作为开发工具,C#作为编程语言来进行编程。一开始以为和C++区别不大,但是后来发现还是由一定区别的。不果因为有C语言的良好基础,所以很容易进行之间的转换。
但是连接数据库的时候还是查阅了一些资料。数据库的连接没有使用传统的ADO,也没有使用DataGrid自动生成的SqlCommand,而是完全使用SqlConnection完成。所有的SQL命令都使用SqlCommand手动拼成,因此程序的设计更加灵活。
为了能够了解数据库的工作,我大胆的使用了多个存储过程和触发器。通过它们可以简化程序的开发部分,同时在数据库端组成一个完整的事务,从而达到事务的ACDI特性。从而可以实现多客户机的并发 *** 作。
通过这次的课程设计,让我更加了解了数据库的工作原理,以及程序和数据库的连接方法。也熟悉了软件工程的设计流程,学习使用软件工程的规范来要求自己。同时还学习了C#语言,全面锻炼了自己的能力。
在此,也感谢我的数据库教师――杨茂林老师。同时感谢关心我的程序,给我提出帮助和建议的朋友们。谢谢!
包括四大模块:ü 售书(图书销售管理及销售统计,查询)
ü 进书(通过书目,向发行商下定单订购图书)
ü 库存(图书库存,统计)
ü 相关查询
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)