子模型。这一步叫做"逻辑数据库设计。
(5) 验证的设计
一般来说,一个大型数据库的设计过程中,往往需要几个周期。当设计一个环节出现问题时,你可能需要回到前面修改。因此,应考虑在未来修改数据库设计的可能性和便利性。
(6)运行与维护的设计
在数据库投入运行的过程中,必须进行不断的修改和调整。
到目前为止,很多工作还需要设计数据库,除了关系型数据库有一个相对完整的数据范式理论可以用来指导数据库设计的一部分,一套完整的数据库设计理论的缺乏,方法和工具,以实现数据库设计自动化或半自动化的互动设计。所以对数据库设计理论的未来发展方向,数据库设计,寻求更有效地表达语义关系数据模型,提供设计工具的自动或半自动综合开发各阶段的设计环境,处理数据库的设计过程中,更加规范、更加方便,如此先进的软件工程思想和方法充分体现在数据库的设计过程。
根据预E-R图分析,创建一个数据库命名服务器上的Android。包括如下表:表订货信息表,配方存储表账户存储表。
android数据库中数据表的具体结构如图3-3所示。
图3.3 数据库架构图
1、餐桌点餐信息表
餐桌点餐信息表中保存了各个餐桌的点餐信息,主要存储了菜名、份数、时间。1t表的示例结构,如图3-4所示。
图3.4 点餐信息表
餐桌点餐信息表中保存了各个餐桌的点餐信息,其信息存储状态如图3-5所示。
图3.5 信息存储
2、菜谱存储表(menu)
菜谱存储表中保存了菜的详细信息,主要字段有:菜名,简介,价格,菜区。Menu表的表结构如图3-6所示。
图3.6 菜单存储表结构
菜谱存储表中保存了菜的详细信息,其信息存储状态如图3-7所示。
图3.7 菜单存储表
3、账目存储表(account)
账目存储表中保存了各桌号的运营情况,其中包括:桌号,运营账目,时间。Account的表结构如图3-8所示。
图3.8 账目存储表
账目存储表中保存了各桌号的运营情况,其信息存储状态如图3-14所示。
图3.9 信息存储
3.3.2数据库与服务器的链接
本系统采用java语言编写,使用jdbc连接Mysql数据库,所以要用到java中的connection对象和mysql驱动连接到数据库。
其实现代码如下所示。
String driver=com.mysql.jdbc.Driver
String url=jdbc:mysql://localhost:3360/wireless_db? useUnicode=true&characterEvcoding=utf-8
String username=root
String password= Connection conn;
Class.forName(driver);
Conn=DriverManager.getConnection(url,username,password)
只有成功连接到了数据库才能进行其他操作,否则就无法开展以下工作了。可见,连接数据库是一个很关键的步骤。
第4章 界面详细设计
第4.1节 界面设计与实现
该阶段主要完成各个功能模块的设计,处理过程的设计要根据模块划分以及结构化程序设计的基本原则,对每个程序模块中的详细处理过程进行设计。
4.1.1 用户登录界面
1.登陆模块的界面图
图4.1 用户登录界面
输入:用户名和密码
处理:
(1)启动自身的登陆窗口。
(2)手动输入用户名和密码。
(3)如果输入的用户名或密码为空,则弹出对话框,并进行错误提示,告知用户名不可为空。
(4)以输入的用户名为关键字,在数据库中检索用户信息表的用户名和密码字段,判断是否正确
(5)通过向服务器请求数据,判断如果用户名是否存在,如果不存在则提示用户注册新的账号。
(6)如果用户名存在,比较数据库中的密码字段与输入的密码是否相等,相等后直接进入系统。
4.1.2 注册界面的实现
注册单界面主要是当您没有登陆的用户名时候需要进入的界面,注册完新的账号和密码后就可以进入点餐了,此界面主要需要输入用户名,密码,性别,出生日期等个人基本信息。界面如下图所示:
图4.2 用户注册界面
输入:用户名,密码,性别,出生日期,手机号
处理:
(1) 启动注册界面窗口
(2) 手动输入用户名和密码
(3) 选择自己的性别和出生年月
(4) 输入手机号方便与顾客进行直接的记录
主要代码:
/**
* 判断是否注册成功
*
* @return
*/
private boolean registerPro() {
JSONObject jsonObj = null;
try {
// 获取返回的JSON对象
jsonObj = query(userinfos);
json_back_message = jsonObj.getString("rtmsg");
// 如果接收到的结果代码"rt"=200
if (jsonObj.getString("rt").equals("200")) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
/**
* 设置预定日期的Dialog
*/
public void createDateDialog() {
// 获取当前时间
Calendar calendar = Calendar.getInstance();
// 时间对话框
DatePickerDialog dialog = new DatePickerDialog(
BookingSeatsActivity.this,
new DatePickerDialog.OnDateSetListener() {
/**
* 日期对话框时间设置
*/
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
// 获取当前时间
Calendar c = Calendar.getInstance();
// 设置年
c.set(Calendar.YEAR, year);
// 设置月
c.set(Calendar.MONTH, monthOfYear);
// 设置日
c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
// 系统自定义输出月份小一月所以输出MONTH值时强转整
// 判断 如果月日小于10 在前面加0
String strMonth = "";
String strDate = "";
if ((Integer.valueOf(c.get(Calendar.MONTH)) + 1) < 10) {
strMonth = "0"
+ (Integer.valueOf(c.get(Calendar.MONTH)) + 1);
} else {
strMonth = String.valueOf(Integer.valueOf(c
.get(Calendar.MONTH)) + 1);
}
if ((Integer.valueOf(c.get(Calendar.DATE))) < 10) {
strDate = "0"
+ (Integer.valueOf(c.get(Calendar.DATE)));
} else {
strDate = String.valueOf(Integer.valueOf(c
.get(Calendar.DATE)));
}
// 将时间设置到txtDate
txt_date.setText(c.get(Calendar.YEAR) + "-" + strMonth
+ "-" + strDate);
time=c.get(Calendar.YEAR)+strMonth+strDate+"";
System.out.println("txt_date "+txt_date.getText());
}
}, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
calendar.get(Calendar.DATE));
// 显示对话框
dialog.show();
}
4.1.3 点餐主菜单界面的实现
点餐界面主要包含四个部分,点餐预定,菜单查询,信息查询以及菜品展览模块,界面展示如下图所示:
图4.3 点餐主界面
此界面主要包含四个部分,点餐预定,菜单查询,信息查询以及菜品展览模块,下面将从不同的模块分别进行阐述
其实现代码如下所示:
// 跳转到MainActivity
try {
if (jsonObj.getString("rtmsg").equals(version)) {
Toast.makeText(this, "版本已经为最新版", Toast.LENGTH_LONG).show();
} else {
//进入该界面时,模仿从服务器加载数据时的虚拟进度条
super.progressDialog = ProgressDialog.show(this, "更新菜单", "正在更新菜单....",true);
super.progressDialog.show();
//通过线程来循
上一篇:
基于JAVA的局域网监控系统
下一篇:
高陈基于Java超市账单管理系统