《数据库系统原理》课程设计:超市订单管理系统

《数据库原理》课程设计:超市订单管理系统

《数据库原理》课程设计任务书

一、数据库原理课程设计的任务

1)通过本课程设计的训练,使学生掌握数据库技术的实际应用以及数据库信息管理系统的设计方法与开发过程;初步掌握数据库需求分析方法,掌握概要设计、逻辑设计和物理设计的步骤和技巧,理解并掌握数据库系统的整个开发过程。

2)通过课程设计,掌握数据库开发工具的使用以及综合编程调试的能力,结合数据库原理的基本理论,选用一种现代关系数据库系统,设计一个具体的信息管理系统,具备基本的数据库编程能力,为以后能进行数据库系统设计、开发与维护打下良好的基础。

3)提升工程实践能力、团队协作精神、交流与沟通能力;

4)通过规范化的实验报告,培养学生良好的文档习惯以及撰写规范文档的能力。

二、课程设计的基本内容

课设内容 结合一个具体任务(课程设计题目),完成一个基于C/S或B/S模式的数据库系统的设计,主要应包括如下内容: 1.完成课题任务的需求分析、完成系统总体结构设计方案(主控功能模块、数据处理模块、统计报表模块等); 2.数据库结构的设计与实现; 3.数据库安全的设计; 4. 数据修改的设计、数据查询的设计; 5.统计与报表输出的设计;
目的与要求 目的:结合数据库原理的基本理论,选用一种现代关系数据库系统,设计一个具体的信息管理系统。 要求:受学生对于所学基础和专业知识的综合应用能力及程序设计与调试能力的不同,一周时间大体分为三个阶段:需求分析;数据库设计;应用程序设计。要求提交相关软件和规范的设计说明书电子文档。要求在设计过程中树立科学的设计思想,有全局观念,培养高度的协作精神。
课设形式 1、2-3人一组 2、课内10学时,课内检查,其余为课外学时。
课设考核 1、现场验收并对实验内容进行提问。 2、根据设计方案、实验结果、附加功能、操作熟练程度、现场检查和回答情况及课程设计报告质量综合评定成绩。

备选题目:

题目1:长途汽车信息管理系统

题目2:机票预订信息系统

题目3:酒店客房管理系统

题目4:网上书店管理系统

题目5:论坛管理信息系统

题目6:职工考勤管理系统

题目7:医院药品进销存系统

题目8:4S店汽车销售信息系统

题目9:4S店汽车保养信息系统

题目10:网上花店信息系统

题目11:宿舍信息管理系统

题目12:教师信息管理系统

题目不限于这些,同学们也可以自由选题;

三、本课程设计的基本要求

1、设计和调试过程要规范化

需求分析:了解用户的数据需求、处理需求、安全性及完整性要求;
概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型;
逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图;
物理结构设计:设计数据的存储结构和存取方法,如索引的设计;
系统实施:组织数据入库、编制应用程序、试运行;
运行维护:系统投入运行,长期的维护工作。

2、 设计完成形式

能够进行操作演示的自己设计的数据库及应用程序。

课程设计报告一份。

3、人员分组及分工

建议以2–3人一小组,鼓励学生独立完成。

4、设计说明书要求

设计说明书应用统一纸张书写。内容包括设计任务书,所有论述、原始资料和数据、计算及结构表格等,编写顺序建议如下:

  1. 标题页

  2. 设计任务书

  3. 目录

  4. 需求分析

  5. 数据库设计

  6. 对本设计的简单评述、总结或体会

  7. 参考文献

四、成绩评定

课程成绩评定

学生课程设计结束后写出总结报告,对设计的内容和效果进行总结,按照学生在设计期间的表现,指导老师对每位学生写出评语和鉴定,系课程设计领导小组组织答辩,最后确定每位学生课程设计成绩,课程设计成绩分为优、良、中、及格和不及格五个等级。

课程设计成绩为平时表现30%、设计报告50%、答辩20%。

1、评分标准

优秀:目的明确,态度端正,模范遵守学校的各项纪律。工作认真,积极主动,吃苦耐劳,能出色的完成设计所有任务。撰写了高质量的总结报告。答辩准确流利。

良好:目的明确,态度端正,能遵守学校的各项纪律,工作比较积极主动。能较好地完成设计主要任务,成绩较突出,表现良好;撰写了质量比较高的课程设计报告。答辩较准确流利。

