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
  • 相关阅读:
    敏捷软件开发实践-Release Process/Release Plan(转)
    《敏捷软件开发-原则、方法与实践》-Robert C. Martin读书笔记(转)
    测试RESTful API利器-Postman
    backbone.js初探(转)
    JavaScript有关的10个怪癖和秘密(转)
    Restful Web Service初识
    JSTL标签库的使用
    JavaScript处理JSON
    绑定QQ登录 PHP OAuth详解(转)
    mysql if exist坑
  • 原文地址:https://www.cnblogs.com/GoldenEllipsis/p/15409780.html
Copyright © 2011-2022 走看看