知识储备:变量、数据类型、选择结构、循环结构、数组、对象、方法
代码如下:
创建订餐类
public class Order {
private String names;
private String dishMegs;
private int time;
private String address;
private int states;
private double sumprice;
public Order() {
}
public Order(String names, String dishMegs, int time, String address, int states, double sumprice) {
this.names = names;
this.dishMegs = dishMegs;
this.time = time;
this.address = address;
this.states = states;
this.sumprice = sumprice;
}
/**
* 获取
* @return names
*/
public String getNames() {
return names;
}
/**
* 设置
* @param names
*/
public void setNames(String names) {
this.names = names;
}
/**
* 获取
* @return dishMegs
*/
public String getDishMegs() {
return dishMegs;
}
/**
* 设置
* @param dishMegs
*/
public void setDishMegs(String dishMegs) {
this.dishMegs = dishMegs;
}
/**
* 获取
* @return time
*/
public int getTime() {
return time;
}
/**
* 设置
* @param time
*/
public void setTime(int time) {
this.time = time;
}
/**
* 获取
* @return address
*/
public String getAddress() {
return address;
}
/**
* 设置
* @param address
*/
public void setAddress(String address) {
this.address = address;
}
/**
* 获取
* @return states
*/
public int getStates() {
return states;
}
/**
* 设置
* @param states
*/
public void setStates(int states) {
this.states = states;
}
/**
* 获取
* @return sumprice
*/
public double getSumprice() {
return sumprice;
}
/**
* 设置
* @param sumprice
*/
public void setSumprice(double sumprice) {
this.sumprice = sumprice;
}
public String toString() {
return "Order{names = " + names + ", dishMegs = " + dishMegs + ", time = " + time + ", address = " + address + ", states = " + states + ", sumprice = " + sumprice + "}";
}
}
创建菜单类
public class Dish {
private String dishname;
private double price;
private int praiseNums;
public Dish() {
}
public Dish(String dishname, double price, int praiseNums) {
this.dishname = dishname;
this.price = price;
this.praiseNums = praiseNums;
}
/**
* 获取
* @return dishname
*/
public String getDishname() {
return dishname;
}
/**
* 设置
* @param dishname
*/
public void setDishname(String dishname) {
this.dishname = dishname;
}
/**
* 获取
* @return price
*/
public double getPrice() {
return price;
}
/**
* 设置
* @param price
*/
public void setPrice(double price) {
this.price = price;
}
/**
* 获取
* @return praiseNums
*/
public int getPraiseNums() {
return praiseNums;
}
/**
* 设置
* @param praiseNums
*/
public void setPraiseNums(int praiseNums) {
this.praiseNums = praiseNums;
}
public String toString() {
return "Dish{dishname = " + dishname + ", price = " + price + ", praiseNums = " + praiseNums + "}";
}
}
创建实现
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Order[] oreders = new Order[4];
// 存入订餐信息
Order order = new Order("张晴","红烧带鱼 2份",12,"天成路209号",0,38.0);
Order order1 = new Order("张晴","鱼香肉丝 1份",12,"天成路209号",0,76.0);
oreders[0]=order;
oreders[1]=order1;
//数据的主体:一组餐品信息
Dish[] dishes = new Dish[3];
Dish dish = new Dish("红烧带鱼",38.0,0);
Dish dish1 = new Dish("鱼香肉丝",18.0,0);
Dish dish2 = new Dish("时令蔬菜",10.0,0);
dishes[0]=dish;
dishes[1]=dish1;
dishes[2]=dish2;
//进行主体框架搭建
int number;
a:do{
// 调用欢迎
show();
int choose = scanner.nextInt();
//true:记录找到一个为空的位置,可以插入
switch (choose){
case 1:
// 进行点餐
boolean order2 = Order(oreders, dishes);
if(!order2){
System.out.println("对不起,你的餐袋已满");
}
break;
case 2:
// 查看订单
Lookorder(oreders);
break;
case 3:
// 进行签收订单
sign(oreders);
break;
case 4:
// 删除订单
delete(oreders);
break;
case 5:
// 进行点赞
Give(dishes);
break;
case 6:
// 退出系统
break a;
default:
break a;
}
System.out.print("输入0返回:");
number = scanner.nextInt();
}while (number==0);
System.out.println("欢迎下次登录");
}
// 展示欢迎界面
public static void show(){
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.print("请选择:");
}
// 进行订餐
public static boolean Order(Order[] names,Dish[] dishes){
// 我要订餐
System.out.println("*****我要订餐******");
boolean isAdd=false;
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < names.length; i++) {
if(names[i]==null){
isAdd=true;
System.out.println("序号\t餐品名\t单价\t点赞数");
for (int j = 0;j< dishes.length; j++) {
String prices= dishes[j].getPrice()+"元";
String praiseNum=dishes[j].getPraiseNums()+"赞";
System.out.println((j+1)+"\t"+dishes[j].getDishname()+"\t"+prices+"\t"+praiseNum);
}
//输入所需要的餐品编号以及份数
System.out.print("请选择所定餐品序号:");
//选选择的餐品序号
int id = scanner.nextInt();
String dishname = dishes[id - 1].getDishname();
System.out.print("请选择所定份数:");
//订多少份数
int numbers = scanner.nextInt();
//输入订餐人姓名
System.out.print("请输入订餐人姓名:");
String name = scanner.next();
System.out.print("请输入送餐时间(10~20整点送餐):");
int time = scanner.nextInt();
//判断输入的送餐时间是否在10点到20点范围
while (time<10||time>20){
System.out.println("对不起,您输入的有误,范围在10~20之间");
time = scanner.nextInt();
}
//送餐地址
System.out.print("请输入送餐地址:");
String addres = scanner.next();
//计算餐费
double sumPrice=dishes[id-1].getPrice()*numbers;
//送餐费,当餐费达到50元时,免掉元配送费
double deliCharge=sumPrice>=50?0.0:6.0;
//显示订单信息
System.out.println("订餐成功!");
System.out.println("您订的是:"+dishname);
System.out.println("订餐人:"+name);
System.out.println("订餐时间为:"+time);
System.out.println("订餐地址:"+addres);
System.out.println("餐费:"+sumPrice+"送餐费:"+deliCharge+"总和:"+(sumPrice+deliCharge));
//保存数据
Order order = new Order();
order.setNames(name);
order.setDishMegs(dishname+numbers+"份");
order.setTime(time);
order.setAddress(addres);
order.setStates(0);
order.setSumprice(sumPrice+deliCharge);
names[i]=order;
return isAdd;
}
}
return isAdd;
}
// 查看菜单
public static void Lookorder(Order[] names){
// 进行查看餐袋
System.out.println("*****查看餐袋******");
System.out.println("序号\t订餐人\t所订餐品信息\t送餐时间\t\t送餐地址\t\t总金额\t状态");
for (int i = 0; i < names.length; i++) {
if(names[i]!=null){
String state;
if(names[i].getStates()==0){
state="已预定";
}else {
state="已完成";
}
System.out.println((i+1)+"\t"+names[i].getNames()+"\t\t"+names[i].getDishMegs()+"\t"+names[i].getTime()+"点"+"\t"+names[i].getAddress()+"\t\t"+names[i].getSumprice()+"元"+"\t"+state);
}
}
}
// 签收订单
public static void sign(Order[] names){
Scanner scanner = new Scanner(System.in);
System.out.println("*****签收订单******");
System.out.print("请输入所要签收订单的序号:");
boolean qianshou=false;
int id = scanner.nextInt();
for (int i = 0; i < names.length; i++) {
if(names[i]!=null&&names[i].getStates()==1&&id==i+1){
System.out.println("该订单已签收,不能重复签收");
qianshou=true;
break ;
}
else if(names[i]!=null&&names[i].getStates()==0&&id==i+1) {
names[i].setStates(1);//状态值改为已完成状态
System.out.println("订单签收成功");
qianshou=true;
break ;
}
}
if(!qianshou){
System.out.println("该订单不存在");
}
}
// 删除订单
public static void delete(Order[] names){
Scanner scanner = new Scanner(System.in);
System.out.println("*****删除订单******");
System.out.print("请输入要删除的订单号:");
int deleteid = scanner.nextInt();
//删除订单的下标
int index=-1;
//记录是否找到此订单
boolean isDelFind=false;
for (int i = 0; i < names.length; i++) {
if(names[i]!=null&&names[i].getStates()==1&&deleteid==i+1){
index=i;
names[index]=null;
isDelFind=true;
System.out.println("删除成功!");
break ;
}
else if(names[i]!=null&&names[i].getStates()==0&&deleteid==i+1){
System.out.println("您选择的订单未签收,不能删除!");
isDelFind=true;
}
}
if(!isDelFind){
System.out.println("没找到此订单");
}
}
// 进行点赞
public static void Give(Dish[] dishes){
Scanner scanner = new Scanner(System.in);
System.out.println("*****我要点赞******");
//输出菜单
System.out.println("序号\t餐品名\t单价");
for (int j = 0;j< dishes.length; j++) {
String prices= dishes[j].getPrice()+"元";
System.out.println((j+1)+"\t"+dishes[j].getDishname()+"\t"+prices);
}
System.out.print("请输入要点赞的订单号:");
int dianzan = scanner.nextInt();
boolean dian=false;
//判断是否存在
for (int i = 0; i < dishes.length; i++) {
if(dishes[i]!=null&&dianzan==i+1){
dian=true;
dishes[i].setPraiseNums(dishes[i].getPraiseNums()+1);
System.out.println("点赞成功");
break ;
}
}
if(!dian){
System.out.println("没有找到该点赞菜单");
}
}
}