吃货联盟订餐系统
一、需求分析
1)我要订餐
完成用户订餐,每条订单包含如下信息:
① 订餐人姓名:要求用户输入
② 选择菜品及份数:显示三个菜单序号、名称、单价、点赞数,提示用户输入要选择的菜品序号及份数
③ 送餐时间:要求当天10到20点间整点送餐,要求用户输入10~20的整数,输入错误,重复输入。
④ 送餐地址:要求用户输入
⑤ 状态:两种状态:0:已预定(默认状态) 1、已完成(订单已签收)
⑥ 总金额:
总金额 = 菜品单价*份数-送餐费
(送餐费:当单笔订单金额达到50元时,免送餐费,否则,需交纳6元送餐费)
订餐成功后,显示订单信息。
2)查看订单
遍历显示已有定单
内容包括:序号、订餐人姓名、订餐信息(菜品名和份数)、送餐时间、送餐地址、 状态(已预定或已完成)、总金额
3)签收定单
将定单中状态改为已完成
4)删除定单
用户输入订单序号,如该序号定单为已完成状态,可以删除,其它情况给出相应提示信息
5)我要点赞
显示菜品序号、菜品名、单价、点赞数,提示用户输入要点赞的菜品序号完成对菜品的点赞。
6)退出系统
退出整个系统,显示“谢谢使用,欢迎下次光临”。
7)菜单切换
用户可根据显示的主菜单,输入功能编号执行相应的功能,当输入1~5时,执行相应功能
二、数据主体
我要订餐 查看餐袋 删除订单 签收订单
一组订单(送餐人 餐品信息 送餐时间 送餐地址 总金额 订单状态)
需要使用多个数组,把一组订单的信息放在不同数组的相同下标位置
餐品信息
一组餐品信息(菜名 份数 单价)
需要使用多个数组,把一组订单的信息放在不同数组的相同下标位置
我要点赞(餐品)
一组餐品(餐品名 单份 点赞数)
三、整体框架
循环(do-while)
循环操作:
显示主菜单
提示用户输入功能编号,并执行相应的功能
提示输入0返回
循环条件:
输入0
分支(switch)
根据用户输入的编号,执行相应的功能
四、退出系统
1)当显示主菜单之后,用户输入6或1-6之外的数据
2)执行完相应功能之后,提示输入0返回时,输入一个非0的数字
五、订餐功能
1)查找插入位置
找到要插入的位置,循环遍历订餐人第一个为空的位置
如果找到了,则此位置就是要插入数据的位置
没找到,则显示餐袋已满
2)执行添加数据操作
a、显示所有可选择的餐品信息
用户输入餐品编号以及份数
b、输入订餐人姓名
c、输入送餐时间
d、输入送餐地址
e、计算总金额
餐品总金额 = 餐品单价 *份数
送餐费
订单总金额 = 餐品总金额+送餐费
3)显示订单信息
a、所订餐品信息
b、订餐人
c、送餐时间
d、送餐地址
e、金额
4)向数组中保存数据
六、查看餐袋
显示每条订单信息(遍历数组)
序号 所订餐品信息 订餐人姓名 送餐时间 送餐地址 状态(0:已预定 1:已完成) 总金额
七、签收订单
要求用户输入一个签收的订单序号
查找这条订单(循环遍历)
a、找到,状态是已完成,提示不能再次签收
b、找到,状态是已预定,可以签收
c、没找到,提示信息没找到
八、删除订单
1)输入要删除的订单编号(从1开始)
2)循环查找这条订单
a、找到,已签收,执行删除操作
删除操作(循环移位):从要删除的元素后面一个开始,到数组最后一个元素依次往前移动一位
最后一位清空
b、找到,未签收,提示不能删除
c、没找到,提示信息没找到
九、我要点赞
1)显示供点赞的餐品列表
2)输入要点赞的餐品序号
3)该序号的餐品点赞数加1
4)显示