点餐系统设计.docx

上传人:b****5 文档编号:3085212 上传时间:2022-11-17 格式:DOCX 页数:20 大小:562.34KB
下载 相关 举报
点餐系统设计.docx_第1页
第1页 / 共20页
点餐系统设计.docx_第2页
第2页 / 共20页
点餐系统设计.docx_第3页
第3页 / 共20页
点餐系统设计.docx_第4页
第4页 / 共20页
点餐系统设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

点餐系统设计.docx

《点餐系统设计.docx》由会员分享,可在线阅读,更多相关《点餐系统设计.docx(20页珍藏版)》请在冰豆网上搜索。

点餐系统设计.docx

点餐系统设计

点餐系统设计

 

 

题目:

点餐系统的设计与实现

 

学号2015122103498姓名:

巩金明(40%)专业:

15信管一班

负责内容:

大部分代码编写(含关键部分)

学号2015122103523姓名:

楼轩宇(30%)专业:

15信管一班

负责内容:

需求分析以及总体设计

学号2015122103539姓名:

郭新波(30%)专业:

15信管一班

负责内容:

详细设计以及小部分代码编写

 

论文完成日期:

二Ο一七年六月四日

 

1、系统需求分析

客户端功能需求分析:

登录、注册:

使用者想要运行系统必须登录,如果未申请账号能够通过注册模块申请;

菜谱查询:

查询目前餐厅店菜单列表数据;

详情查询:

可以查询一个菜的全部数据,有价格、介绍和数量;

在线点餐:

支持用户在线下单点餐;

选择座位:

支持使用者在Android手机上选座位;

我的订单:

支持使能够查看自己已经下单的数据,能够删掉自己的订单;

人工服务:

客户端可以呼叫服务员;

服务端功能分析:

登录模块:

管理员登录使用系统;

菜谱管理:

管理员能够查看当前界面的数据,能够添加、修改或者删除一个菜谱数据;

用户管理:

管理员能够查看到当前系统已经存在的用户信息,能够删掉一个用户信息;

原材料管理:

管理员可以查看当前系统的原材料信息,可以添加、修改或者删除一个原材料信息,原材料库存较低时会警报;

订单管理:

管理员可以查看到当前的所有订单信息,可以修改订单状态,例如把一个进行中的订单修改为已经完成;

具体的系统功能全部作用如下图:

患,如,隐私安全、个人财产安全等等,虽然此次开发的系统简单,但是安全问题是每个系统都必须考虑的问题。

网上订餐系统中既要保护用户个人信息的安全,保证不被泄露,还要保证他们的财产安全。

只有具备安全措施的系统才能够让用户放心。

3、可扩展性原则

现在的科技发展速度之快,不仅是研发的快,更新换代的速度也令人惊讶,科技技术不断退陈旧新,因此,为了适应时代的发展速度,系统的可扩展能力也是开发过程中要考虑的事情。

那么如何提高系统的可扩展性呢?

这里就充分体现了设计在开发中的重要作用。

在软件设计的过程中,将网上订餐系统划分成不同的功能模块,并降低模块之间的耦合度来提高系统的扩展性。

4.2系统设计目标

在系统开发之前要对系统进行需求分析,功能概括,难点解析等等的工作,之后对于系统大概要完成什么目标,系统的界面和设计等问题的思考来满足用户的要求。

系统设计过程中将系统分解为很多不同的小的系统,然后对分成的小的系统的功能、技术进行分析讨论,制定规定,在之后的开发中,先开发小的系统之后进行整合,逐步完成开发。

本系统是设计目标是建立一个基于Android技术的点餐系统,可以满足用户对手机订餐的需求。

根据需求分析还有自己的生活体会,在线点餐系统一定要有以下基本的要求。

(1)界面看着新颖活力、大方美观,吸引用户。

(2)具有易调试性和没有bug性。

(3)用户能够方便的查看所有的食品信息和单个用户的详细信息内容。

(4)具有操作方便、功能完善的管理功能。

4.3系统总体结构设计

系统的总体结构设计是在软件开发之前必须要做好的一件基本工作,作为一个优秀的程序员不仅要有很强的编码能力,对于系统的总体结构的设计也要很精通。

做好系统的总体结构设计会让系统开发顺利进行,做到事半功倍。

在此次系统的总体结构设计过程中,系统分为客户端和服务端,客户端是可以在安卓智能手机上使用的,服务端采用Servlet提供服务,持久化层采用MySQL,因为MySQL的安装和配置都适合小型的系统。

在进行系统的总体设计之后紧接着就是数据库的需求设计。

系统整体框架采用C/S模式,即客户端/服务器模式,其中客户端一方面与用户交互,提供良好的用户界面,另一方面与服务器端进行数据交换。

