吃货联盟订餐系统
这边我直接写出吃货联盟订餐系统升级版的代码了。如果需要了解写代码前的项目需求还有项目分析,请参考我之前的吃货联盟订餐系统博客。 https://blog.csdn.net/dsjia2970727/article/details/107405261
public class Dish {
private String disNum;
private double price;
private int likes;
public String getDisNum() {
return disNum;
}
public void setDisNum(String disNum) {
this.disNum = disNum;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getLikes() {
return likes;
}
public void setLikes(int likes) {
this.likes = likes;
}
public Dish(){
}
public Dish(String disNum, double price, int likes) {
this.disNum = disNum;
this.price = price;
this.likes = likes;
}
@Override
public String toString() {
return disNum+"\t"+price + "\t"+ likes + '}';
}
}
public class Bill {
private String orderMan;
private String dishDetail;//菜品信息,菜品名,份数
//private int num;
private double totalPrice;//总价包括菜品单价*份数+送餐费
private int time;//10-20点
private String address;
private boolean status = false;//true为完成 ,false为已预定
public String getOrderMan() {
return orderMan;
}
public void setOrderMan(String orderMan) {
this.orderMan = orderMan;
}
public String getDishDetail() {
return dishDetail;
}
public void setDishDetail(String dishDetail) {
this.dishDetail = dishDetail;
}
public double getTotalPrice() {
return totalPrice;
}
public void setTotalPrice(double totalPrice) {
this.totalPrice = totalPrice;
}
public int getTime() {
return time;
}
public void setTime(int time) {
this.time = time;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
@Override
public String toString() {
return "Bill{" +
"orderMan='" + orderMan + '\'' +
", dishDetail='" + dishDetail + '\'' +
", totalPrice=" + totalPrice +
", time=" + time +
", address='" + address + '\'' +
", status=" + status +
'}';
}
}
import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.Scanner;
public class FrontPage {
Bill[] bill=new Bill[2048];
Dish[] dish=new Dish[5];
public void run(){
setDish();
System.out.println("欢迎来到吃货联盟");
System.out.println("*******************");
Scanner sc = new Scanner(System.in);
int chose=0;
do {
show();
chose = sc.nextInt();
chose(chose);
System.out.println("输入0返回:");
chose = sc.nextInt();
} while (chose == 0);
}
public void show(){
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("请选择:");
}
public void chose(int input){
switch (input){
case 1:
order();
break;
case 2:
lookUp();
break;
case 3:
changStatus();
break;
case 4:
deleteBill();
break;
case 5:
praise();
break;
//default:
}
}
public void order(){
Scanner sc=new Scanner(System.in);
int i = 0;
for (; i < bill.length; i++) {
if(bill[i]==null){
bill[i]=new Bill();
break;
}
}
System.out.println("****我要订餐****");
System.out.println("请输入姓名:");
String name=sc.next();
bill[i].setOrderMan(name);
System.out.println("序号\t菜品名\t单价\t点赞数");
for (int j = 0; j <dish.length ; j++) {
System.out.println(j+1+"\t"+dish[j]);
}
String choseDish;
int num=0;
int dishNum;
do{
try{
System.out.print("请选择菜品编号:");
dishNum=sc.nextInt();
System.out.print("请输入份数:");
num=sc.nextInt();
if(dishNum>0&&dishNum<6&&num>0){
choseDish=dish[dishNum-1].getDisNum();
bill[i].setDishDetail(choseDish+" "+num);
break;
}
}catch (InputMismatchException e){
System.out.println("输入不合法,请重新输入");
}
}while(true);
do{
try{
System.out.println("请输入送餐时间,10-20点之间");
int time=sc.nextInt();
System.out.println("请输入地址:");
String address=sc.next();
if(time>9&&time<21){
bill[i].setTime(time);
bill[i].setAddress(address);
break;
}
}catch (InputMismatchException e){
System.out.println("输入不合法,请重新输入");
}
}while(true);
System.out.println("订餐完成!");
System.out.println("您选择的订单为:" +bill[i].getDishDetail());
int sendPrice=0;
double totalPrice=dish[dishNum-1].getPrice()*num;
if(totalPrice<50){
sendPrice=6;
}
double total=totalPrice+sendPrice;
System.out.println("菜品总价为:" + totalPrice + ",配送费为:" +
sendPrice + ",元,总价为:" + total);
bill[i].setTotalPrice(total);
}
public void setDish(){
for (int i = 0; i < dish.length; i++) {
dish[i]=new Dish();
}
dish[0].setDisNum("佛跳墙");
dish[0].setPrice(98);
dish[0].setLikes(0);
dish[1].setDisNum("东坡肉");
dish[1].setPrice(45);
dish[2].setDisNum("燕窝");
dish[2].setPrice(38);
dish[3].setDisNum("鱼子酱");
dish[3].setPrice(28);
dish[4].setDisNum("秋刀鱼");
dish[4].setPrice(18);
}public void lookUp(){
System.out.println("编号\t姓名\t\t餐品信息\t总价\t\t时间\t\t地址\t\t状态");
for (int i = 0; i < bill.length; i++) {
if(bill[i]!=null){
System.out.print((i + 1) + "\t" + bill[i].getOrderMan() + "\t\t" +
bill[i].getDishDetail() + "份\t\t" + bill[i].getTime() +
"\t" + bill[i].getAddress() + "\t" + bill[i].getTotalPrice() + "\t");
if (!bill[i].isStatus()) {
System.out.print("已预订\n");}
}else break;
}
}public void changStatus(){
lookUp();
System.out.println("请输入您要修改的状态的订单编号");
Scanner sc=new Scanner(System.in);
int id=sc.nextInt();
if(!bill[id-1].isStatus()){
bill[id-1].setStatus(true);
}else {
System.out.println("您输入的订单已完成,无需修改!");
}
System.out.println("订单修改完成!");
}public void deleteBill(){
lookUp();
System.out.println("请输入要删除的订单编号:");
Scanner sc=new Scanner(System.in);
int id=sc.nextInt();
if(!bill[id-1].isStatus()){
System.out.println("订单未完成,不能删除订单!");
}else {
for (int i = id - 1; i < bill.length - 1; i++) {
bill[i]=bill[i+1];
}bill[bill.length]=null; System.out.println("订单删除成功!");
}
}public void praise(){
System.out.println("序号\t菜品名\t单价\t点赞数\t");
for (int i = 0; i < dish.length; i++) {
System.out.println((i + 1) + "\t" + dish[i].toString());
}
System.out.println("请输入您要点赞的编号:");
Scanner sc=new Scanner(System.in);
dish[sc.nextInt()-1].setLikes(1);
System.out.println("点赞成功!");
}
}
public class PlatForm {
public static void main(String[] args) {
FrontPage fp=new FrontPage();
fp.run();
}
}
输出结果: