吃货联盟订餐系统 源代码 Java初级小项目
咳咳,今天博主给大家写一个小的项目:吃货联盟订餐系统。博主不是大神(互联网架构师的路上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初级小项目的更多相关文章
- 迷你图书管理系统 源代码 Java初级小项目
今天博主再给大家分享一个小项目:MiNi图书管理系统.用的是Java语言开发的,代码不多,大概260行左右吧,系统是实现图书的新增图书.删除图书.借阅图书.归还图书.查看图书等简单的功能(后附源代码) ...
- 嗖嗖移动大厅 源代码 Java初级小项目
今天给大家一个比较综合的项目:嗖嗖移动业务大厅.项目功能很多,概括的功能也很全面.吃透了这个项目,你的java基础部分已经非常棒了!!! 一 . 项目概述 技能要求 使用面向对象设计的思想 合 ...
- 小项目,吃货联盟,java初级小项目,源代码
1:项目的实现效果.功能如图所示. 2:项目的源代码如下: import java.util.Scanner; /** * 吃货联盟订餐管理系统 * */ public class OrderingM ...
- 掷骰子游戏窗体实现--Java初级小项目
掷骰子 **多线程&&观察者模式 题目要求:<掷骰子>窗体小游戏,在该游戏中,玩家初始拥有1000的金钱,每次输入押大还是押小,以及下注金额,随机3个骰子的点数,如果3个骰 ...
- JAVA吃货联盟项目。
1基础通过数组.选择结构.循环等实 现吃货联盟订餐系统. 1.我要订餐: 2.查看餐袋: 3.签收订单: 4.删除订单: 5.我要点赞: 6.退出系统: public class Doy001 { p ...
- java基础10 吃货联盟点餐系统
public class OrderMsg { public static void main(String[] args) throws Exception { /** * 订餐人姓名.选择菜品.送 ...
- Java 吃货联盟
import java.util.Scanner; public class Shao { private static final int[] dishNames = null; private ...
- java初学小项目-酒店客房管理系统
最近初次接触JAVA,感觉之前学的C语言很有用,跟着视频做了一个小项目-酒店客房管理系统 /* 酒店客房管理系统 */ import java.util.Scanner;//通过键盘来输入命令需要的引 ...
- java基础之吃货联盟
因为用的是普通数组,所以编写的代码可能比较长,而且有的功能还比较不健全,代码如下: 0.定义数组(因为用static修饰可以不用New,比较方便,但可能比较损耗性能) //订餐人名字 static S ...
随机推荐
- [注]一将功成万骨枯!App的七种死法
一将功成万骨枯,这种事在有泡沫的行业总是会发生的.移动互联网尤甚.从<愤怒的小鸟>到<植物大战僵尸>.<捕鱼达人>.<唱吧>.<陌陌>……一 ...
- 域对象的作用范围 & 请求的转发和重定向
1. 和属性相关的方法: ①. 方法 void setAttribute(String name, Object o): 设置属性 Object getAttribute(String name): ...
- List<T> 的扩展方法
//List<T>.Take(m) //取出 前m行 IEnumerable<Person> takeList = lstPerson.Take(4); foreac ...
- 基于Basys2开发板的简易电子琴和音乐播放器设计
背景:华中科技大学 电测综合实验 主要功能:Basys2开发板外接一个扬声器(或无源蜂鸣器也可)实现电子琴和音乐播放器的功能.其中由于开发板上只有4个按键,所以电子琴功能只做了4个音调,分别对应于4个 ...
- 记一次使用windbg排查内存泄漏的过程
一.背景 近期有一个项目在运行当中出现一些问题,程序顺利启动,但是观察一阵子后发现内存使用总量在很缓慢地升高, 虽然偶尔还会往下降一些,但是总体还是不断上升:内存运行6个小时候从33M上升到80M: ...
- Postman+Newman+Git+Jenkins接口自动化测试
一.Postman 1.创建Collection,在Collection中创建接口请求,如下图所示. 2.编写接口对应的断言Test和Pre-request Script,如下图所示. 3.配置接口 ...
- Java四种权限修饰符
四种权限修饰符
- Java实现 LeetCode 100 相同的树
100. 相同的树 给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [ ...
- Java实现 LeetCode 89 格雷编码
89. 格雷编码 格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异. 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列.格雷编码序列必须以 0 开头. 示例 1: 输 ...
- js数据劫持 Object.defineProperty() 作用
原生js Object.defineProperty() 作用 假设我们有一个obj对象,我们要给他设置一个name属性会这么做 Object.defineProperty()也可以设置对象属性 这个 ...