简化版满汉楼(命令行)项目--韩顺平老师

介绍满汉楼项目

就是一个 点餐项目,
满汉楼只是一个名字,就是高级饭店的名字,
本项目不是界面的,是采用命令行的.
涉及到的技术:
javase+jdbc+mysql+druid+apache-dbutils工具类

在这里插入图片描述

第一步:创建数据库(mysql8.x)

1、创建数据库

-- 创建mymhl数据库
create database mymhl charset utf8;
-- 使用mymhl数据库
use mymhl;

2、创建员工表(用于登录系统)

-- 创建员工表employee
create table employee(
    empId int primary key auto_increment,#编号
    empCount varchar(30)not null unique default 'null',#账户
    empName varchar(30) not null default 'null',#姓名
    empPwd varchar(32)not null default 'null',#密码
    empSex char(1) not null default '男',# 性别
    empAge int not null default 20 #年龄
)charset utf8;
  • 添加数据
-- 添加初始化数据
insert into employee
values
       (null,'666666','楠小弟',md5('123456'),'男',24),
        (null,'666989','tom',md5('123456'),'男',23),
        (null,'777777','lina',md5('123456'),'女',24);

3、创建餐桌表

-- 创建diningTable座位表
create table diningTable(
    dinId int primary key auto_increment,# 座位号
    dinState int default 0,#餐桌状态:0空闲,1已预定,2就餐中...
    dinUser varchar(30) not null default '',#预定者姓名
    dinTel varchar(11) not null #预定者电话
);
-- 添加数据
insert into diningTable values (null,0,'','');
select *from diningTable;

4、创建菜单表(菜的列表)

-- 菜单表menu
create table menu(
    mId int primary key auto_increment,#唯一编号
    mName varchar(30) not null default 'null',#菜名
    mPrice double not null default 0,#菜的价格
    mType varchar(30) # 菜的类型
);
insert into menu
    values(null,'爆炒腐竹',12,'热菜'),
           (null,'紫菜蛋花汤',15,'汤类'),
           (null,'烧饼',2,'面食'),
           (null,'水饺',15,'面食'),
           (null,'牛肉烩面',10,'面食'),
           (null,'紫菜蛋花汤',15,'汤类'),
           (null,'麻球',10,'甜食'),
           (null,'紫菜蛋花汤',15,'汤类'),
           (null,'麻辣鸡',40,'肉类'),
           (null,'麻辣鱼',35,'肉类'),
           (null,'红糖年糕',15,'甜食'),
           (null,'鱼香肉丝',15,'热菜');

5、创建账单表

-- 创建账单表bill
create table bill(
    bId int primary key auto_increment,#账单编号
    bCount char(36) not null default '',#账单号,UUId随机获取
    mId int not null ,#菜的编号
    bName varchar(30)not null default '',#菜的名字
    bNums int not null default 0,#菜的数量
    bPrice double not null default 0,
    diningTableId int not null ,
    bTime datetime ,#结账时间
    bState int not null default 0 #账单状态:0未结账,1现金2支付宝3微信...
);

第二步:在idea中创建mhlperson项目

1、项目目录

在这里插入图片描述

2、新建libs包

在这里插入图片描述

3、把相关jar包复制到libs包中并导入项目中

在这里插入图片描述

4、在src目录下新建文件:druid.properties

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mymhl?serverTimeZone=Asia/ShangHai
#数据库用户
username=root
#密码
password=123456
#初始化大小
initialSize=10
# 最大连接数量
maxActive=100
# 最大等待时间
maxWait=3000

5、在domain包中创建相对应的类

  • 是和数据库中的表相对应

a、员工类employee.java

public class Employee {
    private Integer empId;
    private String empCount;
    private String empName;
    private String empPwd;
    private String empSex;
    private String empAge;

    public Employee() {
    }

    public Integer getEmpId() {
        return empId;
    }

    public void setEmpId(Integer empId) {
        this.empId = empId;
    }

    public String getEmpCount() {
        return empCount;
    }

    public void setEmpCount(String empCount) {
        this.empCount = empCount;
    }

