项目案例--吃货联盟

一、项目准备:

1.开发环境:

  • JDK1.8
  • IntelliJ IDEA

2.技术点分析:

  • 能理解程序基本概念 – 程序
  • 会使用变量、数据类型
  • 会使用顺序、选择、循环、跳转语句编写程序
  • 会使用数组

3.任务描述:

只要动动手指,就能送餐上门”,网上订餐深受现代人青睐,现开发一个网上订餐系统,功能如下:

  • 我要订餐

java项目开发实例(java带代码案例详解)

java项目开发实例(java带代码案例详解)

  • 查看餐袋

java项目开发实例(java带代码案例详解)

  • 签收订单

java项目开发实例(java带代码案例详解)

java项目开发实例(java带代码案例详解)

java项目开发实例(java带代码案例详解)

  • 删除订单

java项目开发实例(java带代码案例详解)

java项目开发实例(java带代码案例详解)

java项目开发实例(java带代码案例详解)

  • 我要点赞

java项目开发实例(java带代码案例详解)

  • 退出系统

java项目开发实例(java带代码案例详解)

二、需求:

1.需求分析:

买家:

买家订单基本信息-用户名,时间,地址,数量等

卖家:

菜品信息-单价、品种、点赞数

模块划分:

我要订餐--添加--insert -C(create) 查看餐袋--查询--read -R 签收订单--修改--update -U 删除订单--删除--delete -D 基本所有的项目都是在对数据进行增删改查(CRUD) 我要点赞--辅助功能 退出系统--流程控制

2.编写要求:

项目名---Foods 包名--cn.xx.controll 类名--OrderingMsg 项目编写完成需要制作成运行jar及bat文件

3.编写步骤:

定义变量--测试数据--搭建总框: do...while中嵌套switch,将跳转切换使用数字进行替换 查看订单 查看之前--循环之前先判定是否为空 添加订单 作业:补全是否继续的功能 添加注意打印小票和数组添加数据的分开操作 签收订单: 判定签收的情况:不存在该订单/存在不能签收/签收 删除订单: 将需要删除的数据之后的所有数据全部前移,然后将最后一条废数据清空 我要点赞: 显示菜单,然后将指定的点赞菜品添加1

三、代码分析:

1.定义变量:

//定义买家变量--数组String[] names=newString[4];            //订餐人姓名int[] times=newint[4];                  //订餐时间-整点String[]  addresses=newString[4];       //订餐地址String[] dishMegs=newString[4];         //所选菜品信息double[] sumPrices=newdouble[4];        //总金额int[] states=newint[4];                 //订单状态信息//定义卖家菜品变量--数组String[] dishNames={"大肘子","锅包肉","辣鸭头","麻辣虾"};     //菜品信息double[] prices={59,58,48,69};  //菜品单价int[] praiseNums={4,5};  //菜品点赞数

2.框架模块:

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.println("请选择");    num=input.nextInt();    switch (num) {        case 1:            System.out.println("我要订餐");            break;        case 2:            System.out.println("查看餐袋");            break;        case 3:            System.out.println("签收订单");            break;        case 4:            System.out.println("删除订单");            break;        case 5:            System.out.println("我要点赞");            break;        case 6:            System.out.println("退出系统");            isExit=true;            break;        default:            isExit=true;            break;   }    //判定是否回退到一级菜单if(!isExit){        System.out.println("输入0返回");        num=input.nextInt();   }else{        break;   } }while(num==0); System.out.println("欢迎下次使用!");

3.查看餐袋:

for(inti = 0; i <names.length; i++) {    //判定---如果用户信息为空,该订单不进行打印    if(names[i]!=null){        String state=(states[i]==0)?"已预订":"已完成";        String  sumPrice=sumPrices[i]+"元";        String time=times[i]+"时";        System.out.println((i+1)+" \t\t"+names[i]+" \t\t"+dishMegs[i]+" \t\t"+time+" \t\t"+addresses[i]+" \t\t"+sumPrice+" \t\t"+state);   } }

4.我要订餐:

for(inti = 0; i < names.length; i++) {    //往数组添加内容-需要先获取数组空的位置-第一个位置--循环结束掉if(names[i]==null){        //进入判定则标志着可以进行数据添加的空位---将标记进行修改isAdd=true;        //添加订单System.out.println("请输入用户名");  //模拟登陆String name=input.next();        //打印菜品信息System.out.println("序号 \t菜名 \t单价 \t点赞数");        for(intj = 0; j < dishNames.length; j++) {            String  price=prices[j]+"元";            String  praise=(praiseNums[j]>0)?praiseNums[j]+"赞":"";            System.out.println((j+1)+" \t"+dishNames[j]+" \t"+price+" \t"+praise);       }        System.out.println("请输入你选择的菜品的序号");        intchooseDish=input.nextInt();        System.out.println("请输入房购买的份数");        intnumber=input.nextInt();        //处理订餐信息和订餐总额String dishMeg=dishNames[chooseDish-1]+""+number+"份";        doublesumPrice=prices[chooseDish-1]*number;        //判定是否需要进行配送费:超过50免配送费doubledeliCharge=(sumPrice>=50)?0:5;    //配送费//配送时间-如果时间输入不正确需要重复输入直到输入正确为止 10 -20System.out.println("请输入配送时间(10-20的整点)送餐");        inttime=input.nextInt();        /*while(!(time>=10&&time<=20)){ System.out.println("您输入的时间不正确,请重新输入"); time=input.nextInt(); }*/while(time<10||time>20){            System.out.println("您输入的时间不正确,请重新输入");            time=input.nextInt();       }        System.out.println("请输入送餐地址");        String address=input.next();        //打印小票System.out.println("订餐成功!");        System.out.println("您的订餐是"+dishMeg);        System.out.println("餐费是"+sumPrice+",配送费是"+deliCharge+",总金额是"+(sumPrice+deliCharge));        //将数据添加到数组中names[i]=name;        dishMegs[i]=dishMeg;        times[i]=time;        addresses[i]=address;        sumPrices[i]=sumPrice+deliCharge;        //当将当前循环中添加完成以后直接循环结束break;   } } //如果整个循环结束都没有找到空位,则表示当前餐袋已满if(!isAdd){    System.out.println("对不起,餐袋已满!"); }

5.签收订餐:

for(inti = 0; i <names.length; i++) {    //判定---如果用户信息为空,该订单不进行打印    if(names[i]!=null){        String state=(states[i]==0)?"已预订":"已完成";        String  sumPrice=sumPrices[i]+"元";        String time=times[i]+"时";        System.out.println((i+1)+" \t\t"+names[i]+" \t\t"+dishMegs[i]+" \t\t"+time+" \t\t"+addresses[i]+" \t\t"+sumPrice+" \t\t"+state);   } }

6.删除订单:

for(inti = 0; i < names.length; i++) {    if(names[i]!=null&&states[i]==1&&del删除订单成功!");        break;   }elseif(names[i]!=null&&states[i]==0&&del该订单未签收,不能被删除!");        break;   } } //如果循环结束都没有找到订单则表示不存在if(!isDelFind){    System.out.println("您要删除的订单不存在!"); }

7.我要点赞:

for(inti = 0; i < dishNames.length; i++) {    String price=prices[i]+"元";    String praiseNum=(praiseNums[i]>0)?praiseNums[i]+"赞":"";    System.out.println((i+1)+"\t "+dishNames[i]+"\t "+price+"\t "+praiseNum); } System.out.println("请输入您需要点赞的菜品序号"); intpraise点赞成功!");

点赞(0) 打赏

相关推荐

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部