服务器端向客户端提供数据。

管理员可以对数据进行增,删,改,查等操作。

5、系统详细设计与实现

5.1登模块的实现

本系统使用前用户需要登录验证,在登录界面中,通过继承一个Activity来实现,界面上的控件用到了EditText、Button和CheckBox等等组件,EditText主要用来实现用户帐号和密码的输入。

登录过程中用户需要输入账号与密码,并且经由登录按钮来表达登录意图,意图表达完成,系统会经由HTTP的过程将帐号与密码发送到服务器端验证,并返回服务端的验证结果,如果验证正确那么提示使用者登录完成,然后自行转入主界面;如果错误,那么提示使用者登录失败。

该界面具有保存密码成功,假如使用者在登录时勾选了“保存密码”复选框,则下次再进入到本界面用户将不需要再次输入密码,而只需要点击登录按钮即可实现登录操作,记住密码的过程是通过Android平台提供的SharedPreferences来实现的。

当然如果用户还没有登录账号,则能够通过“注册”选项链接到用户注册界面,从而注册一个新号码;

具体的实现效果如图所示:

 

实现的核心代码如下:

loginActivity的doInBackground的方法发起url请求,发送用户名,密码

protectedStringdoInBackground(String...params){

StringurlString=AppConstant.getUrl(getApplicationContext())+"ServletService?

Action=login";

urlString+="&loginid="+etLoginID.getText()+"&passwords="+etPassword.getText();

Stringjson=httpHelper.HttpRequest(urlString);

returnjson;

}

loginActivity的onPostExecute的方法获取服务器返回json,验证密码是否正确

loginActivity的dealLogin是当密码验证成功后跳转到DishesListActivity

OnLineUsermodel=newOnLineUser();

//设置登陆成功的用户属性

model.setId(jsonObject.getInt("id"));

model.setLoginid(etLoginID.getText().toString());

model.setName(jsonObject.getString("name"));

application.setLoginUser(model);

//弹出提示框

toastUtil.show(model.getName()+",登录成功");

//跳转到登陆成功页面

intent=newIntent(LoginActivity.this,DishesListActivity.class);

startActivity(intent);

5.2菜谱模块的实现

用户成功登陆进入系统之后可以查看到当前系统所有菜谱信息,包括菜谱的图片、名称、单价和详细介绍信息,系统用了一个ListView组件来显示系统的菜谱信息,同时用户也可以通过界面左上角的搜索按钮来搜索菜谱信息,用户点击一条信息之后可以查看一个菜谱的详细介绍。

具体的实现效果如图所示:

实现的核心代码如下:

//请求获取列表数据的代码

@Override

protectedStringdoInBackground(String...params){

Stringjson=null;

serverUrl=AppConstant.getUrl(getApplicationContext())+"ServletService?

Action=getdisheslist&shopid="

+shopid;

BaseUtil.LogII(serverUrl);

json=httpHelper.HttpRequest(serverUrl);

returnjson;

}

//解析列表数据,并设置适配器的代码

list=newArrayList();

if(!

TextUtils.isEmpty(result.trim())){

list=gson.fromJson(result,newTypeToken>(){}.getType());

}else{

toastUtil.show("没有数据");

}

adapter=newDishesAdapter(DishesListActivity.this,list);

listview1.setAdapter(adapter);

点击listview中的一项,会跳转到详情页面,这其中会根据id去调用webservice查询数据库获取到详情数据

//界面点击跳转的代码

listview1.setOnItemClickListener(newOnItemClickListener(){

@Override

publicvoidonItemClick(AdapterView

>parent,Viewview,intposition,longid){

intent=newIntent(DishesListActivity.this,GoodDetailActivity.class);

intent.putExtra("id",list.get(position).getId());

startActivity(intent);

}

});

menu的实现,设置menu按键的弹出事件

publicbooleanonCreateOptionsMenu(Menumenu){

super.onCreateOptionsMenu(menu);

menu.add(0,99,0,"人工服务").setIcon(R.drawable.icon_application);

menu.add(0,100,0,"注销登录").setIcon(R.drawable.icon_application);

menu.add(0,101,0,"个人信息").setIcon(R.drawable.icon_application);

menu.add(0,106,0,"我的订单").setIcon(R.drawable.icon_application);

menu.add(0,102,0,"退出").setIcon(R.drawable.icon_application);

returntrue;

}

menu选中触发的事件参考onOptionsItemSelected方法

选中人工服务按钮后,会执行humanServices方法

privatevoidhumanServices(){

finalString[]arg=newString[6];

for(inti=0;i

arg[i]=(i+1)+"号桌";

}

newAlertDialog.Builder(this).setTitle("选择服务桌号").setItems(arg,newDialogInterface.OnClickLi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1