Java基础实战项目-------网上订餐系统

article/2025/9/29 21:59:44

目录

前言

项目需求

项目环境准备

技能点

实现思路

​编辑  项目总结

完整代码:


前言

已学完Java基础部分的内容,如下

理解程序的基本概念:程序、变量、数据类型

会使用顺序、选择、循环、跳转语句编写程序

会使用数组以及Arrays的使用

项目需求

如今已进入网络时代,人们的日常生活已离不开网络,人们通过网络购物、看新闻、交友等。只要动动手指,就能送餐上门,网上订餐越来越受到都市年轻人的青睐。现要求开发一个网上订餐系统,需要实现“我要订餐”,“查看餐袋”,“签收订单”,“删除订单”,“我要点赞”,和“退出系统”6个功能。运行结果如下图。

项目环境准备

开发工具:Eclipse、JDK1.8

开发语言:Java

开发平台:Windows10

技能点

项目覆盖的技能点如下。

程序基本概念:程序、变量、数据类型。

使用顺序、选择、循环、跳转语句编写程序。

数组的使用。

实现思路

数据准备:定义声明数据类型及变量

实现主菜单:

实现菜单切换:

实现“我要订餐“

实现“查看餐袋”

实现“签收订单“

实现“删除订单“

实现“我要点赞“

实现“系统退出“

主方法

  项目总结

通过项目实战,能够使用Java流程控制语句编写程序,使用变量、数组存储数据,能够熟知系统的逻辑实现,能够熟练的将顺序、选择和循环结构一起使用并完成一个程序的设计与开发。

完整代码:

