- package Task;
- import java.util.Scanner;
- public class DingCan01 {
- public static void main(String[] args){
- // 数据主体, 一组订单信息
- String[] names=new String[4];// 订餐人
- String[] dishMegs=new String[4];// 所订餐信息
- int[] times=new int[4];// 送餐时间
- String[] addresses=new String[4];// 送餐地址
- int[] states=new int[4];// 订单状态 0: 已预定 1: 已完成
- double[] sumPrices=new double[4];// 总金额
- // 初始化 2 条订单信息
- names[0]="张三";
- dishMegs[0]="鱼香肉丝 1 份";
- times[0]=12;
- addresses[0]="观日路 48 号";
- states[0]=0;
- sumPrices[0]=24.0;
- names[1]="李四";
- dishMegs[1]="红烧带鱼 2 份";
- times[1]=18;
- addresses[1]="长乐路 06 号";
- states[1]=1;
- sumPrices[1]=76.0;
- // 数据主体, 一组餐品信息
- String[] dishNames={"红烧带鱼","鱼香肉丝","时令蔬菜"};
- double[] prices={38.0,18.0,10.0};// 餐品单价
- int[] praiseNums=new int[3];// 点赞数
- Scanner input=new Scanner(System.in);
- int num=-1;
- 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("******************");
- System.out.print("请选择:");
- int choose=input.nextInt();// 记录用户选择的编号
- boolean isAdd=false;//true: 记录找到一个为空的位置, 可以插入 false: 没有找到
- // 根据用户输入的功能编号, 执行相应的功能
- while(choose>6||choose<1){
- System.out.print("输入错误, 请输入有效编号:");
- choose = input.nextInt();
- }
- boolean isExit = false; // 标志用户是否退出系统: true: 退出系统
- switch(choose){
- case 1:
- //1, 我要订餐
- System.out.println("******** 我要订餐 ********");
- //1. 查找要插入的位置, 记录下来
- for(int i=0;i<names.length;i++){
- if(names[i]==null){
- isAdd=true;// 记录已找到一个为空的位置
- // 执行插入
- //a. 显示所有可供选择的餐品信息
- System.out.println("序号 \ t 餐品名 \ t 单价 \ t\t 点赞数");
- for(int j=0;j<dishNames.length;j++){
- String price=prices[j]+"元";
- String praise=praiseNums[j]+"赞";
- System.out.println((j+1)+"\t"+dishNames[j]+"\t"+price+"\t"+praise);
- }
- // 输入所选餐品编号以及分数
- System.out.print("请选择所订餐品序号:");
- int chooseDish=input.nextInt();
- while(chooseDish>dishNames.length||chooseDish<1) {
- System.out.print("对不起, 您输入的序号没有信息, 请输重新输入:");
- chooseDish = input.nextInt();
- }
- System.out.print("请选择所定份数");
- int number=input.nextInt();
- String dishMeg=dishNames[chooseDish-1]+""+number+" 份 ";
- //b. 输入订餐人姓名
- System.out.print("请输入订餐人姓名:");
- String name=input.next();
- //c. 输入送餐时间
- System.out.print("请输入送餐时间 (10~20 整点送餐):");
- int time=input.nextInt();
- // 如果输错了, 重复输入
- while(time<10||time>20){
- System.out.print("对不起, 您输入有误, 请输入人 10~20 之间的整数:" );
- time=input.nextInt();
- }
- //d. 输入送餐地址
- System.out.print("请输入送餐地址");
- String address=input.next();
- //e. 计算餐费
- double sumPrice=prices[chooseDish-1]*number;
- //d. 送餐费, 当餐费达到 50 元时, 免 6 元送餐费
- double deliCharge=sumPrice>=50?0.0:6.0;
- // 显示订单信息
- System.out.println("订餐成功");
- System.out.println("您定的是:"+dishMeg);
- System.out.println("订餐人:"+name);
- System.out.println("送餐时间:"+time+"点");
- System.out.println("送餐地址:"+address);
- System.out.println("餐费:"+sumPrice+", 送餐费:"+deliCharge+"元");
- System.out.println("总金额":"+(sumPrice+deliCharge)+" 元 ");
- // 保存数据
- names[i]=name;
- dishMegs[i]=dishMeg;
- times[i]=time;
- addresses[i]=address;
- sumPrices[i]=sumPrice+deliCharge;
- break;
- }
- }
- // 如果没有找到为空的位置, 则提示信息
- if(!isAdd){
- System.out.println("对不起你的订单已满!");
- }
- break;
- case 2:
- //2, 查看订单
- System.out.println("******** 查看订单 ********");
- System.out.println("序号 \ t 订餐人 \ t 所订餐品信息 \ t 送餐时间 \ t 送餐地址 \ t\t 总金额 \ t 状态");
- // 遍历数组
- for(int i=0;i<names.length;i++){
- if(names[i]!=null){
- String time =times[i]+"点";
- String sumPrice=sumPrices[i]+"元";
- String state=states[i]==0?"已预定":"已完成";
- System.out.println((i+1)+"\t"+names[i]+"\t\t"+dishMegs[i]+"\t"+time+"\t\t"+addresses[i]+"\t"+sumPrice+"\t"+state);
- }
- }
- break;
- case 3:
- //3, 删除订单
- break;
- case 4:
- //4, 签收订单
- System.out.print("******** 请输入要签收的订单序号:");
- int signOrderId=input.nextInt();
- boolean isFind=false;
- for(int i=0;i<names.length;i++){
- if(names[i]!=null && states[i]==1 && signOrderId==i+1) {
- System.out.println("对不起, 您选择的订单已经完成签收, 不能再次签收!");
- isFind=true;
- break;
- }else if(names[i]!=null && states[i]==0 && signOrderId==i+1){
- states[i]=1;
- System.out.println("订单签收成功!");
- isFind=true;
- break;
- }
- }
- if(!isFind){
- System.out.println("对不起, 此订单不存在!");
- }
- break;
- case 5:
- //5, 我要点赞
- break;
- case 6:
- //6, 退出系统
- isExit=true;
- break;
- }
- if (!isExit) {
- System.out.print("输入 0 返回:");
- num = input.nextInt();
- while (num != 0) {
- System.out.print("输入错误, 输入 0 返回:");
- num = input.nextInt();
- }
- }else{
- break;
- }
- }while(num==0);
- System.out.println("谢谢使用, 欢迎下次光临");
- }
- }
- // 未完待续...
来源: http://www.bubuko.com/infodetail-2915851.html