    public String getEmpName() {
        return empName;
    }

    public void setEmpName(String empName) {
        this.empName = empName;
    }

    public String getEmpPwd() {
        return empPwd;
    }

    public void setEmpPwd(String empPwd) {
        this.empPwd = empPwd;
    }

    public String getEmpSex() {
        return empSex;
    }

    public void setEmpSex(String empSex) {
        this.empSex = empSex;
    }

    public String getEmpAge() {
        return empAge;
    }

    public void setEmpAge(String empAge) {
        this.empAge = empAge;
    }
}

b、餐桌类diningTable.java

public class DiningTable {
    /**
     * 座位号
     */
    private Integer dinId;
    /**
     * 座位状态
     */
    private Integer dinState;
    /**
     * 座位预定者
     */
    private String dinUser;
    /**
     * 座位预定者电话
     */
    private String dinTel;

    public DiningTable() {
    }

    @Override
    public String toString() {
        String str;
        if(dinState==0){
            str="空闲ing";
        }else if (dinState==1){
            str="已预定";
        }else{
            str="就餐中";
        }
        String na="";
       if(!dinUser.isEmpty()){
          na =dinUser.substring(0,1)+"**";
       }
        return dinId+"\t\t"+str+"\t\t"+na;
    }

    public Integer getDinId() {
        return dinId;
    }

    public void setDinId(Integer dinId) {
        this.dinId = dinId;
    }

    public Integer getDinState() {
        return dinState;
    }

    public void setDinState(Integer dinState) {
        this.dinState = dinState;
    }

    public String getDinUser() {
        return dinUser;
    }

    public void setDinUser(String dinUser) {
        this.dinUser = dinUser;
    }

    public String getDinTel() {
        return dinTel;
    }

    public void setDinTel(String dinTel) {
        this.dinTel = dinTel;
    }
}

c、菜单类menu.java

public class Menu {
    private Integer mId;
    private String mName;
    private Double mPrice;
    private String mType;

    public Menu() {
    }

    @Override
    public String toString() {
        return  mId +
                "\t\t" + mName  +
                "\t\t" + mPrice +
                "\t\t" + mType;
    }

    public Integer getmId() {
        return mId;
    }

    public void setmId(Integer mId) {
        this.mId = mId;
    }

    public String getmName() {
        return mName;
    }

    public void setmName(String mName) {
        this.mName = mName;
    }

    public Double getmPrice() {
        return mPrice;
    }

    public void setmPrice(Double mPrice) {
        this.mPrice = mPrice;
    }

    public String getmType() {
        return mType;
    }

    public void setmType(String mType) {
        this.mType = mType;
    }
}

d、账单类bill.java

public class Bill {
    private Integer bId;
    private String bCount;
    private Integer mId;
    private String bName;
    private Integer bNums;
    private Double bPrice;
    private Integer diningTableId;
    private String bTime;
    private Integer bState;

    public Bill() {
    }

    @Override
    public String toString() {
        String str="";
        if(bState==0){
            str="未付款";
        }else if(bState==1){
            str="现金付款";
        }else if(bState==2){
            str="微信付款";
        }else {
            str="支付宝付款";
        }
        return  bId +"\t\t" + mId +
                "\t\t" + bName  +
                "\t\t" + bNums +
                "\t\t" + bPrice +
                "\t\t" + diningTableId +
                "\t\t" + bTime  +
                "\t" + str ;
    }

    public Integer getbId() {
        return bId;
    }

    public void setbId(Integer bId) {
        this.bId = bId;
    }

    public String getbCount() {
        return bCount;
    }

    public void setbCount(String bCount) {
        this.bCount = bCount;
    }

    public Integer getmId() {
        return mId;
    }

    public void setmId(Integer mId) {
        this.mId = mId;
    }

    public String getbName() {
        return bName;
    }

    public void setbName(String bName) {
        this.bName = bName;
    }

    public Integer getbNums() {
        return bNums;
    }

    public void setbNums(Integer bNums) {
        this.bNums = bNums;
    }