package com.nuist;import java.util.Arrays;
import java.util.Scanner;public class main {static Scanner sc = new Scanner(System.in);static int len = 5; // 数组长度static int index = 0; // 长度static String[] names = new String[1]; // 订餐人姓名static String[] dishMegs = new String[1]; // 保存所选信息,包括菜品名及份数static int[] times = new int[1]; // 送餐时间static String[] address = new String[1];// 送餐地址static int[] states = new int[1]; // 保存订单状态:0表示已预订、1表示已完成static double[] sumPrices = new double[1]; // 总金额static int num; // 订餐份数static String dishNames[] = { "宫保鸡丁", "西红柿炒番茄", "土豆丝炒马铃薯", "帝王蟹" };static double prices[] = { 28, 12, 8, 88 }; // 单价static int[] counts = { 0, 0, 0, 0 }; // 点赞数static boolean isExit = false; // 结束标记static boolean isAgain = false; // 重新 表示输入的错误或不存在重新选择static boolean isSign = false; // 是否签收static boolean isDelete = false; // 是否删除的标记public static void print() {System.out.println(" ****************");}// 打印输出数组内容public static void printArray(int arrays[]) {for (int i : arrays) {System.out.print(" " + i + "\t");}}public static void printArray(String arrays[]) {for (String i : arrays) {System.out.print(" " + i + " ");}}public static void printArray(double arrays[]) {for (double i : arrays) {System.out.print(" " + i + " ");}}// 主页public static void mean() {print();System.out.println(" * 1. 我 要 订 餐  *");System.out.println(" * 2. 查 看 餐 袋  *");System.out.println(" * 3. 签 收 订 餐  *");System.out.println(" * 4. 删 除 订 单  *");System.out.println(" * 5. 我 要 点 赞  *");System.out.println(" * 6. 退 出 系 统  *");print();}// 选择public static void choose() {int input;input = sc.nextInt();switch (input) {// 返回主菜单页面case 0:mean();System.out.print(" 请选择:");break;case 1:reserve();System.out.print(" 查看订餐信息(2),返回主菜单(0)\n 如需继续添加订餐请输入1:");break;case 2:check();System.out.print(" 返回主菜单(0),退出(6)\n 请选择:");break;case 3:receive();System.out.print(" 返回主菜单(0),退出(6)\n 请选择:");break;case 4:delete();System.out.print(" 返回主菜单(0),退出(6)\n 请选择:");break;case 5:order();System.out.print(" 返回主菜单(0),退出(6)\n 请选择:");break;case 6:exit();System.out.println(" 程序结束,欢迎下次光临!");break;default:System.out.println(" 输入错误!");exit();break;}}// 1.我要订餐public static void reserve() {System.out.println(" ~~~~~ 我 要 订 餐 ~~~~~");Scanner sc = new Scanner(System.in);System.out.print(" 请输入订餐人姓名:");names[index] = sc.next();System.out.print(" 菜品有:");printArray(dishNames);while (true) {System.out.print("\n 请输入菜品名:");dishMegs[index] = sc.next();for (String dish : dishNames) {if (dishMegs[index].equals(dish)) {isAgain = false;break;} else {isAgain = true;}}if (isAgain) {System.err.println(" 输入的菜品不存在,请输入正确的菜品且重新进行订餐!");continue;} else {System.out.print(" 请输入份数:");num = sc.nextInt();dishMegs[index] += "*" + num + "份"; // 订单信息包含菜品名和份数while (true) {System.out.print(" 请输入时间:");times[index] = sc.nextInt();// 判断输入的时间是否在10点到20点之间if (times[index] < 10 || times[index] > 20) {System.err.println(" 输入的时间不在送餐时间,请输入正确时间且重新进行订餐!(10-20之间的整数):");isAgain = true;continue;} else {System.out.print(" 请输入地址:");address[index] = sc.next();// 送餐费 满50元立减5元送餐费,否则需要支付5元送餐费用double deliCharge = sumPrices[index] >= 50 ? 0 : 5;sumPrices[index] += deliCharge;states[index] = 0; // 订单状态为0,预定状态System.out.println(" 订餐号为" + (index + 1) + "号的" + names[index] + "用户订餐成功!");index++;}break; // 菜品名输入正确则跳出重新输入循环}break; // 时间输入正确跳出重新输入循环}}
}// 2.查看餐袋public static void check() {System.out.println(" ~~~~~ 查 看 餐 袋 ~~~~~ ");boolean flag = true; // 假定数组内容都为空System.out.println(" 餐袋如下:");System.out.println(" =====================================================================================");System.out.println(" 订单号\t 订餐人\t 菜品信息\t"+ "\t 送餐时间\t\t 送餐地点\t\t 总金额\t 订单状态");for (int i = 0; i < names.length; i++) {if (names[i] != null) {System.out.println(" -------------------------------------------------------------------------------------");System.out.print("  " + (i + 1) + "\t");System.out.print(" " + names[i] + "\t");System.out.print(" " + dishMegs[i] + "\t");System.out.print(" " + times[i] + "点\t\t");System.out.print(" " + address[i] + "\t\t");System.out.print(" " + sumPrices[i] + "\t");String state = states[i] == 1 ? "已完成" : "已预订";System.out.print(" " + state + "\t");System.out.println();flag = false;}}System.out.println(" =====================================================================================");if (flag) {System.out.println(" 餐袋为空!");}}// 3.签收订单public static void receive() {System.out.println(" ~~~~~ 签 收 订 单 ~~~~~");System.out.print(" 请选择要签收的订单号:");int deleteOrderId = sc.nextInt(); // 订单号if (deleteOrderId > names.length - 1 || deleteOrderId < 0 || index == 0) {System.err.println(" 该订单不存在,签收失败,请重试!");} else if (states[deleteOrderId - 1] == 1) {System.err.println("订单号号为" + deleteOrderId + " 已被签收,请勿重复签收×");} else {states[deleteOrderId - 1] = 1; // 状态改为1 已签收System.out.println(" 订单签收成功√");isSign = true; 	// 已签收}}// 4.删除订单public static void delete() {System.out.println(" ~~~~~ 删 除 订 单 ~~~~~");System.out.print(" 请选择要删除的订单号:");int signOrderId = sc.nextInt(); // 订单号if (signOrderId > names.length || signOrderId < 0 || index == 0) {System.err.println(" 该订单不存在,删除失败,请重试!");} else if (states[signOrderId - 1] == 0) { // 订单状态为预定时,不可删除订单System.out.println(" 订单状态处于预定状态,无法删除该订单。");} else {for (int i = signOrderId - 1; i < names.length - 1; i++) {names[i] = names[i + 1];dishMegs[i] = dishMegs[i + 1]; // 保存所选信息,包括菜品名及份数times[i] = times[i + 1]; // 送餐时间address[i] = address[i + 1];// 送餐地址states[i] = states[i + 1]; // 保存订单状态:0表示已预订、1表示已完成sumPrices[i] = sumPrices[i + 1]; // 总金额System.out.println(" 订单号为" + signOrderId + "的订单已被成功删除√");names = Arrays.copyOf(names, index - 1); // 改变数组长度-1dishMegs = Arrays.copyOf(dishMegs, index - 1); // 改变数组长度-1times = Arrays.copyOf(times, index - 1); // 改变数组长度-1address = Arrays.copyOf(address, index - 1); // 改变数组长度-1states = Arrays.copyOf(states, index - 1); // 改变数组长度-1sumPrices = Arrays.copyOf(sumPrices, index - 1); // 改变数组长度-1isDelete = true;	 // 完成删除}}}// 5.我要点赞public static void order() {System.out.println(" ~~~~~ 我 要 点 赞 ~~~~~");System.out.println(" ==============================");System.out.println(" 编号\t菜名\t 单价💴\t点赞数👍");System.out.println(" ------------------------------");for (int i = 0; i < dishNames.length; i++) {System.out.print(" " + (i + 1) + "    " + dishNames[i] + "\t " + prices[i] + "\t  ");System.out.println(counts[i]);}System.out.println(" ==============================");System.out.print(" 请选择你要点赞的菜品编号:");while (true) {int praiseNums = sc.nextInt(); // 记录点赞菜品编号if (praiseNums > dishNames.length || praiseNums <= 0) {System.out.print(" 该菜品编号不存在,请重新输入!\n 请输入编号:");continue;} else {counts[praiseNums - 1]++;System.out.println(" 点赞成功!\t" + praiseNums + "号菜品点赞数+1");break;}}}// 6.退出系统public static boolean exit() {System.out.println(" ~~~~~ 退 出 系 统 ~~~~~");return isExit = true; // 结束}public static void main(String[] args) {System.out.println("\n 欢迎使用<网上订餐系统>");mean();		// 主菜单System.out.print(" 请选择菜单功能:");do {names = Arrays.copyOf(names, index + 1); // 改变数组长度dishMegs = Arrays.copyOf(dishMegs, index + 1); // 改变数组长度times = Arrays.copyOf(times, index + 1); // 改变数组长度address = Arrays.copyOf(address, index + 1); // 改变数组长度states = Arrays.copyOf(states, index + 1); // 改变数组长度sumPrices = Arrays.copyOf(sumPrices, index + 1); // 改变数组长度choose();	// 选择功能选项} while (!isExit);}
}

