java案例之吃货联盟订餐系统

java案例之吃货联盟订餐系统

今天是本博主第一次发博客记录的学习之旅,如有错误欢迎大家指出在下的失误呀, 废话不多说上案例!!

吃货联盟具体的功能如图6个功能所示java案例之吃货联盟订餐系统_第1张图片
整体的开发思路如下java案例之吃货联盟订餐系统_第2张图片

订单类主要有六个属性分别用6个数组保存该六个属性的内容

/*

  • 订单类

**/
public class OrderingSet {

//订单的六个属性
String[] names=new String[4];//保存订餐人信息
String[] dishMegs=new String[4];//保存菜品及份数
int[] times = new int[4];//保存送餐日期
String[] address=new String[4];//保存送餐地址
int[] states=new int[4];//保存订单状态  1.已完成  0.已预订
double[] sumPrices=new double[4]; //保存订单的总金额

String[] dishNames = { "红烧带鱼", "鱼香肉丝", "时令蔬鲜" };//菜品数组
double[] prices = new double[] { 38.0, 20.0, 10.0 };//菜品对应单价数组
int[] praiseNums = new int[3];//菜品对应点赞次数数组

}
/>

以下是业务类,吃货系统的六个功能实现的代码都在这里可以找到,分别有初始化信息以及系统所具有的六个功能实现,有需要的可以在这找,当然也欢迎大家指出我的错误所在指出!

/*

  • 订单操作类
  • */

import java.util.Scanner;

public class OrderingUtil {

Scanner input=new Scanner(System.in);
OrderingSet order=new OrderingSet();
private String[] sumPrices;
public void initial() {
	//初始化信息
	 //1.菜品信息
	 //2.订单信息  2条信息
	order.names[0]="张晴";
	order.dishMegs[0]="红烧带鱼2份";
	order.times[0]=3;
	order.address[0]="天成路207号";
	order.sumPrices[0]=76.0;
	order.states[0]=1;
	
	order.names[1]="张晴";
	order.dishMegs[1]="鱼香肉丝2份";
	order.times[1]=10;
	order.address[1]="天成路207号";
	order.sumPrices[1]=45.0;
	order.states[1]=0;
	
	
}
//菜单
public void startMenu() {
	initial();
	System.out.println("欢迎使用订餐系统!!!");
	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("请选择:");
	int num=input.nextInt();
	switch (num) {
	case 1:
		//1.我要订餐
		add();
		break;
	case 2:
		//2.查看餐袋	
		display();
		break;
	case 3:
		//3.签收订单
		sign();
		break;
	case 4:
		//4.删除订单
		delte();
		break;
	case 5:
		//5.我要点赞
		praise();
		break;
	case 6:
		//6.退出系统
		System.out.println("欢迎下次光临本店!!!");
		break;
	default:
		System.out.println("您的操作有误,请重新输入!!!");
		break;
	}
}
//1.我要订餐
public void add() {
	System.out.println("****我要订餐****");
	System.out.print("请输入订餐人姓名:");
	String name=input.next();
	//1.展示菜品信息
	System.out.println("序号\t"+"菜名\t"+"单价\t"+"点赞数\t");
	System.out.println("1\t红烧带鱼\t38.3\t0");
	System.out.println("2\t鱼香肉丝\t20.0\t0");
	System.out.println("3\t时令鲜蔬\t10.0\t0");
	
	System.out.print("请输入您要点的菜品编号:");
	int num=input.nextInt();
	System.out.print("请选择您需要的份数:");
	int count=input.nextInt();
	System.out.print("请输入送餐时间(送餐时间是10点-20点期间的整点送餐):");
	int time=input.nextInt();
	System.out.print("请输入送餐地址:");
	String address=input.next();
	System.out.println("订餐成功!!!");
	//2.保存订单信息
	 //a.找到数组中的空位
	int index=0;//保存找到的空位的下标
	for(int i=0;i=50.0?0:5)+"总计:"+order.sumPrices[index]);

