版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40969422/article/details/80159351
package cn.bdqn_04;
/**
* 菜单类
* @author zheyi
*
*/
public class Dish implements Comparable <Dish>{
//菜的编号
private int dishId;
//菜的名字
private String dishName;
//菜的单价
private int price;
//点赞数
private int praise;
public Dish() {
}
public Dish(int dishId, String dishName, int price, int praise) {
this.dishId = dishId;
this.dishName = dishName;
this.price = price;
this.praise = praise;
}
/**
* 菜的编号
* @return
*/
public int getDishId() {
return dishId;
}
public void setDishId(int dishId) {
this.dishId = dishId;
}
/**
* 菜的名字
* @return
*/
public String getDishName() {
return dishName;
}
public void setDishName(String dishName) {
this.dishName = dishName;
}
/**
* 菜的单价
* @return
*/
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
/**
* 点赞数
* @return
*/
public int getPraise() {
return praise;
}
public void setPraise(int praise) {
this.praise = praise;
}
/**
* 将praise作排序参数
*/
public int compareTo(Dish o) {
Dish dish=o;
if(this.praise==dish.praise){
return 0;
}else if(this.praise>dish.praise){
return 1;
}else{
return -1;
}
}
}
package cn.bdqn_04;
/**
* 订单类
* @author zheyi
*
*/
public class Order {
//订单编号
private int orderId;
//订餐人名字
private String name;
//送餐时间
private String time;
//送餐地址
private String address;
//送餐金额 菜的单价*菜的数量
@SuppressWarnings("unused")
private int sumPrice;
//订单状态 0已预订 1已完成
private int state;
//点菜数量
private int count;
//所点的菜
private Dish dish;
public Order(int orderId, String name, String time, String address, int state, int count, Dish dish) {
this.orderId = orderId;
this.name = name;
this.time = time;
this.address = address;
this.state = state;
this.count = count;
this.dish = dish;
}
public Order() {
}
public int getOrderId() {
return orderId;
}
public void setOrderId(int orderId) {
this.orderId = orderId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getSumPrice() {
return this.dish.getPrice()*this.count;
}
public void setSumPrice(int sumPrice) {
this.sumPrice = sumPrice;
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public Dish getDish() {
return dish;
}
public void setDish(Dish dish) {
this.dish = dish;
}
}
package cn.bdqn_04;
/**
* 功能实现
*/
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Manager {
Scanner input=new Scanner(System.in);
//创建菜品的集合
List<Dish> dishList=new ArrayList<Dish>();
List<Order> orderList=new ArrayList<Order>();
//创建订单的集合
private void initail(){
//初始化一些菜单
Dish dish1=new Dish(1,"鱼香肉丝",25,113);
Dish dish2=new Dish(2,"土豆丝",17,17);
Dish dish3=new Dish(3,"酸辣白菜",10,56);
Dish dish4=new Dish(4,"红烧猪蹄",35,75);
Dish dish5=new Dish(5,"麻辣豆腐",16,13);
dishList.add(dish1);
dishList.add(dish2);
dishList.add(dish3);
dishList.add(dish4);
dishList.add(dish5);
//初始化一些订单
Order order1=new Order(1,"张三","2018-04-29","东莞金马",0,1,dish5);
Order order2=new Order(2,"张美丽","2018-04-27","东莞常平",1,2,dish1);
Order order3=new Order(3,"黄蓉","2018-04-28","东莞莞城",0,1,dish4);
orderList.add(order1);
orderList.add(order2);
orderList.add(order3);
}
public void showMenu(){
initail();
int chose=0;
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("7、退出系统");
System.out.println("****************");
System.out.print("请选择:");
chose = input.nextInt();
switch (chose) {
case 1:
addOrder();
break;
case 2:
showOrder();
break;
case 3:
signOff();
break;
case 4:
deleteOrder();
break;
case 5:
addgetState();
break;
case 6:
sortPraise();
break;
case 7:
System.exit(0);
break;
default:
System.exit(0);
break;
}
} while (chose!=7);
}
/**
* 根据点赞数,将菜单进行排序,降序排列
*/
private void sortPraise() {
Collections.sort(dishList);
System.out.println("序号\t菜名\t单价\t点赞数");
for (int i = dishList.size()-1; i>=0; i--) {
Dish item=dishList.get(i);
System.out.println(item.getDishId()+"\t"+item.getDishName()+"\t"+item.getPrice()+"\t"+item.getPraise());
}
}
/**
* 点赞
*/
private void addgetState() {
showDish();
System.out.print("请输入要点赞的菜品序号:");
int addState=input.nextInt();
while(getDishById(addState)==null){
System.out.print("没有此菜单,请重新输入:");
addState=input.nextInt();
}
getDishById(addState).setPraise((getDishById(addState).getPraise()+1));
System.out.println("点赞成功!");
}
/**
* 删除订单
*/
private void deleteOrder() {
showOrder();
System.out.print("请输入要删除的订单编号:");
int orderId=input.nextInt();
while(orderbyId(orderId)==null){
System.out.print("请输入正确的订单编号:");
orderId=input.nextInt();
}
if(orderbyId(orderId).getState()==1){
orderList.remove(orderbyId(orderId));
System.out.println("订单删除成功!");
}else{
System.out.println("订单未签收不能删除!");
}
}
/**
* 查看菜品信息
*/
private void showDish() {
System.out.println("序号\t菜名\t单价\t点赞数");
for (Dish item : dishList) {
System.out.println(item.getDishId()+"\t"+item.getDishName()+"\t"+item.getPrice()+"\t"+item.getPraise());
}
}
/**
* 查看订单信息
*/
private void showOrder() {
System.out.println("******查看餐袋******");
System.out.println("序号\t订餐人\t餐品信息\t单价\t数量\t送餐时间\t\t送餐地址\t\t总金额\t定单状态");
for (Order item : orderList) {
System.out.println(item.getOrderId()+"\t"+item.getName()+"\t"+item.getDish().getDishName()+"\t"+item.getDish().getPrice()+"\t"+item.getCount()+"\t"+item.getTime()+"\t"+item.getAddress()+"\t\t"+item.getSumPrice()+"\t"+(item.getState()==0?"已预订":"已完成"));
}
}
/**
* 新增订单
*/
private void addOrder() {
System.out.println("******我要订餐******");
System.out.print("请输入订餐人姓名:");
String name=input.next();
showDish();
System.out.print("请选择您要点的菜品编号:");
int dishId=input.nextInt();
while (getDishById(dishId)==null) {
System.out.print("您输入的菜品编号不正确,请重新输入:");
dishId=input.nextInt();
}
Dish dish=getDishById(dishId);
System.out.print("请选择您要的份数:");
int count=input.nextInt();
while (count<1) {
System.out.print("请选择您要的份数:");
count=input.nextInt();
}
System.out.print("请输入送餐时间:");
String time=input.next();
System.out.print("请输入送餐地址:");
String address=input.next();
Order order = new Order();
order.setOrderId(addgetOrderId());
order.setName(name);
order.setTime(time);
order.setAddress(address);
order.setState(0);
order.setCount(count);
order.setDish(dish);
orderList.add(order);
}
//根据输入的菜品编号找出菜的对象
private Dish getDishById(int dishId) {
Dish dish=null;
for (Dish item : dishList) {
if(item.getDishId()==dishId){
dish=item;
break;
}
}
return dish;
}
/**
* 新增订单编号
*/
private int addgetOrderId(){
int orderId=0;
for (int i = 0; i < orderList.size(); i++) {
//Order item=orderList.get(i);
if(orderId<orderList.get(i).getOrderId()){
orderId=orderList.get(i).getOrderId();
}
}
return orderId+1;
}
/**
* 签收订单
*/
private void signOff(){
showOrder();
System.out.print("请选输入要签收的订单编号:");
int orderId=input.nextInt();
while(orderbyId(orderId)==null){
System.out.print("请输入正确的订单编号:");
orderId=input.nextInt();
}
if(orderbyId(orderId).getState()!=1){
orderbyId(orderId).setState(1);
System.out.println("订单签收成功!");
}else{
System.out.println("订单已签收,请不要重复签收!");
}
}
/**
* 根据用户输入的订单编号,返回是否有这个订单
* @param orderId
* @return
*/
private Order orderbyId(int orderId){
Order order = null;
for (Order item : orderList) {
if(orderId==item.getOrderId()){
order=item;
break;
}
}
return order;
}
}
package cn.bdqn_04;
/**
* 测试
* @author zheyi
*
*/
public class Test {
public static void main(String[] args) {
Manager ma = new Manager();
ma.showMenu();
}
}