0001Java安卓程序设计-基于Android多餐厅点餐桌号后厨前台服务设计与开发

news2024/11/26 4:25:24

文章目录

    • **摘** **要**
    • **目** **录**
    • 系统设计
    • 开发环境

编程技术交流、源码分享、模板分享、网课教程

🐧裙:776871563

移动互联网时代的到来,给人们的生活带来了许多便捷和乐趣。随着用户的不断增多,其规模越来越大,逐渐变得多元化。移动互联网不断影响、改变着人们的生活。人与食物的距离已经在外卖、生鲜电商和半成品食材电商所提供的解决方案下不断缩短,“网购饭的方式”也多了不少创新,比如餐桌的共享、厨师上门等。然而,还有这样一群人,在“懒人经济”盛行的今天仍然坚持着自己制作购物、研究购物。

下一代移动互联网产业发展方向是“微、小、轻”,手机“APP”已经成为取代手机小APP的最佳选择。所以本次毕业设计特开发了基于Android的多餐厅点餐桌号后厨前台服务。

本说明书介绍了订餐交易类手机APP的分析和设计过程。在阐述了现有的技术和条件的基础上,设计了基于MVC的实现方案,从模型层、视图层和控制层三个方面开发。借助UML建模工具很好的实现了对系统的建模。

系统功能由手机用户端和服务端两部分组成。手机用户端包括注册和登录、关注、收藏、发布产品、产品评论、用户留言等功能。服务端包括用户管理、产品管理、分类管理、公告管理等功能,让管理员通过后台对系统进行管理和维护。系统以MySQL作为后台数据库。

经测试证明,手机产品类手机APP已基本实现预期的功能。界面简洁,便于操作。订餐交易类手机APP的开发,为烘焙爱好者提供了工具,方便了人们对订餐交易的学习和交流。

关键词:订餐交易系统;Android开发;订餐交易

第1章 绪论… 1

1.1研究背景… 1

1.2 研究现状… 1

1.3研究目的和意义… 3

1.4 论文的主要研究内容… 3

1.5 论文组织结构… 4

1.6 本章小结… 4

第2章 相关技术… 6

2.1 SSH框架… 6

2.2 JAVA技术… 7

2.3 MySQL 数据库… 8

2.4 jQuery EasyUI… 9

2.5 JSP技术… 9

2.6技术方案… 10

2.7本章小结… 10

第3章 系统分析… 11

3.1业务过程建模… 11

3.2需求分析… 12

3.2.1功能需求… 12

3.2.2 性能需求… 13

3.3系统模块图… 13

3.4 用例图分析… 14

3.4.1 用例图… 14

3.4.2 用例规约… 16

3.5活动图分析… 20

3.5.1 管理员管理活动图… 20

3.5.2用户活动图… 21

3.6 本章小结… 22

第4章 系统设计… 23

4.1总体架构设计… 23

4.1.1 MVC… 23

4.1.2 SSH框架… 24

4.2功能模块设计… 25

4.2.1用户端模块… 25

4.2.2后台功能模块… 26

4.3时序图… 27

4.3.1 用户登录时序图… 27

4.3.2添加信息时序图… 27

4.3.3产品发布时序图… 28

4.4数据库设计… 29

4.4.1 数据库需求分析… 29

4.4.2 实体图… 30

4.4.3 E-R图… 31

4.4.4 数据库表设计… 32

4.5本章小结… 34

第5章 系统实现… 35

5.1用户功能模块的实现… 35

5.1.1用户注册登录模块… 35

5.1.2首页模块… 38

5.1.3 发布食谱模块… 39

5.1.4 浏览食谱模块… 40

5.1.5 查看用户信息和关注模块… 41

5.1.6 用户聊天界面… 44

5.1.7 查看公告界面… 45

5.2管理员功能模块的实现… 45

5.2.1用户管理界面… 45

5.2.2产品管理界面… 48

5.2.3公告管理界面… 49

5.2.4类别管理界面… 50

5.3手机APP的开发和发布… 50

5.4本章小结… 51

第6章 系统测试… 53

6.1 系统测试环境… 53

6.2测试用例… 53

6.3系统功能测试… 54

6.4系统性能测试… 54

6.5本章小结… 55

第7章 总结与展望… 57

7.1本文总结… 57

7.2后续工作展望… 57

致谢… 59

参考文献… 61

系统设计

1、手机用户端:

(1)未进行注册的游客功能比较单一,主要有以下功能:

<1>注册需求:完成注册才能享受系统的更多功能权限,体验更多功能;

