zoukankan      html  css  js  c++  java
  • Java开发自动售货机

    1:先写一个类,包括商品的基本属性

    package com.xt.java.base25;
    
    public class Goods {
    
        private int ID;
        
        private String name;
        
        private int number;
        
        private double price;
    
        /**
         * @return the iD
         */
        public int getID() {
            return ID;
        }
    
        /**
         * @param iD the iD to set
         */
        public void setID(int iD) {
            ID = iD;
        }
    
        /**
         * @return the name
         */
        public String getName() {
            return name;
        }
    
        /**
         * @param name the name to set
         */
        public void setName(String name) {
            this.name = name;
        }
    
        /**
         * @return the number
         */
        public int getNumber() {
            return number;
        }
    
        /**
         * @param number the number to set
         */
        public void setNumber(int number) {
            this.number = number;
        }
    
        /**
         * @return the price
         */
        public double getPrice() {
            return price;
        }
    
        /**
         * @param price the price to set
         */
        public void setPrice(double price) {
            this.price = price;
        }
        
    
        
        
    }

    2:将数据库和Java连接起来,并写成一个单独的类,使用起来更加方便

    package com.xt.java.base25;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class GoodDAO {
        
        private Connection conn;
        private Statement stat;
        private String  url="jdbc:mysql://localhost:3306/lyxdatabases";
        private String dbDriver="com.mysql.jdbc.Driver";
        private String userName="root";
        private String password="1234";
        //私有的构造方法,只有在本类中可以进行实例化一次,为了保护用户的隐私使用这种方法,切记!!!
        private GoodDAO(){
            
        }
            
        private static GoodDAO gda=null;
        /**
         * 写一个方法,从方法中获得实例,只能实例化一次。
         */
        
        public static GoodDAO getGoodDAO(){
            if(gda==null){
                gda=new GoodDAO();
            }
            return gda;
        }
        
        public Connection getConnection() throws Exception{
              try {
                Class.forName(dbDriver);
                return DriverManager.getConnection(url,userName,password);
            } catch (ClassNotFoundException e) {
                throw new ClassNotFoundException("数据库找不到驱动!!");
            } catch (SQLException e) {
                throw new SQLException("数据库连接异常!!");
            }
        }
        
        //关闭Connection
        public void closeConnection(Connection conn){
            try{
                if(conn!=null){
                    conn.close();
                }
                
            }catch(Exception e){
                System.out.println(e);
            }
        }
    
        
        //关闭Statement
        public void closeStatement(Statement stat){
            try{
                if(stat!=null){
                    stat.close();
                }
                
            }catch(Exception e){
                System.out.println(e);
            }
        }
        //关闭ResultSet
        public void closeResultSet(ResultSet rs){
            try{
                if(rs!=null){
                    rs.close();
                }
                
            }catch(Exception e){
                System.out.println(e);
            }
        }
    
        
        
    
    }

     

    3;主方法,直接实现功能

     

    package com.xt.java.base25;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.Scanner;
    
    public class Main {
        GoodDAO gDao=GoodDAO.getGoodDAO();
        Connection conn;
        Statement stat;
        ResultSet rs;
        Scanner scanner=new Scanner(System.in);
        static double sumMonNum;
        
        
        //显示货物清单, 清单要求包含每种商品的剩余数量。
        public void showList(){
            
            String sql="select *from autoGoods";
            try {
                conn=gDao.getConnection();
                stat=conn.createStatement();
                rs=stat.executeQuery(sql);
                while(rs.next()){
                    System.out.println("商品编号:"+rs.getString("ID"));
                    System.out.print("商品名称:"+rs.getString("name"));
                    System.out.print("  商品剩余数量:"+rs.getInt("number"));
                    System.out.print("商品单价:"+rs.getDouble("price")+"
    
    ");
                    
                }
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
                gDao.closeResultSet(rs);
                gDao.closeStatement(stat);
                gDao.closeConnection(conn);
            }
            
        }
        
        //选择一个商品编号购买东西
        public void buyGoods(){
            System.out.println("请输入你要购买的商品编号:");
            int buyID=scanner.nextInt();
            
            
            System.out.println("请投币:");
            sumMonNum=scanner.nextDouble();
            
            System.out.println("您的商品将要出货!!!");
            String sql="update autoGoods set number=(number-1) where ID='"+buyID+"'";
            String sql1="select price from autoGoods where ID='"+buyID+"'";
            
            
            try {
                conn=gDao.getConnection();
                stat=conn.createStatement();
                rs=stat.executeQuery(sql1);
                while(rs.next()){
                    sumMonNum=sumMonNum-rs.getDouble("price");
                    System.out.println("您的零钱为"+sumMonNum);
                    
                }
                if(stat.executeUpdate(sql)>0){
                    System.out.println("购买成功!!");
                }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                gDao.closeResultSet(rs);
                gDao.closeStatement(stat);
                gDao.closeConnection(conn);
            }
        }
            //询问继续的操作
            public void askOpration(){
            while(true){
                System.out.println("--------请选择您接下来得操作-------");
                System.out.println("继续购买-------1");
                System.out.println("结束购买,找零-------2");
                int operationNum=scanner.nextInt();
                switch(operationNum){
                case 1:{
                    System.out.println("请输入你要购买的商品编号:");
                    int buyID=scanner.nextInt();
                    
                    System.out.println("您的商品将要出货!!!");
                    String sql="update autoGoods set number=(number-1) where ID='"+buyID+"'";
                    String sql1="select price from autoGoods where ID='"+buyID+"'";
                
                    
                    try {
                        conn=gDao.getConnection();
                        stat=conn.createStatement();
                        rs=stat.executeQuery(sql1);
                        while(rs.next()){
                            sumMonNum=sumMonNum-rs.getDouble("price");
                            if(sumMonNum<0){
                                System.out.println("余额不足,请重新选择!!");
                                break ;
                            }else{
                            System.out.println("您的零钱为"+sumMonNum);
                            
                            if(stat.executeUpdate(sql)>0){
                                System.out.println("购买成功!!");
                                }    
                            } 
                        }
                    }catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }finally{
                        gDao.closeStatement(stat);
                        gDao.closeConnection(conn);
                    }
                    break ;
                }
                
                case 2:{
                    System.out.println("将要为您找零,谢谢您的使用,期待您的下次光临~");
                    System.exit(0);
                    }
                }
            }
        }
        
        public static void main(String[] args) {
            Main main=new Main();
            while(true){
            main.showList();
            main.buyGoods();
            main.askOpration();
            
        }
        }
    }
  • 相关阅读:
    WPF学员管理系统
    dotnet-千星项目OpenAuthNet基于NetCore21的快速开发框架
    MVC5仓库管理系统
    华为设备IPC V200R002C0SPC SDK连接demo
    基础界面
    交通建设项目管理信息化系统
    Apache常见interview
    mamcached+(magent+keepalived高可用)搭建及理论概述
    TCP/IP三次挥手,四次断开(精简)
    简述FTP的主动模式与被动模式(精简)
  • 原文地址:https://www.cnblogs.com/lyxcode/p/7411517.html
Copyright © 2011-2022 走看看