1、系统需求说明
概要:现今已进入网络时代,网上购物、看新闻、交友等人们的日常生活已离不开网络。“只要点点手指,就能送餐上门”,网上定餐越来越受到都市年轻人的青睐 现要求开发一个网上订餐系统,其具体功能如下:
1.1、我要订餐
完成用户订餐,每条订单包含如下信息:
1.1.1、订餐人姓名:要求用户
1.1.2、输入选择菜品及份数:显示三个菜单序号、名称、单价、点赞数,提示用户输入要选择的菜品序号及份数
1.1.3、送餐时间:要求当天10到20点间整点送餐,要求用户输入10~20的整数,输入错误,重复输入。
1.1.4、送餐地址:要求用户输入
1.1.5、状态:两种状态:0:已预定(默认状态) 1、已完成(订单已签收)
1.1.6、总金额:总金额 = 菜品单价*份数-送餐费
(送餐费:当单笔订单金额达到50元时,免送餐费,否则,需交纳6元送餐费)
1.1.7、订餐成功后,显示订单信息。
1.2、查看订单
遍历显示已有订单
内容包括:序号、订餐人姓名、订餐信息(菜品名和份数)、送餐时间、送餐地址、状态(已预定或已完成)、总金额
1.3、签收订单
将订单中状态改为已完成
1.4、删除订单
用户输入订单序号,如该序号订单为已完成状态,可以删除,其它情况给出相应提示信息
1.5、我要点赞
显示菜品序号、菜品名、单价、点赞数,提示用户输入要点赞的菜品序号完成对菜品的点赞。
1.6、退出系统
退出整个系统,显示“谢谢使用,欢迎下次光临”。
1.7、菜单切换
用户可根据显示的主菜单,输入功能编号执行相应的功能,当输入1~5时,执行相应功能
2、效果展示
2.1、主界面
2.2、我要订餐
2.3、订餐
2.4、查看订单
2.5、签收
2.6、删除订单
2.7、点赞
2.8、退出
3、思路与代码编写
第一阶段:分析数据主体(重难点)
第二阶段:分析并完成整体框架(重难点)
第三阶段:分析并完成退出功能
第四阶段:分析并完成订餐功能
第五阶段:分析并完成查看餐袋功能
第六阶段:分析并完成签收订单功能
第七阶段:分析并完成删除功能(重难点)
第八阶段:分析总完成我要点赞功能
3.1、分析数据主体
我要订餐 查看餐袋 删除订单 签收订单
声明多个数组,用来保存基本信息,包括:订餐人、所定餐品信息、送餐时间、送餐地址、订单状态、总金额等
我要点赞(餐品)
再声明一组固定的数组,用来保存餐品、餐品单价和点赞数等。
//数据主体:一组订单信息
String[] names = new String[5];//订餐人姓名
String[] dishMegs = new String[5];//保存所定餐品信息
int[] times = new int[5];//送餐时间
String[] addresses = new String[5];//送餐地址
int[] states = new int[5];//订单状态,0:已预订 1:已完成
double[] sumPrices = new double[5];//总金额
//提前放入两组数据
names[0] = "张三";
dishMegs[0] = "宫保鸡丁\t1份";
times[0] = 15;
addresses[0] = "安徽省合肥市";
states[0] = 1;
sumPrices[0] = 36.0;
names[1]="李四";
dishMegs[1]="鱼香肉丝\t一份";
times[1]=18;
addresses[1]="安徽省六安市";
states[1]=1;
sumPrices[1]=31.0;
//数据主体:一组餐品信息
String[] dishNames = {"宫保鸡丁", "回锅肉", "鱼香肉丝", "佛跳墙"};//菜单
double[] prices = {30.0, 40.0, 25.0, 60.0};//价格
int[] praiseNums = new int[4];//点赞数
3.2、整体框架
使用循环(do-while)作为最外圈的大循环
循环操作:
显示主菜单
提示用户输入功能编号,并且能执行相应功能
提示输入0返回
循环条件:用户输入0
使用switch循环作为内侧的分支循环
可以根据用户输入功能编号,执行相应功能
Scanner sc = new Scanner(System.in);
int num = 0;//用来记录用户输入的数字
do {
//声明主界面
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.print("请选择:");
int serialNumber = sc.nextInt();
switch(serialNumber)
case 1://我要订餐
break;
case 2://查看餐带
break;
case 3://签收订单