<2>产品查询需求:可以通过分类查询,也可以通过输入关键字来查询;

<3>浏览公告:浏览公告相关的信息,并获得公告想传达的资讯;

(2)注册成功的用户,主要有以下功能:

<1>登录需求:用户在成功登录系统后,才能体验到区别于游客的其他功能;

<2>产品查询需求:这一模块用于产品列表的展示,方便用户对菜品有所了解。可以通过分类查询,也可以根据你输入的关键字获得相应的产品。用户除浏览菜品做法外还可以评论,与其他用户一起切磋交流;

<3>个人信息管理需求:在个人信息管理模块,用户可以修改信息包括个人信息的修改和密码的修改;

<4>产品上传需求:该模块实现用户产品上传功能,实现产品的共享;

<5>关注需求:这一模块实现用户之间的交流功能;

2、后台管理模块:

(1)用户管理模块需求:通过这个模块管理一切注册的用户的信息;

(2)产品管理需求:对所有上传的产品进行管理,包括浏览、删除产品,添加、删除产品分类;

(3)公告管理需求:通过发布系统公告,来保证用户能够第一时间的到系统相关资讯,注意相关事宜。

**
**

QQ截图20211108144438

用户在注册账号的时候,首先进入注册界面,填写用户信息,包括用户名、密码和电话等,如果用户名已经被使用,那么将会提醒用户返回到注册页面,重新填写信息,如果未被使用,且两次密码输入一致即可注册成功,并且相关数据将会自动上传到数据库中。

注册界面

进入系统先看到的是首页,但只是游客身份,只能查看产品。如果想上传产品、收藏产品等必须先登录。注册成功的用户可以直接输入用户名和密码登录。

img

用户登录成功后,转入首页。首页如图5-5所示。页面色彩搭配为经典的红白。首页中间主体的部分是产品列表。顶部是选择按钮,用户可以选择显示食谱列表或作品列表。下面是一个滚动的产品推荐模块。推荐内容为最新产品,用户可以直接点击滚动图片进入产品页面。用户可以按照自己的喜好选择食谱的分类查询产品,或者在搜索栏输入食谱的关键字来搜索。底部是整个应用的导航栏,可通过导航栏进入不同的模块,体验不同的功能。

产品轮播推荐部分,将几张图片放在容器里。图片的样式默认为隐藏,第一张图片额外增加显示到前面的样式。设置定时器,更改图片的样式,实现自动轮播。

img

用户点击底部导航栏的“发布食谱”,或首页右上角的“发布”即可进发布食谱的界面,如图5-6所示。

在编辑食谱时,与其他各类购物网站和APP相同,用户可以选择菜品分类(如小网购、海鲜、西餐、家常菜等),上传各步骤图片,添加文字步骤说明。 食谱发布后会刷新首页的产品列表,同时将信息保存在数据库中。

信息分类,分为作品和食谱。用户可以自主选择。食谱的发布可以不断添加步骤和详细说明。发布的作品,通常是一张图片,配些简短说明,类似于朋友圈中的动态分享。

img

在首页食谱列表中选择一个食谱,即可浏览详细信息。如图5-7。在产品的末处,用户可以对产品点赞,收藏产品、评价,如图5-8。在这个模块中,用户可以先浏览产品,根据下方的评论来判断产品的好坏和难易程度。若是因材料准备不够等原因无法立刻按照产品烹制,可以收藏产品,以备日后查看。收藏的产品可以在个人中心-我的收藏中查看。

imgimg

在浏览产品时,点击作者名可以跳转到该用户的个人基本信息页面。如图5-9所示。在这里除了可以看到用户的基本信息外,还可以查看他发布过的产品抑或是关注该用户。关注列表如下图5-10所示,另外,还可以和关注的用户线上交流。[17]在关注列表界面可以查找用户实现交友功能。

在关注用户列表中,可以选择用户进行一对一交流,有点类似微博的私信功能,这也是系统为用户设计的比较私密的交流空间。

img

关注用户后,可以一对一进行聊天,界面如下图所示:

img

用户可以在底部导航栏选择“我”,然后查看系统的公告内容,如图5-12。[19]用户可以在搜索框输入关键字查询相关公告。在公告列表中,选择一条,点击可以进入详细页面。个人中心除可以查看公告信息外,还可以修改自己的个人信息和密码,查看个人收藏的产品信息。

公告列表

img

