咳咳,今天博主给大家写一个小的项目:吃货联盟订餐系统。博主不是大神(互联网架构师的路上ing),也是小白一个,不过是刚入门的小白^_^。项目功能也很简单:只是模拟日常的订餐流程呦,所以有错误以及功能不完善的地方大家多多包涵 O(∩_∩)O哈哈~

  首先,先展示下代码功能,代码也不是很多,就200多行!主要功能如下:

首先进入系统后,是菜单的展示:

用户输入选择,并对输入的选择进行判断,如果有误,就退出系统!

用户输入1后,进行点餐,并输入点餐人姓名,以及点的份数和时间、地址,会自动计算出费用返回给用户。

用户输入2后,可以查看餐袋,发现自己点的订单已在餐袋中

用户输入3后,可以签收订单,如果订单是已预订状态,可以进行签收;如果是已完成状态,不能签收订单;否则提示用户找不到订单信息,不能签收!

用户输入4后,可以对订单进行删除。如果订单是已预订状态,不能删除;如果是已完成状态,可以删除;否则提示用户找不到订单,不能删除!

用户输入5后,可以进行点赞,输入点赞的序号,进行点赞。返回后可以再次进入进行查看点赞数!!!

用户输入6后,退出系统!!!

package cn.kgc.sg.Demo;
import java.util.*; public class DingCanSystem {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); String names[] = new String[4]; //姓名
String dishMsg[] = new String[4]; //菜品信息
int times[] = new int[4]; //送餐时间
String address[] = new String[4]; //送餐地址
int states[] =new int[4]; //订单状态 0:已完成 1:已预订
double sumPrices[] = new double[4]; //订单总金额 names[0] = "孙港";
dishMsg[0] = "玉米";
times[0] = 12;
address[0] = "柏悦澜庭";
states[0] = 1;
sumPrices[0] = 100; names[1] = "王玥";
dishMsg[1] = "大米";
times[1] = 14;
address[1] = "中博校区";
states[1] = 0;
sumPrices[1] = 200;
System.out.println("欢迎光临吃货联盟订餐系统》》》》》》》");
System.out.println("**************************");
/**
* 定义并初始化菜单信息
*/
String dishMeg[] = {"西红柿炒鸡蛋","火锅牛肉","泡椒凤爪"};
double prices[] ={58,99,36};
int [] zan =new int[4];
boolean isExit = false; //false 不退出系统
int nums = -4; //随意赋值
do{
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.print("请输入您的选择: ");
int choose = sc.nextInt(); boolean isAdd =false; //false 是不能点餐
boolean isFind = false ;//false 不能找到订单编号
boolean isDel = false; //false 不能删除
switch(choose){
case 1:
System.out.println("*****我要订餐*****");
for(int i = 0;i<names.length;i++){
if(names[i] == null){
isAdd = true;
System.out.print("请输入订餐人的姓名:");
String name = sc.next();
//遍历菜单信息 System.out.println("序号"+"\t\t"+"菜单"+"\t\t"+"单价"+"\t\t"+"点赞数");
for(int j = 0 ;j<dishMeg.length;j++){
String yuan = prices[j]+"元";
System.out.println((j+1)+"\t\t"+dishMeg[j]+"\t\t"+yuan+"\t\t"+zan[j]);
}
System.out.print("请输入订餐的编号:");
int bianhao = sc.nextInt();
String dishName = dishMeg[bianhao-1]; System.out.print("请输入订餐的份数:");
int fen = sc.nextInt();
double p=prices[bianhao-1];
double sumPrice = p*fen;
int ptf = sumPrice>50 ? 0 : 6; System.out.print("请输入订餐时间(营业时间在10-20点):");
int time = sc.nextInt();
while(time<10 || time>20){
System.out.print("请在营业时间内订餐(10-20点),请重新输入:");
time = sc.nextInt();
}
System.out.print("请输入送餐地址:");
String dizhi = sc.next();
System.out.println(".............订餐成功...........");
System.out.println("您订的是:"+dishName+" ,"+fen+"份!");
System.out.println("餐费是:"+sumPrice+",送餐费是:"+ptf+"元,合计:"+(sumPrice+ptf)+"元!"); //将对应的值存到数组中
names[i]=name;
times[i]=time;
address[i]=dizhi;
dishMsg[i]= dishName; //dishMeg
sumPrices[i]=(sumPrice+ptf);
break;
}
}
if(!isAdd){
System.out.println("sorry,餐袋已满,不能点餐!!!");
}
break; case 2:
System.out.println("*****查看餐袋*****");
System.out.println("序号"+"\t\t"+"订餐人"+"\t\t"+"菜品信息"+"\t\t"+"送餐日期"+"\t\t"+
"送餐地址"+"\t\t"+"总金额"+"\t\t"+"订单状态");
for(int i=0;i<names.length;i++){
if(names[i] != null){
String time = times[i]+"时";
String price = sumPrices[i]+"元";
String state=states[i]== 1 ? "已完成" : "已预订"; System.out.println((i+1)+"\t\t"+names[i]+"\t\t"+dishMsg[i]+"\t\t"+time+
"\t\t"+address[i]+"\t\t"+price+"\t\t"+state);
}
}
break; case 3:
System.out.println("***********签收订单**********");
System.out.print("请选择要签收的编号:");
int orderId = sc.nextInt();
for(int i=0;i<names.length;i++){
if(names[i] != null && states[i]==0 && orderId == i+1){
//可以签收
states[i]=1;
isFind = true;
System.out.println("订单签收成功!");
break;
}else if(names[i] != null && states[i]==1 && orderId == i+1){
//不能签收
isFind = true;
System.out.println("订单不能签收!");
break;
}
}
if(!isFind){
System.out.println("输入的订单号有误!!!");
}
break; case 4:
System.out.println("*********删除订单*********");
System.out.print("请输入删除的订单编号:");
int delId = sc.nextInt();
//循环遍历数组
for(int i = 0;i<names.length;i++){
//判断是否可删除 存在的状态
if(names[i] != null && states[i]==1 && delId==i+1){
//能删除
isDel = true;
for(int j=delId-1;j<names.length-1;j++){
names[j]=names[j+1];
times[j]=times[j+1];
dishMsg[j]=dishMsg[j+1];
address[j]=address[j+1];
sumPrices[j]=sumPrices[j+1];
states[j]=states[j+1];
}
System.out.println("已完成的订单已被删除!!!");
//将最后一个位置置空
names[names.length-1] = null;
times[names.length-1] = 0;
dishMsg[names.length-1] = null;
address[names.length-1] = null;
sumPrices[names.length-1] = 0;
states[names.length-1] = 0;
break; }else if(names[i] != null && states[i]==0 && delId==i+1) {
//不能删除
isDel = true;
System.out.println("订单未完成,不能删除!!!"); }
}
if(!isDel){
System.out.println("您输入的订单号有误!!!");
}
break; case 5:
System.out.println("******我要点赞******");
System.out.println("序号"+"\t\t"+"菜单"+"\t\t"+"单价"+"\t\t"+"点赞数");
for(int j = 0 ;j<dishMeg.length;j++){
String yuan = prices[j]+"元";
System.out.println((j+1)+"\t\t"+dishMeg[j]+"\t\t"+yuan+"\t\t"+zan[j]);
}
System.out.print("请输入您要点赞的序号:");
int num = sc.nextInt();
zan[num-1]=zan[num-1]+999;
System.out.println("恭喜您点赞成功!!!");
break; case 6:
isExit = true;
break;
default:
isExit = true;
} if(!isExit){
System.out.print("输入0返回!(请再次输入):");
nums = sc.nextInt();
}else{
break;
} }while(nums == 0);
System.out.println("成功退出系统,欢迎下次使用!"); }
}

  好啦,今天就到这里,下次继续 。O(∩_∩)O哈哈~

  ps:如果有想学Java开发的童鞋或者零基础的,我这里有些Java开发资料,还有Java高级特性和分布式服务等资料,可以相互交流啊!!!

