摘 要
本论文主要是对卡拉OK点歌系统的设计过程,后端设计,前端设计,数据库设计的分析。结合软件工程已经数据库系统概论所学知识,详细内容是系统的实现背景,设计过程,功能的实现以及部分的个人感悟。
前言:需要一定的java基础,数据库基础,如何实现图形化界面等,请自行了解整体框架结构,java如何进行数据库的连接等,仅作参考,直接抄估计是运行不了的,运行截图上传不了
其中系统界面的实现部分非常简略,部分功能重复,请酌情参考
目 录
2.3 功能分析 2
3.1.1 E-R图 5
3.2.1系统项目目录 6
3.2.2 分层结构 7
3.2.3 系统功能用例图 8
致谢 30
1 绪 论
1.1选题介绍
我的选题是卡拉OK点歌系统,该系统与现实生活中的KTV点歌,网络上的音乐播放器息息相关。只有拥有账号的用户才能登入系统,对数据库进行操作,和现实生活中的卡拉OK点歌机功能贴近,登入系统后,可以根据歌曲名,歌曲类型,歌手等信息进行检索,找到想要的信息,通过点歌生成账单,结账完成账单,
本系统进行了前后端分离,用户可以通过简单的图形化界面操作数据库,前端主要是图形化接麦你的设计开发以及数据传递,后端则是数据传递,业务功能实现等。
1.2技术介绍
- 前端
调用包:Javax.swing.*
- 后端
项目构建:jdk1.8
加密:MD5
- 数据库
MySQL8.0.26
2 需求分析
2.1普通用户
登录系统、机器状态管理,歌曲列表管理、歌手列表管理、账单列表管理、结账功能
2.2信息需求
- 登录信息:登录编号,登录人名,登录账号,登录密码
- 歌曲信息:歌曲编号,歌曲名,歌手名,歌曲类型,单曲价格
- 歌手信息:歌手名
- 账单信息:账单编号,歌曲名,点歌数目,总金额,点歌日期,支付方式
- 机器信息:机器编号,机器状态,预定机器人姓名,预定人电话
2.3功能分析
1、登录系统
根据用户输入的用户名和密码,进行方法调用,判定是否为数据库中的用户
若是则可登入系统,进行后续操
2、显示机器状态
对于机器信息表的查询
3、预定机器
根据用户输入的机器编号,预订人,预定电话,对机器信息表进行更新操作
4、显示所有歌曲
对歌曲信息表进行遍历查询操作
5、显示所有歌手
对歌手信息表进行遍历查询操作
6、选择要唱的歌曲(点单)
根据用户输入的机器编号,所点曲目,所点数量,对账单表进行更新操作,添加新数据
7、查看所点歌曲(账单)
对账单进行遍历查询操作
8、结账
根据用户输入的机器编码,判断是否需要进行结账操作,更新账单表,删除对应的账单数据
9、退出系统
3 概要设计
将java程序分层分为界面层,DAO层,domain层,Service层分析并画出对应的分层结构根据需求定义合适的方法建立合理的符合要求的数据库根据建立的数据库完成ER图的编绘通过JDBCUtils方法进行数据库和java项目的连接,目的:直接通过编写java项目调用数据库语句,完成增删查改功能。
3.1数据库设计
数据表
- 登录表:user(id(登录编号),name(登录人名),userId(登录账号),pwd(登录密码)
- 歌曲表:songs(id(歌曲编号),songName(歌曲名),singerName(歌手名),ypye(歌曲类型),price(单曲价格))
- 歌手表:singers(singerName(歌手名),age(年龄)
- 账单表:bill(id(账单编号),billId(歌曲编号),nums(点歌数目),money(总金额),diningMachineNum(机器编号),billDate(点歌日期),payMode(支付方式)
- 机器表:diningmachine(machineNum(机器编号),machineStatus(机器状态),orderName(预定机器人姓名),orderPhone(预定人电话)
3.2系统设计
系统架构:MVC三层架构
软件模式:B/S模式
MVC,即Model模型,View模型,Controller模型
Model:承载数据,对用户提交请求进行计算的模块。分为两类,一类称为数据承载Bean,一类称为业务处理Bean。业务处理Bean指的是Service或DAO对象,用于处理用户提出的请求;
数据承载Bean指的是实体类,用于用户承载业务数据,如Student、User
View:试图,为用户提供直观的使用界面,与用户直接进行交互,如本课设中用到的javax.swing所完成的图形化界面
Controller:控制器,用于将用户的请求转发给相应的Model进行,并计算后给予用户反馈
4 详细设计
4.1数据库设计
由底层忘上层逐次编写程序
构思合理的数据库,确保属性名,属性类型等数据的准确无误
根据构思建立相关的数据库
分别有user,bill,diningmachine,songs,singers
user表包含的属性有
id(自增编号),userId(用户编号),pwd(用户密码),name(用户姓名)
bill表包含的属性有
id(自增编号),billId(订单编号),nums(歌曲数目),songId(歌曲编号),money(账单总金额)
billDate(订单时间记录),machineStatus(机器状态)
songs表包含的属性有
id(自增编号),songName(歌曲名),singerName(演唱者),type(曲目类型),price(歌曲单价)
diningmachine表包含的属性有
machineNum(机器编号),machineStatus(机器状态),orderName(预订人名字),orderPhone(预定电话)
数据表的结构
User表
数据类型 |
列名 |
字段类型 |
长度 |
是否为空 |
默认值 |
备注 |
int |
id |
int |
NO |
|||
varchar(50) |
userId |
varchar |
50 |
NO |
||
char(32) |
pwd |
char |
32 |
NO |
||
varchar(50) |
name |
varchar |
50 |
NO |
Singer表
列名 |
数据类型 |
字段类型 |
长度 |
是否为空 |
默认值 |
备注 |
id |
int |
int |
NO |