java基础10 吃货联盟点餐系统

java基础10 吃货联盟点餐系统:

package cn.kgc.ordermsg;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/**
 * 吃货联盟点餐系统
 * @author Vip宅男
 *
 */
public class OrderMsg {
/**
* 订餐姓名  选择菜品  送餐时间  送餐地址  订单状态  总金额
* 01.创建对应的数组
* 02.数组的初始化
* 03.显示菜单
* 04.根据用户的选择进去指定的模块
* @throws ParseException 
*/

@SuppressWarnings("unused")
public static void main(String[] args) throws ParseException {
String[] names=new String[6];//订餐人姓名
String[] dishMegs=new String[6];//选择菜品
int[] numbers=new int[6];//菜品份数
Date[] dates=new Date[6];//送餐时间
String[] times=new String[6];//送餐时间对应String类型的日期
String[] addresses=new String[6];//送餐时间
int[] states=new int[6];//订单状态  0:已经预定  1:已经完成
double[] sumPrices=new double[6];//总金额
/**
* 第一组初始化数据
*/
names[0]="小黑";
dishMegs[0]="八仙过海";
numbers[0]=3;
dates[0]=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("hh:mm:ss");
times[0]=sdf.format(dates[0]);
addresses[0]="郑州国贸";
states[0]=1;
sumPrices[0]=5000;
/**
* 第二组初始化数据
*/

names[1]="小白";
dishMegs[1]="佛跳墙";
numbers[1]=3;
dates[1]=new Date();
times[1]=sdf.format(dates[1]);
addresses[1]="河南财经政法学院";
states[1]=1;
sumPrices[1]=500;
/**
* 初始化用户可以选择的菜
*/

String[] dishNames={"八仙股海","佛跳墙","松鼠鱼","红烧带鱼","时令蔬菜","酸辣土豆丝"};
/**
* 定义每个菜品的单价
*/

double[] prices={88,78.8,58.0,28.5,50,80};
/**
* 定义点赞的数组并初始化
*/

int[] praiseNums=new int[6];
praiseNums[0]=5;
praiseNums[1]=10;
System.out.println("*********************欢迎进入《吃货联盟》点餐系统*********************");
Scanner scanner=new Scanner(System.in);
int num=-1;//如果用户输入的是0 默认返回主菜单
boolean isExit=false;//定义一个标记  来标识  用户是否退出系统  true:退出
do {
/**
* 显示菜单供用户选择
*/

System.out.println("当前系统时间是:" + sdf.format(new Date()));
System.out.println("***********************************");
System.out.println("1.我要订餐");
System.out.println("2.查看餐袋");
System.out.println("3.签收订单");
System.out.println("4.删除订单");
System.out.println("5.我要点赞");
System.out.println("6.退出系统");
System.out.println("***********************************");
System.out.println("请输入您的选择:");
int choose = scanner.nextInt();
switch (choose) {
case 1:
System.out.println("*****************我要订餐*****************");
//定义一个标记  判断餐袋是否已满
boolean addFlag=false;
for (int i = 0; i < names.length; i++) { // 订餐人的集合
if (names[i]==null) {
addFlag=true;
System.out.println("请输入订餐的姓名:");
names[i]=scanner.next();//获取订单的姓名
System.out.println("您可以选择下列的菜品:");
System.out.println("序号\t\t\t菜名\t\t\t单价\t\t\t点赞数");
for (int j = 0; j < praiseNums.length; j++) { //遍历菜品
String praiseNum=(praiseNums[j]>0)?praiseNums[j]+"个赞":"";
System.out.println((j+1)+"\t\t\t"+dishNames[j]+"\t\t\t"+prices[j]+"\t\t\t"+praiseNum);
}
/**
* 用户开始点菜
*/

System.out.println("请您选择菜品的编号:");
int chooseDishName=scanner.nextInt();
System.out.println("请您输入点餐的份数:");
int number=scanner.nextInt();
System.out.println("请您输入送餐的地址:");
String address=scanner.next();
System.out.println("请您送餐时间:(时:分:秒)");
String time=scanner.next();
/**
* 根据用户的餐费 判断是否收取送餐费   大于60免送餐费 
* 01.获取用户点的菜的单价
* 02.获取总金额
* 03.判断
*/

double sumPrice=prices[chooseDishName-1]*number;
double price=(sumPrice>60)?0:6;
System.out.println("恭喜您订餐成功!");
System.out.println("您订的菜品是:"+dishNames[chooseDishName-1]+"\t"+number+"份");
System.out.println("餐费:"+sumPrice);
System.out.println("\t送餐费"+price);
System.out.println("送餐总费:"+sumPrice+price);
//向数组增加数据
times[i]=sdf.format(sdf.parse(time));//时间
addresses[i]=address;//地址
sumPrices[i]=(sumPrice+price);//总金额
dishMegs[i]=dishNames[chooseDishName-1];//订的菜品
states[i]=0;//订餐的状态
numbers[i]=number;//份数
break;
}
}if (!addFlag) {//餐袋已满
System.out.println("餐袋已经满了");
}
break;
case 2:
System.out.println("*****************查看餐袋*****************");
/**
                                 * 显示
                                 *   编号  订餐人  菜品(份数)   送餐时间   送餐地址   总金额     状态
                                 */

System.out.println("编号\t\t订餐人\t\t菜品(份数)\t\t送餐时间\t\t送餐地址\t\t总金额\t\t状态\t\t点赞数量");
for (int i = 0; i < names.length; i++) {//订餐人的显示
if (names[i]!=null) {
String state=(states[i]==0)?"已经预定":"已经完成";//获取状态
String time=times[i];//获取时间
String sumPrice=sumPrices[i]+"元";//总金额
String address=addresses[i];//送餐地址
String dishMeg=dishMegs[i];//菜品
int count=numbers[i];
System.out.println((i+1)+"\t\t"+names[i]+"\t\t"+dishMeg+"("+count+")"+"\t\t"+time+"\t\t"+
address+"\t\t"+sumPrice+"\t\t"+state+"\t\t"+praiseNums[i]);
}
}
break;
case 3:
System.out.println("*****************签收订单*****************");
/**
                                 * 01.状态为已经完成!不需要签收
                                 * 02.状态为已经预定!需要签收
                                 * 03.没有指定的订单,不能签收
                                 */

System.out.println("请输入您要签收的订单号:");
int sign=scanner.nextInt();
//定义一个标记 来标记订单是否被签收
int flag=0;
for (int i = 0; i < names.length; i++) {
if (names[i]!=null&&states[i]==0) {//01.状态已经预定,需要签收
states[i]=1;//改变状态
flag=1;
break;//必须退出  否则  后续的都会变成签收
}else if (names[i]!=null&&states[i]==0) {// 02.有订单
flag=2;
}
}
if (flag==1) {
System.out.println("订单已经签收!");
}else if (flag==2) {
System.out.println("订单不需要重复签收");
}else {
System.out.println("没有指定的订单");
}
break;
case 4:
System.out.println("*****************删除订单*****************");
System.out.println("请输入您要删除的订单编号:");
int delNum=scanner.nextInt();
// 定义一个标记 来判断订单是否被签收以及是否存在
int delFlag = 0;
for (int i = 0; i < names.length; i++) {
if (names[i]!=null&&states[delNum-1]==1) {// 可以删除
// 状态是已经完成
                                                    // 删除位置 之后的所有元素 依次前移                                   // 有指定的订单

for (int j =delNum-1; j < praiseNums.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];//状态
numbers[j]=numbers[j+1];//份数
}
delFlag=1;
break;
}else if (names[i] != null && states[i] == 0) {// 订单还没有签收
delFlag=2;
}
}
if (delFlag==1) {
System.out.println("订单已经被删除");
}else if (delFlag==2) {
System.out.println("订单还没有被签收,不能被签收");
}else {
System.out.println("没有找到指定的订单");
}
break;
case 5:
System.out.println("*****************我要点赞*****************");
System.out.println("编号\t\t\t菜名\t\t\t价格");
for (int i = 0; i < names.length; i++) {// 遍历所有的菜名
String price=prices[i]+"元";//获取价格
String name=dishNames[i];
System.out.println((i+1)+"\t\t\t"+name+"\t\t\t"+price);
}
System.out.println("请输入您点赞的菜品编号:");
int chooseNum=scanner.nextInt();
praiseNums[chooseNum-1]++;//点赞+1
System.out.println("谢谢参与,点赞成功");
break;
case 6:
//6.退出系统
isExit=true;
break;
default:
//退出系统
isExit=true;
break;
}if (!isExit) {//默认这是不退出
System.out.println("输入0返回主菜单:");
num=scanner.nextInt();
}else {
break;//退出系统
}
} while (num==0);
}
}

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值