ImageVerifierCode 换一换
格式:DOCX , 页数:50 ,大小:160.14KB ,
资源ID:23491993      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23491993.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Android实训乔艳丽06.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Android实训乔艳丽06.docx

1、Android实训乔艳丽06Android实训报告院系:计算机与信息工程学院班级:10级软件技术(1)班学号:10060401006姓名:乔艳丽无线点餐系统需求分析餐饮传统的点菜方式是纯人工操作,由服务员记录顾客点的菜,在具体工作中容易出现以下问题:手写单据字迹潦草从而导致上错菜、传菜分单出错现象严重、加菜和查账程序较繁琐。处理特殊口味有遗漏和偏差、客人催菜遗忘现象较频繁、计算账单易出错、不方便人员管理等等。正因如此,无线点餐模式应运而生。它不仅可以有效地提高餐饮业的工作效率,更可以规范服务体系,提高整体服务质量和管理水平,并为规模化经营提供了坚实的技术基础。我们生活在一个充斥着数字技术的世界

2、里,数字技术几乎侵入到我们生活的每个细节。点餐系统在使用上不及Wi-Fi点餐系统便利:服务员依然使用手持终端为顾客点餐,当消费者点完餐后,服务员将存储在手持终端内的点餐信息,对准布置在餐厅各个位置的红外接收端进行发射,接收端会将点餐信息通过网线传送到前台计算机。前台计算机会对点餐信息进行分类处理,然后将点餐信息分别发送给收银台和厨房。一登录模块一(1)(1)登录模块Android客户端实现首先,为了提高系统的安全性,要想使用该系统必须进行系统登录。其次,每个点餐信息中都要用到登录用户信息,这样可以做到责任分明,工作严谨。登录的基本流程是:通过用户输入的用户名称和用户密码,到后台数据库做查询,如

3、果有该用户则进入系统,否则提示用户输入错误。创建一个Android工程,名称为“WirelessOrder_Client”。在工程的reslayout目录下,创建一个名称为“login_system.xml“的布局文件。创建一个名称为”oginActivity”的,Activity,在类的顶部声明用到的Editatext和Button组件。package com.amaker.wlo;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import a

4、ndroid.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import com.amaker.util.HttpUtil;public class LoginActivity

5、 extends Activity / 声明登录、取消按钮 private Button cancelBtn,loginBtn; / 声明用户名、密码输入框 private EditText userEditText,pwdEditText; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); / 设置标题 setTitle(掌中宝无线订餐系统-用户登录); / 设置当前Activity界面布局 setContentView(R.layout.login_sys

6、tem); / 通过findViewById方法实例化组件 cancelBtn = (Button)findViewById(R.id.cancelButton); / 通过findViewById方法实例化组件 loginBtn = (Button)findViewById(R.id.loginButton); / 通过findViewById方法实例化组件 userEditText = (EditText)findViewById(R.id.userEditText); / 通过findViewById方法实例化组件 pwdEditText = (EditText)findViewById

