杨玲 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+="\n"+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!你可能是:\n" + 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+"\t"+sex+"\t"+age+"\t"+number+"\t"+province+"\n";
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的安装到后来自己能写出可以运行的程序,很开心。这并不是结束,而是另一个新的开始,我会继续努力,学习更多。

原文地址:https://www.cnblogs.com/yanglinga/p/10199891.html

时间: 2024-11-07 19:58:25

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

20177101010101 白玛次仁《面向对象程序设计》第十八周学习总结

实验十八  总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设计结构: (4) 综合掌握java多线程编程模型: (5) 综合编程练习. 2.实验内容和步骤 任务1:填写课程课后调查问卷,网址:https://www.wjx.cn/jq/33108969.aspx. 任务2:综合编程练习 练习1:设计一个用户信息采集程序,要求如下: (1) 用户信息输入界面如

201771010109焦旭超《面向对象程序设计》第十八周学习总结

1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设计结构: (4) 综合掌握java多线程编程模型: (5) 综合编程练习. 2.实验内容和步骤 任务1:填写课程课后调查问卷,网址:https://www.wjx.cn/jq/33108969.aspx. 任务2:综合编程练习 练习1:设计一个用户信息采集程序,要求如下: (1) 用户信息输入界面如下图所示: (1)用户点击提交按钮时,用户输入信息显

20182304 《数据结构与面向对象程序设计》第七八周学习总结

20182304 <数据结构与面向对象程序设计>第七八周学习总结 教材学习内容总结 时间复杂度分析:时间复杂度越低,程序运行效率越高.时间复杂度又称为算法的阶,符号计为O(),它由增长函数的主项决定.可以通过数学方法求出增长函数从而确定程序的时间复杂度 线性集合:集合中的元素按直线方式组织.如:队列集合.栈集合 栈是一种线性数据结构,采用后进先出(Last in,first out)的方法处理元素,我们学习使用了数组和链表来实现栈 链表:链表是链式结构的一种.在链表中,对象引用变量也可称为指针

201671010118 2016-2017-2《Java程序设计》 第十八周学习心得

已经是第十八周的java学习了,马上面临期末考试了,立马又要进行紧张的复习状态了,感觉也没有做好准备,打算在这周认真复习,好好备战期末考试,在这学期的java学习中,遇到了很多困难也解决了很多,重点的四五六章节内容感觉会有点遗忘,第十章十二章内容的掌握还可以,Swing用户界面组件掌握的不怎么好,在私下我想用更多的时间去努力学习这章内容,复习以前的内容. 这是最后一次的总结,一学期时间很快过去了,感谢代老师以及学长学姐的帮助,学习上一直在认真帮助我们,每周的作用业会认真的给我们批阅,特别感谢老师

201771010123汪慧和《面向对象程序设计JAVA》第八周实验总结

一.理论部分 1.接口 用interface声明,是抽象方法和常量值定义的集 合.从本质上讲,接口是一种特殊的抽象类. 在Java程序设计语言中,接口不是类,而是对类 的一组需求描述,由常量和一组抽象方法组成.接口中不包括变量和实现的方法.接口体中包含常量定义和方法定义,接口中只进 行方法的声明,不提供方法的实现.通常接口的名字以able或ible结尾:接口中的所有常量必须是public static final,方法必须是public abstract,这是 系统默认的,不管你在定义接时,写不

王艳 《面向对象程序设计》第十五周学习总结

实验十五  GUI编程练习与应用程序部署 一:理论部分. 1.Java 程序的打包:编译完成后,程序员将.class 文件压缩打包为 .jar 文件后,GUI 界面序就可以直接双击图标运行.JAR 文件是压缩的,它使用 ZIP 压缩格式. 创建一个包含清单的 JAR 文件,应该运行:jar cf mMyArchive.jar manifest.mf com/ *.class2.资源:Java 中,应用程序使的类通常需要一些相关数中,应用程序使的类通常需要一些相关数 据文件,这些称为资源 (Res

201671010117 2016-2017-2 《Java程序设计》Java第十二周学习心得

Java第十二周学习心得        在第十二周的理论课堂上,老师对1-4章的内容进行了测验,程序填空题和写程序题的分不是很高,程序题的重要部分都有遗漏,对于计算图书的总数那部分不会写,扣分较多,但是现在已经掌握了,接下来要在电脑上多多练习,周五老师对新内容第十章进行了讲解,这周到现在还没有遇到什么问题.

20182327 2019-2020-1 《数据结构与面向对象程序设计》第二第三周学习总结

20182327 2019-2020-1 <数据结构与面向对象程序设计>第二第三周学习总结 教材学习内容总结 在第二章的学习中,首先学习了Java编程的基本格式,然后学会了定义.赋值.使用各种数据类型的变量,可以独立打印数据到屏幕上,最后掌握了如何使用Scanner类的一般使用方法. 从第三章中,我学到了由String.Math.Random等类创建对象(即实例化对象),如果要使用Java.long包以外的类,要使用import声明,最后枚举类型,包装类没有看懂. 教材学习中的问题和解决过程

《数据结构与面向对象程序设计》第二、三周学习总结

目录 20182319 2019-2020-1 <数据结构与面向对象程序设计>第二.三周学习总结 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错题总结 结对及互评 评分: 点评过的同学博客和代码 其他(感悟.思考等,可选) 学习进度条 20182319 2019-2020-1 <数据结构与面向对象程序设计>第二.三周学习总结 @ 教材学习内容总结 ??这两周主要学习的是对于数据的类型以及输入输出的学习和对于几个常用的类的学习. ??首