订餐系统项目总结

订单系统的操作方法:
1:编写菜品类food,在food类里面把菜品属性进行定义:String name,int num(点赞数),double price;
2;同样的方法编写订单类:定义订单属性,订餐人名字,菜名和份数,日期,地址,状态,总金额。
3:编写入口:sout输出“欢迎来到吃货订单系统”; 调用函数:创建有关订单操作的类的对象,用该对象引用初始化订单的方法,这样的话后面每个方法里都会有一个初始化数组数值,所以用的时候直接用,不要再调用了。再引用切换菜单方法。
4:把所有实现订餐功能的方法写到一个类里面:
1:先引用food和订单的属性,初始化菜品信息和订单信息,
2:根据要求列出订单表和菜品表,实现显示出要求的样式,写订单时遍历数组,然后在for循环里判断数组内容不为空的情况下输出他的内容(如果在遍历数组时有元素为空值,而你去输出空值的话,会产生部分错误乱码,所有在遍历数组时不要把空值输出来。)遍历结束后需要判断菜品元素的状态是否为1,这时候需要用三目运算符来写只有一个判断的语句,用if的话会有些繁琐。同样的方式遍历数组菜品,按着菜品样式打印效果。
3:列出大的框架,可以实现页面跳转功能,这时用swtich语句,进行六个功能的来回跳转,也就是菜单切换
其中的退出系统,需要用system.exit(-1);该方法可以直接退出虚拟机。括号里面的值,小于零即为退出,一般为-1.

4:根据框架,写出订餐功能:
(1):显示出来菜品的属性,单价,点赞数等
(2):用户根据菜品可以选择菜品编号,份数,送餐时间和地址,
(3):生成订单,打印出来订单,包括餐费和送餐费
(4):由于最后要输出,份数加菜名,送餐费,总价钱,等数值,所以要根据菜品的订单号num,用菜品的数组定义出来一个变量等于菜品数组点名字,点份数等算出来需要的值。创建一个对象,把这些值存入到对象里,然后把他存入到数组里,通过for循环,当有数组 i 的值为空时,让这个元素等于你所创建的对象,跳出循环,标志位为true,这时就算是把元素插进数组里面了。然后根据需要打印出来订单信息。
我第一次是用静态值存入数组,这时候需要满足,订单列表里本来就是空值,一般用if判断的方式,判断数组里面的
//值为空时,把对象赋值给数组,并且要跳出数组,然后用标志位的方式生成是否订单成功。

5:写出订单签收功能:
(1):输入你要签收的订单号
(2):遍历整个订单数组,查看数组中是否有你输入的订单号等于不为空的数组的下标加1 的值,如果有判断他的状态是否为0,为0时,签收后把他的状态值赋值为1 ,签收成功,这时要用标志位的方式,来标记他签收成功。
(3)否则的话,打印已经签收。用标志位的值判断打印的内容。
需要注意的是此时的订单签收只是签收的初始化的订单,如果要签收订单里刚输入的订单,需要运行时输进去,然后不能退出直接进行签收才能收到这个数据。这也是上个订单功能里为什么把输入的订单存放到数组的用处。方法里功能方法不要套功能方法,可以套数据方法,尽量不要实现两个功能。

6:写出订单删除功能:
(1):输入需要删除的订单号
(2):遍历订单数组,查看不为空的订单的下标+1是否有和你输入的数值相等,如果有,看他的状态是否为1,为1 的话可以删除,这时从你输入的数字 i 那里开始遍历数组,让后面的元素下标往前移动一位,让下标为 i +1 的数组元素等于空值,这时在遍历的时候自动把最后一位变为空,这时就算是把订单删除了

7:实现我要点赞的功能:
(1):输入需要选择点赞的菜品号
(2):判断是否有你输入的菜品号(大于三小于一则不没有)
(3):如果有,遍历菜品数组,选出你输入的数字等于哪个序号 i ,然后让数组 i 的点赞数加1,点赞成功,打印结果。

总结:所有功能实现,都基于初始化的数据,由于没有数据库,所以每次关闭数据不会保存,都是在初始化的数据拿来用的,方法里面不需要调用数据来使用,只需要在main方法里先把初始化数据调用出来,在用到各个功能就行了。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值