当前位置:网站首页>订song餐系统
订song餐系统
2022-07-31 11:38:00 【Arenaschi】

帮学弟写个题,正好给大家看看是否有帮助用到。
一个订餐系统 使用数组存数据 ,没有什么复杂的东西。
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Scanner;
public class test_order {
/*该系统最多接收4条订餐订单
String[] names = new String[4]; 保存订餐人姓名s
String[] dishMegs = new String[4]; 保存所选信息,包括菜品及份数
int[] times = new int[4]; 保存送餐时间
String[] addresses = new String[4]; 保存送餐地址
int[] states = new int[]; 保存订单状态 1:表示已完成 0:表示已预订
double[] sumPrices = new double[4] 保存订单的总金额
String[] dishNames ={"红烧肉","地三鲜","鸡蛋汤"}; //菜品
double[] prices = new double[]{38.0,20.0,10.0};//单价
int[] praiseNums = new int[3];//点赞数
String[] names = new String[4]; Save the name of the person who ordered
String[] dishMegs = new String[4]; Save the selected information, including dishes and servings
int[] times = new int[4]; Save the delivery time
String[] addresses = new String[4]; Save the delivery address
int[] states = new int[]; Save the order status. 1: completed. 0: reserved
Double [] sumPrices = New double[4] Holds the total amount of the order */
private static String[] names = new String[4];
private static String[] dishMegs = new String[4];
private static int[] times = new int[4];
private static String[] addresses = new String[4];
private static int[] states = new int[4];
private static double[] sumPrices = new double[4];
private static int retrunFlag =-1;//用户退出系统标识 0返回主菜单 否则退出系统
private static boolean isExit =false;//标识用户是否退出系统 true为退出系统
private static Scanner input = new Scanner(System.in);
private static String[] dishNames ={"红烧肉","地三鲜","鸡蛋汤"}; //菜品
private static double[] prices = new double[]{38.0,20.0,10.0};//单价
private static int[] praiseNums = new int[3];//点赞数
public static void main(String[] args) {
System.out.println("欢迎使用订餐系统------------------");
do{
test_order.showMenu();
System.out.println("*********************************");
System.out.println("1.我要订餐\n 2.查看餐袋\n 3.签收订单\n 4.删除订单\n 5.我要点赞\n 6.退出系统");
System.out.println("*********************************");
System.out.println("请选择");
// Scanner input = new Scanner(System.in);
int choose=input.nextInt();
switch (choose){
case 1:
System.out.println("****我要订单***");
createOrder();
break;
case 2:
System.out.println("****查看餐袋***");
queryOrder();
break;
case 3:
System.out.println("****签收订单***");
signOrder();
break;
case 4:
System.out.println("****删除订单***");
deleteOrder();
break;
case 5:
System.out.println("****我要点赞***");
getGood();
break;
case 6:
isExit = true;
break;
default:
isExit = true;
break;
}
if(!isExit){
System.out.println("输入0返回主菜单");
retrunFlag = input.nextInt();
}else {
break;
}
}while (retrunFlag == 0);
}
//显示餐单
private static void showMenu(){
LocalDate date = LocalDate.now(); // gets the current date
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
System.out.println("今天是"+date.format(formatter)+"我们菜品有");
Arrays.stream(dishNames).forEach(System.out::println);
/*System.out.println("价格是");
Arrays.stream(prices).forEach(System.out::println);
System.out.println("点赞数是");
Arrays.stream(praiseNums).forEach(System.out::println);*/
}
//查看餐袋子
private static void queryOrder(){
System.out.println("*****查看餐袋子****");
System.out.println("序号\t\t订餐人\t\t餐品信息\t\t送餐日期\t\t送餐地址\t\t总金额\t\t订单状态");
for (int i=0;i<names.length;i++){
if(null != names[0]){
String state = states[i]==0?"已预约":"已完成";
String sumPrice = sumPrices[i]+"元";
String date = times[i]+"日";
System.out.println((i+1)+"\t\t"+names[i]+"\t\t"+dishMegs[i]+"\t\t"+date+"\t\t"+addresses[i]+"\t\t"+sumPrice+"\t\t"+state);
}
}
}
//我要订餐
private static void createOrder() {
System.out.println("我要订餐");
Boolean isAdd = false;
for(int i=0; i<names.length;i++){
if(null == names[i]){
isAdd = true;
System.out.println("请输入订餐人姓名");
String name = input.next();
System.out.println("序号"+"\t"+"菜名"+"\t"+"单价"+"\t"+"点赞数");
for(int j= 0;j<praiseNums.length;j++){
String price =prices[j]+"元";
String priaiseNum = praiseNums[j]>0?praiseNums[j]+"赞":"0";
System.out.println((j+1)+"\t"+dishNames[j]+"\t"+price+"\t"+priaiseNum);
}
//用户点餐
System.out.println("请选择您要点的菜品编号");
int chooseDish = input.nextInt();
System.out.println("您需要的份数");
int number = input.nextInt();
String dishMeg= dishNames[chooseDish-1]+""+number+"份";
double sumPrice = prices[chooseDish-1]*number;
//满50 song 5元
double deliCharge =sumPrice >=50?0:5;
System.out.println("请输入送餐时间11点到20点,请输入11-20整点时刻");
int time = input.nextInt();
while (time<11|| time>20) {
System.out.println("输入时间不正确请从新输入");
time = input.nextInt();
}
System.out.println("输入送餐地址");
String address = input.next();
//状态0 表示 已预订
System.out.println("订餐成功");
System.out.println("您订的是"+dishMeg);
System.out.println("送餐时间"+time+"点");
System.out.println("餐费:"+sumPrice+"元,送餐费"+deliCharge+"元,总共"+(sumPrice+deliCharge)+"元");
System.out.println("送餐地址"+address);
names[i]=name;
dishMegs[i]=dishMeg;
times[i]=time;
addresses[i]=address;
sumPrices[i]=sumPrice+deliCharge;
break;
}
}
if(!isAdd) {
System.out.println("对不起,您的餐带已满");
}
}
private static void signOrder() {
System.out.println("签收订单");
Boolean isSignFind =false;
System.out.println("请确实要签收的序号");
int signOrderId = input.nextInt();
for(int i=0;i<names.length;i++){
if(names[i] != null&& states[i]==0&& signOrderId==i+1){
states[i]=1;
System.out.println("订单签收成功");
isSignFind =true;
}else if(name[i]!=null && states[i]==1&&signOrderId ==i+1){
System.out.println("订单已经签收过,不能再次签收");
isSignFind =true;
}
}
if(!isSignFind){
System.out.println("您选择的订单不存在");
}
}
//删除订单
private static void deleteOrder() {
System.out.println("删除订单");
boolean isDelFind = false;
System.out.println("输入要删除的订单序号");
int delid= input.nextInt();
for(int i=0;i<names.length;i++){
if(names[i]!=null && states[i]==1&& delid ==i+1){
isDelFind =true;
for(int j=delid-1;j<names.length-1;j++){
names[j] = names[j+1];
dishMegs[j]= dishMegs[j+1];
times[j]=times[j+1];
addresses[j]=addresses[j+1];
states[j]=states[j+1];
sumPrices[j]=sumPrices[j+1];
}
int endIndex = names.length-1;
names[endIndex] =null;
dishMegs[endIndex]=null;
times[endIndex]=0;
addresses[endIndex]=null;
states[endIndex]=0;
sumPrices[endIndex]=0;
System.out.println("删除订单成功");
break;
}else if(names[i]!=null&&states[i]==0&&delid==i+1){
System.out.println("您选择的订单未签收,不能删除");
isDelFind =true;
break;
}
}
if(!isDelFind){
System.out.println("选择删除的订单不存在");
}
}
private static void getGood(){
System.out.println("我要点赞");
showMenu();
System.out.println("选择你要点赞的序号");
int priaiseNum = input.nextInt();
praiseNums[priaiseNum-1]++;
System.out.println("点赞成功");
}
}
边栏推荐
- strings包详细文档+示例
- mysql 索引使用与优化
- ApiPost is really fragrant and powerful, it's time to throw away Postman and Swagger
- 2022/7/28
- MySql模糊查询大全
- 矩形脉冲波形的占空比及脉冲和瞬态特征的测量
- Experience innovation and iteration through the development of lucky draw mini-programs
- Docker installs canal and mysql for simple testing and achieves cache consistency between redis and mysql
- 蓝牙协议栈开发板 STM32F1 跑蓝牙协议栈 –传统蓝牙搜索演示以及实现原理[通俗易懂]
- 线程池 ThreadPoolExecutor 详解
猜你喜欢
随机推荐
瑞吉外卖项目:文件的上传与下载
LeetCode 1161.最大层内元素和:层序遍历
线程池 ThreadPoolExecutor 详解
PyQt5快速开发与实战 9.5 PyQtGraph在PyQt中的应用 && 9.6 Plotly在PyQt中的应用
Docker build Mysql master-slave replication
MySQL 的几种碎片整理方案总结(解决delete大量数据后空间不释放的问题)
deeplab实现自己遥感地质分割数据集
如何正确地把服务器端返回的文件二进制流写入到本地保存成文件
apisix-Getting Started
Cloudera Manager —— 端到端的企业数据中心管理工具
MySQL index usage and optimization
If the value of the enum map does not exist, deserialization is not performed
mpu9150(driverack pa简明教程)
Obsidian设置图床
deeplab implements its own remote sensing geological segmentation dataset
「MySQL」- 基础增删改查
Candence学习篇(11) allegro中设置规则,布局,走线,铺铜
apisix-入门使用篇
三层架构service、dao、controller层
Service discovery of kubernetes



![[ 图 论 ]二分图判定及其匹配(基础+提高)](/img/79/56f750e71f558debe3d99404e296e3.png)




