当前位置: 魅力文档网 > 范文大全 > 公文范文 >

安卓课程设计_ZZU线点餐系统

| 来源:网友投稿

  郑州大学软件学院

  《移动终端开发》课程作业

  项目名称:

 ZZU 在线点餐系统

 班

 级:

 计算机科学与技术五班

  项目组长:学号 20177710541 姓名 王帅兵

 项目成员:学号 20177710538

 姓名 王笠疆

  2020 年 6 月 25 日 目录 一、

 项目背景 ................................................................................................................................ 3

 1.1 项目背景................................................................................................................................. 3

 二、

 项目设计 ................................................................................................................................ 4

 2.1 用例模型设计 ......................................................................................................................... 4

 2.2 系统功能设计 ......................................................................................................................... 5

 2.2.1 登录时序图 ................................................................................................................... 5

 2.2.2 点餐时序图 ................................................................................................................... 5

 2.3 项目活动图 ............................................................................................................................. 6

 2.4 SQLite 数据库设计 ................................................................................................................. 7

 三、

 项目实现 ................................................................................................................................ 9

 3.1 主界面 .................................................................................................................................... 9

 3.2 注册页面............................................................................................................................... 10

 3.3 登陆界面............................................................................................................................... 11

 3.4 菜品管理界面 ....................................................................................................................... 13

 3.5 点餐界面............................................................................................................................... 16

 3.6 人员管理界面 ....................................................................................................................... 18

 3.7 订单管理界面 ....................................................................................................................... 20

 四、项目总结 .................................................................................................................................... 23 4.1 项目分工...................................................................................................................................................................20 4.2 总结 .................................................................................................................................... 230

 一、项目背景 1.1 项目背景 通过手机点餐,减少服务员的劳动力,减少餐厅的成本,从而使菜品的价格更加优惠,达到物美价廉,减少不必要的浪费。我们常常去餐厅会有点餐单,而点菜单往往是一次性的,用 Android 手机点餐,不需要纸质介绍,并且可以更好的了解菜品,减少一次性浪费。减少劳动力。餐厅的生意是有固定的时间段,而在单位时间内做更多有效的事情,间接的可以降低营业者的成本。我们以往点餐,服务员都会在旁边用纸和笔记录,即使是俩人点餐,也需要 5~10 分钟,人多可能需要的时间会更

 长。而用手机点餐可以节省这段时间。还有就是,为了更好的汇总信息,有些饭店还会把点餐的信息录入电脑,而这一过程有需要人力来完成。顾客与顾客产生互动。手机点餐,可以丰富菜单内容,对每个菜品可以有更加详细的介绍。而且可以加入以往顾客对菜品的评价,哪些菜符合哪些人口味,也让顾客有针对性的点餐,同时也增加点餐的乐趣。

 二、项目设计 2.1 用例模型设计 对于登录页面,通过 activity_login.xml 来设计页面布局,通过 login.java 来设置按钮监听事件和对数据库的查询操作。用户可以注册登录,对菜品管理包括增删改,可用系统帮客户点餐,同时对订单管理,可以查询历史订单,同时用户可以对人员进行管理,可以对登陆系统的用户账号进行删改。用户用例图如下

 2.2 系统功能设计 2.2.1 登录时序图

  2.2.2 点餐时序图

 2.3 项目活动图 通过项目活动图可以体现出用户使用该软件的具体流程:

  2.4 SQLite 数据库设计

  在本次设计中,数据库中有四张表,用户表存放用户注册信息,用来用户登录时验证,食物表用来存放菜品信息,可用来对菜品的管理,订单表和订单详情表用来管理订单。

 用户表(User):

 字段名 描述 数据类型 stu_id 学号(主键,唯一标识)

 varchar name 姓名 varchar password 密码 varchar

  食物表(food)

 字段名 描述 数据类型 Id(主键) 菜品 id(自增,唯一标识)

 Short Name

 菜品名字 Varchar Kind

 菜品类型 varchar Price 菜品价格 Double Note 备注 varchar 订单表(Orders):

 字段名 描述 数据类型 Id(主键) 订单号(自增,唯一标识)

 Short Dorm 宿舍楼 Short Dorm_id 宿舍号 varchar Description 食品描述 varchar SaleDay 购买时间 Date Sum 购买数量 Short totalPrice 购买总额 Double

 订单详情表(OrderDetail):

 字段名 描述 数据类型 Order_Id(主键) 订单号(参照订单表)

 Short Count 购买数量 Short Kind 种类 varchar FoodName 食品名称 varchar

 三、项目实现 3.1 主界面 用户打开软件后会进入该界面,老用户可以点击登录按钮进行登录,新用户可以点击注册按钮跳转到注册页面进行注册

 3.2 注册页面 新用户点击注册页面,输入用户名和密码即可完成注册,对于注册页面,通过 activity_register.xml 来设计页面布局,通过 register.java 来设置按钮监听事件和对数据库的插入操作。

 1. //用 getWritableDatabase()方法获得数据库的实例 2. SQLiteDatabasedb=dbHelper.getWritableDatabase();

  3. //通过 getText()方法获得所填入的用户名和密码,然后用 insert()方法将用户名和密码插入到所创建的数据库中。

  4. String stu_id= id.getText().toString();

  5. String stu_name=name.getText().toString();

  6. String stu_pwd= pwd.getText().toString();

  7. values.put("stu_id",stu_id);

  8. values.put("name",stu_name);

  9. values.put("password",stu_pwd);

  10. db.insert("User",null,values); 注册界面:

  3.3 登陆界面 老用户通过输入自己的用户名和密码进行登录,这部门通过对输入账号密码与在数据库中的值是否相同来匹配,匹配不过则报账号或密码输入错误

 1. //通过打开数据库,并为按钮设置监听器 2. dbHelper=new MydatabaseHelper(this,"User.db",null,2);

  3. FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

  4. fab.setOnClickListener(new View.OnClickListener() {

  5. @Override

  6. public void onClick(View view) {

  7. Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show();

  8.

  }

  9. });

  10. //用 getWritableDatabase()方法获得数据库的实例

  11. SQLiteDatabasedb=dbHelper.getWritableDatabase();

  12. //通过 query 方法对数据库进行查询

  13. Cursor cursor=db.query("User",null,"name=? andpassword=?",selectionArgs,null,null,null);

 登录界面:

 登录后的主操作界面:

 3.4 菜品管理界面 用户登录以后可对菜品进行管理,可以增加菜品,修改菜品信息,若菜品不再供应可对其进行删除,通过按钮的监听获取各组件的值存入数据库或者删除。这里仅粘贴部分代码。

 1. String name=etFoodName.getText().toString();

  2. String price=etFoodPrice.getText().toString();

  3. String note=etFoodNote.getText().toString();

  4. Food food=new Food();

  5. food.setKind(kind);

  6. food.setDes(note);

  7. food.setPrice(Double.parseDouble(price));

  8. food.setName(name);

  9. food.save();

  10. Toast.makeText(EditFood.this,"修改成功",Toast.LENGTH_SHORT).show();

  11. Intent intent1=new Intent(EditFood.this,index.class);

  12. startActivity(intent1);

  13. switch (view.getId()){

  14.

  case R.id.btn_food_ma_edit:

  15.

  for (int i=0;i<Foodlist.size();i++){

  16.

  if (i==(Integer)view.getTag()){

  17.

 Log.d(TAG, "onClick: 点击了 btn_user_edit 的第"+i+"条------------");

  18.

  Intent intent=new Intent(context,EditFood.class);

  19. intent.putExtra("foodname",Foodlist.get(i).getName());

  20. startActivity(context,intent,null);

  21.

  }

  22.

  }

  23.

  break;

 24.

  case R.id.btn_food_ma_del:

  25.

  for (int i=0;i<Foodlist.size();i++){

  26.

  if (i==(Integer)view.getTag()){

  27.

 Log.d(TAG, "onClick: 点击了 btn_user_edit 的第"+i+"条------------");

  28.

  LitePal.deleteAll(Food.class,"name=?",Foodlist.get(i).getName());

  29. Toast.makeText(context,"刪除成功",Toast.LENGTH_SHORT).show();

  30. fma=new FoodManager();

  31. fma.foodManage(context,fview);

  32.

  }

  33.

  }

  添加菜品界面:

 浏览菜品界面:

 修改菜品:

  3.5 点餐界面 当有客人进行点餐的时候,用户可以点击点单帮客人下单,包括宿舍楼号,宿舍号,选择的菜品和酒水。用户点击结账即可提交到数据库生成订单,核心代码如下:

 1. ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>>();

  2.

 Map<String ,Object> line;

  3.

 for (int i=0;i<foodList.size();i++){

  4.

 line=new HashMap<String ,Object>();

  5.

 Log.d(TAG, "getData: ------------------"+foodList.get(i).toString());

  6.

 line.put("foodid",foodList.get(i).getId());

  7.

 line.put("no",orderedList.size()+1);

  8.

 line.put("name",foodList.get(i).getName());

  9.

 line.put("description","备注");

  10.

 line.put("num",nums.get(i));

  11.

 line.put("price",foodList.get(i).getPrice());

  12.

 line.put("checked",true);

 13.

 data.add(line);

  14.

 }

  15.

 orderedLtv.setVisibility(View.VISIBLE);

  16.

 refreshSum(num*food.getPrice());

  17.

 return data;

  点餐界面:

 结账界面:

  3.6 人员管理界面 用户可对历来登陆的用户进行管理,点击修改即可修改用户账户或密码,当用户注销是可删除该用户信息,核心代码如下:

 1. QLiteDatabasedb=dbHelper.getWritableDatabase();

  2. ContentValues values=new ContentValues();

  3. String stu_id=id.getText().toString();

  4. String stu_name= username.getText().toString();

  5. String stu_pwd=pwd.getText().toString();

  6. values.put("stu_id",stu_id);

  7. values.put("name",stu_name);

  8. values.put("password",stu_pwd);

  9. db.update("User",values,"stu_id=?",new String[]{data});

  10. values.clear();

  11. Toast.makeText(EditUser.this,"修改成功",Toast.LENGTH_SHORT).show();

  12. Intent intent=new Intent(EditUser.this,login.class);

  13. startActivity(intent);

 14. String stu_id=cursor.getString(cursor.getColumnIndex("stu_id"));

  15. String name=cursor.getString(cursor.getColumnIndex("name"));

  16. String password=cursor.getString(cursor.getColumnIndex("password"));

  17. Person person=new Person();

  18. person.setId(Integer.parseInt(stu_id));

  19. person.setName(name);

  20. person.setPassword(password);

  21. personList.add(person);

  用户修改和删除界面:

  3.7 订单管理界面 用户可以对订单进行管理,查询历史订单,后期可拓展为生成订单报表,核心代码如下:

 1. protected void onCreate(Bundle savedInstanceState) {

  2.

 super.onCreate(savedInstanceState);

  3.

 setContentView(R.layout.activity_liushui);

  4.

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

  5.

 setSupportActionBar(toolbar);

  6.

 initView();

  7.

 //初始日期

  8.

 dialog_tv_date = findViewById(R.id.dialog_tv_date);

  9.

 //结束日期

  10.

 dialog_tv_time = findViewById(R.id.dialog_tv_time);

  11.

 final EditText et_num_query_order=findViewById(R.id.et_num_query_order);

  12.

 Button btn_query_order=findViewById(R.id.btn_query_order);

  13.

 Button btn_num_query_order=findViewById(R.id.btn_num_query_order);

 14.

 final TextView ordershowTexiview=findViewById(R.id.ordershowTexiview);

  15.

 show = "订单";

  16.

 btn_num_query_order.setOnClickListener(new View.OnClickListener() {

  17.

 @Override

  18.

 public void onClick(View view) {

  19.

 List<OrderDetail> orderDetail=LitePal.select().where("order_id=?",et_num_query_order.getText().toString()).find(OrderDetail.class);

  20.

  List<Orders> orders=LitePal.select().where("id=?",et_num_query_order.getText().toString()).find(Orders.class);

  21.

 Log.d(TAG, "onClick: ---------------------ordersize"+orderDetail.size()+"---"+orders.size());

  22.

 for (int i=0;i<orderDetail.size();i++){

  23.

 show = show +orderDetail.get(i).toString();

  24.

 }

  25.

 show=show+orders.get(0).toString();

  26.

 ordershowTexiview.setText(show);

  27.

 show=null;

  28.

 }

  29.

 });

  根据日期查询:

  根据订单号查询:

  四、项目总结 4.1 项目分工情况

 20177710541 王帅兵 用户点餐,菜品管理,订单管理,数据库设计 20177710538 王笠疆 用户注册,用户登录,人员管理,菜品浏览

 4.2 总结

 基于 Android 的在线点餐系统将顾客的位置、点餐 、结账 、订单传送到后台等全部操作都囊括其中,改善以往的繁琐操作。对学校来说,既可以节省人力成本 ,又能在疫情期间减少人员的密集。同时该系统还具备诸多可塑空间,随着研发的深入,还可拓展如外送下单模块、用户评价模

 块、餐厅活动推送的模块,为餐馆经营者提供更为广阔的营销及客户交流互动平台。基于 Android 的无线点餐系统跟上科技步伐,适应市场规则,必然获得更多的认同及普及,具有广阔的市场前景及研究开发价值。

 在本学期的安卓程序设计中,基本完成了网上订餐的基础功能的设计,同时深刻感受到 Android 为我们提供了很好的类似反射机制,通过layout 文件夹下的配置文件,可以快速的形成界面。掌握了对一些点中、选中、按键等事件的处理,界面之间的跳转 intent 管理,通过 bundle 对数据在界面之间进行传输。作为一个嵌入式的数据库引擎 SQLite 也能很方便地进行数据存取,同时也知道了 Android 程序设计的基本流程。但是我们的系统交互界面不够美观,整个项目相对粗糙,没有过多的装饰,而且没有管理员登录入口,未来我们会继续深入学习,继续完善项目。最后感谢老师一个学期的辛苦付出!


推荐访问:课程设计 系统 _ZZU

热门排行

大学生对新时代的理解500字9篇

大学生对新时代的理解500字9篇大学生对新时代的理解500字篇1一代人有一代人的长征,代人有一代人的担当。今天,新时代青年面临着难得的建功立业的人生际遇,也

领导班子运行情况报告范文6篇

领导班子运行情况报告范文6篇领导班子运行情况报告范文篇1对x外墙、屋檐瓷砖脱落或渗水的地方进行了全面排查与修复,保障了小区居民的正常生活秩序。下面是天涯涛源

全面从严治党和党风廉政建设5篇

全面从严治党和党风廉政建设5篇全面从严治党和党风廉政建设篇1按照局党组关于全面从严治党和党风廉政建设工作的各项要求,严格执行“三严三实”各项要求,坚决从点滴

组织生活会存在问题原因分析及整改措施10篇

组织生活会存在问题原因分析及整改措施10篇组织生活会存在问题原因分析及整改措施篇1根据区纪委、区委组织部相关文件精神,区委党校组织召开2017年度机关支部组

“听党话、感党恩、跟党走”宣讲素材7篇

“听党话、感党恩、跟党走”宣讲素材7篇“听党话、感党恩、跟党走”宣讲素材篇1根据县委宣传部《关于在全县开展&ldquo;学习贯彻省委十三届七次全会精神、奋力

2022保密工作会议记录内容5篇

2022保密工作会议记录内容5篇2022保密工作会议记录内容篇1本次培训生动形象地介绍了与日常工作生活息息相关的窃密技术和泄密案例,给人以深深的震撼及反思。

纪委落实全面从严治党监督责任情况报告5篇

纪委落实全面从严治党监督责任情况报告5篇纪委落实全面从严治党监督责任情况报告篇1知民意、解民忧、帮民难、促民富、得民心。下面是众鑫文档网小编为您推荐县纪委书

新时期产业工人队伍建设改革工作总结8篇

新时期产业工人队伍建设改革工作总结8篇新时期产业工人队伍建设改革工作总结篇1在全院深入开展干部作风整顿活动,提出以“四个着力”深化整治措施,力促落实整改,筑

2020纪检干部警示教育心得感悟【5篇】

2020纪检干部警示教育心得感悟五篇  严以修身、严以用权、严以律己,谋事要实、创业要实、做人要实&

2023年悲观与乐观议论文五篇(范文推荐)

悲观与乐观议论文1  人生来有就不同种的心态,主观上客观上的都是不同的感受。遇到问题时所产生的观念也不同。任何苦难都是在所难免的,最重要的是看自己怎么...