    public Double getbPrice() {
        return bPrice;
    }

    public void setbPrice(Double bPrice) {
        this.bPrice = bPrice;
    }

    public Integer getDiningTableId() {
        return diningTableId;
    }

    public void setDiningTableId(Integer diningTableId) {
        this.diningTableId = diningTableId;
    }

    public String getbTime() {
        return bTime;
    }

    public void setbTime(String bTime) {
        this.bTime = bTime;
    }

    public Integer getbState() {
        return bState;
    }

    public void setbState(Integer bState) {
        this.bState = bState;
    }
}

6、在dao包中创建类

a、创建BasicDao父类

public class BasicDao<T> {
    private QueryRunner qr=new QueryRunner();
    private Connection conn=null;

    /**
     * 通用的查询:多条语句
     * @param sql
     * @param clazz
     * @param obj
     * @return
     */
    public List<T>getAllDate(String sql,Class<T>clazz,Object...obj){
        try {
            conn= JdbcDruid.getConn();
            return qr.query(conn,sql,new BeanListHandler<>(clazz),obj);
        } catch (SQLException e) {
           throw new RuntimeException(e);
        } finally {
            JdbcDruid.getCLose(null,null,conn);
        }
    }

    /**
     * 通用的查询:根据条件得到单条数据
     * @param sql
     * @param clazz
     * @param obj
     * @return
     */
    public T getDateById(String sql,Class<T>clazz,Object...obj){
        try {
            conn=JdbcDruid.getConn();
            return qr.query(conn,sql,new BeanHandler<>(clazz),obj);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        } finally {
            JdbcDruid.getCLose(null,null,conn);
        }
    }

    /**
     * 通用获取某列的值,eg:姓名
     * @param sql
     * @param obj
     * @return
     */
    public Object getScalarDate(String sql,Object...obj){
        try {
            conn=JdbcDruid.getConn();
            return qr.query(conn,sql,new ScalarHandler<>(),obj);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        } finally {
            JdbcDruid.getCLose(null,null,conn);
        }
    }

    /**
     * 通用的dml操作:增 删 改
     * @return
     */
    public boolean updateDate(String sql,Object...obj){
        int num=0;
        try {
            conn=JdbcDruid.getConn();
            //开启手动提交
            conn.setAutoCommit(false);
            num= qr.update(conn,sql,obj);
            //走到这说明没出现异常,可以提交
            conn.commit();
        } catch (SQLException e) {
            try {
                //异常时回滚
                conn.rollback();
            } catch (SQLException ex) {
                throw new RuntimeException(ex);
            }
        } finally {
            JdbcDruid.getCLose(null,null,conn);
        }
        return num>0;
    }

}

b、创建EmployeeDao

public class EmployeeDao extends BasicDao<Employee>{
}

c、创建diningTableDao

public class DiningTableDao extends BasicDao<DiningTable>{
}

d、创建MenuDao

public class MenuDao extends BasicDao<Menu>{
}

e、创建BillDao

public class BillDao extends BasicDao<Bill>{
}

7、在service包创建类

a、创建employeeService

public class EmployeeService {
    private EmployeeDao ed=new EmployeeDao();

    /**
     * 登录时使用
     * @param count 员工账户
     * @param pwd 员工密码
     * @return
     */
    public Employee logIn(String count,String pwd){
        String sql="select * from employee where empCount=? and empPwd=MD5(?)";
        return ed.getDateById(sql, Employee.class, count, pwd);
    }
}

b、创建diningTableService

public class DiningTableService {
    private DiningTableDao dtd=new DiningTableDao();
    private String sql;

    /**
     * 获取所有餐桌
     * @return
     */
    public List<DiningTable> getAllTable(){
        sql="select * from diningTable";
        return dtd.getAllDate(sql,DiningTable.class);
    }

    /**
     * 根据id获取数据
     * @param id
     * @return
     */
    public DiningTable getTableById(int id){
        sql="select*from diningTable where dinId=?";
       return dtd.getDateById(sql,DiningTable.class,id);
    }

