当前位置:网站首页>订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("点赞成功");
}
}
边栏推荐
- AWS亚马逊云账号注册,免费申请12个月亚马逊云服务器详细教程
- [ 图 论 ]二分图判定及其匹配(基础+提高)
- ApiPost 真香真强大,是时候丢掉 Postman、Swagger 了
- 无法将“node.exe”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
- IDEA configure method annotation automatic parameters
- 一周精彩内容分享(第14期)
- Usage of JOIN in MySQL
- Detailed tutorial on distributed transaction Seata
- file contains vulnerabilities
- MySQL 的几种碎片整理方案总结(解决delete大量数据后空间不释放的问题)
猜你喜欢
一周精彩内容分享(第14期)
一文带你了解redux的工作流程——actionreducerstore
Is the working process of the belt you know the story - actionreducerstore
多线程学习笔记-2.final关键字和不变性
The latest MySql installation teaching, very detailed
[Virtualization Ecological Platform] Platform Architecture Diagram & Ideas and Implementation Details
3D激光SLAM:LeGO-LOAM论文解读---点云分割部分
面试、工作中常用sql大全(建议收藏备用)
Obsidian设置图床
LeetCode 1161.最大层内元素和:层序遍历
随机推荐
DCM 中间件家族迎来新成员
Summary of several defragmentation schemes for MySQL (to solve the problem of not releasing space after deleting a large amount of data)
科学论文和学术论文写作
MySQL index usage and optimization
LeetCode 1161.最大层内元素和:层序遍历
WSL2安装.NET 6
St. Regis Takeaway Project: New dishes and dishes paged query
R 语言data.frame 中的另一行中减去一行
oracle优化:instr做join条件很慢「建议收藏」
Read through the interface to call the artifact RestTemplate
第十二章 使用中的 OpenAPI 属性
线程池 ThreadPoolExecutor 详解
Experience innovation and iteration through the development of lucky draw mini-programs
SQL - Left join, Right join, Inner join
lotus-local-net 2k v1.17.0-rc4
MySQL limit paging query and performance issues
Docker实践经验:Docker 上部署 mysql8 主从复制
Intranet Penetration Learning (IV) Domain Lateral Movement - SMB and WMI Service Utilization
「R」使用ggpolar绘制生存关联网络图
应用层基础 —— 认识URL