网络应用程序的设计与实现
- 格式:docx
- 大小:305.93 KB
- 文档页数:9
网络应用程序的
设计与实现
基于c/s的点餐系统的设计与实现
201708030127 刘嘉欣
201708030142 白 璐
目 录
一、系统介绍 ............................................. 1
二、需求设计 ............................................. 1
(一)总体介绍 ........................................ 1
(二)数据库设计 ...................................... 1
(三)服务器功能设计 .................................. 2
(四)客户端功能设计 .................................. 2
三、详细设计 ............................................. 3
(一)登录功能 ........................................ 3
(二)注册功能 ........................................ 4
(三)查看菜单 ........................................ 5
(四)查看个人信息 .................................... 6
四、分析讨论 ............................................. 6
1
一、系统介绍
如今宅男宅女益增加,很多餐饮店都提供外卖服务,传统的外卖服务需要客
户给商家打电话并报出地址,商家那边也需要记录下客户的信息才能将外卖准确
的送达,但在这之间都是人在操作,难免会出现偏差和遗漏为客户或者商家带来
损失。
本系统是可以让用户在客户端操作,与服务器连接进行数据交互,来实现网
上订餐的流程。客户端需要实现登陆系统,浏览菜品,点菜,下订单,等功能。
二、需求设计
(一)总体介绍
(1)本地的客户端程序运行后,弹出登录界面。在登录成功后,程序显示主界
面并在主界面上提供如:对某始终站点的车次查询、用户个人的订单管理、用户
个人信息查询修改、退出登录等功能。接收服务器发来的应答,做出判断并在显
示界面显示给用户。
(2)服务器程序一直运行并监听客户端的连接请求。一旦有客户端发来连接请
求,服务器立即创建并激活服务子线程为单个客户端提供服务并继续监听其他客
户端的连接请求。服务子线程接受相应的一个客户端发来的各种请求,处理请求
并发送相应的应答。
(二)数据库设计
设计数据库“订餐系统”,包含6个表:会员表、订单表、订单明细表、菜
品表、菜品明细表、管理员表表。
数据库表及其结构:
数据库:
管理员表(Admin): 管理员编号、用户名、密码、权限。
会员表(Member) 会员编号、会员名称、会员密码、会员电话、会员地址。
菜品表(BaseProducts) 菜品编号、菜品种类、。
菜品详情表(DetailProducts)
菜品详细编号、菜品编号、菜品名称、菜品描述、菜品价
格、数量。
2
订单表(Order) 订单编号、会员编号、订单生成时间、订单状态。
订单详情表(DetailOrders) 订单编号、订单详细编号、菜品编号、数量、金额。
(三)服务器功能设计
根据需求分析,服务器需完成以下几项任务:
1、持续监听新上线的客户端发来的连接请求;
2、与发来连接请求的客户端建立连接来进行数据传输;
3、创建服务子线程为已连接的客户端提供服务。对于服务子线程,在其创建并
激活后,应能接收相应的客户端发来的请求,解析请求并向客户端发送相应的正
确的应答。
(四)客户端功能设计
为用户提供UI界面,并响应用户的各种操作,向服务器发送正确的请求、
接收服务器反馈的应答,解析后反馈给用户。为了使服务器能正确地解析客户端
发来的不同的请求并且客户端能正确地解析服务器的应答,我们必须规定好客户
端与服务器之间的应用协议。
应用协议
设计User类、Request类、Response类。User对象封装当前需要登录或已
登录的用户的帐号信息与个人信息,每个客户端和每个服务子线程都必须各自创
建一个User对象,用于封装用户的基本信息。Request对象封装了请求类型以
及完成相应请求所需的完整信息,此类由客户端创建一个对象并发送给服务器。
Response对象封装了应答类型以及客户端想要得到的信息,此类由服务器创建
一个对象并发送给客户端。
具体类型见续表:
客户端发送请求类型(requestType) 服务器操作 (简略) 服务器发送应答类型
(responseType)
1:登录(登录名,密码) 检索已登录用户集合,若无重复登录,查登录名与密码是否正确 1:重复登录 2:登录名或或密码错误
3:登录成功
3
4:服务器出错
2:注册新用户(略) 查是否存在该登录名,否,则
添加该用户信息
1:注册成功
2:服务器出错
3:用户名或手机号已注册
8:查看菜单 查该菜品所有信息并返回 1:刷新成功
6:查询个人信息(登录名) 查该用户所有个人信息并返
回
5:刷新(查询)成功
//并返回个人信息
6:服务器出错
三、详细设计
(一)登录功能
登录模块界面如图3-1所示,显示了一个登录窗口,在其中加入如:按钮
(JButton)、标签(JLabel)等。
图3-1
当用户点击登陆时,会把用户输入的数据跟服务器端数据库中的数据进行匹
如果相同则登陆成功,否则弹出用户名或密码不正确的信息。代码如下:
4
(二)注册功能
注册界面如图3-2,跟登陆界面一样,它也有一个属于它的窗口
图3-2
在此模块中必须要输入正确这些注册信息,才能正常的进行注册。
当用户点击取消按钮时,界面会跳转回到登陆界面,当用户点击注册按钮时
会跟服务器端的数据库进行连接,把用户所填的信息拼接发给服务器,服务器处
理过后将数据插入到数据库中对应的表中。客户端实现注册代码如下:
5
(三)查看菜单
用户登陆成功或者选择游客登陆成功后,会直接进入到主界面,如图3-3,
主界面采用的是选项卡。
6
图3-3
菜单面板采用的是表格,当用户点击刷新按钮时,服务器会发回菜品信息。
(四)查看个人信息
个人信息面板如图3-4
图3-4
当用户点击刷新按钮时,会把用户的用户名发过去,跟服务器端数据库中的
数据进行匹配,如果相同则发回用户信息。
四、分析讨论
通过本程序,对发现问题、提出问题、解决问题有了自己的一套简单的体系,
7
也对整个系统设计流程有了一个清晰的认识。
由于前期设计思路的问题,先整体编写了服务器的代码,后写客户端的代码,
不是从一个功能按照客户端-服务器整体编写,导致很多功能没有实现。