    /**
     * 修改餐桌信息
     * @param id 餐桌号
     * @param name 预定姓名
     * @param tel 预订电话
     * @param state 餐桌状态
     * @return
     */
    public boolean updateTable(int id,String name,String tel,int state){
        sql="update diningTable set dinState=?,dinUser=?,dinTel=? where dinId=?";
       return dtd.updateDate(sql,state,name,tel,id);
    }

    /**
     * 根据id修改状态
     * @param id
     * @param state
     * @return
     */
    public boolean updateTableById(int id,int state){
        sql="update diningTable set dinState=? where dinId=?";
        return dtd.updateDate(sql,state,id);
    }

    /**
     * 根据预定者信息获取餐桌数据
     * @param name
     * @param tel
     * @return
     */
    public DiningTable getTableByUserInfo(String name,String tel){
        sql="select *from diningTable where dinUser=? and dinTel=?";
       return dtd.getDateById(sql,DiningTable.class,name,tel);
    }

}

c、创建menuService

public class MenuService {
    private MenuDao md=new MenuDao();
    private String sql;

    /**
     * 获取所有数据
     * @return
     */
    public List<Menu> getAllDate(){
        sql="select*from menu";
        return md.getAllDate(sql,Menu.class);
    }

    /**
     * 通过id获取数据
     * @param id
     * @return
     */
    public Menu getDateById(int id){
        sql="select*from menu where mId=?";
       return md.getDateById(sql,Menu.class,id);
    }
}

d、创建billService

public class BillService {
    private BillDao bd=new BillDao();
    private String sql;
    private DiningTableService dts=new DiningTableService();

    /**
     * 通过餐桌号查询账单
     * @param did
     * @return
     */
    public Bill getByDinTable(int did){
        sql="select * from bill where diningTableId=?";
        return bd.getDateById(sql,Bill.class,did);
    }
    /**
     * 添加账单
     * @param mId
     * @param bName
     * @param nums
     * @param price
     * @param dinId
     * @param state
     * @return
     */
    public boolean addBill(int mId,String bName,int nums,double price,int dinId,int state){
        sql="insert into bill values(null,?,?,?,?,?,?,?,?)";
        String uuid = UUID.randomUUID().toString();
       boolean rs= bd.updateDate(sql,uuid,mId,bName,nums,price,dinId,new Date(),state);
       if(!rs){
           System.out.println("添加账单出错");
           return false;
       }
       //修改餐桌状态
       return dts.updateTableById(dinId,2);
    }

    /**
     * 获取未支付的账单
     * @return
     */
    public List<Bill> getDateNonPay(){
        sql="select * from bill where bState=0";
        return bd.getAllDate(sql,Bill.class);
    }

    /**
     * 获取已支付的账单
     * @return
     */
    public List<Bill> getDateAlPay(){
        sql="select * from bill where bState>0";
        return bd.getAllDate(sql,Bill.class);
    }

    /**
     * 结账时
     * @return
     */
    public boolean updateSate(int state,int dinId){
        sql="update bill set bState=? where diningTableId=?";
       boolean rs= bd.updateDate(sql,state,dinId);
       if(!rs){
           System.out.println("结账时失败");
           return false;
       }
       return dts.updateTable(dinId,"","",0);

    }

}

8、在utils包创建类

a、创建JdbcDruid

