【安卓APP源码和设计报告(含PPT)——订餐系统

news2024/11/16 1:17:20

a0fd6e0dd1474f17b683a59ee33e6bdf.webp

94dd26c47b0c480f9ab5e013bba5f24b.jpeg 

15d0611fcefb4389881606940ef4f41e.jpeg 

d08a687ee2664ba88ff9dba809910df4.webp 

 

订餐系统实验报告

课程名称: Android程序设计

班 级:

学 号:

姓 名:

任课教师:

 

程序功能与环境(服务器,手机实物照片,自己拍)

程序功能

餐厅订餐系统服务器,提供订餐服务

餐厅订餐系统客户端,用户用来提交订单

环境

带有tomcat服务器的PC机一台,发布订餐服务支持

安卓手机一部,测试客户端

局域网环境,用来测试程序功能

MVC架构用例,类图,(类图可以将文档页面放大了看)

 

数据与设计

food.test.domain

Food.java

此类用于封装用户购买菜品的信息

public int foodId; //菜品编号

public String foodName; //菜品名称

public float foodPrice; //菜品价格

public int foodType; //菜品类型

public String foodDescri; //菜品描述

public String foodImage; //菜品图片——暂定为String类型用于存储图片名

 

 

food.test.hyl

OrderListActivity.java

此类为用户填写订购信息的Activity,用来处理订购信息,与用户进行交互,是连接用户和服务器的桥梁

protected void onCreate(Bundle); //创建activity

在onCreate函数中定义了两个按钮,并设置了监听函数:

