Java吃货联盟,集合泛型

版权声明:本文为博主原创文章,未经博主允许不得转载。 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();
	}
}


猜你喜欢

转载自blog.csdn.net/weixin_40969422/article/details/80159351