订单系统:(使用集合与对象)
Java代码
Dishes.java
package exercise1;
public class Dishes {
//无参构建方法
private String dishmegs;
private double prices;
private int loveNum;
public Dishes() {
}
//有参构建方法
public Dishes(String dishmegs,double prices,int loveNum ) {
this.dishmegs = dishmegs;
this.prices = prices;
this.loveNum = loveNum;
}
public String getDishmegs() {
return dishmegs;
}
public void setDishmegs(String dishmegs) {
this.dishmegs = dishmegs;
}
public double getPrices() {
return prices;
}
public void setPrices(double prices) {
this.prices = prices;
}
public int getLoveNum() {
return loveNum;
}
public void setLoveNum(int loveNum) {
this.loveNum = loveNum;
}
}
Order.java
package exercise1;
public class Order {
//无参构建方法
private String orderNames ;
//订餐信息
private String orderDish;
//订餐份数
private int num;
//送餐日期
private String orderTimes;
//送餐地址
private String orderAddress;
//总金额
private double sumPrice ;
//订单状态 默认值0:代表已预订 1:已完成
private int states ;
public Order() {
}
public Order(String orderNames,String orderDish, int num,String orderTimes,String orderAddress,double sumPrice,int states) {
this.orderNames = orderNames;
this.orderDish = orderDish;
this.orderTimes = orderTimes;
this.orderAddress= orderAddress;
this.sumPrice = sumPrice;
this.states = states;
this.num = num;
}
public String getOrderNames() {
return orderNames;
}
public void setOrderNames(String orderNames) {
this.orderNames = orderNames;
}
public String getOrderDish() {
return orderDish;
}
public void setOrderDish(String orderDish) {
this.orderDish = orderDish;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getOrderTimes() {
return orderTimes;
}
public void setOrderTimes(String orderTimes) {
this.orderTimes = orderTimes;
}
public String getOrderAddress() {
return orderAddress;
}
public void setOrderAddress(String orderAddress) {
this.orderAddress = orderAddress;
}
public double getSumPrice() {
return sumPrice;
}
public void setSumPrice(double sumPrice) {
this.sumPrice = sumPrice;
}
//
public int getStates() {//getStates():返回的时states的值
// if(states == 0){
// return "已预定"; //因为返回值时String,所以getStates()函数的类型是String
// }else{
// return "已完成";
// }
return states;
}
public void setStates(int states) {
this.states = states;
}
}
TestFunction.java
package exercise1;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class TestFunction {
// 创建 订单集合 保存 多个订单对象
List<Order> orderList = new ArrayList<>();
// 创建 菜品集合
List<Dishes> dishesList = new ArrayList<>();
/**
* 创建初始化方法 初始化 订单集合 与 菜品集合
*/
public void initialize(){
System.out.println("*************开始初始化************");
orderList.add(new Order("张青1","红烧带鱼 ",1, "2021-07-18 12:30", "测试地址1", 38, 0));
orderList.add(new Order("张青2","鱼香肉丝 ", 1,"2021-07-18 12:30", "测试地址2", 20, 0));
orderList.add(new Order("张青3","红烧带鱼 ",1, "2021-07-18 12:30", "测试地址3", 38, 0));
dishesList.add(new Dishes("红烧带鱼", 38.0, 10));
dishesList.add(new Dishes("鱼香肉丝", 20.0, 20));
dishesList.add(new Dishes("时令鲜蔬", 10.0, 5));
System.out.println("*************初始化完成******************");
}
public int menu(Scanner input){
System.out.println("欢迎使用“联盟订餐系统”");
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("请选择:");
return input.nextInt();
}
/**
* 新增订单信息
*/
public void insertOrder(String ordername,int dishmegsIndex,int num,String ordertime,String orderAddess){
orderList.add(new Order(ordername,dishesList.get(dishmegsIndex-1).getDishmegs(),
num,ordertime,orderAddess,num*dishesList.get(dishmegsIndex-1).getPrices(),0));
System.out.println("订餐成功!");
System.out.println("您订的是:"+dishesList.get(dishmegsIndex-1).getDishmegs()+"\t\t"+num+"份");
System.out.println("送餐时间:"+ordertime+"点");
System.out.println("餐费:"+num*dishesList.get(dishmegsIndex-1).getPrices()+",送餐费0.0元,总计:"+num*dishesList.get(dishmegsIndex-1).getPrices()+"元");
}
public void showOrder(){
int size = orderList.size();
for (int i = 0; i < orderList.size(); i++) {
int dishIndex = 0;
if (orderList.get(i).getOrderNames() != null) {
for (int j = 0; j < 3; j++) {
if (dishesList.get(j).getDishmegs() == orderList.get(i).getOrderNames()) {
dishIndex = j;
break;
}
}
}
System.out.println((i + 1) + "\t\t" + orderList.get(i).getOrderNames() + "\t\t" +
orderList.get(i).getOrderDish() + "\t\t" + orderList.get(i).getOrderTimes() + "\t\t" +
orderList.get(i).getOrderAddress() + "\t\t" + orderList.get(i).getSumPrice() + "\t\t" +
(orderList.get(i).getStates() == 0 ? "已预定" : "已完成") + "\t\t" + dishesList.get(dishIndex).getLoveNum());
}
}
public void upState(Scanner input){
int toReceiveNum = input.nextInt();
orderList.get(toReceiveNum-1).setStates(1) ;
System.out.println("订单签收成功!!");
System.out.println("输入0返回:");
}
public void deleteOrder(Scanner input){
int toDeleteNum = input.nextInt();//toDeleteNum:要删除的订单编号
orderList.remove(toDeleteNum-1);
}
public void showDishesList(){
System.out.println("序号\t\t\t菜名\t\t\t单价\t\t\t点赞数");
for (int i = 0; i < dishesList.size(); i++) {
System.out.println((i+1)+"\t\t"+dishesList.get(i).getDishmegs()+"\t\t"+dishesList.get(i).getPrices()+"\t\t"+dishesList.get(i).getLoveNum());
}
}
public void AddLoveNum(Scanner input) {
int AddLoveNum = input.nextInt()-1; //input.nextInt()为什么不能直接给get()中,dishesList.get(input.nextInt()-1)
dishesList.get(AddLoveNum).setLoveNum(dishesList.get(AddLoveNum).getLoveNum()+1);
System.out.println("点赞完成");
}
}
OperatePanel.java
package exercise1;
import java.util.Scanner;
public class OperatePanel {
public static void main(String[] args) {
TestFunction testFunction = new TestFunction();
testFunction.initialize();
int existsignal = 1;
Scanner input = new Scanner(System.in);
do{
System.out.println("请输入选项:");
switch(testFunction.menu(input)) {
case 1:
System.out.println("请输入订餐人姓名:");
String ordername = input.next();
System.out.println("请选择您要点的菜品编号:");
int dishmegsIndex = input.nextInt();
System.out.println("请选择您需要的份数");
int num = input.nextInt();//存放点餐份数
System.out.println("请输入送餐时间(送餐时间是10点到20点间整点送餐):");
String ordertime = input.next();
System.out.println("请输入送餐地址:");
String orderAddess = input.next();
testFunction.insertOrder(ordername, dishmegsIndex, num, ordertime, orderAddess);
System.out.println("输入0返回:");
if (input.nextInt() == 0) { //如果input.nextInt(自动出现的红色数字),删去它
break;
}
case 2:
System.out.println("***查看餐袋***");
System.out.println("序号" + "\t\t" + "订餐人" + "\t\t" + "餐品信息" + "\t\t" + "送餐日期" + "\t\t" + "送餐地址" + "\t\t" + "总金额" + "\t\t" + "订单状态" + "\t\t" + "点赞数");
testFunction.showOrder();
System.out.println("输入0返回:");
if (input.nextInt() == 0) {
break;
}
case 3:
System.out.println("***签收订单***");
System.out.println("请选择要签收的订单编号:");
testFunction.upState(input);
if(input.nextInt() == 0){
break;
}
case 4:
System.out.println("***删除订单***");
System.out.println("请输入要删除的订单编号:");
testFunction.deleteOrder(input);
System.out.println("输入0返回:");
if(input.nextInt() == 0){
break;
}
case 5:
System.out.println("***我要点赞***");
testFunction.showDishesList();
System.out.println("请选择您要点赞的菜品编号:");
//disheslist并不在主函数中存在
testFunction.AddLoveNum(input);
testFunction.showDishesList();
System.out.println("输入0返回:");
if(input.nextInt() == 0){
break;
}
case 6:
System.out.println("谢谢使用,欢迎下次");
existsignal = 0;
}
}while(true);
}
}