7、(R.id.pwdEditText); cancelBtn.setOnClickListener(new OnClickListener() Override public void onClick(View v) finish(); ); loginBtn.setOnClickListener(new OnClickListener() Override public void onClick(View v) if(validate() if(login() Intent intent = new Intent(LoginActivity.this,MainMenuActivity.clas

8、s); startActivity(intent); else showDialog(用户名称或者密码错误,请重新输入!); ); / 登录方法 private boolean login() / 获得用户名称 String username = userEditText.getText().toString(); / 获得密码 String pwd = pwdEditText.getText().toString(); / 获得登录结果 String result=query(username,pwd); if(result!=null&result.equals(0) return fal

9、se; else saveUserMsg(result); return true; / 将用户信息保存到配置文件 private void saveUserMsg(String msg) / 用户编号 String id = ; / 用户名称 String name = ; / 获得信息数组 String msgs = msg.split(;); int idx = msgs0.indexOf(=); id = msgs0.substring(idx+1); idx = msgs1.indexOf(=); name = msgs1.substring(idx+1); / 共享信息 Share

10、dPreferences pre = getSharedPreferences(user_msg, MODE_WORLD_WRITEABLE); SharedPreferences.Editor editor = pre.edit(); editor.putString(id, id); editor.putString(name, name); mit(); / 验证方法 private boolean validate() String username = userEditText.getText().toString(); if(username.equals() showDialog

11、(用户名称是必填项!); return false; String pwd = pwdEditText.getText().toString(); if(pwd.equals() showDialog(用户密码是必填项!); return false; return true; private void showDialog(String msg) AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage(msg) .setCancelable(false) .setPositiveButto

12、n(确定, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int id) ); AlertDialog alert = builder.create(); alert.show(); / 根据用户名称密码查询 private String query(String account,String password) / 查询参数 String queryString = account=+account+&password=+password; / url String url

13、= HttpUtil.BASE_URL+servlet/LoginServlet?+queryString; / 查询返回结果 return HttpUtil.queryStringForPost(url); 为了实现登录功能,Android需要通过网络访问后台的数据库进行查询。Android访问网络的实现方法很多,如Web Service,HTTP,直接使用WebView浏览器。package com.amaker.util;import java.io.IOException;import org.apache.http.HttpResponse;import org.apache.htt

14、p.client.ClientProtocolException;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;public class HttpUtil / 基础URL public static final String BASE_URL=http:/192.168.0

15、.1:8888/WirelessOrder_Server/; / 获得Get请求对象request public static HttpGet getHttpGet(String url) HttpGet request = new HttpGet(url); return request; / 获得Post请求对象request public static HttpPost getHttpPost(String url) HttpPost request = new HttpPost(url); return request; / 根据请求获得响应对象response public stat

16、ic HttpResponse getHttpResponse(HttpGet request) throws ClientProtocolException, IOException HttpResponse response = new DefaultHttpClient().execute(request); return response; / 根据请求获得响应对象response public static HttpResponse getHttpResponse(HttpPost request) throws ClientProtocolException, IOExceptio

17、n HttpResponse response = new DefaultHttpClient().execute(request); return response; / 发送Post请求,获得响应查询结果 public static String queryStringForPost(String url) / 根据url获得HttpPost对象 HttpPost request = HttpUtil.getHttpPost(url); String result = null; try / 获得响应对象 HttpResponse response = HttpUtil.getHttpRe

18、sponse(request); / 判断是否请求成功 if(response.getStatusLine().getStatusCode()=200) / 获得响应 result = EntityUtils.toString(response.getEntity(); return result; catch (ClientProtocolException e) e.printStackTrace(); result = 网络异常!; return result; catch (IOException e) e.printStackTrace(); result = 网络异常!; retu

19、rn result; return null; / 获得响应查询结果 public static String queryStringForPost(HttpPost request) String result = null; try / 获得响应对象 HttpResponse response = HttpUtil.getHttpResponse(request); / 判断是否请求成功 if(response.getStatusLine().getStatusCode()=200) / 获得响应 result = EntityUtils.toString(response.getEnti

20、ty(); return result; catch (ClientProtocolException e) e.printStackTrace(); result = 网络异常!; return result; catch (IOException e) e.printStackTrace(); result = 网络异常!; return result; return null; / 发送Get请求,获得响应查询结果 public static String queryStringForGet(String url) / 获得HttpGet对象 HttpGet request = Http

21、Util.getHttpGet(url); String result = null; try / 获得响应对象 HttpResponse response = HttpUtil.getHttpResponse(request); / 判断是否请求成功 if(response.getStatusLine().getStatusCode()=200) / 获得响应 result = EntityUtils.toString(response.getEntity(); return result; catch (ClientProtocolException e) e.printStackTrac

22、e(); result = 网络异常!; return result; catch (IOException e) e.printStackTrace(); result = 网络异常!; return result; return null; 程序运行结果如下:一(2)登录模块服务器端实现后台的服务器实现采用JDBC访问后台数据库,Servlet响应HttpRequest请求,并返会响应 结果。为了完成该功能我们需要安装MySQL数据库并配置Tomcat服务器,这部分内容将不再赘述。DBUtil工具类内容如下所示。package com.amaker.util;import java.sql

23、.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Properties;author hz.guo public class DBUtil public void closeConn(Connection conn) try conn.close(); catch (SQLException e) e.printStackTrace(); public Connection openConnection() Properties prop = new Propertie

24、s(); String driver = null; String url = null; String username = null; String password = null; try prop.load(this.getClass().getClassLoader().getResourceAsStream( DBConfig.properties); driver = prop.getProperty(driver); url = prop.getProperty(url); username = prop.getProperty(username); password = pr

25、op.getProperty(password); Class.forName(driver); return DriverManager.getConnection(url, username, password); catch (Exception e) e.printStackTrace(); return null; 创建UserDao接口实现类UserDaoImpl.package com.amaker.dao.impl;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.Resul

26、tSet;import java.sql.SQLException;import com.amaker.dao.UserDao;import com.amaker.entity.User;import com.amaker.util.DBUtil;/* * * author 郭宏志 * 用户登录DAO实现类 */public class UserDaoImpl implements UserDao /* * 通过用户名称和密码登录,登录成功返回User对象,登录失败返回null */ public User login(String account, String password) / 查询

27、SQL语句 String sql = select id,account,password,name,permission,remark + from userTbl + where account=? and password=? ; / 数据库连接工具类 DBUtil util = new DBUtil(); / 获得连接 Connection conn = util.openConnection(); try / 获得预定义语句 PreparedStatement pstmt = conn.prepareStatement(sql); / 设置查询参数 pstmt.setString(1

28、, account); pstmt.setString(2, password); / 执行查询 ResultSet rs = pstmt.executeQuery(); / 判断用户是否存在 if (rs.next() / 获得用户信息 int id = rs.getInt(1); String name = rs.getString(4); int permission = rs.getInt(5); String remark = rs.getString(6); / 封装用户信息 User u = new User(); u.setId(id); u.setAccount(account); u.setPassword(password); u.setName(name); u.setPermission(permission); u.setRemark(remark); return u; catch (SQLException e) e.printStackTrace(); fina

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

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