中等:目的明确,态度基本端正,能遵守学校的各项纪律,工作比较积极主动。能够完成设计主要任务,成绩中等,撰写了质量一般的课程设计报告。答辩较准确流利。

及格:目的明确,态度基本端正,能遵守学校纪律,在督促下能开展工作并完成一定的设计任务,无大的违纪违规现象;撰写了课程设计报告。通过了答辩。

不及格:实习态度不端正,不能遵守实习单位的纪律,不服从领导,自由散漫,工作消极被动,不能完成实习任务,旷课、无课程设计报告,没有通过答辩。

2、成绩评定

依据上述考核内容,最后采用优(>90分)、良(80~89分)、中(70~79分)及格(60~69分)、不及格(<60分)五级记分制评定学生课程设计成绩。

课程设计:超市订单管理系统

超市订单管理系统,是我在学习javaweb的时候,跟着狂神的视频做的。正好拿来做《数据库系统原理》这门课的课程设计。

项目地址https://github.com/Guo-Li-Cheng/test
跳转

实验报告

1.需求分析

超市会在日常运作的过程中,会接到许多订单,同时这些订单往往来自不同的客户。

超市也会从不同的供货商那里购买货物。

这些订单,以及超市购买的货物,需要不同的人员来进行管理。

超市的员工,也可以通过系统进行管理。

如超市经理把普通员工添加进系统。

2.系统功能设计

根据需求,smbms(Supermarket bill management system)超市订单管理系统至少应该实现以下几大功能:

  • 实现登陆以及账号注销功能;
  • 实现管理员账号对普通账户的管理;
  • 实现所有账号对订单的管理;
  • 实现所有账号对供应商的管理;

其中,不同的账号类型代表这个超市不同的职位。

而“管理”也应该至少包括“增删改查”。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pPaZTfMw-1591864428749)(…/images/03.png)]

3.数据库设计

首先,我这里选择使用的是mysql数据库。

新建一个库smbms(Supermarket bill management system)

根据系统功能,库中需要五个表

bill 用于存放订单信息

provider 存放供应商信息

address 存放供应商地址

user 用于存放员工信息

role 用于存放职位信息,跟user表结合可以确定每一个员工在系统中的权限

每一个表以及表中的字段如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pEVyCZkU-1591864428751)(…/images/04.png)]

4.程序设计

4.1使用的IDE(Integrated Development Environment 集成开发环境)

IDEA 2019

在这里插入图片描述

4.2准备工作
4.2.1新建带根项目的maven项目

new一个project

在这里插入图片描述

选择maven项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在建好的根项目下new一个module

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

补全项目目录

在这里插入图片描述

注:为什么要使用maven

因为maven能帮我们做到以下事情:

①添加第三方jar包

在今天的JavaEE开发领域,有大量的第三方框架和工具可以供我们使用。要使用这些jar包最简单的方法就是复制粘贴到WEB-INF/lib目录下。但是这会导致每次创建一个新的工程就需要将jar包重复复制到lib目录下,从而造成工作区中存在大量重复的文件,让我们的工程显得很臃肿。而使用Maven后每个jar包本身只在本地仓库中保存一份,需要jar包的工程只需要以坐标的方式简单的引用一下就可以了。不仅极大的节约了存储空间,让项目更轻巧,更避免了重复文件太多而造成的混乱。

②解决jar包之间的依赖关系冲突的问题

jar包往往不是孤立存在的,很多jar包都需要在其他jar包的支持下才能够正常工作,我们称之为jar包之间的依赖关系。最典型的例子是:commons-fileupload-1.3.jar依赖于commons-io-2.0.1.jar,如果没有IO包,FileUpload包就不能正常工作。相信很多开发着在没有使用Maven前,为解决这些包冲突而头痛。那么问题来了,你知道你所使用的所有jar包的依赖关系吗?当你拿到一个新的从未使用过的jar包,你如何得知他需要哪些jar包的支持呢?如果不了解这个情况,导入的jar包不够,那么现有的程序将不能正常工作。再进一步,当你的项目中需要用到上百个jar包时,你还会人为的,手工的逐一确认它们依赖的其他jar包吗?这简直是不可想象的。而引入Maven后,Maven就可以替我们自动的将当前jar包所依赖的其他所有jar包全部导入进来,无需人工参与,节约了我们大量的时间和精力。

③获取第三方jar包