bsubmit.setOnClickListener(new OnClickListener() {//提交清单按钮被按下

public void onClick(View v) {} //按钮被按下时触发

private void callPost(Object[][] foods, String address,

String email, String telephone, String suggest,String userId,String userName) {}//创建post方法,用来像服务端发送post请求

};

bcancel.setOnClickListener(new OnClickListener() {//取消按钮被按下。

//用intent调用返回购物车界面

Intent intent = new Intent(OrderListActivity.this,ShopCartShowAll.class);

startActivity(intent);

});

protected Dialog onCreateDialog(int id); //创建对话框,用来显示用户提交信息的状态

void onResume();//在视图按home键退出后,然后恢复时调用

 

 

food.test.ld

ActivityComment.java

此Activity是用来给用户填写对菜品的评论信息的,并提交到服务器

设置了两个按钮bdone和brevert并设置监听,被点击时触发

Bdone,提交信息

Brever,重写信息

ActivityMainInterface.java

此类创建了选择菜单,用来选择对菜品进行评论

@Override

public boolean onCreateOptionsMenu(Menu menu) {}//创建选择菜单

@Override

public boolean onOptionsItemSelected(MenuItem item) {}//菜单项被点击时调用

ActivityRegister.java

此Activity类用来进行用户注册

bdone.setOnClickListener(new OnClickListener();设置用户信息完成时提交信息按钮监听

在public void onClick(View v);中测试用户名及密码是否为空,为空时给出提示,并判断两次输入的密码是否相同

,并设置相同时跳转到用户登录界面即主界面

OrderFoodLogin.java

此类用于用户登录,并将用户信息提交到服务器进行匹配,并提示登录信息

方法与上面的类似

mp = new MediaPlayer();//播放音乐

接下来的几个函数用来控制播放音乐

 

 

food.test.sfp

UserLogin.java

此类用来创建显示用户登录状态的对话框,并通过toast给出登录状态信息

private Dialog createLoginDialog(Context context){}//创建登录对话框

@Override

protected Dialog onCreateDialog(int id); //重写创建对话框函数

 

 

food.test.util

DButil.java

此类为数据库工具类,用于对数据库的操作

public DButil(Context context);//DButil的构造函数

private void init();//数据库初始化函数

public long addFood(ShopCart food); // 新增一条购买商品记录

public Cursor getAllCartCursor();//查询所有的游标

public ArrayList getAllShopCart();//得到购物车表里的所有数据

public ArrayList<ShopCart> getFoodFromCart();//返回所有shopCart类型的ArrayList

public int ModifyShopcart(int foodId,int foodnum,float foodsumprices ); //修改购物车中所有的数据

public int deleteAllShopcart();//删除购物车中所有的数据

public int deleteFood(String whereparam); //删除不需要的商品

public ShopCart findFood(int foodid); //查找需要的商品

public SQLiteDatabase getDB();//获取数据库连接

public void close();//关闭数据库

class MySQLiteHelper extends SQLiteOpenHelper{};//内部类,创建数据库辅助类

HttpCallUtil.java

此类封装了HTTP的连接

public String getConntionPost(String url, String name,String psw,List data);// post请求

public List putParam(List data);// 传递给服务端的数据,用Map进行封装

public String getConntionGet(String url);// get请求

public void getConntionImage(String url,ImageView iv);// 取得图片

Util.java

此类为工具类

public Adapter initAdapter(Context context,ArrayList list,Cursor cur,int layout,String[] from,int[] to);// 实例化不同的适配器

 

 

food.test.wjf

ModifyListCart.java

此类用于修改购物车中的信息,比如订购的数量等

Intent intent = getIntent(); //获取从购物车中传过来的信息

foodid = intent.getIntExtra("foodid", 0); //拿到购物车中传过来的食品编号 foodID

foodname = intent.getStringExtra("foodname");//拿到购物车中传过来的食品名称foodname

foodnum=intent.getIntExtra("foodnum", 1); //拿到购物车中传过来的食品订购数量

foodprice = intent.getFloatExtra("foodprice", 1.0f); //拿到购物车中传过来的食品单价foodpricce

bmodify.setOnClickListener(new OnClickListener() {//设置修改按钮监听函数,设置当按钮被点击时修改食品的订购信息,并返回到购物车

db.ModifyShopcart(foodid, foodnum, sumfoodprices); //对购物车中的食品进行修改

Intent intent = new Intent(ModifyListCart.this, ShopCartShowAll.class);// //回到购物车界面

startActivity(intent);

ShopCart.java

定义一个购物车的类,封装购物车的信息

private int foodId;// 商品id

private String foodName;// 商品名称

private float foodPrice;// 商品单价

private int foodNum;// 商品数量

private float sumPrices;// 商品金额

private int image;// 商品图片

下面为每个变量设置set和get方法

ShopCartAdd.java

此类用于添加购物车,并设置跳转到购物车界面

ShopCartShowAll.java

此类用来显示购物车中的所有食品,并对食品进行增删操作

db=new DButil(this); //初始化数据库

shopcur=db.getAllCartCursor();//获得购物车中所有的游标

shopcartList=db.getAllShopCart();//获取数据库中所有的数据

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

food=(HashMap) shopcartList.get(i);

Float prices= (Float) food.get("foodsumprices");

//得到所有餐品总的金额

totalprices+=prices;

}

private Dialog builder1(Context ctx) ;//创建修改,删除对话框,设置按钮监听

private Dialog builder2(Context ctx);//创建确认删除对话框

public boolean onCreateOptionsMenu(Menu menu);创建菜单功能,按菜单键弹出

public boolean onOptionsItemSelected(MenuItem item);选择菜单项时触发

ShowListCart.java

显示购物车列表

 

 

food.test.zqz

util

FoodType.java

默认为“肉食”FOOD_MEAT类

GetNetWorkData.java

从服务器获取有关主界面的所有数据

public final static StringBuffer getConnectionPost(String url,

HashMap<String, String> params);// url服务器端的URI地址, params发给服务端的请求参数,以键值对的形式封装名字和对应的值,其中params的名字键位应该跟服务端保持一致

public final static ArrayList<Food> decodeResponseData(String sb);// 对服务器端的响应数据进行“解码”, sb服务器端的响应数据

public static ArrayList<Foo

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

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

相关文章

45. python %占位符格式化处理

45. %占位符格式化处理 文章目录45. %占位符格式化处理1.课题导入2. %占位符概念3. %d格式化为整数3.1 %d将整数格式化到指定位置3.2 %d将浮点数格式化为整数1. 知识回顾&#xff1a;用int函数将浮点数转换为整数2. 用%将浮点数格式化为整数4. %s格式化为字符串4.1 %s将整数格式…

论文笔记-时序预测-Triformer

论文标题&#xff1a; Triformer: Triangular, Variable-Specific Attentions for Long Sequence Multivariate Time Series Forecasting 论文链接&#xff1a; https://arxiv.org/abs/2204.13767v1 代码链接&#xff1a; https://github.com/razvanc92/triformer 摘要 各种现…

[附源码]计算机毕业设计基于JEE平台springbt技术的订餐系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Spring源码解析-环境变量

“不积跬步&#xff0c;无以至千里”。 今天聊一聊Spring中环境变量的动态添加和填充Bean属性的时候一些带“$”符号的属性值的解析问题。 因为最近做项目的时候发现了一个有意思的问题&#xff0c;之前也没关注过。因为项目中使用的容器类型是GenericXmlApplicationContext&a…

从GPT-3到CHAT-GPT(CHAT-GPT如何申请)

回顾2020年7月 2020年7月份有一个重大新闻&#xff0c;人工智能科研公司OpenAI&#xff0c;推出了它的新一代语言模型 GPT-3&#xff08;Generative Pretrained Transformer 3&#xff09;&#xff0c;这个事情在社交媒体影响甚广&#xff0c;甚至有一篇文章《一个新型 AI 震惊…

动态代理详解

目录 一、动态代理_代理模式简介 二、动态代理_JDK动态代理 dynamic 三、动态代理_CGLib动态代理 四、JDK和CGLib动态代理的区别 一、动态代理_代理模式简介 代理模式是23种设计模式之一。设计模式是前人总结的&#xff0c;在软件开发过程遇到常用问题的解决方案&#xff0…

微服务框架 SpringCloud微服务架构 微服务保护 30 初识Sentinel 30.4 引入cloud-demo

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务保护 文章目录微服务框架微服务保护30 初识Sentinel30.4 引入cloud-demo30.4.1 引入cloud-demo30.4.2 微服务整合Sentinel30 初识Sent…

尝试使用CubeMX做stm32开发之十三:Clock Configuration(时钟树配置)

参考《STM32中文参考手册_V10》&#xff0c;研究CubeMX中有关时钟树配置。 一、系统时钟配置 三种不同的时钟源可被用于驱动系统时钟&#xff08;SYSCLK&#xff09;&#xff1a; HSI振荡器时钟HSE振荡器时钟PLL时钟 时钟源选择对应时钟配置寄存器&#xff08;RCC_CFGR&…

Android -- 每日一问:修改 SharedPreferences 后两种提交方式有什么区别?

知识点 SharedPreferences 类是一个接口类&#xff0c;真正的实现类是 SharedPreferencesImpl 。修改 SharedPreferences 需要获取它的 Editor&#xff0c;在对Editor进行put操作后&#xff0c;最后通过 commit 或者 apply 提交修改到内存和文件。当然有了两种都可以提交的方法…

Java进程线程介绍创建和执行销毁并理解线程安全和线程池 Native Method

目录1.进程和线程2.多线程的核心3.操作系统的多任务--以非常小的时间间隔交替执行4.native 修饰的方法5.Thread创建线程的两种方式1.普遍采用实现Runnable接口的方式2.继承Thread方式6.自定义线程用 new Thread(Runnable target) 启动源码分析6.1-new Thread(myThread)6.2对实例…

mysql8.0.21安装配置方法图文教程

记录了mysql 8.0.21 的安装配置方法&#xff0c;分享给大家。 一、下载 1、下载安装包 mysql下载路径 2、解压压缩包 3、在此目录下新建my.ini配置文件 [mysqld] # 设置 3306 端口 port3306 # 设置 mysql 的安装目录 basedirD:\mysql-8.0.21-winx64 # 设置 mysql 数据…

破案了!不会讲笑话不会作诗的chatGPT!

热出圈的chatGPT, 必须亲手试试热出圈的chatGPT, 必须亲手试试1 猜猜我是谁2 问网传图片李白风格注释代码3 写个程序看看4 帮我猜猜世界杯&#xff08;发了发了&#xff0c;偷笑脸&#xff09;5 知道李白吗&#xff1f;6 那你会写诗吗&#xff1f;6 那你讲脑经急转弯吗&#xf…

linux服务器安装docker(学习中)

linux服务器安装docker1、docker官网寻找官方文档1.1、卸载之前的docker1.2、安装yum工具类1.3、配置docker下载源的地址1.4、安装最新稳定版的docker1.5、启动docker1.6、docker镜像下载加速2、docker-卷-映射和挂载2.1、nginx1、docker官网寻找官方文档 然后根据官网文档进行…

高性能零售IT系统的建设08-9年来在互联网零售O2O行业抗黑产、薅羊毛实战记录及打法

前言 2012年左右转入互联网应用&#xff0c;由于本身在学校时就涉足过远程医疗影像中的DICOM安全领域这块&#xff0c;因此也是机缘巧合我进入互联网第一年就遇上了一次亿级的DDOS攻击以及千万级CC攻击短信系统的对抗。那时在公司一战成名&#xff0c;直接从team leader升到了主…

adb remount原理

1, 输入"fastboot flashing unlock" in adb ,waiting for the device 2, 输入"fastboot flashing unlock_critical"in adb ,waiting for the device 3, 输入"fastboot reboot" reboot the stb, press any key entering the boot mode 4, after…

tensorflow入门(三)tensorflow下神经网络参数的设置

参考 Tensorflow入门 - 云社区 - 腾讯云 神经网络中的参数是神经网络实现分类或回归问题中重要的部分。在tensorflow中&#xff0c;变量(tf.Variable)的作用就是保存和更新神经网络中的参数的。在tensorflow中&#xff0c;变量(tf.Variable)的作用就是保存和更新神经网络的参…

Educational Codeforces Round 123 (Rated for Div. 2) D. Cross Coloring

Problem - D - Codeforces 翻译&#xff1a; 有一张纸&#xff0c;可以用大小为&#x1d45b;&#x1d45a;:&#x1d45b;行和&#x1d45a;列的单元格表示。所有的细胞最初都是白色的。 &#x1d45e;操作已应用到工作表。他们的&#x1d456;-th可以描述如下: &#x1d4…

前端工程化项目的思考

这是一篇个人使用前端工程开发项目的思考&#xff0c;希望可以帮助到你。完全是一篇综合概念应该是很多东西&#xff0c;我也不清楚会有多少字&#xff0c;估计会对刚刚开始的人看起来比较迷&#xff0c;但也是没有办法的事情 1.前端脚本语言开发的作者我想应该也想不到js会发展…

Spark

1 Spark作业提交流程 2 Spark提交作业参数 1&#xff09;在提交任务时的几个重要参数 executor-cores —— 每个executor使用的内核数&#xff0c;默认为1&#xff0c;官方建议2-5个 num-executors —— 启动executors的数量&#xff0c;默认为2 executor-memory —— executor…

【OpenCV学习】第9课:形态学操作的应用-提取水平线丶垂直线

仅自学做笔记用,后续有错误会更改 理论 图像在进行形态学操作的时候&#xff0c; 可以通过自定义的结构元素实现结构元素对输入图像的一些对象敏感丶对另外一些对象不敏感&#xff0c; 这样就会让敏感的对象改变而不敏感的对象保留输出。 通过使用两个最基本的形态学操作 - 膨…