课程设计报告书(快餐店点餐系统)
-
1
吉首大学信息科学与工程学院
课程设计报告书
课
程:
面向对象程序设计
课
题:
快餐店点餐系统
姓
名:
李
静(登录界面设计,后期资料整理)
凌淑丽(前期需求分析)
吴
亮(系统各功能模块设计)
刘
佳(辅助编写系统各功能模块代码)
学
号:
从上至下依次为:
2
2
、
2
、
2
专
业:
计算机科学与技术
年
级:
2011
级
指导教师:
侯春明
基地指导教师:
何迎生
年
月
一、项目介绍与设计目的
2
《面向对象程序设计》
课程设计是信息与计算科学专业集中实践
性环节
之一,是学习完《面向对象程序设计》课程后进行的一次全面
的综合练习。
本课程设计主要目的在于加深学生对面向对象程序设计
的基本理论和基本知识
的理解,
全面掌握面向对象程序设计思想的精
髓。
二、设计方案
1
)
、设计
内容
以
windows
为开发平台,以<
/p>
Java
作为前台开发工具,完成一
个小
型软件的系统设计和开发。
根据学生的具体情况,
学生可以从以
下备选题目中选择一个,也可以自选题目,完成系统地分析、设计和
开发,提交完备的开发文档。
2
)
、快餐店点餐系统
1
、系统具备的基本功能:
根据所建议系统的业务流程图,分析出新系统的功能模块图:
用户登录
点
餐
管
理
配
餐<
/p>
管
理
结
算
管
理
系
统
管
理
2
、需求描述
2.1
.用户登陆
:
用户输入用户名
及密码后
,
系统自动验证有效性及用
2
3<
/p>
户角色
,
根据用户拥有的角色自动进入不
同的子系统
2.2
.
客户点餐子系统
:
当客人落座后
,
服务员手持
IPAD
登陆点餐子系
统后,
首先输入相应的桌号,
然后由客
人根据不同的服务类别
(特价、
凉菜、热菜、汤、酒水、饮料)
选择不同的食物及数量,系统根据不
同的食物计算出总价格,
方
便客人控制总价格,
如果输入错误系统提
供删除的功能,最后提
交到后厨配餐子系统中
.
2.3
.配
餐管理子系统:配餐员或者厨师根据最新的配餐信息,按照
时间先后顺序配置食品,完成
后提交给结算管理子系统中
2.4
.
结算管理子系统:收银员根据服务员或者客人提供的桌号计算
出总价格,
客人如果提供会员卡或者会员号,
系统自动验证卡号及会
员身份并计算出相应的折扣及实付金额,
根据相应的金额出具对应的
< br>发票
2.5
.系统管理子系统
:经理登陆子系统后,上传菜谱,管理菜谱及
特价。在此子系统中,还实现了会员及用户
、留言、桌位的管理
3
)
、设计内容
设计系统:快餐店点餐系统。
3.1
系统用例图
3
4<
/p>
System
用户登陆
用户
登录用例
System
客人点餐
服务员
点餐用例
System
厨师配餐
厨师
配餐用例
4
5<
/p>
System
客人结帐
收银员
结算用例
Syste
m
系统设置
经理
系统设置用例
3.2
系统模块设计
3.2.1
系统登录模块
在该模块中主要实现用户身份的验证以及角色的检查,根据用户
身份的不同
分别登陆到不同的子系统中。
3.2.2
系统点餐模块
本模块是系统的主要模块,在该模块中主要实现菜肴以及
酒水饮
料的点餐等功能,根据食品的分类把界面分为特价、凉菜、热菜、汤
5
6
类、酒水、饮料不同的区域以及点菜区域。
3.2.3
系统配餐模块
本模块面向的对象主要是厨师以及酒水饮料配餐员,实现的功能
是按照下餐
的时间先后顺序显示订餐列表,
厨师按照餐单的详细列表
配置不
同的食品及其他。每个餐单完成后系统提交到收银区。
3.2.4
系统收银模块
本模块面向的对象主要是收银人员,实现的功能是分别显示配餐
完毕后的餐
单,
客户就餐后提供桌号以及会员卡,
系统自动计算出优
惠金额以及实付金额,收款后系统自动更新数据库。
3.2.5
系统管理模块
本模块面向的对象主要是经理管理人员,实现的功能是有会员管
理,菜谱管
理、用户管理功能。
3.3
客户端系统目录结构
客户端目录结构按照模块的不同创建不同的文件目录,以便于文
件的管理
及今后的二次开发,截图如
3.19
所示:
6
7
图
p>
3.19
系统目录
目录结构描述
:1:DianCan:
客户点餐模块
2:PeiCan:
食品配餐模块
3
:
JieZhang
:收银结账模块
4
:
Manage
:系统管
理模块
5
:
Images
:
系统图片。
3.4
系统类图设计
根据系统中的实体,一共设计
6
个类,具体见下图
p>
3.20
所示
:
7
8
图
3.2
0
系统类结构图
详细描述如下:
1.T_CaiPu
菜谱类,该类中的属性及方法结构如
3.21
< br>所示
:
图
< br>3.21
菜谱类
T_CaiP
u
类是用来描述系统中的菜谱实体,
其中的属性有
id(
菜谱
编号
)
、
c_name
(菜谱名称)
< br>、
c_Price
(菜价)
、<
/p>
c_type(
类别
)
< br>、
c_image(
照片
)
p>
、
is_Tejia(
是否特价
)
、
isEnable
(
是否启用)
。
2.T_User
p>
用户类,属性及方法如图
3.22
所示
p>
:
8
9
图
p>
3.22
用户类
T_user
类用来描述系统使用者实体,其中的属性有
id(
记录编
号
)
、
userName
(用户名)
、
userPwd
(用户密码)
、
userRole
(用户角
色)
、
isEnable
(是否启用)
。
3.T_YiJian(
意见类<
/p>
):
该类的属性及方法如图
3.23
p>
所示:
图
p>
3.23
意见类
T_YiJian
类是用来描述客户意见的实体,其中的属性有
id(
意见
编号
)
、
HJ_YJ
(环境意见)
、
p>
FW_YJ
(服务意见)
、
FC_YJ
(饭菜意见)
、
K
H_LY
(客户留言)
。
4.T_Member(
会员类
):
该类的属性及方法如图
3.24
:
< br>
9
10
图<
/p>
3.24
会员类
T_Member
类是用来描述客户级别的实体,其中的属性有
id(
会员
编号
)
< br>、
member_Name
(会员名称)
、
type_id
(会员级别编号)
< br>、
isEnable
(是否启用)
。
5.T_CanDan
(餐单类
)
:
该类的属性及方法如图
3.25:
图
3.25
餐单类
T_CanDan
类是用来描
述客户菜单的实体类,
其中的属性有
id
(菜
单编号)
、
desk_HM
p>
(桌位号)
、
xf_je
< br>(消费金额)
、
member_id(
< br>会员
编号
)
、
< br>isJieZhang
(是否结账)
、
< br>xf_date
(消费日期)
、
state
(配
餐状态)
。
6.T_Can_MingXi(
餐单明细
p>
)
类
:
该类的属性
及方法如图
3.26
所
10
11
示:
图
3.26
餐单明细类
T_Can_MingXi
类是用来描述菜单明细的
实体,其中的属性有
id
(记录编号)
、
can_id(
菜单编号
)
、
cai_id(
菜谱编号
)
、
cai_SL
(份
数)
、
cai_JE
(每
类菜的金额)
。
3.5
主要模块设计
3.5.1
登录模块设计
登陆模块的功能就是验证用户名及密码是否有效,如果有效则再
判断角色编
号值(
1
:服务员角色
2
:厨师角色
3
:收银员角色
4
:管
理员角色)
,根据不同的角色打
开不同的窗口,该模块实现的前置条
件是设置正确的服务器地址以及服务器处于启动状态
,
输入输出数据
如表
3.27
所示:
数据
数据输出类
型
用户名
数据类型
约束
输入
字符串类型
4-10
位的字母
11
12
组成
密码
输入
字符串类型
4-6
< br>位的数字
组成
表
p>
3.27
登陆模块输入输出数据
具体实现代码如下所示:
//
用户名
string un = _();
//
密码
string pwd = _();
//
判断用户名及密码是否为空
if (address ==
(
用
户名、密码、地址不能为空
else
{
//
判断用户名是否是字母及长度在
4
--10
位
if (!h(un,
{
(
不是字母或者长度不够
return;
}
12
13
else if (!h(un,
{
(
请输入
4-6
位的数字
return;
}
dc = (address);
//
返回数据库中的最新更新
// dc = Dc(dc.T_user);
IQueryable
Where(u => me == un && d == pwd);
if (t_user!=null&&t_()==1)
{
();
if (t_().userRole == 1)
{//
打开点餐窗口
MainMenu mm = new MainMenu();
();
}
else if
(t_().userRole == 4)
{
//
打开管理员
age frmManage = new age();
();
13