使用对象数组实现“订餐系统”

使用对象数组实现“订餐系统”
在这里我们使用对象数组来存放订单数据,首先创建一个订单类(Order),在订单类中存放点餐人的姓名、点餐信息、餐费、送餐时间和地址,然后在测试类(Eat)中创建对象和对象数组,使用setter/getter()方法用来设置参数和获取参数信息进行调用。

public class Order {
    //对定义的私有变量进行封装
	private int time;
	private int sumPrice;
	private String name;
	private String address;
	private String dishMeg;
	//对私有属性添加setter/getter()方法
	public int getTime() {
		return this.time;
	}
	public void setTime(int time) {
		this.time = time;
	}
	
	public int getSumPrice() {
		return this.sumPrice;
	}
	public void setSumPrice(int sumPrice) {
		this.sumPrice = sumPrice;
	}
	
	public String getName() {
		return this.name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	public String getAddress() {
		return this.address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	
	public String getDishMeg() {
		return this.dishMeg;
	}
	public void setDishMeg(String dishMeg) {
		this.dishMeg = dishMeg;
	}
}

测试类:

public class Eat {
	public static void main(String[] args) {
		int num=0;  //定义一个num用来设置权限,只有当num等于0时才可以进行while循环
		int[] praise=new int[3];  //点赞数组
		int[] state=new int[] {0,0,0,0};  //签收订单的状态数组
		int[] dishPrice=new int[] {18,25,36};  //餐品价格数组
		Order[] s=new Order[4];    //对象数组,存放订单信息
		String[] dishName=new String[] {"醋溜白菜","鱼香肉丝","红烧肉"};
		
		Scanner input=new Scanner(System.in);
		System.out.println("*****欢迎使用“吃货联盟点餐系统”******");
		while(num==0) {       //num==0时进行循环
			printMenu();
			System.out.print("请输入你要进行的操作:");
			int caozuo=input.nextInt();
			switch(caozuo) {
			case 1:
				System.out.println("****我要点餐****");
				//判断对象数组是否都有数据,即是否可以进行点单
				if(s[s.length-1]!=null){
					System.out.println("您的餐袋已满,无法点餐!");
					break;
				}
				
				for(int i=0;i<s.length;i++) {
					Order o=new Order();    //创建一个对象,对象名为:o,每进行一次for循环都会new一个新的对象
					if(s[i]==null) {    //当对象数组第i位元素为空时可以在s[i]里存放此次订单数据,即可以点单
						System.out.print("请输入你的名字:");
						o.setName(input.next());  //用对象名.setter()方法设置参数,此处为o.setName()方法
						//循环菜单信息
						System.out.println("序号"+"\t"+"菜名"+"\t"+"单价(元)");
						for(int j=0;j<dishName.length;j++) {
							System.out.println((j+1)+"\t"+dishName[j]+"\t"+dishPrice[j]);
						}
						System.out.print("请输入你要点的序号:");
						int xuhao=input.nextInt();
						System.out.print("请输入你要点的份数:");
						int fenshu=input.nextInt();
						o.setDishMeg(dishName[xuhao-1]+fenshu+"份");
						o.setSumPrice(fenshu*dishPrice[xuhao-1]);
						System.out.print("请输入你的送餐时间:");
						o.setTime(input.nextInt());
						if(o.getTime()<8||o.getTime()>22) {    //用对象名.getter()方法获得参数,此处为o.getName()方法
							System.out.print("超出送餐时间,请重新输入:");
							o.setTime(input.nextInt());
						}
						System.out.print("请输入送餐地址:");
						o.setAddress(input.next());
						System.out.println("");
						System.out.println("点餐成功!");
						System.out.println("您订的是:"+o.getDishMeg()+"\t"+"送餐时间是:"+o.getTime()+"点"+"\t"+"餐费是:"+o.getSumPrice()+"元");
					
						s[i]=o;    //将此次的订单信息赋值给对象数组s[i]
						break;  //此次订餐结束,使用break关键字跳出循环
					
					}				
				}
				
				break;
			case 2:
				System.out.println("****查看餐袋****");
				System.out.println("序号"+"\t"+"订餐人"+"\t"+"餐品信息"+"\t"+"餐费(元)"+"送餐时间"+"\t"+"送餐地址");
				for(int i=0;i<s.length;i++) {  //循环输出对象数组s里的订单信息
					if(s[i]!=null) {
						System.out.println((i+1)+"\t"+s[i].getName()+"\t"+s[i].getDishMeg()+"\t"+s[i].getSumPrice()+"\t"+s[i].getTime()+"点"+"\t"+s[i].getAddress());
					}
				}
				
				break;
			case 3:
				System.out.println("****签收订单****");
				System.out.print("请输入你要签收的订单序号:");
				int qian=input.nextInt();
				if(s[qian-1]!=null&&state[qian-1]==0) {  //判断订单不能为空且订单状态为0,即未签收状态
					state[qian-1]=1;  //将订单状态赋值为1,表示已签收
					System.out.println("订单签收成功!");
				}else {
					System.out.println("订单不存在!");
				}
				break;
			case 4:
				System.out.println("****删除订单****");
				System.out.print("请输入你要删除的订单序号:");
				int shan=input.nextInt();
				if(s[shan-1]!=null&&state[shan-1]==1) {
					state[shan-1]=0;
					for(int i=0;i<s.length-1;i++) {
						s[i]=s[i+1];     //通过for循环依次将后一个订单信息给前面的订单
					}
					s[s.length-1]=null;  //给最后一个订单信息设置为空
					System.out.println("订单删除成功!");
				}else if(s[shan-1]!=null&&state[shan-1]==0){
					System.out.println("订单未签收,无法删除!");
				}else {
					System.out.println("订单不存在");
				}
				break;
			case 5:
				System.out.println("****我要点赞****");
				System.out.println("序号"+"\t"+"菜名"+"\t"+"点赞数");
				for(int i=0;i<dishName.length;i++) {
					System.out.println((i+1)+"\t"+dishName[i]+"\t"+praise[i]);
				}
				System.out.print("请输入你要点赞的序号:");
				int zan=input.nextInt();
				praise[zan-1]++;
				System.out.println("点赞成功!");
				break;
			case 6:
				System.out.println("****退出系统****");
				num=1;    //给num赋值为1,num不会满足while循环的条件,循环终止,退出系统
				System.out.println("退出系统,谢谢您的使用!");
				break;
			default:
				break;
			}
		}
		
	}
	
	public static void printMenu() {
		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("********************");
	}
}

效果图:

在这里插入图片描述

在这里插入图片描述

spring源码 mybatis源码 hibernate源码 struts源码 下载
spring源码下载地址:http://www.maixiaogang.com

mybatis源码下载地址:https://github.com/mybatis/mybatis-3/releases

hibernate源码下载地址:http://hibernate.org/orm/downloads/

struts源码下载地址:http://struts.apache.org/

微信扫下方二维码关注公众号,回复想要的管理系统或者毕业设计,分享各种系统源码(仅限Java语言哦)
在这里插入图片描述

发布了24 篇原创文章 · 获赞 12 · 访问量 3512

猜你喜欢

转载自blog.csdn.net/mxg74110/article/details/103251971