当前位置:网站首页>订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("点赞成功");
}
}
边栏推荐
猜你喜欢

一文吃透接口调用神器RestTemplate

台达PLC出现通信错误或通信超时或下载时提示机种不符的解决办法总结

Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案

文件包含漏洞

《云原生的本手、妙手和俗手》——2022全国新高考I卷作文

unity computeshader的可读写buffer

ApiPost is really fragrant and powerful, it's time to throw away Postman and Swagger

Docker安装canal、mysql进行简单测试与实现redis和mysql缓存一致性

才22岁!这位'00后'博士拟任职985高校!

分布式id解决方案
随机推荐
mysql automatically adds creation time and update time
Acwing-考研机试题
Master SSR
[Go Affair] See through Go's collections and slices at a glance
B/S架构模式的一个整体执行流程
apisix-入门使用篇
Docker installs canal and mysql for simple testing and achieves cache consistency between redis and mysql
mysql 索引使用与优化
瑞吉外卖项目:文件的上传与下载
LeetCode 1161.最大层内元素和:层序遍历
lotus-local-net 2k v1.17.0-rc4
Docker搭建Mysql主从复制
5 open source Rust web development frameworks, which one do you choose?
面试、工作中常用sql大全(建议收藏备用)
【Web技术】1397- 深入浅出富文本编辑器
透过开发抽奖小程序,体会创新与迭代
拥抱趋势!阿里这套微服务开源框架权威手册,实战到底层细致清晰
最新MySql安装教学,非常详细
[Virtualization Ecological Platform] Platform Architecture Diagram & Ideas and Implementation Details
[Virtualization ecological platform] Raspberry Pi installation virtualization platform operation process