入口文件
public class text {
public static void main(String[] args) {
//text 作为入口文件使用 将a在text文件里实例化
game a = new game();
a.all();
}
}
定义初始代码
String[] name = new String[100]; //保存订单人的信息
String[] xinxi = new String[100]; //保存选择的菜品
int[] shijian = new int[100]; //保存客户选择的送餐时间
int[] zhuangtai = new int[100]; //保存订单状态
String[] dizhi = new String[100]; //保存订单的地址
double[] zhongjia = new double[100]; //订单的总价
String[] caidian = new String[]{"面","汤","饭"}; //保存菜名
double[] jiage = new double[]{10,14,24}; //保存菜品的价格
int[] dianzanshu = new int[3]; //用于保存用户的点赞数
Scanner a=new Scanner(System.in);
整个文件用game方法包裹起来
定义初始页面 使用定义all方法包裹起来
public void all() {
b:while(true){
//这是初始页面 也就是当用户打开程序时显示的东西
System.out.println("**************************************");
System.out.println("\t\t1,我要订单");
System.out.println("\t\t2,查看订单");
System.out.println("\t\t3,签收订单");
System.out.println("\t\t4,删除订单");
System.out.println("\t\t5,菜品点赞");
System.out.println("\t\t6,退出程序");
System.out.println("**************************************");
//判断用户输入的是哪一个则进入哪一个方法
String xz = a.next();
switch(xz){
case "1":
System.out.println("***我要订单***");
caidan();
break b;
case "2":
System.out.println("***查看订单***");
chakan();
break b;
case "3":
System.out.println("***签收订单***");
qiansho();
break b;
case "4":
System.out.println("***删除订单***");
shanchu();
break b;
case "5":
System.out.println("***菜品点赞***");
dianzan();
break b;
case "6":
System.out.println("***推出程序***");
System.out.println("***欢迎下次使用;祝你用餐愉快***");
break b;
default:
System.out.println("输入错误,请重新输入");
}
}
}
返回到初始页面的方法
private void fanhui(){
System.out.print("输入任意符返回");
String pp = a.next();
all();
}
我要订单的方法
private void caidan() {
//我要订单
a:for(int i=0;i<xinxi.length;i++){
if(xinxi[i]==null){
System.out.println("序号\t\t菜名\t\t价格\t\t点赞");
//使用for循环遍历菜单
for(int s=0;s<caidian.length;s++){
System.out.println((s+1)+"\t\t"+caidian[s]+"\t\t"+jiage[s]+"\t\t"+dianzanshu[s]);
}
//询问订单人的姓名
System.out.print("请输入订单人姓名:");
String os = a.next();
//询问菜品的编号如果不是1-3的话则让用户重新输入
System.out.print("请输入你要点的菜品编号:");
int pqq = a.nextInt();
while(pqq<1 || pqq>3){
System.out.print("输入错误;重新输入");
pqq = a.nextInt();
}
//询问点餐份数,如果不是1-3则让用户重新输入
System.out.print("请输入你的份数(最多只能点3份):");
int acc = a.nextInt();
while(acc<1 || acc>3){
System.out.print("输入错误请从新输入:");
acc = a.nextInt();
}
//这是将用户点的菜品和份数上传给xinxi_
String xinxi_ = caidian[pqq-1]+" "+acc+"份";
//询问送餐时间如果不是0-24的话则让用户重新输入
System.out.print("请输入你的送餐时间(0-24):");
int saa = a.nextInt();
while(saa<0 || saa>24){
System.out.print("输入错误,请重新输入:");
saa = a.nextInt();
}
//询问用户的送餐地址
System.out.print("请输入你的送餐地址:");
String sds = a.next();
System.out.println("订餐成功");
//将用户点的餐的价格乘于份数 从而算出总价
System.out.println("总价为:"+jiage[pqq-1]*acc);
if(true){
}
//将算出来的总价赋值给zhongjia[i]
zhongjia[i]=jiage[pqq-1]*acc;
//将订单人姓名赋值给name[i]
name[i] = os;
//将用户点的菜和份数赋值给xinxi[i]
xinxi[i]= xinxi_;
//将送餐时间赋值给shijian[i]
shijian[i] = saa;
//将用户输入的送餐地址赋值给dizhi[i]
dizhi[i] = sds;
//使用返回方法返回到初始页面
fanhui();
break a;
}
}
}
查看订单
private void chakan() {
// 查看订单
System.out.println("序号\t\t订餐人\t\t商品信息\t\t送餐时间\t\t送餐地址\t\t总金额\t\t订单状态");
//for内询问name[c]是否有内容,如果没有内容的话则进入if分支,如果有的话则返回初始页面
for(int c = 0;c<name.length;c++){
if(name[c]!=null) {
//先询问zhuangtai[c]是否等于0;如果等于0的话则将配送中赋值费jc;如果不等于0的话则将已签收赋值给jc,zhuangtai数组在后面的签收订单方法里;在签收方法里如果用户选择签收订单的话,那么在那个下标的数组里则会变成1,反之就是初始值0;
String jc = (zhuangtai[c] == 0) ? "配送中" : "已签收";
//将订单打印出来
System.out.println(c + 1 + "\t\t" + name[c] + "\t\t\t" + xinxi[c] + "\t\t" + shijian[c] + "点\t\t\t" + dizhi[c] + "\t\t" + zhongjia[c] + "\t\t" + jc);
}
}
//返回初始页面
fanhui();
}
签收订单
private void qiansho() {
// 签收订单
System.out.println("你要签收哪一个订单(请填写序号):");
int o = a.nextInt();
if(name[o-1]!=null){
//赋值为何赋值为一在查看订单内有解释
zhuangtai[o-1]=1;
fanhui();
}
}
删除订单
private void shanchu() {
// 删除订单
System.out.println("你要删除哪一个订单(请填写序号):");
int o = a.nextInt();
o--;
if(name[o]!=null){
//判断用户输入的订单号有没有如果有,则进入if分支,如果没有则报错,并返回初始页面
if(zhuangtai[o]==1){
//将订单向前移
for(int i=o; i<name.length-1; i++){
name[i]=name[i+1];
xinxi[i]=xinxi[i+1];
shijian[i]=shijian[i+1];
zhuangtai[i]=zhuangtai[i+1];
dizhi[i]=dizhi[i+1];
zhongjia[i]=zhongjia[i+1];
}
System.out.println("已删除订单");
//处理将订单向前移的后事;都知道将一个值赋予一个值,赋值过去之后原本的那个值不会消失,还会留在那里,下面的代码是将原本的值删除
int zuiho=name.length-1;
name[zuiho]=null;
xinxi[zuiho]=null;
shijian[zuiho]=0;
zhuangtai[zuiho]=0;
dizhi[zuiho]=null;
zhongjia[zuiho]=0;
fanhui();
}else {
System.out.println("不是已签收的点单,无法删除");
fanhui();
}
}else{
System.out.println("订单不存在!");
fanhui();
}
}
菜品点赞
private void dianzan() {
// 菜品点赞
//将菜品输出出来
System.out.println("1,"+caidian[0]);
System.out.println("2,"+caidian[1]);
System.out.println("3,"+caidian[2]);
System.out.println("请输入你要点赞的菜单编号");
int o = a.nextInt();
//判断用户输入的菜品编号,并进入相对的分支
if (o==1){
dianzanshu[o-1]+=1;
System.out.println("点赞成功,谢谢你的点赞");
fanhui();
}else if (o==2){
dianzanshu[o-1]+=1;
System.out.println("点赞成功,谢谢你的点赞");
fanhui();
}else if(o==3){
dianzanshu[o-1]+=1;
System.out.println("点赞成功,谢谢你的点赞");
fanhui();
}else{
System.out.println("输入错误请重新输入");
fanhui();
}
}
完整代码
import java.util.Scanner;
public class game {
String[] name = new String[100]; //保存订单人的信息
String[] xinxi = new String[100]; //保存选择的菜品
int[] shijian = new int[100]; //保存客户选择的送餐时间
int[] zhuangtai = new int[100]; //保存订单状态
String[] dizhi = new String[100]; //保存订单的地址
double[] zhongjia = new double[100]; //订单的总价
String[] caidian = new String[]{"面","汤","饭"}; //保存菜名
double[] jiage = new double[]{10,14,24}; //保存菜品的价格
int[] dianzanshu = new int[3]; //用于保存用户的点赞数
Scanner a=new Scanner(System.in);
public void all() {
b:while(true){
System.out.println("**************************************");
System.out.println("\t\t1,我要订单");
System.out.println("\t\t2,查看订单");
System.out.println("\t\t3,签收订单");
System.out.println("\t\t4,删除订单");
System.out.println("\t\t5,菜品点赞");
System.out.println("\t\t6,退出程序");
System.out.println("**************************************");
String xz = a.next();
switch(xz){
case "1":
System.out.println("***我要订单***");
caidan();
break b;
case "2":
System.out.println("***查看订单***");
chakan();
break b;
case "3":
System.out.println("***签收订单***");
qiansho();
break b;
case "4":
System.out.println("***删除订单***");
shanchu();
break b;
case "5":
System.out.println("***菜品点赞***");
dianzan();
break b;
case "6":
System.out.println("***推出程序***");
System.out.println("***欢迎下次使用;祝你用餐愉快***");
break b;
default:
System.out.println("输入错误,请重新输入");
}
}
}
private void dianzan() {
// 菜品点赞
System.out.println("1,"+caidian[0]);
System.out.println("2,"+caidian[1]);
System.out.println("3,"+caidian[2]);
System.out.println("请输入你要点赞的菜单编号");
int o = a.nextInt();
if (o==1){
dianzanshu[o-1]+=1;
System.out.println("点赞成功,谢谢你的点赞");
fanhui();
}else if (o==2){
dianzanshu[o-1]+=1;
System.out.println("点赞成功,谢谢你的点赞");
fanhui();
}else if(o==3){
dianzanshu[o-1]+=1;
System.out.println("点赞成功,谢谢你的点赞");
fanhui();
}else{
System.out.println("输入错误请重新输入");
fanhui();
}
}
private void shanchu() {
// 删除订单
System.out.println("你要删除哪一个订单(请填写序号):");
int o = a.nextInt();
o--;
if(name[o]!=null){
if(zhuangtai[o]==1){
for(int i=o; i<name.length-1; i++){ //将订单向前移
name[i]=name[i+1];
xinxi[i]=xinxi[i+1];
shijian[i]=shijian[i+1];
zhuangtai[i]=zhuangtai[i+1];
dizhi[i]=dizhi[i+1];
zhongjia[i]=zhongjia[i+1];
}
System.out.println("已删除订单");
int zuiho=name.length-1;
name[zuiho]=null;
xinxi[zuiho]=null;
shijian[zuiho]=0;
zhuangtai[zuiho]=0;
dizhi[zuiho]=null;
zhongjia[zuiho]=0;
fanhui();
}else {
System.out.println("不是已签收的点单,无法删除");
fanhui();
}
}else{
System.out.println("订单不存在!");
fanhui();
}
}
private void qiansho() {
// 签收订单
System.out.println("你要签收哪一个订单(请填写序号):");
int o = a.nextInt();
if(name[o-1]!=null){
zhuangtai[o-1]=1;
fanhui();
}
}
private void chakan() {
// 查看订单
System.out.println("序号\t\t订餐人\t\t商品信息\t\t送餐时间\t\t送餐地址\t\t总金额\t\t订单状态");
for(int c = 0;c<name.length;c++){
if(name[c]!=null) {
String jc = (zhuangtai[c] == 0) ? "配送中" : "已签收";
System.out.println(c + 1 + "\t\t" + name[c] + "\t\t\t" + xinxi[c] + "\t\t" + shijian[c] + "点\t\t\t" + dizhi[c] + "\t\t" + zhongjia[c] + "\t\t" + jc);
}
}
fanhui();
}
private void caidan() {
//我要订单
a:for(int i=0;i<xinxi.length;i++){
if(xinxi[i]==null){
System.out.println("序号\t\t菜名\t\t价格\t\t点赞");
for(int s=0;s<caidian.length;s++){ //遍历菜单
System.out.println((s+1)+"\t\t"+caidian[s]+"\t\t"+jiage[s]+"\t\t"+dianzanshu[s]);
}
System.out.print("请输入订单人姓名:");
String os = a.next();
System.out.print("请输入你要点的菜品编号:");
int pqq = a.nextInt();
while(pqq<1 || pqq>3){
System.out.print("输入错误;重新输入");
pqq = a.nextInt();
}
System.out.print("请输入你的份数(最多只能点3份):");
int acc = a.nextInt();
while(acc<1 || acc>3){
System.out.print("输入错误请从新输入:");
acc = a.nextInt();
}
String xinxi_ = caidian[pqq-1]+" "+acc+"份";
System.out.print("请输入你的送餐时间(0-24):");
int saa = a.nextInt();
while(saa<0 || saa>24){
System.out.print("输入错误,请重新输入:");
saa = a.nextInt();
}
System.out.print("请输入你的送餐地址:");
String sds = a.next();
System.out.println("订餐成功");
System.out.println("总价为:"+jiage[pqq-1]*acc);
if(true){
}
zhongjia[i]=jiage[pqq-1]*acc;
name[i] = os;
xinxi[i]= xinxi_;
shijian[i] = saa;
dizhi[i] = sds;
fanhui();
break a;
}
}
}
private void fanhui(){
System.out.print("输入任意符返回");
String pp = a.next();
all();
}
}
完整输出页面