img

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DbUtil {
	private String dbUrl="jdbc:mysql://127.0.0.1:3306/database?serverTimezone=UTC&useSSL=false"; // 数据库连接地址
	private String dbUserName="root"; // 用户名
	private String dbPassword="123456"; // 密码
	private String jdbcName="com.mysql.cj.jdbc.Driver"; // 驱动名称
	/**
	 * 获取数据库连接
	 * @return
	 * @throws Exception
	 */
	public Connection getCon(){
		try {
			Class.forName(jdbcName);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Connection con = null;
		try {
			con = DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return con;
	}
	/**
	 * 关闭数据库连接
	 * @param con
	 * @throws Exception
	 */
	public void closeCon(Connection con)throws Exception{
		if(con!=null){
			con.close();
		}
	}
	
	public static void main(String[] args) {
		DbUtil dbUtil=new DbUtil();
		try {
			dbUtil.getCon();
			System.out.println("数据库连接成功!");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("数据库连接失败");
		}
	}
}


开发环境

开发工具:idea、Navicat

数据库:MySQL8.0

环境配置:jdk1.8 、Tomcat8.5

开发人员:IT012201

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1170775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetCode 494. 目标和 + 动态规划 + 记忆化搜索 + 递推 + 空间优化

关于本题我的往期文章&#xff1a; LeetCode 494.目标和 &#xff08;动态规划 性能优化&#xff09;二维数组 压缩成 一维数组_呵呵哒(&#xffe3;▽&#xffe3;)"的博客-CSDN博客https://heheda.blog.csdn.net/article/details/133253822 给你一个非负整数数组 nums…

从lc114. 二叉树展开为链表到lc-LCR 155二叉搜索树转化为排序的双向链表

1 lc114. 二叉树展开为链表 1.1 描述 进阶&#xff1a;你可以使用原地算法&#xff08;O(1) 额外空间&#xff09;展开这棵树吗&#xff1f; 1.2 解法一&#xff1a; 先序遍历这棵树并且将节点加入到一个list中&#xff0c;随后按顺序将list中的每一个元素的left指针置换为…

如何保证消息只被消费一次

目录 前言 一、什么是幂等&#xff1f; 二、在生产过程中增加消息幂等性的保证 三、在消费过程中增加消息幂等性的保证 前言 消息一旦被重复消费&#xff0c;就会造成业务逻辑处理的错误。那么我们要如何避免消息的重复呢&#xff1f; 想要完全的避免消息重复的发生是很难…

全方位移动机器人 SolidWorks 转 URDF 并在 Rviz 中仿真

全方位移动机器人 SolidWorks 转 URDF 并在 Rviz 中仿真 参考 solidworks转URDF&#xff0c;并且在rviz中仿真 从solidworks导出URDF模型 Export a SolidWorks Assembly to URDF Solidworks模型导出urdf SolidWorks 模型简化 将整车除车轮部分另存为零件&#xff0c;作为一个…

MySQL连接时出现Host ‘::1‘ is not allowed to connect to this MySQL server

报错原因 之前想着要提高一下连接速度&#xff0c;所以在my.ini中加入了&#xff1a;skip-name-resolve&#xff0c;当时的数据库root账号设置的登录权限是%&#xff0c;因此没有出现连接错误&#xff0c;这次因为是新建数据库&#xff0c;root账号的登录权限默认是localhost&…

如何基于链表与数组实现栈

这里写目录标题 栈的基础知识基于数组实现栈基于链表实现栈 栈的基础知识 栈&#xff0c;又名堆栈&#xff0c;是一种受限的线性表&#xff0c;这意味着该线性表只能在一段进行插入或删除操作。具体来说&#xff0c;栈顶是允许进行插入或删除操作的一端&#xff0c;而相对的另…

零基础入门网络安全白帽黑客,挑战年薪30w!

最近好朋友老李说他想转渗透测试。 他说&#xff1a;运维这块干了3年了&#xff0c;感觉自己目前有点迷茫&#xff0c;不知该怎么去提升了。而在日常工作生活当中&#xff0c;黑客攻击可以说是很常见了&#xff0c;他感觉到网络安全越来越重要&#xff0c;对软件测试的要求也不…

大疆Livox MID-360安装ROS1/2驱动 Ubuntu20.04

文章目录 一、接线连接二、安装上位机可视化工具三、安装ROS驱动3.1 配置静态IP3.2 安装Livox SDK23.3 安装ROS驱动3.4 驱动 本文介绍如何在Ubuntu20.04中安装大疆Livox MID-360的ROS1/2驱动 一、接线连接 livox航插一分三线&#xff0c;其中航空母头连接激光雷达&#xff0c…

Spring | Sring Task (定时任务框架) 、微信小程序开发

目录&#xff1a; 一、Sring Task (定时任务框架) &#xff1a;Sring Task介绍Spring Task应用场景corn表达式corn表达式在线生成器SpringTask入门案例&#xff1a;导入maven依赖启动类上添加 EnableScheduling 注解定时方法上添加 Scheduled( cron “xxxxx” ) 注解自定义“定…

ZKP Introduction of Nova (Yu Guo) 手写笔记

ZKP学习笔记 郭宇老师Nova课程手写笔记

创建asp.net api和docker-compose项目

vs2022创建asp.net core web api项目 创建完成 添加docker-compose支持 添加成功 docker配置 docker-compose配置

腾讯云3年轻量2核2G4M服务器从366.6元三年涨价了?

2023腾讯云双11优惠活动3年轻量应用服务器涨价了&#xff1f;确实是涨价了&#xff0c;仅限于三年时长轻量应用服务器&#xff0c;一年时长并没有涨价&#xff0c;相比隔壁阿里云&#xff0c;腾讯云依旧在提供三年轻量应用服务器和5年时长云服务器CVM已经很难得了&#xff0c;想…

集线器、交换机、网桥、路由器、网关

目录 集线器(HUB)交换机(SWITCH)网桥(BRIDGE)路由器(ROUTER)网关(GATEWAY)交换机和路由器的区别参考 集线器(HUB) 功能 集线器对数据的传输起到同步、放大和整形的作用 属于物理层设备 工作机制 使用集线器互连而成的以太网被称为共享式以太网。当某个主机要给另一个主机发送单…

如何使用 SwiftUI 中新地图框架 MapKit

文章目录 前言MapKit 弃用项MapContentBuilder&#xff08;iOS 17&#xff09;地图交互地图样式地图控件地图相机位置总结 前言 了解 iOS 17 中的 MapKit 后&#xff0c;我们会发现 Apple 引入了更适合 SwiftUI 的 API。 MapKit 弃用项 一旦将你的 App 目标更新到 iOS 17&am…

OpenGL ES入门教程(二)之绘制一个平面桌子

OpenGL ES入门教程&#xff08;二&#xff09;之绘制一个平面桌子 前言0. OpenGL绘制图形的整体框架概述1. 定义顶点2. 定义着色器3. 加载着色器4. 编译着色器5. 将着色器链接为OpenGL程序对象6. 将着色器需要的数据与拷贝到本地的数组相关联7. 在屏幕上绘制图形8. 让桌子有边框…

立创eda 焊接辅助工具使用

立创EDA为板级EDA设计软件。EDA指的是通过计算机的辅助完成电路原理图、印刷电路板文件等的绘制、制作、仿真设计。 立创EDA是一款基于浏览器的&#xff0c;专为中国人设计的&#xff0c;友好易用的EDA设计工具。起于2010年&#xff0c;完全由中国人独立开发&#xff0c;拥有独…

Ubuntu下安装vscode,并解决终端打不开vscode的问题

Visual Studio Code安装 1&#xff0c;使用 apt 安装 Visual Studio Code 在官方的微软 Apt 源仓库中可用。按照下面的步骤进行即可&#xff1a; 以 sudo 用户身份运行下面的命令&#xff0c;更新软件包索引&#xff0c;并且安装依赖软件&#xff1a; sudo apt update sud…

女孩子穿这种粉粉嫩嫩~的卫衣也太好看了吧

果然女孩子穿这种粉粉嫩嫩的衣服 真的超级有甜美可爱氛围哎 软糯亲肤的面料&#xff0c;上身很舒服哦 时尚polo领加上半拉链设计 既实用又美观&#xff0c;穿脱很方便

如何使用Selenium处理Cookie,今天彻底学会了!

01、cookie介绍 HTTP协议是无状态的协议。一旦数据交换完毕&#xff0c;客户端与服务器端的连接就会关闭&#xff0c;再次交换数据需要建立新的连接&#xff0c;这就意味着服务器无法从连接上跟踪会话。也就是说即使第一次和服务器连接后并且登录成功后&#xff0c;第二次请求…

进程终止(不同情况+如何查看:strerror,echo $?),终止的方法(return,exit,_exit),exit和_exit的不同

目录 进程终止 进程终止是什么 进程终止的情况 代码跑完,结果正确/不正确 提前知道结果 不知道结果 strerror 示例 -- echo $? 代码未跑完,程序崩溃 示例 进程退出方法 return退出码 exit(status) _exit(status) exit()和_exit()的不同 示例 缓冲区位置 进…