主函数
import java.util.List;
import java.util.ArrayList;
/**
* 吃货联盟订餐管理系统
*
* @author rong.zhou
*
*/
public class OrderingMsg {
public static List<String> ListMessage=new ArrayList<>();//订餐信息列表
public static List<Integer> ListSignFor=new ArrayList<>();//签收列表
public static int[] praiseNums=new int[3]; //点赞数
public static void main(String[] args) {
ListMessage.add("张晴"+" "+"红烧带鱼 2份"+" "+"12"+" "+"天成路207号"+" "+76.0+" "+1+" ");
ListSignFor.add(1);
System.out.println("\n欢迎使用“吃货联盟订餐系统”");
Menu menu = new Menu();
menu.getServe();
}
}
创建全局变量ListMessage //存储用户信息
创建全局变量ListSignFor //存储是否已取单
创建全局变量praiseNums //记录三个菜的分别点赞数
package User;
import java.util.Scanner;
public class Menu {
User tell=new User();
Scanner input = new Scanner(System.in);
int num;
public void getServe(){ //serve 服务
do{
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.print("请选择:");
int choose = input.nextInt(); // 记录用户选择的功能编号
switch (choose){
case 1:
tell.getMessage();
break;
case 2:
tell.setMessage();
break;
case 3:
tell.getSignFor();
break;
case 4:
tell.delectSignFor();
break;
case 5:
tell.getPraiseNum();
break;
default:
System.out.println("谢谢使用,欢迎下次光临!");
break;
}
if(choose>=1&&choose<6) {
System.out.print("输入0返回:");
num = input.nextInt();
}else{
num=2;
}
}while(num==0);
}
}
创建Meun类来生成菜单,实现调用Uesr中的方法
package User;
import java.util.Scanner;
import static app.OrderingMsg.*;
public class User {
public String name; //订餐人名称
public String dishMeg; //所选菜品
public int time; //送餐时间
public String address; //送餐地址
public double sumPrice; //总金额
public String Message;
public int num;//
Menu menu;
String[] dishNames = { "红烧带鱼", "鱼香肉丝", "时令鲜蔬" }; // 菜品名称
double[] prices = new double[] { 38.0, 20.0, 10.0 }; // 菜品单价
Scanner input = new Scanner(System.in);
//我要订餐
public void getMessage(){
System.out.println("***我要订餐***");
System.out.print("请输入订餐人姓名:");
name = input.next();
// 显示供选择的菜品信息
System.out.println("序号" + "\t" + "菜名"+"\t"+"单价");
for (int i = 0; i < dishNames.length; i++) {
String price = prices[i] + "元";
String priaiseNum = (praiseNums[i]) > 0 ? praiseNums[i]
+ "赞" : "";
System.out.println((i + 1) + "\t" + dishNames[i] + "\t" +price+"\t"+ priaiseNum);
}
// 用户点菜
System.out.print("请选择您要点的菜品编号:");
int chooseDish = input.nextInt();
System.out.print("请选择您需要的份数:");
int number = input.nextInt();
dishMeg = dishNames[chooseDish - 1]
+" "+ number + "份";
sumPrice = prices[chooseDish - 1] * number;
//餐费满50元,免送餐费10元
double deliCharge = (sumPrice>=50)?0:6;
System.out.print("请输入送餐时间(送餐时间是10点至20点间整点送餐):");
time = input.nextInt();
while (time < 10 || time > 20) {
System.out.print("您的输入有误,请输入10~20间的整数!");
time = input.nextInt();
}
System.out.print("请输入送餐地址:");
address = input.next();
//无需添加状态,默认是0,即已预定状态。
System.out.println("订餐成功!");
System.out.println("您订的是:"+dishMeg);
System.out.println("送餐时间:"+time+"点");
System.out.println("餐费:"+sumPrice+"元,送餐费"+deliCharge+"元,总计:"+(sumPrice+deliCharge)+"元。");
//添加数据
sumPrice = sumPrice+deliCharge;
Message=name+" "+dishMeg+" "+time+" "+address+" "+sumPrice+" ";
ListMessage.add(Message);
ListSignFor.add(0);
}
//查看餐袋
public void setMessage(){
System.out.println("***查看餐袋***");
System.out.println("序号\t订餐人\t\t餐品信息\t\t送餐日期\t\t\t送餐地址\t\t总金额\t订单状态");
for (int i=0;i<ListMessage.size();i++){
System.out.print((i+1)+" ");
System.out.print(ListMessage.get(i));
if(ListSignFor.get(i)==0){
System.out.print("已预定");
}else{
System.out.print("已签收");
}
System.out.println();
}
}
//签收订单
public void getSignFor(){
System.out.println("***签收定单***");
System.out.print("请选择要签收的订单序号:");
int signOrderId = input.nextInt();
if(signOrderId>ListSignFor.size()){
System.out.println("订单不存在");
}else{
if(ListSignFor.get(signOrderId-1)==1){
System.out.println("您选择的订单已完成签收,不能再次签收!");
}else{
System.out.println("订单签收成功!");
ListSignFor.set(signOrderId-1,1);
}
}
}
//删除订单
public void delectSignFor(){
System.out.println("***删除订单***");
System.out.print("请输入要删除的订单序号:");
int delId = input.nextInt();
if(delId>ListSignFor.size()){
System.out.println("删除的订单不存在");
} else if(ListSignFor.get(delId-1)==0){
System.out.println("您选择的订单未签收,不能删除!");
}else{
ListSignFor.remove(delId-1);
ListMessage.remove(delId-1);
System.out.println("删除订单成功!");
}
}
// 我要点赞
public void getPraiseNum(){
System.out.println("***我要点赞***");
System.out.println("序号" + "\t" + "菜名"+"\t"+"单价");
for (int i = 0; i < dishNames.length; i++) {
String price = prices[i] + "元";
String priaiseNum = (praiseNums[i]) > 0 ? praiseNums[i]
+ "赞" : "0赞";
System.out.println((i + 1) + "\t" + dishNames[i] + "\t" +price+"\t"+ priaiseNum);
}
System.out.print("请选择您要点赞的菜品序号:");
int priaiseNum = input.nextInt();
praiseNums[priaiseNum-1]++; //赞数加1
System.out.println("点赞成功!");
}
}