java项目实战实例讲解:JAVA项目案例详解,带代码
项目案例--吃货联盟一、项目准备:1.开发环境:
- JDK1.8
- IntelliJ IDEA
- 能理解程序基本概念 – 程序
- 会使用变量、数据类型
- 会使用顺序、选择、循环、跳转语句编写程序
- 会使用数组
只要动动手指,就能送餐上门”,网上订餐深受现代人青睐,现开发一个网上订餐系统,功能如下:
- 我要订餐
- 查看餐袋
- 签收订单
- 删除订单
- 我要点赞
- 退出系统
买家:
买家订单基本信息-用户名,时间,地址,数量等
卖家:
菜品信息-单价、品种、点赞数
模块划分:
我要订餐--添加--insert -C(create) 查看餐袋--查询--read -R 签收订单--修改--update -U 删除订单--删除--delete -D 基本所有的项目都是在对数据进行增删改查(CRUD) 我要点赞--辅助功能 退出系统--流程控制
2.编写要求:项目名---Foods 包名--cn.xx.controll 类名--OrderingMsg 项目编写完成需要制作成运行jar及bat文件
3.编写步骤:定义变量--测试数据--搭建总框: do...while中嵌套switch,将跳转切换使用数字进行替换 查看订单 查看之前--循环之前先判定是否为空 添加订单 作业:补全是否继续的功能 添加注意打印小票和数组添加数据的分开操作 签收订单: 判定签收的情况:不存在该订单/存在不能签收/签收 删除订单: 将需要删除的数据之后的所有数据全部前移,然后将最后一条废数据清空 我要点赞: 显示菜单,然后将指定的点赞菜品添加1
三、代码分析:1.定义变量://定义买家变量--数组String[] names=new String[4]; //订餐人姓名int[] times=new int[4]; //订餐时间-整点String[] addresses=new String[4]; //订餐地址String[] dishMegs=new String[4]; //所选菜品信息double[] sumPrices=new double[4]; //总金额int[] states=new int[4]; //订单状态信息 //定义卖家菜品变量--数组String[] dishNames={"大肘子","锅包肉","辣鸭头","麻辣虾"}; //菜品信息double[] prices={59,58,48,69}; //菜品单价int[] praiseNums={4,5}; //菜品点赞数
2.框架模块:
do{ 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.println("请选择"); num=input.nextInt(); switch (num) { case 1: System.out.println("我要订餐"); break; case 2: System.out.println("查看餐袋"); break; case 3: System.out.println("签收订单"); break; case 4: System.out.println("删除订单"); break; case 5: System.out.println("我要点赞"); break; case 6: System.out.println("退出系统"); isExit=true; break; default: isExit=true; break; } //判定是否回退到一级菜单 if(!isExit){ System.out.println("输入0返回"); num=input.nextInt(); }else{ break; }}while(num==0);System.out.println("欢迎下次使用!");
3.查看餐袋:
for (int i = 0; i <names.length; i ) { //判定---如果用户信息为空,该订单不进行打印 if(names[i]!=null){ String state=(states[i]==0)?"已预订":"已完成"; String sumPrice=sumPrices[i] "元"; String time=times[i] "时"; System.out.println((i 1) " \t\t" names[i] " \t\t" dishMegs[i] " \t\t" time " \t\t" addresses[i] " \t\t" sumPrice " \t\t" state); }}
4.我要订餐:
for (int i = 0; i < names.length; i ) { //往数组添加内容-需要先获取数组空的位置-第一个位置--循环结束掉 if(names[i]==null){ //进入判定则标志着可以进行数据添加的空位---将标记进行修改 isAdd=true; //添加订单 System.out.println("请输入用户名"); //模拟登陆 String name=input.next(); //打印菜品信息 System.out.println("序号 \t菜名 \t单价 \t点赞数"); for (int j = 0; j < dishNames.length; j ) { String price=prices[j] "元"; String praise=(praiseNums[j]>0)?praiseNums[j] "赞":""; System.out.println((j 1) " \t" dishNames[j] " \t" price " \t" praise); } System.out.println("请输入你选择的菜品的序号"); int chooseDish=input.nextInt(); System.out.println("请输入房购买的份数"); int number=input.nextInt(); //处理订餐信息和订餐总额 String dishMeg=dishNames[chooseDish-1] "" number "份"; double sumPrice=prices[chooseDish-1]*number; //判定是否需要进行配送费:超过50免配送费 double deliCharge=(sumPrice>=50)?0:5; //配送费 //配送时间-如果时间输入不正确需要重复输入直到输入正确为止 10 -20 System.out.println("请输入配送时间(10-20的整点)送餐"); int time=input.nextInt(); /*while(!(time>=10&&time<=20)){ System.out.println("您输入的时间不正确,请重新输入"); time=input.nextInt(); }*/ while(time<10 ||time>20){ System.out.println("您输入的时间不正确,请重新输入"); time=input.nextInt(); } System.out.println("请输入送餐地址"); String address=input.next(); //打印小票 System.out.println("订餐成功!"); System.out.println("您的订餐是" dishMeg); System.out.println("餐费是" sumPrice ",配送费是" deliCharge ",总金额是" (sumPrice deliCharge)); //将数据添加到数组中 names[i]=name; dishMegs[i]=dishMeg; times[i]=time; addresses[i]=address; sumPrices[i]=sumPrice deliCharge; //当将当前循环中添加完成以后直接循环结束 break; }}//如果整个循环结束都没有找到空位,则表示当前餐袋已满if(!isAdd){ System.out.println("对不起,餐袋已满!");}
5.签收订餐:
for (int i = 0; i <names.length; i ) { //判定---如果用户信息为空,该订单不进行打印 if(names[i]!=null){ String state=(states[i]==0)?"已预订":"已完成"; String sumPrice=sumPrices[i] "元"; String time=times[i] "时"; System.out.println((i 1) " \t\t" names[i] " \t\t" dishMegs[i] " \t\t" time " \t\t" addresses[i] " \t\t" sumPrice " \t\t" state); }}
6.删除订单:
for (int i = 0; i < names.length; i ) { if(names[i]!=null&&states[i]==1&&delId==i 1){ //能找到订单并可以删除 isDelFind=true; //执行删除操作,删除元素以后的所有数据依次移动--后续多个数据 for (int j = delId-1; j < names.length-1; j ) { names[j]=names[j 1]; dishMegs[j]=dishMegs[j 1]; times[j]=times[j 1]; addresses[j]=addresses[j 1]; states[j]=states[j 1]; } //最后一个数据进行清空还原处理 names[names.length-1]=null; dishMegs[dishMegs.length-1]=null; times[times.length-1]=0; addresses[addresses.length-1]=null; states[states.length-1]=0; System.out.println("删除订单成功!"); break; }else if(names[i]!=null&&states[i]==0&&delId==i 1){ //能找到订单但是不能删除 isDelFind=true; System.out.println("该订单未签收,不能被删除!"); break; }}//如果循环结束都没有找到订单则表示不存在if(!isDelFind){ System.out.println("您要删除的订单不存在!");}
7.我要点赞:
for (int i = 0; i < dishNames.length; i ) { String price=prices[i] "元"; String praiseNum=(praiseNums[i]>0)?praiseNums[i] "赞":""; System.out.println((i 1) "\t " dishNames[i] "\t " price "\t " praiseNum);}System.out.println("请输入您需要点赞的菜品序号");int praiseId=input.nextInt();//将点赞内容进行自增praiseNums[praiseId-1] ;System.out.println("点赞成功!");
注意:
文章为核心代码,如果需要完整代码,可以随时私聊我,也可以加这个企鹅群720994366找管理要。
- 01-25亚里士多德的逻辑思想:亚里士多德真的写下过写下这么多的著作吗
- 12-12炖肉怎么炖出来不腻?周末炖2锅肉太香了材料扔锅里
- 04-02祝寿诗词五言绝句,七一感赋,组诗
- 01-16姜维几次北伐:姜维最后那几次北伐算不算是穷兵黩武
- 03-03名师的成长之路讲座心得体会:名师成长手记丨李焱与
- 10-21正月二十五老天仓的习俗 正月十四,拜娘娘
- 01-08故宫为何5点关门让人不敢忘记:为何故宫5点就关门几乎从不开放夜景
- 03-13财神爷神像摆放在哪里最好:财神爷怎么供奉更招财
- 01-25她用歌声唱出了心中的心酸和无奈,她来了,她来了她带着
- 12-04一汽大众李琼,一汽-大众李鹏程接替拱兴波
- 02-27数码产品如何改变自己生活?数码产品的设计思维与用户研究
- 02-23父母怎么判断孩子的缺点?欣赏孩子优点包容孩子缺点
- 11-29oppo和vivo比较起来哪个好点?OPPO和vivo,哪家更强
- 10-17macbook pro m1 深度测评:四年换了四台,14寸
- 03-26文件类型是raw的硬盘怎么修复?u盘,硬盘数码相机raw格式文件如何恢复
- 03-27冬季用火取暖温馨提醒:宝塔城指暖心提示:安全无小事
热门
推荐
- 1情人节给老婆的祝福语2020385
- 2祝福生日快乐的话语大全471
- 3企业营销工作总结487
- 4经典销售故事晨会励志正能量463
- 5电脑打字打不出中文怎么解决163
- 6唯美的动漫插图古风女生的图片176
- 7端午节发给客户的祝福短信472
- 8高考数学易错知识点整理312