实验项目名称公司订餐系统

使用了数据库+JDBC+面向对象知识,主要分为八个功能页面,分别为注册、登陆、订餐、查看餐袋、签收订单、删除订单、点赞、退出系统
实现这八个功能模块共创建了八个类:
1.Test.java 程序的主类
2.Login.java 登陆
3.Register.java 注册
4.Home.java 菜单类或窗口类
5.Dinner.java 功能实现类
6.ClearScreen.java 清屏类
7.Menu.java 定义属性和方法
8.JDBCUtils.java JDBC工具类

运行后的信息:

数据库建table表:

MySql创建表的操作
//创建订餐信息表
CREATE TABLE menu(Id INT PRIMARY KEY AUTO_INCREMENT,customer VARCHAR(32),
message VARCHAR(32),
number INT,
TIME INT,
address VARCHAR(32),
amount DOUBLE(4,1),
state VARCHAR(32)
);//创建菜品信息表
CREATE TABLE menumassage(Id INT PRIMARY KEY AUTO_INCREMENT,message VARCHAR(32),
price INT,
praise INT
);//创建点赞排行榜表
CREATE TABLE top(
dish VARCHAR(32),
price INT,
praise INT,
dept_id INT
);
//连级操作删除修改
ALTER TABLE top ADD UNIQUE (dish);
ALTER TABLE top ADD  CONSTRAINT top1 FOREIGN KEY (dept_id)  REFERENCES menumassage(Id);Top表的更新操作
TRUNCATE TABLE top;INSERT INTO `top`(`dish`,`price`,`praise`,`dept_id`)VALUES('红烧带鱼','38','0','1');
INSERT INTO `top`(`dish`,`price`,`praise`,`dept_id`)VALUES('鱼香肉丝','18','0','2');INSERT INTO `top`(`dish`,`price`,`praise`,`dept_id`)VALUES('时令鲜蔬','10','0','3');
SELECT *FROM top;

1.Test.java 程序的主类

package cn.itcast.datasource.Restaurant;import cn.itcast.datasource.JDBCUtils.JDBCUtils;
import org.springframework.jdbc.core.JdbcTemplate;import java.util.Scanner;public class Test {public static void main(String[] args) {/*获取连接池方法*/JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());Dinner dinner = new Dinner();Login l = new Login();Register r  = new Register();Boolean condition=false;//定义登陆初始状态Home home = new Home();Scanner sc = new Scanner(System.in);while(condition==false){home.load();int num = sc.nextInt();if (num == 1) {r.regist();//注册} else if (num == 2) {condition = l.login();//登录} else if (num == 0) {return ;}}while (condition==true){dinner.function();}}
}

2.Login.java 登陆