运行结果


http://chatgpt.dhexx.cn/article/2tdKI1GZ.shtml

相关文章

毕设系统之网上订餐管理系统

距离毕业已经过去一个月了&#xff0c;毕设那一段难忘的时光相信大家也都还记得&#xff0c;我当时做的毕设系统是网上订餐管理系统&#xff0c;有三个角色&#xff0c;分别是管理员、用户&#xff08;含会员&#xff09;、商家&#xff0c;所用的技术为SpringBootMybatisThyme…

网上订餐系统需求分析报告

一&#xff0e;研究意义 随着计算机和网络的日趋发展&#xff0c;网上店铺如雨后春笋般出现&#xff0c;就连沃尔玛&#xff0c;金拱门这一类老品牌的商家都开拓了自己的网上购物渠道&#xff0c;有调查表明:无论是中国还是西方国家&#xff0c;越来越的用户已经习惯于网络购物…

《网上订餐系统》开发全程回忆

一、需求分析 随着信息经济的发展,许多上班族因工作繁忙导致就餐时间紧凑,而没法享受各种美味。传统的订餐方式过于乏味。而不能满足当今社会快速的生活节凑。然而,把餐饮与互联网结合起来正好解决了这一问题。网上订餐系统对广大顾客提供网上订餐服务,既方便了上…

网上订餐点餐用餐系统的设计与实现(SpringMVC, BootStrap, MySQL)

1、项目功能介绍 本设计的开发是基于B/S结构&#xff0c;采用JSP编程技术及Mysql数据库进行开发。本文首先介绍网站开发环境和运行平台、ASP、HTML、CSS3和java script&#xff0c;并对系统的设计进行了详细的需求分析&#xff1b;然后给出了网上订餐系统的设计方案及系统的具体…

基于java网上订餐网站系统

通过网上西餐厅网上订餐管理系统这个平台&#xff0c;消费者足不出户就可以了解大量的西餐厅菜单信息&#xff0c;给消费者带来了极大的方便。网上西餐厅管理系统平台的主要功能包括菜单类别管理、菜单信息管理等&#xff0c;根据客户种类又可以划分成管理员客户和会员客户两种…

网上订餐管理系统的设计与实现

技术&#xff1a;Java、JSP等 摘要&#xff1a; 随着信息技术的广泛使用&#xff0c;电子商务对于提高管理和服务水平发挥着关键的作用。越来越多的商家开始着手于电子商务建设。电子商务的发展为人们的生活提供了极大的便利&#xff0c;也成为现实社会到网络社会的真实体现。 …

Javaweb 网上订餐系统

第一部分是绪论。介绍了本研究课题的研究背景及意义、国内外研究现状和课题设计的思路等&#xff1b; 第二部分是系统开发的技术&#xff08;Javaweb技术、servlet、jsp页面、MVC模式&#xff09;以及使用的工具&#xff08;Eclipse集成开发工具、MySQL数据库&#xff09;等基础…

JAVA毕设项目-网上订餐系统(附:源码 论文 Sql文件)

课题背景 上世纪90年代&#xff0c;互联网逐渐走进人们的视野&#xff0c;在不知不觉中改变着社会的商品交易方式。国内各大企业从认识到互联网的重要性之后&#xff0c;一直坚持不断的探索网上交易的可能。但是由于网络生活具有很大的虚拟性&#xff0c;商家的信誉很难得到保…

