• 杨玲 201771010133《面向对象程序设计(java)》第十八周学习总结


     《面向对象程序设计java十八周学习总结

    第一部分:理论知识学习部分

    第二部分:实验部分

    实验名称:实验十八  总复习

    1、实验目的与要求

    (1) 综合掌握java基本程序结构;

    (2) 综合掌握java面向对象程序设计特点;

    (3) 综合掌握java GUI 程序设计结构;

    (4) 综合掌握java多线程编程模型;

    (5) 综合编程练习。

    2、实验内容和步骤

    任务1:填写课程课后调查问卷,网址:https://www.wjx.cn/jq/33108969.aspx。

    任务2:综合编程练习

    练习1:设计一个用户信息采集程序,要求如下:

    (1) 用户信息输入界面如下图所示:

    1)用户点击提交按钮时,用户输入信息显示控制台界面;

    2)用户点击重置按钮后,清空用户已输入信息;

    3)点击窗口关闭,程序退出。

      1 2 
      2 import java.awt.Dimension;
      3 import java.awt.FlowLayout;
      4 import java.awt.GridLayout;
      5 
      6 import javax.swing.BorderFactory;
      7 import javax.swing.ButtonGroup;
      8 import javax.swing.JButton;
      9 import javax.swing.JCheckBox;
     10 import javax.swing.JComboBox;
     11 import javax.swing.JFrame;
     12 import javax.swing.JLabel;
     13 import javax.swing.JPanel;
     14 import javax.swing.JRadioButton;
     15 import javax.swing.JTextField;
     16 
     17 public class DemoJFrame extends JFrame {
     18     private JPanel jPanel1;
     19     private JPanel jPanel2;
     20     private JPanel jPanel3;
     21     private JPanel jPanel4;
     22     private JTextField fieldname;
     23     private JComboBox comboBox;
     24     private JTextField fieldadress;
     25     private ButtonGroup bg;
     26     private JRadioButton Male;
     27     private JRadioButton Female;
     28     private JCheckBox read;
     29     private JCheckBox sing;
     30     private JCheckBox dance;
     31 
     32     public DemoJFrame() {
     33         // 设置窗口大小
     34         this.setSize(800, 400);
     35         // 设置可见性
     36         this.setVisible(true);
     37         // 设置标题
     38         this.setTitle("编程练习一");
     39         // 设置关闭操作
     40         this.setDefaultCloseOperation(EXIT_ON_CLOSE);
     41         // 设置窗口居中
     42         WinCenter.center(this);
     43         // 创建四个面板对象
     44         jPanel1 = new JPanel();
     45         setJPanel1(jPanel1);                
     46         jPanel2 = new JPanel();
     47         setJPanel2(jPanel2);
     48         jPanel3 = new JPanel();
     49         setJPanel3(jPanel3);
     50         jPanel4 = new JPanel();
     51         setJPanel4(jPanel4);
     52         // 设置容器的为流布局
     53         FlowLayout flowLayout = new FlowLayout();
     54         this.setLayout(flowLayout);
     55         // 将四个面板添加到容器中
     56         this.add(jPanel1);
     57         this.add(jPanel2);
     58         this.add(jPanel3);
     59         this.add(jPanel4);
     60 
     61     }
     62 
     63     /*
     64      * 设置面一
     65      */
     66     private void setJPanel1(JPanel jPanel) {
     67         // TODO 自动生成的方法存根
     68         jPanel.setPreferredSize(new Dimension(700, 45));
     69         // 给面板的布局设置为网格布局 一行4列
     70         jPanel.setLayout(new GridLayout(1, 4));
     71         
     72         JLabel name = new JLabel("name:");
     73         name.setSize(100, 50);
     74         fieldname = new JTextField("");
     75         fieldname.setSize(80, 20);
     76         
     77         JLabel study = new JLabel("qualification:");
     78         comboBox = new JComboBox();
     79         comboBox.addItem("初中");
     80         comboBox.addItem("高中");
     81         comboBox.addItem("本科");
     82         jPanel.add(name);
     83         jPanel.add(fieldname);
     84         jPanel.add(study);
     85         jPanel.add(comboBox);
     86 
     87     }
     88 
     89     /*
     90      * 设置面板二
     91      */
     92     private void setJPanel2(JPanel jPanel) {
     93         // TODO 自动生成的方法存根
     94         jPanel.setPreferredSize(new Dimension(700, 50));
     95         // 给面板的布局设置为网格布局 一行4列
     96         jPanel.setLayout(new GridLayout(1, 4));
     97         
     98         JLabel name = new JLabel("address:");
     99         fieldadress = new JTextField();
    100         fieldadress.setPreferredSize(new Dimension(150, 50));
    101         
    102         JLabel study = new JLabel("hobby:");
    103         JPanel selectBox = new JPanel();
    104         selectBox.setBorder(BorderFactory.createTitledBorder(""));
    105         selectBox.setLayout(new GridLayout(3, 1));
    106         read = new JCheckBox("reading");
    107         sing = new JCheckBox("singing");
    108         dance = new JCheckBox("danceing");
    109         selectBox.add(read);
    110         selectBox.add(sing);
    111         selectBox.add(dance);
    112         jPanel.add(name);
    113         jPanel.add(fieldadress);
    114         jPanel.add(study);
    115         jPanel.add(selectBox);
    116     }
    117 
    118     /*
    119      * 设置面板三
    120      */
    121     private void setJPanel3(JPanel jPanel) {
    122         // TODO 自动生成的方法存根
    123         jPanel.setPreferredSize(new Dimension(700, 150));
    124         FlowLayout flowLayout = new FlowLayout(FlowLayout.LEFT);
    125         jPanel.setLayout(flowLayout);
    126         JLabel sex = new JLabel("性别:");
    127         JPanel selectBox = new JPanel();
    128         selectBox.setBorder(BorderFactory.createTitledBorder(""));
    129         selectBox.setLayout(new GridLayout(2, 1));
    130         bg = new ButtonGroup();
    131         Male = new JRadioButton("male");
    132         Female = new JRadioButton("female");
    133         bg.add(Male );
    134         bg.add(Female);
    135         selectBox.add(Male);
    136         selectBox.add(Female);
    137         jPanel.add(sex);
    138         jPanel.add(selectBox);
    139 
    140     }
    141 
    142     /*
    143      * 设置面板四
    144      */
    145     private void setJPanel4(JPanel jPanel) {
    146         // TODO 自动生成的方法存根
    147         jPanel.setPreferredSize(new Dimension(700, 150));
    148         FlowLayout flowLayout = new FlowLayout(FlowLayout.CENTER, 50, 10);
    149         jPanel.setLayout(flowLayout);
    150         jPanel.setLayout(flowLayout);
    151         JButton sublite = new JButton("提交");
    152         JButton reset = new JButton("重置");
    153         sublite.addActionListener((e) -> valiData());
    154         reset.addActionListener((e) -> Reset());
    155         jPanel.add(sublite);
    156         jPanel.add(reset);
    157     }
    158 
    159     /*
    160      * 提交数据
    161      */
    162     private void valiData() {
    163         // TODO 自动生成的方法存根
    164         // 拿到数据
    165         String name = fieldname.getText().toString().trim();
    166         String xueli = comboBox.getSelectedItem().toString().trim();
    167         String address = fieldadress.getText().toString().trim();
    168         System.out.println(name);
    169         System.out.println(xueli);
    170         String hobbystring="";
    171         if (read.isSelected()) {
    172             hobbystring+="reading   ";
    173         }
    174         if (sing.isSelected()) {
    175             hobbystring+="singing   ";
    176         }
    177         if (dance.isSelected()) {
    178             hobbystring+="dancing  ";
    179         }
    180         System.out.println(address);
    181         if (Male.isSelected()) {
    182             System.out.println("male");
    183         }
    184         if (Female.isSelected()) {
    185             System.out.println("female");
    186         }
    187         System.out.println(hobbystring);
    188     }
    189 
    190     /*
    191      * 重置
    192      */
    193     private void Reset() {
    194         // TODO 自动生成的方法存根
    195         fieldadress.setText(null);
    196         fieldname.setText(null);
    197         comboBox.setSelectedIndex(0);
    198         read.setSelected(false);
    199         sing.setSelected(false);
    200         dance.setSelected(false);
    201         bg.clearSelection();
    202     }
    203 }
    204 
    205  DemoJFrame
     1 2 
     2 
     3 
     4 import java.awt.EventQueue;
     5 
     6 import javax.swing.JFrame;
     7 
     8 public class Main {
     9     public static void main(String[] args) {
    10         EventQueue.invokeLater(() -> {
    11             DemoJFrame page = new DemoJFrame();
    12         });
    13     }
    14 }
    15 
    16 Main
     1 2 
     2 import java.awt.Dimension;
     3 import java.awt.Toolkit;
     4 import java.awt.Window;
     5 
     6 public class WinCenter {
     7     public static void center(Window win){
     8         Toolkit tkit = Toolkit.getDefaultToolkit();
     9         Dimension sSize = tkit.getScreenSize();
    10         Dimension wSize = win.getSize();
    11         if(wSize.height > sSize.height){
    12             wSize.height = sSize.height;
    13         }
    14         if(wSize.width > sSize.width){
    15             wSize.width = sSize.width;
    16         }
    17         win.setLocation((sSize.width - wSize.width)/ 2, (sSize.height - wSize.height)/ 2);
    18     }
    19 }
    20 
    21  WinCenter

    运行结果如下:

    练习2:采用GUI界面设计以下程序:

    l 编制一个程序,将身份证号.txt 中的信息读入到内存中;

    l 按姓名字典序输出人员信息;

    l 查询最大年龄的人员信息;

    l 查询最小年龄人员信息;

    l 输入你的年龄,查询身份证号.txt中年龄与你最近人的姓名、身份证号、年龄、性别和出生地;

    l 查询人员中是否有你的同乡。

    l 输入身份证信息,查询所提供身份证号的人员信息,要求输入一个身份证数字时,查询界面就显示满足查询条件的查询结果,且随着输入的数字的增多,查询匹配的范围逐渐缩小。

      1 import java.io.BufferedReader;
      2 import java.io.File;
      3 import java.io.FileInputStream;
      4 import java.io.InputStreamReader;
      5 import java.io.FileNotFoundException;
      6 import java.io.IOException;
      7 import java.util.ArrayList;
      8 import java.util.Arrays;
      9 import java.util.Collections;
     10 import java.util.Scanner;
     11 import java.awt.*;
     12 import javax.swing.*;
     13 import java.awt.event.*;
     14 
     15 public class Main extends JFrame {
     16     private static ArrayList<Student> studentlist;
     17     private static ArrayList<Student> list;
     18     private JPanel panel;
     19     private JPanel buttonPanel;
     20     private static final int DEFAULT_WITH = 800;
     21     private static final int DEFAULT_HEIGHT = 600;
     22 
     23     public Main() {
     24         studentlist = new ArrayList<>();
     25         Scanner scanner = new Scanner(System.in);
     26         File file = new File("E:\java\身份证号.txt");
     27         try {
     28             FileInputStream fis = new FileInputStream(file);
     29             BufferedReader in = new BufferedReader(new InputStreamReader(fis));
     30             String temp = null;
     31             while ((temp = in.readLine()) != null) {
     32 
     33                 Scanner linescanner = new Scanner(temp);
     34 
     35                 linescanner.useDelimiter(" ");
     36                 String name = linescanner.next();
     37                 String number = linescanner.next();
     38                 String sex = linescanner.next();
     39                 String age = linescanner.next();
     40                 String province = linescanner.nextLine();
     41                 Student student = new Student();
     42                 student.setName(name);
     43                 student.setnumber(number);
     44                 student.setsex(sex);
     45                 int a = Integer.parseInt(age);
     46                 student.setage(a);
     47                 student.setprovince(province);
     48                 studentlist.add(student);
     49 
     50             }
     51         } catch (FileNotFoundException e) {
     52             System.out.println("学生信息文件找不到");
     53             e.printStackTrace();
     54         } catch (IOException e) {
     55             System.out.println("学生信息文件读取错误");
     56             e.printStackTrace();
     57         }
     58         panel = new JPanel();
     59         panel.setLayout(new BorderLayout());
     60         JTextArea jt = new JTextArea();
     61         panel.add(jt);
     62         add(panel, BorderLayout.NORTH);
     63         buttonPanel = new JPanel();
     64         buttonPanel.setLayout(new GridLayout(1, 7));
     65         JButton jButton = new JButton("字典排序");
     66         JButton jButton1 = new JButton("年龄最大和年龄最小");
     67         JLabel lab = new JLabel("猜猜你的老乡");
     68         JTextField jt1 = new JTextField();
     69         JLabel lab1 = new JLabel("找找同龄人(年龄相近):");
     70         JTextField jt2 = new JTextField();
     71         JLabel lab2 = new JLabel("输入你的身份证号码:");
     72         JTextField jt3 = new JTextField();
     73         JButton jButton2 = new JButton("退出");
     74         jButton.setBounds(110, 90, 60, 30);
     75         jButton1.setBounds(110, 90, 60, 30);
     76         jt1.setBounds(110, 90, 60, 30);
     77         jt2.setBounds(110, 90, 60, 30);
     78         jt3.setBounds(110, 90, 60, 30);
     79         jButton2.setBounds(110, 90, 60, 30);
     80         jButton.addActionListener(new ActionListener() {
     81             public void actionPerformed(ActionEvent e) {
     82                 Collections.sort(studentlist);
     83                 jt.setText(studentlist.toString());
     84             }
     85         });
     86         jButton1.addActionListener(new ActionListener() {
     87             public void actionPerformed(ActionEvent e) {
     88                 int max = 0, min = 100;
     89                 int j, k1 = 0, k2 = 0;
     90                 for (int i = 1; i < studentlist.size(); i++) {
     91                     j = studentlist.get(i).getage();
     92                     if (j > max) {
     93                         max = j;
     94                         k1 = i;
     95                     }
     96                     if (j < min) {
     97                         min = j;
     98                         k2 = i;
     99                     }
    100 
    101                 }
    102                 jt.setText("年龄最大:" + studentlist.get(k1) + "年龄最小:" + studentlist.get(k2));
    103             }
    104         });
    105         jButton2.addActionListener(new ActionListener() {
    106             public void actionPerformed(ActionEvent e) {
    107                 dispose();
    108                 System.exit(0);
    109             }
    110         });
    111         jt1.addActionListener(new ActionListener() {
    112             public void actionPerformed(ActionEvent e) {
    113                 String find = jt1.getText();
    114                 String text="";
    115                 String place = find.substring(0, 3);
    116                 for (int i = 0; i < studentlist.size(); i++) {
    117                     if (studentlist.get(i).getprovince().substring(1, 4).equals(place)) {
    118                         text+="
    "+studentlist.get(i);
    119                         jt.setText("老乡:" + text);
    120                     }
    121                 }
    122             }
    123         });
    124         jt2.addActionListener(new ActionListener() {
    125             public void actionPerformed(ActionEvent e) {
    126                 String yourage = jt2.getText();
    127                 int a = Integer.parseInt(yourage);
    128                 int near = agenear(a);
    129                 int value = a - studentlist.get(near).getage();
    130                 jt.setText("年龄相近:" + studentlist.get(near));
    131             }
    132         });
    133         jt3.addActionListener(new ActionListener() {
    134             public void actionPerformed(ActionEvent e) {
    135                 list = new ArrayList<>();
    136                 Collections.sort(studentlist);
    137                 String key = jt3.getText();
    138                 for (int i = 1; i < studentlist.size(); i++) {
    139                     if (studentlist.get(i).getnumber().contains(key)) {                        
    140                         list.add(studentlist.get(i));                        
    141                         jt.setText("emmm!你可能是:
    " + list);
    142                     
    143                     }                    
    144                 }
    145             }
    146         });
    147         buttonPanel.add(jButton);
    148         buttonPanel.add(jButton1);
    149         buttonPanel.add(lab);
    150         buttonPanel.add(jt1);
    151         buttonPanel.add(lab1);
    152         buttonPanel.add(jt2);
    153         buttonPanel.add(lab2);
    154         buttonPanel.add(jt3);
    155         buttonPanel.add(jButton2);
    156         add(buttonPanel, BorderLayout.SOUTH);
    157         setSize(DEFAULT_WITH, DEFAULT_HEIGHT);
    158     }
    159 
    160     public static int agenear(int age) {
    161         int min = 53, value = 0, k = 0;
    162         for (int i = 0; i < studentlist.size(); i++) {
    163             value = studentlist.get(i).getage() - age;
    164             if (value < 0)
    165                 value = -value;
    166             if (value < min) {
    167                 min = value;
    168                 k = i;
    169             }
    170         }
    171         return k;
    172     }
    173 
    174 }
     1 public class Student implements Comparable<Student> {
     2 
     3     private String name;
     4     private String number ;
     5     private String sex ;
     6     private int age;
     7     private String province;
     8    
     9     public String getName() {
    10         return name;
    11     }
    12     public void setName(String name) {
    13         this.name = name;
    14     }
    15     public String getnumber() {
    16         return number;
    17     }
    18     public void setnumber(String number) {
    19         this.number = number;
    20     }
    21     public String getsex() {
    22         return sex ;
    23     }
    24     public void setsex(String sex ) {
    25         this.sex =sex ;
    26     }
    27     public int getage() {
    28 
    29         return age;
    30         }
    31         public void setage(int age) {
    32             // int a = Integer.parseInt(age);
    33         this.age= age;
    34         }
    35 
    36     public String getprovince() {
    37         return province;
    38     }
    39     public void setprovince(String province) {
    40         this.province=province ;
    41     }
    42 
    43     public int compareTo(Student o) {
    44        return this.name.compareTo(o.getName());
    45     }
    46 
    47     public String toString() {
    48         return  name+"	"+sex+"	"+age+"	"+number+"	"+province+"
    ";
    49     }    
    50 }
     1 import java.awt.*;
     2 import javax.swing.*;
     3 
     4 public class ButtonTest {
     5     public static void main(String[] args) {
     6         EventQueue.invokeLater(() -> {
     7             JFrame frame = new Main();
     8             frame.setTitle("身份证信息");
     9             frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    10             frame.setVisible(true);
    11         });
    12     }
    13 }

    运行结果如下:

    练习3:采用GUI界面设计以下程序

    l 编写一个计算器类,可以完成加、减、乘、除的操作

    l 利用计算机类,设计一个小学生100以内数的四则运算练习程序,由计算机随机产生10道加减乘除练习题,学生输入答案,由程序检查答案是否正确,每道题正确计10分,错误不计分,10道题测试结束后给出测试总分;

    l 将程序中测试练习题及学生答题结果输出到文件,文件名为test.txt。

      1 import java.awt.BorderLayout;
      2 import java.awt.GridLayout;
      3 import java.awt.event.ActionEvent;
      4 import java.awt.event.ActionListener;
      5 import javax.swing.JButton;
      6 import javax.swing.JFrame;
      7 import javax.swing.JPanel;
      8 import javax.swing.JTextField;
      9 public class Calculator extends JFrame {
     10 JButton b0 = new JButton("0");
     11 JButton b1 = new JButton("1");
     12 JButton b2 = new JButton("2");
     13 JButton b3 = new JButton("3");
     14 JButton b4 = new JButton("4");
     15 JButton b5 = new JButton("5");
     16 JButton b6 = new JButton("6");
     17 JButton b7 = new JButton("7");
     18 JButton b8 = new JButton("8");
     19 JButton b9 = new JButton("9");
     20 JButton jiaButton = new JButton("+");
     21 JButton jianButton = new JButton("-");
     22 JButton chengButton = new JButton("*");
     23 JButton chuButton = new JButton("/");
     24 JButton yuButton = new JButton("%");
     25 JButton jjButton = new JButton("+/-");
     26 JButton sqrtButton = new JButton("sqrt");
     27 JButton dianButton = new JButton(".");
     28 JButton dengButton = new JButton("=");
     29 JButton daoButton = new JButton("1/x");
     30 JButton backButton = new JButton("Backpace");
     31 JButton cButton = new JButton("C");
     32 public double op1;
     33 public double op2;
     34 public static final int JIA = 0;
     35 public static final int JIAN = 1;
     36 public static final int CHENG = 2;
     37 public static final int CHU = 3;
     38 public static final int JJ = 4;
     39 public static final int DIAN = 5;
     40 public int current0p = 0;
     41 private boolean opEnd = false;
     42 JPanel panel1 = new JPanel();
     43 JPanel panel2 = new JPanel();
     44 JPanel panel3 = new JPanel();
     45 JPanel panel4 = new JPanel();
     46 JTextField result = new JTextField(20);
     47 public Calculator() {
     48 initPanel2();
     49 initPanel3();
     50 panel2.setLayout(new GridLayout(5, 4));
     51 panel1.setLayout(new BorderLayout());
     52 panel1.add(panel3, BorderLayout.NORTH);// 设置位置
     53 panel1.add(panel2, BorderLayout.CENTER);// 设置位置
     54 getContentPane().add(panel1);
     55 addActionListeners();
     56 setSize(260, 260);
     57 setLocation(500, 300);
     58 setVisible(true);
     59 setDefaultCloseOperation(Calculator.EXIT_ON_CLOSE);
     60 this.setResizable(false);
     61 this.setTitle("计算器");
     62 }
     63 private void initPanel2() {
     64 // 把组件添加相应panel上
     65 panel2.add(b7);
     66 panel2.add(b8);
     67 panel2.add(b9);
     68 panel2.add(chuButton);
     69 panel2.add(b4);
     70 panel2.add(b5);
     71 panel2.add(b6);
     72 panel2.add(chengButton);
     73 panel2.add(b1);
     74 panel2.add(b2);
     75 panel2.add(b3);
     76 panel2.add(jianButton);
     77 panel2.add(b0);
     78 panel2.add(jjButton);
     79 panel2.add(dianButton);
     80 panel2.add(jiaButton);
     81 panel2.add(daoButton);
     82 panel2.add(yuButton);
     83 panel2.add(sqrtButton);
     84 panel2.add(dengButton);
     85 }
     86 private void addActionListeners() {
     87 ActionHandler c = new ActionHandler();
     88 b0.addActionListener(c);
     89 b1.addActionListener(c);
     90 b2.addActionListener(c);
     91 b3.addActionListener(c);
     92 b4.addActionListener(c);
     93 b5.addActionListener(c);
     94 b6.addActionListener(c);
     95 b7.addActionListener(c);
     96 b8.addActionListener(c);
     97 b9.addActionListener(c);
     98 jiaButton.addActionListener(c);
     99 dengButton.addActionListener(c);
    100 chengButton.addActionListener(c);
    101 chuButton.addActionListener(c);
    102 jianButton.addActionListener(c);
    103 jjButton.addActionListener(c);
    104 dianButton.addActionListener(c);
    105 sqrtButton.addActionListener(c);
    106 yuButton.addActionListener(c);
    107 daoButton.addActionListener(c);
    108 backButton.addActionListener(c);
    109 cButton.addActionListener(c);
    110 }
    111 class ActionHandler implements ActionListener {
    112 public void actionPerformed(ActionEvent e) {
    113 if (e.getSource() == b0) {
    114 if (opEnd == false) {
    115 result.setText("");
    116 }
    117 result.setText(result.getText() + "0");
    118 }
    119 if (e.getSource() == b1) {
    120 if (opEnd == false) {
    121 result.setText("");
    122 }
    123 result.setText(result.getText() + "1");
    124 opEnd = true;
    125 }
    126 if (e.getSource() == b2) {
    127 if (opEnd == false) {
    128 result.setText("");
    129 }
    130 result.setText(result.getText() + "2");
    131 opEnd = true;
    132 }
    133 if (e.getSource() == b3) {
    134 if (opEnd == false) {
    135 result.setText("");
    136 }
    137 result.setText(result.getText() + "3");
    138 opEnd = true;
    139 }
    140 if (e.getSource() == b4) {
    141 if (opEnd == false) {
    142 result.setText("");
    143 }
    144 result.setText(result.getText() + "4");
    145 opEnd = true;
    146 }
    147 if (e.getSource() == b5) {
    148 if (opEnd == false) {
    149 result.setText("");
    150 }
    151 result.setText(result.getText() + "5");
    152 opEnd = true;
    153 }
    154 if (e.getSource() == b6) {
    155 if (opEnd == false) {
    156 result.setText("");
    157 }
    158 result.setText(result.getText() + "6");
    159 opEnd = true;
    160 }
    161 if (e.getSource() == b7) {
    162 if (opEnd == false) {
    163 result.setText("");
    164 }
    165 result.setText(result.getText() + "7");
    166 opEnd = true;
    167 }
    168 if (e.getSource() == b8) {
    169 if (opEnd == false) {
    170 result.setText("");
    171 }
    172 result.setText(result.getText() + "8");
    173 opEnd = true;
    174 }
    175 if (e.getSource() == b9) {
    176 if (opEnd == false) {
    177 result.setText("");
    178 }
    179 result.setText(result.getText() + "9");
    180 opEnd = true;
    181 }
    182 try {
    183 if (e.getSource() == jiaButton) {
    184 op1 = Double.parseDouble(result.getText());
    185 // 2、说明操作数已经输入完毕
    186 opEnd = false;
    187 current0p = JIA;
    188 }
    189 if (e.getSource() == chengButton) {
    190 op1 = Double.parseDouble(result.getText());
    191 // 2、说明操作数已经输入完毕
    192 opEnd = false;
    193 current0p = CHENG;
    194 }
    195 if (e.getSource() == chuButton) {
    196 op1 = Double.parseDouble(result.getText());
    197 // 2、说明操作数已经输入完毕
    198 opEnd = false;
    199 current0p = CHU;
    200 }
    201 if (e.getSource() == jianButton) {
    202 op1 = Double.parseDouble(result.getText());
    203 // 2、说明操作数已经输入完毕
    204 opEnd = false;
    205 current0p = JIAN;
    206 }
    207 if (e.getSource() == jjButton) {
    208 String tmp = result.getText();
    209 if (tmp.equals("") || tmp.equals("0")) {
    210 return;
    211 }
    212 if (tmp.charAt(0) == '-') {
    213 tmp = tmp.substring(1);
    214 } else {
    215 tmp = '-' + tmp;
    216 }
    217 result.setText(tmp);
    218 }
    219 if (e.getSource() == dianButton) {
    220 String tmp = result.getText();
    221 if (tmp.equals("")) {
    222 return;
    223 }
    224 if (tmp.indexOf(".") != -1) {
    225 return;
    226 }
    227 tmp = tmp + ".";
    228 result.setText(tmp);
    229 }
    230 if (e.getSource() == sqrtButton) {
    231 String tmp = result.getText();
    232 if (tmp.equals(" ")) {
    233 return;
    234 }
    235 double d;
    236 d = Double.parseDouble(tmp);// 先定义double类型d
    237 if (d < 0) {
    238 result.setText("不能对负数求平方根");
    239 return;
    240 }
    241 op2 = Math.sqrt(d);
    242 result.setText(op2 + "");
    243 }
    244 if (e.getSource() == backButton) {
    245 String s = result.getText();
    246 result.setText("");
    247 for (int i = 0; i < s.length() - 1; i++) {
    248 char a = s.charAt(i);
    249 result.setText(result.getText() + a);
    250 }
    251 }
    252 if (e.getSource() == cButton) {
    253 result.setText("0");
    254 opEnd = false;
    255 }
    256 if (e.getSource() == dengButton) {
    257 op2 = Double.parseDouble(result.getText());
    258 switch (current0p) {
    259 case JIA:
    260 result.setText(op1 + op2 + "");
    261 break;
    262 case JIAN:
    263 result.setText(op1 - op2 + "");
    264 break;
    265 case CHENG:
    266 result.setText(op1 * op2 + "");
    267 break;
    268 case CHU:
    269 if (op2 == 0) {
    270 result.setText("被除数不能为零");
    271 break;
    272 }
    273 result.setText(op1 / op2 + "");
    274 break;
    275 }
    276 opEnd = false;
    277 }
    278 } catch (Exception e1) {
    279 result.setText("Wrong");
    280 opEnd = false;
    281 }
    282 }
    283 }
    284 private void initPanel3() {
    285 panel3.setLayout(new GridLayout(2, 1));
    286 panel3.add(result);
    287 panel3.add(panel4);
    288 panel4.setLayout(new GridLayout(1, 2));
    289 panel4.add(backButton);
    290 panel4.add(cButton);
    291 }
    292 public static void main(String[] args) {
    293 Calculator c = new Calculator();// 生成类实例
    294 }
    295 }
     1 import java.io.FileNotFoundException;
     2 import java.io.PrintWriter;
     3 import java.util.Scanner;
     4 
     5 /*
     6  * 该程序用来随机生成0到100以内的加减乘除题
     7  */
     8 public class Demo {
     9     public static  void main(String[] args) {
    10         // 用户的答案要从键盘输入,因此需要一个键盘输入流
    11         Scanner in = new Scanner(System.in);
    12         Counter counter=new Counter();
    13         PrintWriter out = null;
    14         try {
    15             out = new PrintWriter("text.txt");
    16         } catch (FileNotFoundException e) {
    17             // TODO Auto-generated catch block
    18             e.printStackTrace();
    19         }
    20         // 定义一个变量用来统计得分
    21         int sum = 0;
    22         int k=0;
    23         // 通过循环生成10道题
    24         for (int i = 0; i < 10; i++) {
    25 
    26             // 随机生成两个100以内的随机数作加减乘除
    27             int a = (int) Math.round(Math.random() * 100);
    28             int b = (int) Math.round(Math.random() * 100);
    29             int d = (int) Math.round(Math.random() * 3);
    30             
    31             switch (d){
    32             
    33             case 0: 
    34               if(a%b == 0) {
    35               System.out.println(a + "/" + b + "=");
    36               break;
    37               }
    38               //int c = in.nextInt();
    39               //out.println(a + "/" + b + "="+c);
    40             case 1:
    41               System.out.println(a + "*" + b + "=");
    42               //int c1 = in.nextInt();
    43               //out.println(a + "*" + b + "="+c1);
    44               break;
    45             case 2:
    46               System.out.println(a + "+" + b + "=");
    47               //int c2 = in.nextInt();
    48               //out.println(a + "+" + b + "="+c2);
    49               break;
    50             case 3:
    51             if(a>b) {
    52             System.out.println(a + "-" + b + "=");
    53             break;
    54             }
    55             //int c3 = in.nextInt();
    56             //out.println(a + "-" + b + "="+c3);
    57             
    58             }        
    59 
    60             // 定义一个整数用来接收用户输入的答案
    61             double c = in.nextDouble();
    62             
    63             // 判断用户输入的答案是否正确,正确给10分,错误不给分
    64             if (c == a / b | c == a * b | c == a + b | c == a - b) {
    65                 sum += 10;
    66                 System.out.println("恭喜答案正确");
    67             }
    68             else {
    69                 System.out.println("抱歉,答案错误");
    70             
    71             }
    72             out.println(a + "/" + b + "="+c );
    73             out.println(a + "*" + b + "="+c);
    74             out.println(a + "+" + b + "="+c);
    75             out.println(a + "-" + b + "="+c);
    76         
    77         }
    78         //输出用户的成绩
    79         System.out.println("你的得分为"+sum);
    80         
    81         out.println("成绩:"+sum);
    82         out.close();
    83     }
    84     }

    运行结果如下:

    任务3:本学期课程已结束,请汇总《面向对象程序设计课程学习进度条》的数据,统计个人专业能力提升的数据。并从学习内容、学习方法、学习心得几个方面进行课程学习总结,也希望你对课程的不足提出建议和意见。

    4. 实验总结:

      通过本学期的实验课程学习,真的学到了很多,尤其是在老师和助教学长的耐心指导下,从最开始JDK的安装到后来自己能写出可以运行的程序,很开心。这并不是结束,而是另一个新的开始,我会继续努力,学习更多。

  • 相关阅读:
    初识Node
    从服务器获取信息的方式
    引用对象的指针传递
    使用定时器来控制一次执行的任务数量
    JS字符串拼接的方法及性能比较
    提升JS比较效率的方式
    DOM访问优化
    JS数据存取效率的优化
    JS脚本加载顺序及优化
    python 基本用法
  • 原文地址:https://www.cnblogs.com/yanglinga/p/10199891.html
Copyright © 2020-2023  润新知