JavaEE开发中需要使用到的jar包种类繁多,几乎每个jar包在其本身的官网上的获取方式都不尽相同。为了查找一个jar包找遍互联网,身心俱疲,没有经历过的人或许体会不到这种折磨。不仅如此,费劲心血找的jar包里有的时候并没有你需要的那个类,又或者又同名的类没有你要的方法——以不规范的方式获取的jar包也往往是不规范的。使用Maven我们可以享受到一个完全统一规范的jar包管理体系。你只需要在你的项目中以坐标的方式依赖一个jar包,Maven就会自动从中央仓库进行下载,并同时下载这个jar包所依赖的其他jar包——规范、完整、准确!一次性解决所有问题!Tips:在这里我们顺便说一下,统一的规范几乎可以说成是程序员的最高信仰。如果没有统一的规范,就意味着每个具体的技术都各自为政,需要以诸多不同的特殊的方式加入到项目中;好不容易加入进来还会和其他技术格格不入,最终受苦的是我们。而任何一个领域的统一规范都能够极大的降低程序员的工作难度,减少工作量。例如:USB接口可以外接各种设备,如果每个设备都有自己独特的接口,那么不仅制造商需要维护各个接口的设计方案,使用者也需要详细了解每个设备对应的接口,无疑是非常繁琐的。

④将项目拆分成多个工程模块

随着JavaEE项目的规模越来越庞大,开发团队的规模也与日俱增。一个项目上千人的团队持续开发很多年对于JavaEE项目来说再正常不过。那么我们想象一下:几百上千的人开发的项目是同一个Web工程。那么架构师、项目经理该如何划分项目的模块、如何分工呢?这么大的项目已经不可能通过package结构来划分模块,必须将项目拆分成多个工程协同开发。多个模块工程中有的是Java工程,有的是Web工程。

4.2.2连接tomcat

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.3创建数据库及表和视图以及基础数据的录入
4.3.1sql文件的编写

为了程序的可复用性,我们使用.sql文件进行数据库的创建工作

使用Notepad++进行.sql文件的编写

在这里插入图片描述

代码如下:

CREATE DATABASE `smbms`;

USE `smbms`;

DROP TABLE IF EXISTS `smbms_address`;

CREATE TABLE `smbms_address` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `contact` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '联系人姓名',
  `addressDesc` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '收货地址明细',
  `postCode` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '邮编',
  `tel` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '联系人电话',
  `createdBy` bigint(20) DEFAULT NULL COMMENT '创建者',
  `creationDate` datetime DEFAULT NULL COMMENT '创建时间',
  `modifyBy` bigint(20) DEFAULT NULL COMMENT '修改者',
  `modifyDate` datetime DEFAULT NULL COMMENT '修改时间',
  `userId` bigint(20) DEFAULT NULL COMMENT '用户ID',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


insert  into `smbms_address`(`id`,`contact`,`addressDesc`,`postCode`,`tel`,`createdBy`,`creationDate`,`modifyBy`,`modifyDate`,`userId`) values (1,'王丽','北京市东城区东交民巷44号','100010','13678789999',1,'2016-04-13 00:00:00',NULL,NULL,1),(2,'张红丽','北京市海淀区丹棱街3号','100000','18567672312',1,'2016-04-13 00:00:00',NULL,NULL,1),(3,'任志强','北京市东城区美术馆后街23号','100021','13387906742',1,'2016-04-13 00:00:00',NULL,NULL,1),(4,'曹颖','北京市朝阳区朝阳门南大街14号','100053','13568902323',1,'2016-04-13 00:00:00',NULL,NULL,2),(5,'李慧','北京市西城区三里河路南三巷3号','100032','18032356666',1,'2016-04-13 00:00:00',NULL,NULL,3),(6,'王国强','北京市顺义区高丽营镇金马工业区18号','100061','13787882222',1,'2016-04-13 00:00:00',NULL,NULL,3);


DROP TABLE IF EXISTS `smbms_bill`;

CREATE TABLE `smbms_bill` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `billCode` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '账单编码',
  `productName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '商品名称',
  `productDesc` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '商品描述',
  `productUnit` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '商品单位',
  `productCount` decimal(20,2) DEFAULT NULL COMMENT '商品数量',
  `totalPrice` decimal(20,2) DEFAULT NULL COMMENT '商品总额',
  `isPayment` int(10) DEFAULT NULL COMMENT '是否支付(1:未支付 2:已支付)',
  `creat
  • 42
    点赞
  • 381
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值