网上订餐系统设计与实现(JSP+SSM+MySQL)

目 录 摘 要 I ABSTRACT II 第一章 概述 1 1.1 课题背景 1 1.2 目的和意义 1 1.3总体设计原则 1 1.4 本章小结 2 第二章 系统开发技术 3 2.1 SQL SERVER 2005简介 3 2.2 TOMCAT简介 3 2.3 JAVA 简介 3 2.4 ECLIPSE简介 4 2.5 JSP简介 4 2.6 本章小结 4 第三章 系统规划与分析 5…

基于SpringMVC的网上订餐系统

一、系统分为两端 &#xff08;1&#xff09;网上订餐前端 &#xff08;2&#xff09;网上订餐管理端 系统开发的技术&#xff08;Javaweb技术、Spring、jsp页面、MVC模式&#xff09;以及使用的工具&#xff08;Eclipse集成开发工具、MySQL数据库&#xff09;等基础知识&am…

基于SSH的网上订餐系统设计与实现

目录 摘 要 I 第一章 引言 1 1.1背景和意义 1 1.2国内外现状 1 第二章 系统开发平台 3 2.1开发工具介绍 3 2.2主要开发技术介绍 4 2.2.1 JavaEE平台 4 2.2.2 SSH技术介绍 5 2.2.3 MySQL数据库 7 2.3系统环境需求 8 第三章 需求分析 9 3.1可行性分析 9 3.1.1经济可行性 9 3.1.2…

Java简单小项目---网上订餐系统

1、系统需求说明 概要&#xff1a;现今已进入网络时代&#xff0c;网上购物、看新闻、交友等人们的日常生活已离不开网络。“只要点点手指&#xff0c;就能送餐上门”&#xff0c;网上定餐越来越受到都市年轻人的青睐 现要求开发一个网上订餐系统&#xff0c;其具体功能如下…

基于Java的网上订餐系统(附:源码 课件)

项目介绍 基于SSM框架实现一个网上点餐系统&#xff0c;包括用户端和管理员端; 前台主要功能有用户注册, 用户登录, 我的购物车、我的订单、用户中心、我的餐车,配送说明等; 管理员端主要功能有&#xff1a;菜单管理、公告管理、销售订单管理、系统用户管理等 运行环境 jdk8…

SSM+校园网上订餐系统 毕业设计-附源码211510

校园网上订餐系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对校园网上订…

统计网站访问量

要统计网站访问量&#xff08;访问人次&#xff09;&#xff0c;即PV&#xff0c;需要下载相应的插件。 第1步&#xff0c;将插件文件复制到网站目录&#xff08;插件下载地址http://pan.baidu.com/s/1hOfNK 密码: g3t5 &#xff09; 第2步&#xff0c;在模板中相应位置加入以…

javaweb之统计网站访问量小案例

效果图 主页 第一次访问 第二次访问 切换浏览器&#xff0c;数据连续累加&#xff08;全局作用域&#xff0c;服务器不重启&#xff0c;数据会一直保留&#xff09; html代码 <h2><a href"CountServlet">点我查看网站访问量</a></h2>Count…

php+mysql实现统计网站访问量(一)

环境&#xff1a;centos6.9&#xff1b;mysql5.1&#xff1b;php7.2 1.创建一个存储数据的表 create table wp_jc_count(id int not null auto_increment primary key,ip varchar(20) not null,times int default 0);2.创建一个php脚本 <?php class visitorInfo {//获取…

网站每天的总访问量、总带宽、ip统计和url统计

脚本内容 根据情况自行修改变量 log_path domain email [rootcentos8 ~]# cat logall.sh #!/bin/bash log_path/var/log/nginx/access.log domain"csctbb.com" email"1547571920qq.com" maketimedate %Y-%m-%d" "%H":"%M logdatedat…

网站访问量统计实现.

通过用户对网站的访问,来统计该网站的总访问量.实现起来非常简单.把每一次访问的数累加即可.由于数据 更新频繁,所以数据存储在文本文件中.每次更新其中的文本文件数据即可. 然后把数字替换成相应图片.不知道为何,CSDN又不能上传图片了.CSDN的blog做得很不稳定..图略.(非常简…

如何统计网页访问量

目录 一、搭建Nginx服务 安装Nginx服务 第一步 关闭防火墙和安全机制 第二步 安装扩展包 第三步 安装Nginx和依赖环境 第四步 安装依赖包 第五步 创建一个用户和组 第六步 解包 第七步 进入Nginx目录下编译安装 第八步 进行编译 第九步 添加系统识别操作 第十步 检…