	returnMenu();
}
//2.查看餐袋;
	public void display(){
		System.out.println("***查看餐袋***");
		System.out.println("序号\t订餐人\t餐品信息\t\t送餐日期\t\t送餐地址\t\t总金额\t订单状态");
		for(int i=0;i0?order.praiseNums[i]+"赞":"");
		System.out.println((i+1)+"\t"+order.dishNames[i]+"\t"+price+"\t"+praiseNums);
	}
	System.out.print("请选择您要点赞的菜品编号:");
	int praiseNum=input.nextInt();
	order.praiseNums[praiseNum-1]++;
	System.out.println("点赞成功!!!");
	//返回主菜单
	returnMenu();
}
//输入0返回菜单
public void returnMenu() {
	System.out.println("输入0返回:");
	int num=input.nextInt();
	if(num==0) {
		startMenu();
	}else {
		System.out.println("输入有误,系统退出!!");
	}
	
}

}
/>

这里new一个上面的订单操作类对象(也就是 OrderingUtil类),调用订单操作类里面的startMenu()方法;顾客即可在这里开始进行点餐服务

public class OrderingStart {

public static void main(String[] args) {
	OrderingUtil orderingUtil=new OrderingUtil();
	orderingUtil.startMenu();
}

}
/>

这里本博主主要对订单的删除与添加做一个自己在做题之中的主要思路:

订单删除模块的功能要求如下:java案例之吃货联盟订餐系统_第3张图片
上订单删除模块代码!
//功能4:删除订单
public void delete(){
//2.删除订单信息
System.out.print(“请输入要删除订单的序号:”);
int num= input.nextInt(); //此处的num代表的是控制台输出要删除订单的序号.由于数组下标从0开始,所以控制台输出的要删除的订单序号比实际订单所在数组的下标要多1.(num-1)就是顾客要删除订单所在数组中的位置
for(int i=num-1;i if(order.states[i]==0) {
System.out.println(“您选择的订单为签收,不能删除!!!”);
}else if(order.names[i]==null) {
System.out.println(“您要删除的订单不存在!!”);
}
当删除了目标订单之后,需要将数组中后一位的数组元素往前推,此时order.names[i+1]代表的就是目标订单的后一位元素,
order.names[i]=order.names[i+1]; //i=2 i=3

order.dishMegs[i]=order.dishMegs[i+1];
order.times[i]=order.times[i+1];
order.sumPrices[i]=order.sumPrices[i+1];
order.addresses[i]=order.addresses[i+1];
order.states[i]=order.states[i+1];
}

          ***//由于在删除目标元素之后,数组的长度将减1,将还未进行删除操作时的最后一位数组元素最后一个位置上的内容置空***
          int lastIndex=order.names.length-1;
          order.names[lastIndex]=null;   //i=2    i=3
    	  order.dishMegs[lastIndex]=null; 
    	  order.times[lastIndex]=0; 
    	  order.sumPrices[lastIndex]=0.0; 
    	  order.addresses[lastIndex]=null; 
    	  order.states[lastIndex]=0;
    	  display();
          
	}
订单的添加与订单的删除又有些许的不同,因为订单删除是将数组中的元素删除之后,然后令删除目标之后的位置往前推进,而,订单的添加则不然,它是在原有的订单的基础上在添加订单数组信息,具体功效如下图所示:

订单添加的具体需求如下图所示:java案例之吃货联盟订餐系统_第4张图片
上订单添加代码模块:
//功能1:订餐
public void add(){
System.out.println(“我要订餐”);
System.out.print(“请输入订餐人的姓名:”);
String name=input.next();
//1.展示菜品信息
System.out.println(“序号\t菜品名称\t单价\t点赞数”);
System.out.println(“1\t红烧带鱼\t38.0\t0”);
System.out.println(“2\t鱼香肉丝\t20.0\t0”);
System.out.println(“3\t时令鲜蔬\t10\t0”);

		System.out.print("请输入菜品编号:");
		int num=input.nextInt();
		System.out.print("请选择你要分数:");
		int count=input.nextInt();
		System.out.print("请输入送餐的时间(送餐时间是10~12间的整数):");
		int time=input.nextInt();
		System.out.print("请输入送餐的地址:");
		String address=input.next();
		System.out.println("订餐成功!");

		//2.保存订单信息
		  //a.找到数组中的空位
			int index=0; //保存找到的空位==》此处的index表示为数组中空位的数组下标
			for(int i=0;i

本博主学习java也有3个月了,虽然在csdn论坛有了很久的时间,但这是第一次写博客,有不足之处欢迎指正!

你可能感兴趣的:(java)