欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java项目开发案例经典(java初学者简易小程序)

程序员文章站 2023-11-13 16:46:28
项目案例–吃货联盟一、项目准备:1.开发环境:jdk1.8intellij idea2.技术点分析:能理解程序基本概念 – 程序会使用变量、数据类型会使用顺序、选择、循环、跳转语句编写程序...

项目案例–吃货联盟

一、项目准备:

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=new string[4];            //订餐人姓名
int[] times=new int[4];                  //订餐时间-整点
string[]  addresses=new string[4];       //订餐地址
string[] dishmegs=new string[4];         //所选菜品信息
double[] sumprices=new double[4];        //总金额
int[] states=new int[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 (int i = 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)+" tt"+names[i]+" tt"
                           +dishmegs[i]+" tt"+time
                           +" tt"+addresses[i]+" tt"+sumprice+" tt"+state);
    }
}

4.我要订餐:

for (int i = 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 (int j = 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("请输入你选择的菜品的序号");
        int  choosedish=input.nextint();
        system.out.println("请输入房购买的份数");
        int number=input.nextint();
        //处理订餐信息和订餐总额
        string dishmeg=dishnames[choosedish-1]+""+number+"份";
        double sumprice=prices[choosedish-1]*number;
        //判定是否需要进行配送费:超过50免配送费
        double delicharge=(sumprice>=50)?0:5;    //配送费
        //配送时间-如果时间输入不正确需要重复输入直到输入正确为止  10  -20
        system.out.println("请输入配送时间(10-20的整点)送餐");
        int  time=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 (int i = 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)+" tt"+names[i]+" tt"+dishmegs[i]+" tt"+time
                           +" tt"+addresses[i]+" tt"+sumprice+" tt"+state);
    }
}

6.删除订单:

for (int i = 0; i < names.length; i++) {
    if(names[i]!=null&&states[i]==1&&delid==i+1){
        //能找到订单并可以删除
        isdelfind=true;
        //执行删除操作,删除元素以后的所有数据依次移动--后续多个数据
        for (int j = delid-1; j < names.length-1; j++) {
            names[j]=names[j+1];
            dishmegs[j]=dishmegs[j+1];
            times[j]=times[j+1];
            addresses[j]=addresses[j+1];
            states[j]=states[j+1];
        }
        //最后一个数据进行清空还原处理
        names[names.length-1]=null;
        dishmegs[dishmegs.length-1]=null;
        times[times.length-1]=0;
        addresses[addresses.length-1]=null;
        states[states.length-1]=0;
        system.out.println("删除订单成功!");
        break;
    }else if(names[i]!=null&&states[i]==0&&delid==i+1){
        //能找到订单但是不能删除
        isdelfind=true;
        system.out.println("该订单未签收,不能被删除!");
        break;
    }
}

//如果循环结束都没有找到订单则表示不存在
if(!isdelfind){
    system.out.println("您要删除的订单不存在!");
}

7.我要点赞:

for (int i = 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("请输入您需要点赞的菜品序号");
int praiseid=input.nextint();
//将点赞内容进行自增
praisenums[praiseid-1]++;
system.out.println("点赞成功!");