import cn.itcast.datasource.JDBCUtils.JDBCUtils;
import org.springframework.jdbc.core.JdbcTemplate;import java.util.List;
import java.util.Map;
import java.util.Scanner;public class Login {/*获取连接池方法*/JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());Scanner sc = new Scanner(System.in);String name = null;int id ;/** 登录检测方法,参数无,return condition* */public boolean login() {for ( int count=3;count>0;count--) {System.out.println();System.out.println();System.out.println("~~~~~~~~~~~~~~~~欢迎使用饿了么~~~~~~~~~~~~~~~~");System.out.println("请输入账号:");int  cardId = sc.nextInt();System.out.println("请输入密码:");int  passWord = sc.nextInt();//定义sql语句返回整个数据库中所有数据对象的list集合String sql = "SELECT *FROM USER;";List<Map<String, Object>> list = template.queryForList(sql);for (Map<String, Object> user : list) {//键盘输入和数据库中用户数据的比较if (cardId == (int) user.get("cardId") && passWord == (int) user.get("password")) {name = (String) user.get("name");id =(int) user.get("id");System.out.println("欢迎第"+id+"位骑手"+name+"!");System.out.println("登陆成功!");return true;}}if(count==1){System.out.println("输入错误,登陆失败!");System.exit(0);}else{System.out.println("请重新验证身份信息,验证次数还有:" +(count-1)+"次!");}}return false;}}

3.Register.java 注册

import cn.itcast.datasource.JDBCUtils.JDBCUtils;
import org.springframework.jdbc.core.JdbcTemplate;import java.util.Scanner;public class Register {/*获取连接池方法*/JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());Scanner sc = new Scanner(System.in);public void regist (){System.out.println("请输入账号:");int  cardId = sc.nextInt();System.out.println("请输入密码:");int  passWord = sc.nextInt();System.out.println("请输入你的真实姓名:");String name = sc.next();//数据库user表中插入数据String sql = "insert into USER(Id,cardId,PASSWORD,NAME) values(?,?,?,?)";template.update(sql,null,cardId,passWord,name);}
}

4.Home.java 菜单类或窗口类

public class Home {ClearScreen cs = new ClearScreen();public void load(){cs.clear();System.out.println("            欢迎使用饿了么            ");System.out.println("                                     ");System.out.println("                1.注册               ");System.out.println("                                     ");System.out.println("                2.登录               ");System.out.println("                                     ");System.out.println("                0.退出               ");cs.clear();System.out.println("………测试用账号:18480****  密码:123456………");System.out.println("请输入序号:");}public void functionview(){cs.clear();System.out.println("1、我要订餐");System.out.println("2、查看餐袋");System.out.println("3、签收订单");System.out.println("4、删除订单");System.out.println("5、我要点赞");System.out.println("6、退出系统");cs.clear();System.out.print("请选择:");}public void menu(){System.out.println("序号" + "\t" + "菜名"+"\t"+"单价"+"\t");System.out.println("1" + "\t" + "红烧带鱼"+"\t"+"38.0元"+"\t");System.out.println("2" + "\t" + "鱼香肉丝"+"\t"+"18.0元"+"\t");System.out.println("3" + "\t" + "时令鲜蔬"+"\t"+"10.0元"+"\t");}
}

5.Dinner.java 功能实现类


import cn.itcast.datasource.JDBCUtils.JDBCUtils;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;import java.util.List;
import java.util.Map;
import java.util.Scanner;public class Dinner {static int s;int j=0;/*获取连接池方法*/JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());Scanner sc = new Scanner(System.in);Home home = new Home();int num ;String state = "已预定";int sum = 1;int customer=3;Long tot;//查询表中总记录数public Long total(String str){String sql = "select count(?)from menu";Long tot = template.queryForObject(sql,Long.class,str);return tot;}//获取menumassage表中信息商品单价和商品名称public Map<String, Object> sqlSearch(int select){String sqlSearch = "select * from menumassage where Id = ? ";List<Map<String, Object>> list = template.queryForList(sqlSearch,select);Map<String, Object> map1 = list.get(0);return map1;}//获取menu表中信息public Map<String, Object> sqlSearch1(int select){String sqlSearch = "select * from menu where Id = ? ";List<Map<String, Object>> list = template.queryForList(sqlSearch,select);Map<String, Object> map1 = list.get(0);return map1;}//获取top表中信息public Map<String, Object> sqlSearch2(int select){String sqlSearch = "select * from top where dept_id = ? ";List<Map<String, Object>> list = template.queryForList(sqlSearch,select);Map<String, Object> map1 = list.get(0);return map1;}//更新表中的数据public  void replaceS(String str,int id){String sql1 = "update menu set message = ? where Id = ?";template.update(sql1, str, id);}public void  menu() {System.out.println("******************我要订餐********************");for (j=s; j <=customer; j++) {++s;if (s<= customer) {  //找到第一个空位置,可以添加订单信息// 显示供选择的菜品信息及价格home.menu();//输入所选餐品/份数//添加一条记录,为每一个订餐用户增加“已预定”属性String sql = "insert into menu(state )values (?)";template.update(sql, "已预定");System.out.print("请选择您要点的菜品编号:");int select = sc.nextInt();//sum = ++i;sum=s;Map<String, Object> map=sqlSearch(select);String  message = (String) map.get("message");int price = (int) map.get("price");//修改一条记录update user set balance = ? where cardId = ?replaceS(message,sum);System.out.print("请选择您需要的份数:");int number = sc.nextInt();String sql2 = "update menu set number = ? where Id = ?";template.update(sql2, number, sum);//计算总的餐费(实际价格+配送费)double Price = price * number;//餐费满50元,免送餐费double fee = (Price >= 50) ? 0 : 5;double sumPrice = Price + fee;String sql3 = "update menu set amount = ? where Id = ?";template.update(sql3, sumPrice, sum);System.out.print("请输入订餐人姓名:");String name = sc.next();String sql4 = "update menu set customer = ? where Id = ?";template.update(sql4, name, sum);System.out.print("请输入送餐时间(送餐时间是10点至20点间整点送餐):");int time = sc.nextInt();// 设置工作时间送餐while (time < 10 || time > 20) {System.out.print("您的输入有误,请输入10~20间的整数!");time = sc.nextInt();}String sql5 = "update menu set time = ? where Id = ?";template.update(sql5, time, sum);System.out.print("请输入送餐地址:");String address = sc.next();String sql6 = "update menu set address = ? where Id = ?";template.update(sql6,address,sum);//打印输出部分System.out.println("订餐成功!");System.out.println("您订的是:" + message);System.out.println("订了" + number + "份");System.out.println("订餐人:" + name);System.out.println("送餐时间:" + time + "点");System.out.println("餐费:" + Price + "元,送餐费" + fee + "元");System.out.println("总金额:" + (sumPrice) + "元。");break;}else {System.out.println("对不起,您的餐袋已满!");break;}}}public void  viewOrder(){System.out.println("****************查看实时订单******************");tot=total("Id");if(tot==0){System.out.println("对不起,还未建立订单,请耐心等待!!!");return;}String sql1 = "select * from menu";List<Menu> list = template.query(sql1,new BeanPropertyRowMapper<Menu>(Menu.class));for(Menu menu:list){System.out.println(menu);}}public void  signOrder() {//签收订单System.out.println("******************签收定单********************");System.out.print("请选择要签收的订单序号:");int sign = sc.nextInt();tot=total("Id");if(tot==0){System.out.println("对不起,还未建立订单,请耐心等待!!!");return;}if (sign > 0 && sign <= customer) {//获取订单的签收状态Map<String, Object> map=sqlSearch1(sign);String state = (String) map.get("state");String str = "已签收";if (!state.equals(str) ) {//修改签收状态为已签收String sql1 = "update menu set state = ? where Id = ?";template.update(sql1, "已签收", sign);System.out.println("订单签收成功!");} else {System.out.println("您选择的订单已完成签收,不能再次签收!");}}//未找到的订单序号时不能签收if (sign > customer) {System.out.println("对不起,此订单不存在!");}}public void deleteOrder(){//删除定单System.out.println("******************删除订单********************");System.out.print("请选择要删除的订单序号:");int delete = sc.nextInt();tot=total("Id");if(tot==0){System.out.println("对不起,还未建立订单,请耐心等待!!!");return;}if (delete > 0 && delete <= customer) {//获取订单的签收状态Map<String, Object> map=sqlSearch1(delete);String state = (String) map.get("state");System.out.println("你看到的状态:"+state);String str1 = "已签收";if (state.equals(str1)==true) {String sql9 = "delete from menu where Id = ?";template.update(sql9,delete);System.out.println("订单删除成功!");} else {System.out.println("您选择的订单未完成签收,不能完成删除!");}}//未找到的订单序号时不能签收if (delete > customer) {System.out.println("对不起,此订单不存在!");}}public  void  praise(){System.out.println("******************我要点赞********************");home.menu();System.out.println("请选择您要点赞的菜品序号:");//查询menumassage总记录数String sql1= "select count(Id) from menumassage";Long total = template.queryForObject(sql1,Long.class);int select=sc.nextInt();//判断输入是否合理if(select>0&&select<=total){System.out.println("输入正确!");}else {System.out.println("输入错误,请按餐品编号输入												

订餐系统(饿了某)java程序实现相关推荐

  1. 性能测试瓶颈分析与系统调优(9)java程序GC机制及性能稳定性调优分析

    8.1 jvm资源监控工具 8.1.1jconsole监控工具 jmap:此工具在jdk安装目录的bin文件夹里面 jmap [option]<pid> 例如:jmap -heap 603 ...

  2. java代码在u盘里面运行_在u盘安装有jdk,在win7系统上怎么运行java程序

    java程序的运行时需要环境的. java程序的运行环境就是JRE,你说的JDK其中也包含了JRE所以java程序可以运行,但是JDK中还包含有用于开发java程序所用到的工具,而这些JRE中是没有的 ...

  3. 网上订餐系统饿了么、百度、美团外卖,订餐网站外卖

    网上订餐系统 网上订餐系统立足于餐饮领域,以推动和加快餐饮行业信息化建设,为餐饮业主.网站平台服务运营商提供一流的应用软件及信息化全面解决方案为使命.对中小型餐饮企业推出的一款融合网络订餐.3G网络及 ...

  4. 2023基于微信小程序的奶茶店自助饭店点餐订餐系统平台(SSM+mysql)-JAVA.VUE(论文+开题报告+运行)

    摘 要 使用智能手机的用户经过多年的使用习惯,已经越来越不喜欢安装各种的APP,除了正常生活和工作所必须的APP,不喜欢因为喜欢某些内容而被强制安装APP软件了.最近几年,随着微信生态的布局,通过开发 ...

  5. 最新2023基于微信小程序的奶茶店自助饭店点餐订餐系统平台(SSM+mysql)-JAVA.VUE【数据库设计、论文、毕设源码、开题报告】

    摘 要 使用智能手机的用户经过多年的使用习惯,已经越来越不喜欢安装各种的APP,除了正常生活和工作所必须的APP,不喜欢因为喜欢某些内容而被强制安装APP软件了.最近几年,随着微信生态的布局,通过开发 ...

  6. 基于微信小程序食堂订餐系统源码(微信小程序毕业设计)

    基于微信小程序食堂订餐系统 食堂订餐系统后台是基于java编程语言,mysql数据库,ssm框架,idea工具开发,用户端是采用微信小程序端开发,本系统主要分为用户,管理员,商家三个端,用户可以注册登 ...

  7. 简单计算机java程序_JAVA程序员需要知道的计算机底层基础10-操作系统引导程序的简单...

    JAVA程序员需要知道的计算机底层基础10-操作系统引导程序的简单 JAVA程序员需要知道的计算机底层基础10-操作系统引导程序的简单制作 汇编实现引导程序 ; 文件名 boot.asm org 7c ...

  8. Java基础——吃货联盟订餐系统

    吃货联盟订餐系统 刚刚学完java基础入门,主要学习Java基本环境搭建,定义变量.选择结构,循环结构.数组等.本阶段结束尝试接触此次吃货联盟订餐系统,第一次敲这么长的代码,后面多见识见识应该就好了, ...

  9. 基于Java语言的网上订餐系统(附:源码 课件)

    今天UP主要给大家分享的是java毕业设计项目-网上订餐系统! 本套java项目视频主要针对于应届毕业生,毕业设计而制作,视频围绕毕业设计讲解网上订餐系统的制作全部流程.项目包括网站源码.项目原型.项 ...

  10. 【Java实战项目】两小时教你做出网上订餐系统

    今天主要给大家分享的是java毕业设计项目-网上订餐系统! 本套java项目视频主要针对于应届毕业生,毕业设计而制作,视频围绕毕业设计讲解网上订餐系统的制作全部流程.项目包括网站源码.项目原型.项目文 ...

最新文章

  1. Markdown 修改图片的尺寸
  2. Sencha应用程序的UI测试
  3. asp单元格合并后宽度没有合并_ElementUI Table组件如何使用合并行或列功能深入解析...
  4. C++函数返回局部变量
  5. A Byte of Python 笔记(12)python 标准库:sys、os,更多内容
  6. 编译lame报错:lame_init_old找不到
  7. 想把PDF论文里面的图片导出来,有什么办法
  8. python用函数判断一个数是否为素数_【转载】Python脚本判断一个数是否为素数的几种方法...
  9. IDEA安装后双击打开无任何反应
  10. Ubuntu系统清理瘦身
  11. 项目选题报告答辩总结——日不落战队
  12. 服务器500错误 后台接口调试没问题
  13. CSDN Markdown 公式编号
  14. 网络存储-详解NAS网络存储
  15. 电视剧的收视排行榜(Python)
  16. 为什么使用 LinkedIn 进行联盟营销活动?
  17. axis的xml转java的实际开发使用笔记
  18. 录制和剪辑视频,如何解决占用空间过大的问题?
  19. excel数据透视表数据排序及excel表格转成word表
  20. Lua操作字符串去除回车换行以及空格

热门文章

  1. Dream(励志英文演讲)
  2. android 控制空调,控制精灵空调遥控器
  3. RedisConnectionFactory is required异常解决
  4. Express高效查询纯真IP库插件lib-qqwry
  5. Java实现Native微信支付 超完整流程
  6. Processing学习笔记
  7. 第六章-2 CS创建监听与payload
  8. 网页抓取及信息提取(二)
  9. Angular—生命周期函数
  10. 涨姿势 之 Sourcetree 显示头像