public class JdbcDruid {
   private static DataSource ds=null;
    /**
     * 初始化数据
     */
    static {
        //声明properties类
        Properties p=new Properties();
        try {
            //加载目标文件
            p.load(new FileInputStream("src\\druid.properties"));
            //使用druid工具类获取连接
            ds = DruidDataSourceFactory.createDataSource(p);

        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * 返回Connection对象
     * @return
     */
    public static Connection getConn(){
        try {
            return ds.getConnection();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * 关闭对象
     */
    public static void getCLose(ResultSet rs, Statement sta,Connection con){
        try {
            if(rs!=null){
                rs.close();
            }
            if(sta!=null){
                sta.close();
            }
            if(con!=null){
                con.close();
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}

b、创建KeyBoardTools

/**
 * 输入工具类,使用正则表达
 * @author 楠小弟
 * @version 1.0
 * 2023/3/2 10:34
 */
public class KeyBoardTools {
    private static Scanner inp=new Scanner(System.in);

    /**
     * 读取字符串
     * @param limit
     * @return
     */
    public static String readString(int limit){
        String str="";
       while (true){
           str= inp.next();
           if (str.length()>limit){
               System.out.println("输入的请不要超过限定长度("+limit+"),请重新输入:");
               continue;
           }
           break;
       }
       return str;
    }

    /**
     * 读取整数
     * @param limit
     * @return
     */
    public static int readInt(int limit){
        String str="";
        while (true){
            str=inp.next();
            //判断长度
            if(str.length()>limit){
                System.out.println("长度请不要超过("+limit+"),请重新输入:");
                continue;
            }
            //判断输入的是不是整数
            if (!str.matches("\\d")) {
                System.out.println("只能输入整数,请重新输入:");
                continue;
            }
            break;
        }
        return Integer.parseInt(str);
    }
}

9、在view包创建类

a、创建MhlView

/**
 * 界面
 * @author 楠小弟
 * @version 1.0
 * 2023/3/2 10:35
 */
public class MhlView {
    /**
     * 接收用户输入的值
     */
    private String key;
    /**
     * 循环条件
     */
    private boolean loop=true;
    /**
     * 员工表操作类
     */
    private EmployeeService es=new EmployeeService();
    /**
     * 餐桌操作类
     */
    private DiningTableService dts=new DiningTableService();
    /**
     * 菜单操作类
     */
    private MenuService ms=new MenuService();
    /**
     * 账单操作类
     */
    private BillService bs=new BillService();

    public static void main(String[] args) {
        new MhlView().showMenu();
    }
    /**
     * 功能菜单
     */
    private void showMenu(){
        System.out.println("==========欢迎来到老六满汉楼餐厅==========");
        while (loop){
            System.out.println("\t\t1 登录系统");
            System.out.println("\t\t9 退出系统");
            System.out.print("请输入你的选择:");
            key= KeyBoardTools.readString(1);
            switch (key){
                case "1":
                System.out.println("==========登陆操作==========");
                    System.out.println("请输入员工账号:");
                    String count = KeyBoardTools.readString(30);
                    System.out.println("请输入员工密码:");
                    String pwd = KeyBoardTools.readString(30);
                    //验证账户密码
                    Employee emp = es.logIn(count, pwd);
                    if(emp!=null){
                        System.out.println("========欢迎你["+emp.getEmpName()+"]========");
                       while (loop){
                           System.out.println("\t\t1 显示餐桌");
                           System.out.println("\t\t2 预定餐桌");
                           System.out.println("\t\t3 显示菜单");
                           System.out.println("\t\t4 进行点餐");
                           System.out.println("\t\t5 显示账单");
                           System.out.println("\t\t6 进行结账");
                           System.out.println("\t\t7 已结账单");
                           System.out.println("\t\t9 退出当前帐号");
                           System.out.print("请输入你的选择:");
                           int k = KeyBoardTools.readInt(1);
                           switch (k){
                               case 1:
                                   showTable1();
                                   break;
                               case 2:
                                   yuDingTable2();
                                   break;
                               case 3:
                                   showCai3();
                                   break;
                               case 4:
                                   dianCai4();
                                   break;
                               case 5:
                                   showZhang5();
                                   break;
                               case 6:
                                   jieZha6();
                                   break;
                               case 7:
                                   showZhang7();
                                   break;
                               case 9:
                                   goBack9();
                                   break;
                               default:
                                   System.out.println("输入有误,请重新输入!");
                                   break;
                           }
                       }
                    }else{
                        System.out.println("-----账户或密码有误-----");
                    }
                    break;
                case "9":
                    System.out.println("确定要退出吗(Y/n):");
                    key=KeyBoardTools.readString(1).toUpperCase();
                    if("Y".equals(key)){
                        loop=false;
                    }
                    break;

                default:
                    System.out.println("------输入的不正正确------");
                    break;
            }
        }
        System.out.println("********你退出了,再见!********");
    }

    /**
     * 二级菜单功能1:显示餐桌
     */
    private void showTable1(){
        System.out.println("===========显示餐桌==========");
        System.out.println("餐桌号\t\t状态\t\t预定人");
        List<DiningTable> tables = dts.getAllTable();
        for (DiningTable table : tables) {
            System.out.println(table);
        }
        System.out.println("===========显示完毕==========");
    }

    /**
     * 二级菜单功能2:预定餐桌
     */
    private void yuDingTable2(){
        System.out.println("===========预定餐桌==========");
        System.out.print("请输入要预定的餐桌号(-1退出):");
        int dinId = KeyBoardTools.readInt(1);
        //判断
        if(dinId==-1){
            System.out.println("--------取消了预定--------");
            return;
        }
        //判断餐桌是否存在
        DiningTable tab = dts.getTableById(dinId);
        if(tab==null){
            System.out.println("--------未查到编号为"+dinId+"的餐桌!!--------");
            return;
        }
        //判断当前餐桌是否为空闲
        if(tab.getDinState()>0){
            System.out.println("--------编号为"+dinId+"的餐桌,已经被预定!!--------");
            return;
        }
        System.out.print("请输入你的姓名(-1退出):");
        String userName=KeyBoardTools.readString(30);
        //判断
        if("-1".equals(userName)){
            System.out.println("--------取消了预定--------");
            return;
        }
        System.out.print("请输入你的电话(-1退出):");
        String userTel=KeyBoardTools.readString(11);
        //判断
        if("-1".equals(userTel)){
            System.out.println("--------取消了预定--------");
            return;
        }
        System.out.print("确定信息是否正确y/n(-1退出):");
        key=KeyBoardTools.readString(1).toUpperCase();
        if(!"Y".equals(key)){
            System.out.println("--------取消了预定--------");
            return;
        }
        //进行修改餐桌信息
        boolean res = dts.updateTable(tab.getDinId(), userName, userTel, 1);
        if(res){
            System.out.println("==========预定成功!==========");
        }else{
            System.out.println("==========预定失败!==========");
        }
    }

    /**
     * 二级菜单功能3:查看菜单
     */
    private void showCai3(){
        System.out.println("==========菜单列表==========");
        System.out.println("编号\t\t菜名\t\t价格\t\t类型");
        List<Menu> menus = ms.getAllDate();
        for (Menu menu : menus) {
            System.out.println(menu);
        }
        System.out.println("==========展示结束==========");
    }

    /**
     * 二级菜单功能4:点餐
     */
    private void dianCai4(){
        System.out.println("==========点餐服务=========");
        System.out.print("请输入预定姓名:");
        String name = KeyBoardTools.readString(30);
        System.out.print("请输入预订电话:");
        String tel = KeyBoardTools.readString(11);
        //判断是否有此信息
        DiningTable tab = dts.getTableByUserInfo(name, tel);
        if(tab==null){
            System.out.println("--------未查到相关信息--------");
            return;
        }
        //点餐
        System.out.print("请输入菜品的编号(-1退出):");
        int mId = KeyBoardTools.readInt(2);
        if(mId==-1){
            System.out.println("********点餐取消********");
            return;
        }
        System.out.print("请输入数量(-1退出):");
        int nums = KeyBoardTools.readInt(1);
        if(nums==-1){
            System.out.println("********点餐取消********");
            return;
        }
        //判断用户输入的编号是否存在
        Menu m = ms.getDateById(mId);
        if(m==null){
            System.out.println("********本店暂未拥有编号为"+mId+"的菜品*******");
            return;
        }
        //添加账单信息
        boolean rs = bs.addBill(mId, m.getmName(), nums, m.getmPrice()*nums, tab.getDinId(), 0);
        if(rs){
            System.out.println("--------点菜成功-------");
        }else{
            System.out.println("-------点菜失败--------");
        }
    }

    /**
     * 二级菜单功能5:显示未支付的账单
     */
    private void showZhang5(){
        System.out.println("==========未付款账单显示==========");
        System.out.println("账单编号\t\t菜编号\t\t菜名\t\t数量\t\t价格\t\t餐桌\t\t点餐时间\t\t\t\t\t\t状态");
        List<Bill> bills = bs.getDateNonPay();
        for (Bill bill : bills) {
            System.out.println(bill);
        }
        System.out.println("==========显示完毕===========");
    }

    /**
     * 二级菜单功能7:显示已支付的账单
     */
    private void showZhang7(){
        System.out.println("==========已付款账单显示==========");
        System.out.println("账单编号\t\t菜编号\t\t菜名\t\t数量\t\t价格\t\t餐桌\t\t点餐时间\t\t\t\t\t\t状态");
        List<Bill> bills = bs.getDateAlPay();
        for (Bill bill : bills) {
            System.out.println(bill);
        }
        System.out.println("==========显示完毕===========");
    }

    /**
     * 二级菜单6:支付账单
     */
    private void jieZha6(){
        System.out.println("==========结账服务=========");
        System.out.print("请输入预定姓名:");
        String name = KeyBoardTools.readString(30);
        System.out.print("请输入预订电话:");
        String tel = KeyBoardTools.readString(11);
        //判断是否有此信息
        DiningTable tab = dts.getTableByUserInfo(name, tel);
        if(tab==null){
            System.out.println("--------未查到相关信息--------");
            return;
        }
        //获取账单信息
        Bill bi = bs.getByDinTable(tab.getDinId());
        if(bi==null){
            System.out.println("--------当前餐桌没有未支付的账单--------");
            return;
        }
        System.out.println("请选择支付方式(现金,微信,支付宝):");
        key=KeyBoardTools.readString(5);
        int n=1;
        if("微信".equals(key)){
            n=2;
        }else if("支付宝".equals(key)){
            n=3;
        }
        //进行修改信息
        boolean rs = bs.updateSate(n, tab.getDinId());
        if(rs){
            System.out.println("---------结账欧克--------");
        }else{
            System.out.println("----------结账失败----------");
        }
    }
    /**
     * 二级菜单功能9:退出
     */
    private void goBack9(){
        System.out.println("确定要退出吗y/n:");
        key=KeyBoardTools.readString(1).toUpperCase();
        if("Y".equals(key)){
            loop=false;
        }
    }
}

源代码

资源请点击👉源码

-----------------------结束-----------------------

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
B站上的韩顺平老师的《Linux学习笔记》系列课程非常值得推荐。通过这个课程,我学到了很多关于Linux操作系统的知识和技能。 首先,韩老师在课程中详细介绍了Linux的基本概念和特点。我清楚地了解到Linux是一个开源的操作系统,具有稳定性、安全性和可定制性强的特点。这让我对Linux有了更深入的理解,也更有信心去学习和使用它。 其次,韩老师从基础开始,逐步讲解了Linux的安装和配置。他用简单明了的语言和实际操作的示范,帮助我了解了如何在虚拟机上安装Linux系统,并设置网络、用户账户、文件系统等。这为我后续的学习和实践打下了坚实的基础。 此外,韩老师还讲解了Linux的常用命令和工具。他详细介绍了常用的文件和目录操作命令,比如cd、ls、mkdir、cp等。同时,他还讲解了grep、sed、awk等强大的文本处理工具的使用方法。这些内容帮助我更加高效地进行文件管理和数据处理。 最后,韩老师还介绍了Linux的网络管理和安全防护。他讲解了如何配置网络连接、使用ssh远程登录以及设置防火墙等内容。这些知识对我了解网络和保护系统安全非常有帮助。 总的来说,韩顺平老师的《Linux学习笔记》课程非常实用,对于初学者来说是入门学习Linux的好选择。他通过深入浅出的讲解和丰富的实操示范,让我可以轻松地学习到Linux的基本知识和操作技巧。我相信通过学习这个课程,我会在Linux领域有更进一步的发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值