使用对象数组实现“订餐系统”
在这里我们使用对象数组来存放订单数据,首先创建一个订单类(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语言哦)