吃货联盟订餐系统 源代码 Java初级小项目的更多相关文章

  1. 迷你图书管理系统 源代码 Java初级小项目

    今天博主再给大家分享一个小项目:MiNi图书管理系统.用的是Java语言开发的,代码不多,大概260行左右吧,系统是实现图书的新增图书.删除图书.借阅图书.归还图书.查看图书等简单的功能(后附源代码) ...

  2. 嗖嗖移动大厅 源代码 Java初级小项目

    今天给大家一个比较综合的项目:嗖嗖移动业务大厅.项目功能很多,概括的功能也很全面.吃透了这个项目,你的java基础部分已经非常棒了!!! 一 . 项目概述 技能要求  使用面向对象设计的思想  合 ...

  3. 小项目,吃货联盟,java初级小项目,源代码

    1:项目的实现效果.功能如图所示. 2:项目的源代码如下: import java.util.Scanner; /** * 吃货联盟订餐管理系统 * */ public class OrderingM ...

  4. 掷骰子游戏窗体实现--Java初级小项目

    掷骰子 **多线程&&观察者模式 题目要求:<掷骰子>窗体小游戏,在该游戏中,玩家初始拥有1000的金钱,每次输入押大还是押小,以及下注金额,随机3个骰子的点数,如果3个骰 ...

  5. JAVA吃货联盟项目。

    1基础通过数组.选择结构.循环等实 现吃货联盟订餐系统. 1.我要订餐: 2.查看餐袋: 3.签收订单: 4.删除订单: 5.我要点赞: 6.退出系统: public class Doy001 { p ...

  6. java基础10 吃货联盟点餐系统

    public class OrderMsg { public static void main(String[] args) throws Exception { /** * 订餐人姓名.选择菜品.送 ...

  7. Java 吃货联盟

    import java.util.Scanner; public class Shao {  private static final int[] dishNames = null;  private ...

  8. java初学小项目-酒店客房管理系统

    最近初次接触JAVA,感觉之前学的C语言很有用,跟着视频做了一个小项目-酒店客房管理系统 /* 酒店客房管理系统 */ import java.util.Scanner;//通过键盘来输入命令需要的引 ...

  9. java基础之吃货联盟

    因为用的是普通数组,所以编写的代码可能比较长,而且有的功能还比较不健全,代码如下: 0.定义数组(因为用static修饰可以不用New,比较方便,但可能比较损耗性能) //订餐人名字 static S ...

随机推荐

  1. Android_AndroidX简介&Junit4

    AndroidX简介: Android 9.0(API level 28)发布时,AndroidX也作为一个新的支持库发布出来了.AndroidX时Jetpack的一部分,它包含了现有的支持库和最新的 ...

  2. python字母串查找基本操作

    字符串查找基本操作主要分为三个关键词:find().index().count(). 这三个用法相同,格式都是为:自定义字符串名.关键词(‘子串’,开始位置,结束位置),开始和结束范围可不写. 1.f ...

  3. Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

    hive运行查询语句时报错: Error: org.apache.hive.service.cli.HiveSQLException: Error while processing statement ...

  4. .NetCore3.1中的WebApi如何配置跨域

    写法 一: 1. 打开Startup.cs,定义静态变量Any,用以配置跨域. private readonly string Any = "Any"; 2. 在Configure ...

  5. Java 第十一届 蓝桥杯 省模拟赛 计算机存储中有多少字节

    计算机存储中有多少字节 题目 问题描述 在计算机存储中,12.5MB是多少字节? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这个整数,填写多余 ...

  6. (Java实现) 组合的输出

    问题 B: [递归入门]组合的输出 时间限制: 1 Sec 内存限制: 128 MB 题目描述 排列与组合是常用的数学方法,其中组合就是从n个元素中抽出r个元素(不分顺序且r < = n),我们 ...

  7. Java实现 LeetCode 498 对角线遍历

    498. 对角线遍历 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. 示例: 输入: [ [ 1, 2, 3 ], [ ...

  8. Java实现 蓝桥杯VIP 算法提高 计算时间

    算法提高 计算时间 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个t,将t秒转化为HH:MM:SS的形式,表示HH小时MM分钟SS秒.HH,MM,SS均是两位数,如果小于10用0补到 ...

  9. Java实现 LeetCode 93 复原IP地址

    93. 复原IP地址 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11. ...

  10. java实现指数问题

    3^n mod 19 求n次幂,对19取模 ================ (3 * 3) * (3 * 3) * 3 public class A { // 分治 public static in ...