zoukankan      html  css  js  c++  java
  • Java程序设计(北京大学MOOC)

      Java程序设计课程,使用eclipse集成开发环境 和 editpuls编辑器(java配置)

      第一讲 Java语言与面向对象设计

      1、Java语言,从C++发展而来,是C++的简化版,简单易学纯面向对象,与平台无关,支持多线程,安全稳定

       Java拥有丰富的类库,可以面向对象的应用开发、各类网络应用程序的开发,Internet的系统管理,数据库操作等等

      2、类是具有共同属性和行为的对象的集合,类是对象的抽象,对象是类的实例

      第二讲 简单的Java程序

      Java文件名要与public类的类名一致,一个文件只能有一个public类

      applet程序(界面库 javaFx,swing(JFrame,JApplet,JPanel),awt( 图形库graphics ))

    package week1.applet;
    
    import java.awt.Graphics;
    import javax.swing.JApplet;
    
    public class SayHelloApplet extends JApplet {
    
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
    
        public void paint(Graphics g){
            g.drawString("Hello World",    20, 20);
        }
    
    }
    View Code

      命令行下设定path和classpath:set path是命令(javac及Java)的路径,set classpath是所要引用的类库的路径  

      编程题代码,仅供参考

      第二讲 简单的Java程序  

    package week2;
    
    public class Main {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            /*
             * 3^3 + 4^3 + 5^3 = 6^3
            int sum = 0;
            final int first = 3;
            final int last = 5;
            final int result = 6;
            for (int x = first; x <= last; ++x) {
                sum += x * x * x;
            }
            if (sum == result * result * result)
                System.out.print("yes!");
            else
                System.out.print("No!");
            */
            
            /*
             * 6^3 + ... + 69^3 = 180^3
            int sum = 0;
            final int first = 6;
            final int last = 69;
            final int result = 180;
            for (int x = first; x <= last; ++x) {
                sum += x * x * x;
            }
            if (sum == result * result * result)
                System.out.print("yes!");
            else
                System.out.print("No!");
            */
            
            //更多的情况
            int sum = 0;
            int first = 1;
            final int last = 1000;
            for (int i = 1; i < last / 2; ++i) {
                first = i;
                sum = 0;
                for (int x = first; x <= last; ++x) {
                    sum += x * x * x;
                    for (int k = x + 1; k <= last; ++k) {
                        if (sum == k * k * k) {
                            System.out.printf("first=%d,...", first);
                            System.out.printf("last=%d,", x);
                            System.out.printf("result=%d
    ", k);
                        }
                    }
                }//end of for
            }//end of for
        }//end of main
    }// end of class
    View Code

      第三讲 数据运算、流控制和数组

    package week3;
    
    public class Prime {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int[] prime = new int[100]; // 保存素数
            boolean[] is_prime = new boolean[100]; // true表示i是素数
            int p = 0;
    
            for (int i = 0; i < 100; i++)// 初始化
            {
                is_prime[i] = true;
            }
    
            is_prime[0] = is_prime[1] = false; // 0,1不是素数
    
            for (int i = 2; i < 100; i++) {
                if (is_prime[i]) //
                {
                    prime[p++] = i; // 计算素数的个数,也记录下了素数
                    for (int j = 2 * i; j < 100; j += i)// 除掉了i的倍数的数字
                    {
                        is_prime[j] = false;
                    }
                }
            }
    
            for (int pr : prime) {
                if (pr > 0)
                    System.out.print(pr + " ");
            }
        }
    }
    View Code

      第四讲 类、包和接口

    package week4;
    
    //接口
    interface Flyable {
        void fly();// 默认public abstract
    }
    
    // 抽象类
    abstract class Anmial implements Flyable {
    
        @Override // 覆盖
        public void fly() {
            System.out.println("开始飞行");
            System.out.println("飞行结束");
        }
    }
    
    public class Bird extends Anmial {
        private String bird;
    
        // static final字段
        protected static final int distance = 100;
    
        // setter
        public void setter(String bird) {
            this.bird = bird;
        }
    
        // getter
        public String getter() {
            return bird;
        }
    
        // 飞翔
        @Override // 覆盖
        public void fly() {
            System.out.println(this.bird + "开始飞行");
            System.out.println("开始" + distance + "米飞行中");
            System.out.println(getter() + "飞行结束
    ");// 使用getter
        }
    
        // main函数
        public static void main(String[] args) {
            System.out.println("飞翔接力正式开始!
    ");
    
            String bir1 = "bird1";
            String bir2 = "bird2";
    
            Bird bird1 = new Bird();
            bird1.setter(bir1);
            bird1.fly();
    
            Bird bird2 = new Bird();
            bird2.setter(bir2);
            bird2.fly();
    
            System.out.println("飞翔接力结束!
    ");
        }
    }
    View Code

      第五讲 深入理解Java语言 

    package week5;
    /**
     *  一个简单的新闻事件侦听演示程序
     * @author tds
     * @author 修改者:金色的省略号
     */
    
    public class NewsDemo {
        public static void main(String[] args) {
            
            //模拟有一家新闻社
            NewsAgency bbc = new NewsAgency("BBC");
            //订阅该社的新闻
            bbc.addListener(new MyListener());
            
            //TODO 请在这里再加入一个Listener
            //1.匿名类
            bbc.addListener(new Listener(){
                //当接收到消息后,进行一些显示
                public void newsArrived(NewsEvent e){
                    if( e.level>5) System.out.println("warning :");
                    System.out.println("please note," + e.text + " happed!");
                }
            });
            //2.lambda表达式
            bbc.addListener((NewsEvent e)->
                {
                    if( e.level>5) System.out.println("warning :");
                    System.out.println("please note," + e.text + " happed!");
                }
            );
            
            //新闻社启动其工作流程
            bbc.start();                
        }
    }
    
    
    /**
     * 事件信息
     */
    class NewsEvent{
        Object source;  //事件来源
        String text;    //事件内容
        int level;      //事件级别
        NewsEvent(Object source, String text, int level){
            this.source=source;
            this.text = text;
            this.level = level;        
        }
    }
    interface Listener{
        void newsArrived(NewsEvent e);
    }
    
    /**
     * 新闻机构
     */
    class NewsAgency {
        String name; //机构名
        public NewsAgency(String name) {
            this.name = name;        
        }
        Listener[] listeners = new  Listener[100]; //侦听者(订阅者)
        int listenerCnt = 0; //已有的订阅者
        
        //加入一个订阅者
        void addListener(Listener oneListener){
            if(listenerCnt<listeners.length){
                listeners[listenerCnt] = oneListener;
                listenerCnt++;
            }        
        }
        
        //模拟一个事件发生,并通知所有的订阅者
        void start(){
            NewsEvent event = new NewsEvent("Mr. Joan", "Bombing", 9 );
            
            for(int i=0; i<listenerCnt; i++) {
                listeners[i].newsArrived(event);
            }
            
        }
    }
    
    /**
     * 实现一个订阅者
     */
    class MyListener implements Listener{
        //当接收到消息后,进行一些显示
        public void newsArrived(NewsEvent e){
            if( e.level>5) System.out.println("warning :");
            System.out.println("please note," + e.text + " happed!");
        }
    }
    View Code

      第六讲 异常处理

    package week6;
    
    //自定义一个异常类,继承自系统的异常类Exception
    class MyException extends Exception {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
    
        // 构造方法
        public MyException(String msg) {
            super(msg);
        }
    }
    
    // 使用自定义的异常
    public class TestMyException {
        // 在一个函数中抛出异常
        public static void MyExc() throws MyException {
            throw new MyException("MyExc() method occurs an exception! ");
        }
    
        // 调用这个函数并捕获异常。
        public static void main(String[] args) {
            try {
                TestMyException.MyExc();
            } catch (MyException e1) {
                System.out.println("MyException: " + e1.getMessage());
                // e1.printStackTrace();//显示调用堆栈的跟踪信息
            }
        }
    }
    View Code

      第七讲 工具类及常用算法

    package week7;
    
    import java.util.ArrayList;
    import java.util.Scanner;
    
    //账户类
    class account {
        private String username;
        private String password;
        private double balance;
    
        // 构造
        public account(String _username, String _password, double _balance) {
            username = _username;
            password = _password;
            balance = _balance;
        }
    
        // 取款
        void withdraw(double _balance) {
            if (balance >= _balance) {
                balance -= _balance;
                System.out.println("当前余额是:" + balance);
            } else {
                System.out.println("余额不足");
            }
        }
    
        // 存款
        void deposit(double _balance) {
            balance += _balance;
            System.out.println("当前余额是:" + balance);
        }
    
        String getUsername() {
            return username;
        }
    
        String getUpassword() {
            return password;
        }
    
        double getBalance() {
            return balance;
        }
    }
    
    class Mybank {
        private String bankName;
        // 账户列表
        private ArrayList<account> arr;
    
        // 构造
        Mybank(String _bankName) {
            setBankName(_bankName);
            arr = new ArrayList<>();
        }
    
        // 开户
        void openAccount() {
            Scanner in = new Scanner(System.in);
            while (true) {
                System.out.println("请输入用户名、密码、开户金额:");
                account a = new account(in.next(), in.next(), in.nextDouble());
                arr.add(a);
                System.out.println("继续,请输入y,退出输入n");
                String s = in.next();
                if (s.equals("n"))
                    break;
            }
            //in.close();  //为何不能关闭?
        }
    
        // 取款
        void drawAccount() {
            while (true) {
                Scanner in = new Scanner(System.in);
                System.out.println("请输入用户名、密码及取款数额:");
                String _username = in.next();
                String _password = in.next();
                double _balance = in.nextDouble();
                boolean b = true;
                for (account a : arr) {
                    if (a.getUsername().equals(_username) && a.getUpassword().equals(_password)) {
                        a.withdraw(_balance);
                        b = false;
                        break;
                    }
                }
                if (b)
                    System.out.println("用户名或密码错误!");
                System.out.println("继续取款,请输入y,退出输入n");
                String s = in.next();
                if (s.equals("n"))
                    break;
                in.close();
            }
        }
    
        // 存款
        void depositAccount() {
            while (true) {
                Scanner in = new Scanner(System.in);
                System.out.println("请输入用户名、密码及存款数额:");
                String _username = in.next();
                String _password = in.next();
                double _balance = in.nextDouble();
                boolean b = true;
                for (account a : arr) {
                    if (a.getUsername().equals(_username) && a.getUpassword().equals(_password)) {
                        a.deposit(_balance);
                        b = false;
                        break;
                    }
                }
                if (b)
                    System.out.println("用户名或密码错误!");
                System.out.println("继续存款,请输入y,退出输入n");
                String s = in.next();
                if (s.equals("n"))
                    break;
                in.close();
            }
        }
    
        // 查询
        void checkAccount() {
            while (true) {
                Scanner in = new Scanner(System.in);
                System.out.println("请输入用户名、密码:");
                String _username = in.next();
                String _password = in.next();
                boolean b = true;
                for (account a : arr) {
                    if (a.getUsername().equals(_username) && a.getUpassword().equals(_password)) {
                        System.out.println("你的账户余额:" + a.getBalance());
                        b = false;
                        break;
                    }
                }
                if (b)
                    System.out.println("用户名或密码错误!");
                System.out.println("继续查找,请输入y,退出输入n");
                String s = in.next();
                if (s.equals("n"))
                    break;
                in.close();
            }
        }
    
        public String getBankName() {
            return bankName;
        }
    
        public void setBankName(String bankName) {
            this.bankName = bankName;
        }
    }
    
    // 测试类
    public class test {
    
        public static void main(String[] args) {
            Mybank m = new Mybank("我的银行");
            Scanner in = new Scanner(System.in);
            // 测试面板
            label: while (true) {
                System.out.println("开户请按1,存款请按2,取款请按3," + "查询请按4,退出请按5");            
                String s = in.next();
                switch (s) {
                case "1":
                    m.openAccount();
                    break;
                case "2":
                    m.depositAccount();
                    break;
                case "3":
                    m.drawAccount();
                    break;
                case "4":
                    m.checkAccount();
                    break;
                case "5":
                    break label;
                }            
            }
            in.close();
        }
    }
    View Code

      第八讲 多线程

    package week8;
    
    import java.net.URL;
    import java.io.*;
    import java.util.Date;
    
    class ThreadDownload 
    {
        public static void main(String[] args)
                throws IOException
        {
            final URL[] urls = {
                new URL("https://www.pku.edu.cn"),
                new URL("https://www.baidu.com"),
                new URL("https://www.sina.com.cn"),
                new URL("https://www.dstang.com")
            };
            final String[] files = {
                "pku.htm", 
                "baidu.htm",
                "sina.htm", 
                "study.htm",
            };
            for(int i=0; i<urls.length; i++){
                final int idx = i;
                new Thread( ()-> {
                    try{
                        System.out.println( urls[idx]);
                        download( urls[idx], files[idx]);
                    }catch(Exception ex){
                        ex.printStackTrace();
                    }
                }).start();    
            }
            Thread t = new MyThread();
            t.setDaemon(true);
            t.start();
        
            
            
        }
        static void download( URL url, String file)
            throws IOException
        {
            try(InputStream input = url.openStream();
                OutputStream output = new FileOutputStream(file))
            {
                byte[] data = new byte[1024];
                int length;
                while((length=input.read(data))!=-1){
                    output.write(data,0,length);
                }
            }
        }
        
    }
    
    class MyThread extends Thread {
        double x;
        public void run() {    
            while(true)
            {
                x += new Date().getTime();    
                print();
            }    
        }
        public void print() {
            System.out.println(x);
        }
    }
    View Code

      第九讲  流、文件及基于文本的应用

    package week9;
    
    import java.io.*;
    import java.awt.*;
    //import java.awt.event.*;
    import javax.swing.*;
    import java.util.List;
    import java.util.ArrayList;
    
    public class Recite extends JFrame {
        public Recite() {
        }
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        JLabel lblWord = new JLabel("word");
        JLabel lblMeaning = new JLabel("meaning");
    
        public void init() {
            setSize(400, 100);
            getContentPane().setLayout(new FlowLayout());
            getContentPane().add(lblWord);
            getContentPane().add(lblMeaning);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            setVisible(true);
        }
    
        List<String> words = new ArrayList<>();
        List<String> meanings = new ArrayList<>();
        int current = 0;
    
        public void start() {
            new Thread(() -> {
                try {
                    readAll();
                } catch (IOException ex) {
                }
                new javax.swing.Timer(1000, (e) -> {
                    lblWord.setText(words.get(current));
                    lblMeaning.setText(meanings.get(current));
                    current++;
                }).start();
            }).start();
        }
    
        public void readAll() throws IOException {
            String fileName = "College_Grade4.txt";
            String charset = "GB2312";
            BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), charset));
            String line;
            while ((line = reader.readLine()) != null) {
                line = line.trim();
                if (line.length() == 0)
                    continue;
                int idx = line.indexOf("	");
                words.add(line.substring(0, idx));
                meanings.add(line.substring(idx + 1));
            }
            reader.close();
        }
    
        public static void main(String[] args) {
            Recite f = new Recite();
            f.init();
            f.start();
        }
    }
    View Code

      College_Grade4.txt文件要放在工程目录下

      第十讲 图形用户界面

    package week10;
    
    import java.awt.EventQueue;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JLabel;
    import java.awt.Dimension;
    import javax.swing.JTextField;
    import javax.swing.JButton;
    import java.awt.event.ActionListener;
    import java.text.DecimalFormat;
    import java.awt.event.ActionEvent;
    import java.awt.Rectangle;
    import java.awt.Font;
    import java.awt.Color;
    import javax.swing.JTextArea;
    
    /**
     * @Title:BMI计算器
     * @author 金色的省略号
     * @Description:程序可以计算国际标准和国内标准BMI 体重、身高没有输入,或输入错误,会有错误提示输出
     */
    
    public class BMI extends JFrame {
    
        /**
         * 
         */
        private static final long serialVersionUID = 3166024052981905555L;
        /**
         * BMI Calculator v1.001
         */
        private String DomesticStandardsBMI;
        private String internationalStandardsBMI;
        private double BMI;
        private JPanel contentPane;
        private JTextField textField;
        private JTextField textField_1;
        private JTextArea textArea;
    
        /**
         * Launch the application.
         */
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        BMI frame = new BMI();
                        frame.setVisible(true);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    
        /**
         * Create the frame.
         */
        public BMI() {
            //
            setFont(new Font("楷体", Font.BOLD, 21));
            setTitle("u4F53u91CDu6307u6570u8BA1u7B97u5668");
            setBounds(new Rectangle(200, 200, 300, 300));
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setBounds(100, 100, 505, 321);
            contentPane = new JPanel();
            contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
            setContentPane(contentPane);
            contentPane.setLayout(null);
            // 身高标签
            JLabel lblNewLabel = new JLabel("u8BF7u8F93u5165u8EABu9AD8(m)");
            lblNewLabel.setFont(new Font("楷体", Font.BOLD, 18));
            lblNewLabel.setSize(new Dimension(4, 0));
            lblNewLabel.setBounds(37, 87, 182, 36);
            contentPane.add(lblNewLabel);
            // 体重标签
            JLabel lblkg = new JLabel("u8BF7u8F93u5165u4F53u91CD(kg)");
            lblkg.setFont(new Font("楷体", Font.BOLD, 18));
            lblkg.setSize(new Dimension(4, 0));
            lblkg.setBounds(37, 10, 182, 36);
            contentPane.add(lblkg);
            // TextField
            textField = new JTextField();
            textField.setBackground(Color.CYAN);
            textField.setFont(new Font("楷体", Font.BOLD, 21));
            textField.setBounds(37, 42, 420, 47);
            contentPane.add(textField);
            textField.setColumns(10);
            // textField_1
            textField_1 = new JTextField(2);
            textField_1.setBackground(Color.CYAN);
            textField_1.setFont(new Font("楷体", Font.BOLD, 21));
            textField_1.setColumns(10);
            textField_1.setBounds(37, 122, 420, 47);
            contentPane.add(textField_1);
            // 按钮btnUtton
            JButton btnUtton = new JButton("OK");
            btnUtton.setFont(new Font("楷体", Font.BOLD, 21));
            btnUtton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    // 获取BMI
                    getBMI();
                    // 输出BMI
                    DecimalFormat df = new DecimalFormat("0.00");
                    String bmi = "体质指数:" + df.format(BMI) + "
    ";
                    if (BMI > -0.0001 && BMI < 0.0001) {
                        bmi = "";
                    }
                    textArea.setLineWrap(true);
                    textArea.setText(DomesticStandardsBMI + " " + internationalStandardsBMI + "
    " + bmi);
                }
            });
            btnUtton.setBounds(374, 193, 83, 65);
            contentPane.add(btnUtton);
            // textArea
            textArea = new JTextArea();
            textArea.setFont(new Font("楷体", Font.BOLD, 21));
            textArea.setBackground(Color.CYAN);
            textArea.setBounds(37, 193, 342, 65);
            contentPane.add(textArea);
        }
    
        public void getBMI() {
            // 判断输入是否正确
            String w = textField.getText();
            String h = textField_1.getText();
            if (!w.matches("^[0-9]+\.?[0-9]+$") || !h.matches("^[0-9]+[.]?[0-9]+$"))
    
            {
                BMI = 0.0;
                DomesticStandardsBMI = "请正确输入:";
                internationalStandardsBMI = "体重和身高。";
                return;
            }
            // 计算BMI
            double weight = Double.valueOf(textField.getText());
            double high = Double.valueOf(textField_1.getText());
            BMI = weight / Math.pow(high, 2);
            if (BMI < 18.5) {
                internationalStandardsBMI = "国际标准:偏瘦";
                DomesticStandardsBMI = "国内标准:偏瘦";
            } else if (BMI < 25) {
                internationalStandardsBMI = "国际标准:正常";
                if (BMI < 24) {
                    DomesticStandardsBMI = "国内标准:正常";
                } else {
                    DomesticStandardsBMI = "国内标准:偏胖";
                }
            } else if (BMI < 30) {
                internationalStandardsBMI = "国际标准:偏胖";
                if (BMI < 28) {
                    DomesticStandardsBMI = "国内标准:偏胖";
                } else {
                    DomesticStandardsBMI = "国内标准:肥胖";
                }
            } else {
                internationalStandardsBMI = "国际标准:肥胖";
                DomesticStandardsBMI = "国内标准:肥胖";
            }
        }
    }
    View Code

      第十一讲 网络、多媒体和数据库编程

    package week11;
    import java.awt.EventQueue;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JLabel;
    import java.awt.Dimension;
    import javax.swing.JTextField;
    import javax.swing.ButtonGroup;
    import javax.swing.JButton;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.awt.Rectangle;
    import java.awt.Font;
    import java.awt.Color;
    import javax.swing.JTextArea;
    //MyBank
    public class MyBank extends JFrame{
         
        private Bank bank = new Bank("我的银行");
        private String selectBusiness = "开户";
        private JPanel contentPane;
        private JTextField textField;
        private JTextField textField_1;
        private JTextArea textArea;
      
        public static void main(String[] args) {
              EventQueue.invokeLater(new Runnable() {
                  public void run() {
                      try {
                            MyBank frame = new MyBank();
                          frame.setVisible(true);
                      } catch (Exception e) {
                          e.printStackTrace();
                      }
                  }
              });
         }
         
        public MyBank() {
            //
            setFont(new Font("楷体", Font.BOLD, 21));
            setTitle("银行模拟系统");
            setBounds(new Rectangle(200, 200, 300, 300));
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setBounds(100, 100, 458, 282);
            contentPane = new JPanel();
            contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
            setContentPane(contentPane);
            contentPane.setLayout(null);
            //
            JLabel lblNewLabel = new JLabel("请输入密码");
            lblNewLabel.setFont(new Font("楷体", Font.BOLD, 14));
            lblNewLabel.setSize(new Dimension(4, 0));
            lblNewLabel.setBounds(216, 22, 81, 36);
            contentPane.add(lblNewLabel);
            //
            JLabel lblkg = new JLabel("请输入账号");
            lblkg.setFont(new Font("楷体", Font.BOLD, 14));
            lblkg.setSize(new Dimension(4, 0));
            lblkg.setBounds(10, 22, 81, 36);
            contentPane.add(lblkg);
            //TextField
            textField = new JTextField();
            textField.setBackground(Color.CYAN);
            textField.setFont(new Font("楷体", Font.BOLD, 21));
            textField.setBounds(92, 20, 114, 36);
            contentPane.add(textField);
            textField.setColumns(10);
            //textField_1
            textField_1 = new JTextField(2);
            textField_1.setBackground(Color.CYAN);
            textField_1.setFont(new Font("楷体", Font.BOLD, 21));
            textField_1.setColumns(10);
            textField_1.setBounds(298, 20, 114, 36);
            contentPane.add(textField_1);
             
            //按钮btnUtton
            JButton btnUtton = new JButton("OK");
            btnUtton.setFont(new Font("楷体", Font.BOLD, 21));
            btnUtton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {      
         
                    String s = selectBusiness;
                    String _username = textField.getText();
                    String _password = textField_1.getText();    
                   // textField_1.setText("******");
                    double _balance = 0.0;
                    String d = "";
                    if(textArea.getText().matches("^\d+(\.\d+)?$")){
                        _balance = Double.valueOf(textArea.getText());
                    }
                    else if(!s.equals("查询")){
                        d = "请清空此栏,输入金额。";
                        s = "";
                    }
                    
                    if(_username.equals("")
                            ||_password.equals("")){
                        d = "请正确输入账号和密码。";
                        s = "";
                    }
                    
                    switch(s)
                    {
                        case "开户":
                            d = bank.openAccount(_username,_password,_balance);
                            break;
                        case "存款":    
                            d = bank.depositAccount(_username,_password,_balance);break;
                        case "取款":             
                            d = bank.drawAccount(_username,_password,_balance);break;
                        case "查询":
                            d = bank.checkAccount(_username,_password); break;          
                        case "":
                            break;    
                    }         
                    textArea.setText(d); 
                    
                }
            });
            btnUtton.setBounds(356, 138, 62, 46);
            contentPane.add(btnUtton); 
            //textArea  
            textArea = new JTextArea();
            textArea.setFont(new Font("楷体", Font.BOLD, 21));
            textArea.setBackground(Color.CYAN);
            textArea.setBounds(10, 141, 344, 42);
            contentPane.add(textArea);
            //
            JLabel label = new JLabel("请选择业务");
            label.setSize(new Dimension(4, 0));
            label.setFont(new Font("楷体", Font.BOLD, 14));
            label.setBounds(10, 85, 81, 36);
            contentPane.add(label);
              
            JRadioButton rdbtnNewRadioButton = new JRadioButton("开户");
            rdbtnNewRadioButton.setBounds(102, 90, 72, 23);
            contentPane.add(rdbtnNewRadioButton);    
            rdbtnNewRadioButton.setSelected(true);
            rdbtnNewRadioButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    selectBusiness = "开户"; 
                }
            });
              
              
            JRadioButton radioButton = new JRadioButton("存款");
            radioButton.setBounds(171, 90, 72, 23);
            contentPane.add(radioButton);
            radioButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    selectBusiness = "存款";
                }
            });
              
            JRadioButton radioButton_1 = new JRadioButton("取款");
            radioButton_1.setBounds(250, 90, 63, 23);
            contentPane.add(radioButton_1);
            radioButton_1.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    selectBusiness = "取款";    
                }
            });
            
            JRadioButton radioButton_2 = new JRadioButton("u67E5u8BE2");
            radioButton_2.setBounds(320, 90, 62, 23);
            contentPane.add(radioButton_2);
            radioButton_2.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                    selectBusiness = "查询";
                }
            }); 
            //ButtonGroup本身不是控件,不能放到容器里
            ButtonGroup buttonGroup = new ButtonGroup(); 
            buttonGroup.add(radioButton);
            buttonGroup.add(radioButton_1);
            buttonGroup.add(radioButton_2);
            buttonGroup.add(rdbtnNewRadioButton);
        }     
    }
    View Code
    package week11;
    
    import java.util.ArrayList;
    
    public class Bank {
          private String bankName;
            //账户列表
            private ArrayList<Account> arr;
            //构造
            Bank(String _bankName)
            {
                bankName = _bankName;
                arr = new ArrayList<>();
            }
            //开户
            String openAccount(String _username,String _password,double _balance)
            {  
                String str = "";
                boolean ok = true;
                for (Account a : arr) {
    //                if(a.getUsername().equals(_username)
    //                        &&a.getUpassword().equals(_password)){
                    if(a.isUsername(_username)
                            &&a.isPassword(_password)){    
                        ok = false;
                        break;
                    }
                }
                if(ok){
                    Account a = new Account(_username,_password,_balance);
                    arr.add(a);
                } 
                str = "存款余额:"+_balance;
                if(!ok){
                    str = "该用户已经存在。";
                }
                return str;
            }
            //取款
            String drawAccount(String _username,String _password,double _balance)
            {          
                    String d = "";
                    boolean b = true;
                    for (Account a : arr) {
                        if(a.isUsername(_username)
                                &&a.isPassword(_password)){    
                            if(a.withdraw(_balance)){
                                d = "存款余额:" + a.getBalance();   
                            }
                            else{
                                d = "余额不足,存款余额:" + a.getBalance();
                            }
                            b=false;
                            break;
                        }
                    }
                    if(b)d = "用户名或密码错误!"; 
                    return d;
            }
            
            //存款
            String  depositAccount(String _username,String _password,double _balance)
            {
                String d = "";
                boolean b = true;
                for (Account a : arr) {
                    if(a.isUsername(_username)
                            &&a.isPassword(_password)){    
                        a.deposit(_balance);
                        d = "存款余额:" + a.getBalance();
                        b=false;
                        break;
                    }
                }
                if(b)d = "用户名或密码错误!"; 
                return d;
                 
            }
            //查询
            String checkAccount(String _username,String _password)
            {   
                String d = "";
                boolean b = true;
                for (Account a : arr) {
                    if(a.isUsername(_username)
                            &&a.isPassword(_password)){        
                        d = "存款余额:" + a.getBalance();
                        b=false;
                        break;
                    }
                }
                if(b)d = "用户名或密码错误!"; 
                return d;  
             }
    }
    View Code
    package week11;
    
    public class Account {
        private String username;
        private String password;
        private double balance;
        //构造
        public Account(String _username,String _password,double _balance)
        {
           username = _username;
            password = _password;
            balance = _balance;
        }
        //取款
        boolean withdraw(double _balance)
        {
            if(balance>=_balance)
            {
               balance-=_balance;
            }
            else
            {
               return false;
            }
            return true;
        }
        //存款
        void deposit(double _balance)
        {
           balance+=_balance; 
        }
        //
        double getBalance()
        {
           return balance;
        }
        //
        boolean isUsername(String str)
        {
            return username.equals(str);
        }
        //
        boolean isPassword(String str){
            return password.equals(str);
        } 
    }
    View Code
  • 相关阅读:
    68
    56
    Django manager 命令笔记
    Django 执行 manage 命令方式
    Django 连接 Mysql (8.0.16) 失败
    Python django 安装 mysqlclient 失败
    H.264 SODB RBSP EBSP的区别
    FFmpeg—— Bitstream Filters 作用
    MySQL 远程连接问题 (Windows Server)
    MySQL 笔记
  • 原文地址:https://www.cnblogs.com/GoldenEllipsis/p/15409780.html
Copyright © 2011-2022 走看看