网络应用程序的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网络应用程序的

设计与实现

基于c/s的点餐系统的设计与实现

201708030127 刘嘉欣

201708030142 白璐

目录

一、系统介绍 (1)

二、需求设计 (1)

(一)总体介绍 (1)

(二)数据库设计 (1)

(三)服务器功能设计 (2)

(四)客户端功能设计 (2)

三、详细设计 (3)

(一)登录功能 (3)

(二)注册功能 (4)

(三)查看菜单 (5)

(四)查看个人信息 (6)

四、分析讨论 (6)

一、系统介绍

如今宅男宅女益增加,很多餐饮店都提供外卖服务,传统的外卖服务需要客户给商家打电话并报出地址,商家那边也需要记录下客户的信息才能将外卖准确的送达,但在这之间都是人在操作,难免会出现偏差和遗漏为客户或者商家带来损失。

本系统是可以让用户在客户端操作,与服务器连接进行数据交互,来实现网上订餐的流程。客户端需要实现登陆系统,浏览菜品,点菜,下订单,等功能。

二、需求设计

(一)总体介绍

(1)本地的客户端程序运行后,弹出登录界面。在登录成功后,程序显示主界面并在主界面上提供如:对某始终站点的车次查询、用户个人的订单管理、用户个人信息查询修改、退出登录等功能。接收服务器发来的应答,做出判断并在显示界面显示给用户。

(2)服务器程序一直运行并监听客户端的连接请求。一旦有客户端发来连接请求,服务器立即创建并激活服务子线程为单个客户端提供服务并继续监听其他客户端的连接请求。服务子线程接受相应的一个客户端发来的各种请求,处理请求并发送相应的应答。

(二)数据库设计

设计数据库“订餐系统”,包含6个表:会员表、订单表、订单明细表、菜品表、菜品明细表、管理员表表。

数据库表及其结构:

1

(三)服务器功能设计

根据需求分析,服务器需完成以下几项任务:

1、持续监听新上线的客户端发来的连接请求;

2、与发来连接请求的客户端建立连接来进行数据传输;

3、创建服务子线程为已连接的客户端提供服务。对于服务子线程,在其创建并激活后,应能接收相应的客户端发来的请求,解析请求并向客户端发送相应的正确的应答。

(四)客户端功能设计

为用户提供UI界面,并响应用户的各种操作,向服务器发送正确的请求、接收服务器反馈的应答,解析后反馈给用户。为了使服务器能正确地解析客户端发来的不同的请求并且客户端能正确地解析服务器的应答,我们必须规定好客户端与服务器之间的应用协议。

应用协议

设计User类、Request类、Response类。User对象封装当前需要登录或已登录的用户的帐号信息与个人信息,每个客户端和每个服务子线程都必须各自创建一个User对象,用于封装用户的基本信息。Request对象封装了请求类型以及完成相应请求所需的完整信息,此类由客户端创建一个对象并发送给服务器。Response对象封装了应答类型以及客户端想要得到的信息,此类由服务器创建一个对象并发送给客户端。

具体类型见续表:

2

三、详细设计

(一)登录功能

登录模块界面如图3-1所示,显示了一个登录窗口,在其中加入如:按钮(JButton)、标签(JLabel)等。

图3-1

当用户点击登陆时,会把用户输入的数据跟服务器端数据库中的数据进行匹如果相同则登陆成功,否则弹出用户名或密码不正确的信息。代码如下:

3

4

(二)注册功能

注册界面如图3-2,跟登陆界面一样,它也有一个属于它的窗口

图3-2

在此模块中必须要输入正确这些注册信息,才能正常的进行注册。

当用户点击取消按钮时,界面会跳转回到登陆界面,当用户点击注册按钮时会跟服务器端的数据库进行连接,把用户所填的信息拼接发给服务器,服务器处理过后将数据插入到数据库中对应的表中。客户端实现注册代码如下

:

(三)查看菜单

用户登陆成功或者选择游客登陆成功后,会直接进入到主界面,如图3-3,主界面采用的是选项卡。

5

6 图3-3

菜单面板采用的是表格,当用户点击刷新按钮时,服务器会发回菜品信息。

(四)查看个人信息

个人信息面板如图3-4

图3-4

当用户点击刷新按钮时,会把用户的用户名发过去,跟服务器端数据库中的数据进行匹配,如果相同则发回用户信息。

四、分析讨论

通过本程序,对发现问题、提出问题、

解决问题有了自己的一套简单的体系,

也对整个系统设计流程有了一个清晰的认识。

由于前期设计思路的问题,先整体编写了服务器的代码,后写客户端的代码,不是从一个功能按照客户端-服务器整体编写,导致很多功能没有实现。

7

相关文档
最新文档