201771010111李瑞红《第十八周学习总结》(代码片段)

lrhlrh123---- lrhlrh123----     2023-02-16     583

关键词:

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)点击窗口关闭,程序退出。

import java.awt.EventQueue;

import javax.swing.JFrame;

public class Mian 
    public static void main(String[] args) 
        EventQueue.invokeLater(() -> 
            DemoJFrame page = new DemoJFrame();
        );
    
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.Window;

public class WinCenter 
    public static void center(Window win)
        Toolkit tkit = Toolkit.getDefaultToolkit();//获取默认工具包
        Dimension sSize = tkit.getScreenSize();//获取屏幕的大小
        Dimension wSize = win.getSize();
        if(wSize.height > sSize.height)
            wSize.height = sSize.height;
        
        if(wSize.width > sSize.width)
            wSize.width = sSize.width;
        
        win.setLocation((sSize.width - wSize.width)/ 2, (sSize.height - wSize.height)/ 2);//将组件移到新的位置
    
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.Window;

public class WinCenter 
    public static void center(Window win)
        Toolkit tkit = Toolkit.getDefaultToolkit();//获取默认工具包
        Dimension sSize = tkit.getScreenSize();//获取屏幕的大小
        Dimension wSize = win.getSize();
        if(wSize.height > sSize.height)
            wSize.height = sSize.height;
        
        if(wSize.width > sSize.width)
            wSize.width = sSize.width;
        
        win.setLocation((sSize.width - wSize.width)/ 2, (sSize.height - wSize.height)/ 2);//将组件移到新的位置
    

实验结果

 技术分享图片

 

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

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

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

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

查询最小年龄人员信息;

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

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

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

package ID;
import java.awt.*;
import javax.swing.*;

public class ButtonTest 
    public static void main(String[] args) 
        EventQueue.invokeLater(() -> 
            JFrame frame = new Test();
            frame.setTitle("身份证");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        );
    


 
package ID;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import java.util.Collections;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Test extends JFrame 
    private static ArrayList<Citizen> citizenlist;
    private static ArrayList<Citizen> list;
    private JPanel panel;
    private JPanel buttonPanel;
    private static final int DEFAULT_WITH = 600;
    private static final int DEFAULT_HEIGHT = 300;

    public Test()
        citizenlist = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);
        File file = new File("E:/java/身份证号.txt");
        try 
            FileInputStream fis = new FileInputStream(file);
            BufferedReader in = new BufferedReader(new InputStreamReader(fis));
            String temp = null;
            while ((temp = in.readLine()) != null) 

                Scanner linescanner = new Scanner(temp);

                linescanner.useDelimiter(" ");
                String name = linescanner.next();
                String id = linescanner.next();
                String sex = linescanner.next();
                String age = linescanner.next();
                String birthplace = linescanner.nextLine();
                Citizen citizen = new Citizen();
                citizen.setName(name);
                citizen.setId(id);
                citizen.setSex(sex);
                int ag = Integer.parseInt(age);
                citizen.setage(ag);
                citizen.setBirthplace(birthplace);
                citizenlist.add(citizen);

            
         catch (FileNotFoundException e) 
            System.out.println("信息文件找不到");
            e.printStackTrace();
         catch (IOException e) 
            System.out.println("信息文件读取错误");
            e.printStackTrace();
        
        panel = new JPanel();
        panel.setLayout(new BorderLayout());
        JTextArea jt = new JTextArea();
        panel.add(jt);
        add(panel, BorderLayout.NORTH);
        buttonPanel = new JPanel();
        buttonPanel.setLayout(new GridLayout(1, 7));
        JButton jButton = new JButton("按姓名字典序输出人员信息");
        JButton jButton1 = new JButton("查询年龄最大和年龄最小的人员");
        JLabel lab = new JLabel("查询是否有你的老乡");
        JTextField jt1 = new JTextField();
        JLabel lab1 = new JLabel("查找年龄与你相近的人:");
        JTextField jt2 = new JTextField();
        JLabel lab2 = new JLabel("输入你的身份证号码:");
        JTextField jt3 = new JTextField();
        JButton jButton2 = new JButton("退出");
        jButton.addActionListener(new ActionListener() 
            public void actionPerformed(ActionEvent e) 
                Collections.sort(citizenlist);
                jt.setText(citizenlist.toString());
            
        );
        jButton1.addActionListener(new ActionListener() 
            public void actionPerformed(ActionEvent e) 
                int max = 0, min = 100;
                int j, k1 = 0, k2 = 0;
                for (int i = 1; i < citizenlist.size(); i++) 
                    j = citizenlist.get(i).getage();
                    if (j > max) 
                        max = j;
                        k1 = i;
                    
                    if (j < min) 
                        min = j;
                        k2 = i;
                    

                
                jt.setText("年龄最大:" + citizenlist.get(k1) + "年龄最小:" + citizenlist.get(k2));
            
        );
        jButton2.addActionListener(new ActionListener() 
            public void actionPerformed(ActionEvent e) 
                dispose();
                System.exit(0);
            
        );
        jt1.addActionListener(new ActionListener() 
            public void actionPerformed(ActionEvent e) 
                String find = jt1.getText();
                String text="";
                String place = find.substring(0, 3);
                for (int i = 0; i < citizenlist.size(); i++) 
                    if (citizenlist.get(i).getBirthplace().substring(1, 4).equals(place)) 
                        text+="
"+citizenlist.get(i);
                        jt.setText("老乡:" + text);
                    
                
            
        );
        jt2.addActionListener(new ActionListener() 
            public void actionPerformed(ActionEvent e) 
                String yourage = jt2.getText();
                int a = Integer.parseInt(yourage);
                int near = agenear(a);
                int value = a - citizenlist.get(near).getage();
                jt.setText("年龄相近:" + citizenlist.get(near));
            
        );
        jt3.addActionListener(new ActionListener() 
            public void actionPerformed(ActionEvent e) 
                list = new ArrayList<>();
                Collections.sort(citizenlist);
                String key = jt3.getText();
                for (int i = 1; i < citizenlist.size(); i++) 
                    if (citizenlist.get(i).getId().contains(key))                         
                        list.add(citizenlist.get(i));                        
                        jt.setText("emmm!你可能是:
" + list);
                                        
                
            
        );
        buttonPanel.add(jButton);
        buttonPanel.add(jButton1);
        buttonPanel.add(lab);
        buttonPanel.add(jt1);
        buttonPanel.add(lab1);
        buttonPanel.add(jt2);
        buttonPanel.add(lab2);
        buttonPanel.add(jt3);
        buttonPanel.add(jButton2);
        add(buttonPanel, BorderLayout.SOUTH);
        setSize(DEFAULT_WITH, DEFAULT_HEIGHT);
    

    public static int agenear(int age) 
        int min = 53, value = 0, k = 0;
        for (int i = 0; i < citizenlist.size(); i++) 
            value = citizenlist.get(i).getage() - age;
            if (value < 0)
                value = -value;
            if (value < min) 
                min = value;
                k = i;
            
        
        return k;
    



 
package ID;
public class Citizen implements Comparable<Citizen> 

    private String name;
    private String id;
    private String sex;
    private int age;
    private String birthplace;
    public String getName() 
        return name;
    

    public void setName(String name) 
        this.name = name;
    

    public String getId() 
        return id;
    

    public void setId(String id) 
        this.id = id;
    

    public String getSex() 
        return sex;
    

    public void setSex(String sex) 
        this.sex = sex;
    

    public int getage() 
        return age;
    

    public void setage(int age) 
        this.age = age;
    

    public String getBirthplace() 
        return birthplace;
    

    public void setBirthplace(String birthplace) 
        this.birthplace = birthplace;
    

    public int compareTo(Citizen other) 
        return this.name.compareTo(other.getName());
    

    public String toString() 
        return name + "	" + sex + "	" + age + "	" + id + "	" + birthplace + "
";
    


 

技术分享图片

技术分享图片

技术分享图片

技术分享图片

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

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

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

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

package project4;

public class Main 

    public static void main(String[] args) 
        MyExGUI lg = new MyExGUI();
        // new MyExGUI();

    

package project4;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.util.ArrayList;
import java.util.Random;

import javax.swing.JFrame;

public class chart extends JFrame 
    // 绘制柱形统计图
    ArrayList<Integer> ran = new ArrayList<Integer>();

    public chart(ArrayList<Integer> scores) 
        super();
        getContentPane().setForeground(Color.CYAN);
        setForeground(Color.CYAN);
        setBackground(Color.CYAN);
        for (int i = 0; i < scores.size(); i++) 
            ran.add(scores.get(i));
            System.out.println(scores.get(i));
        

        setTitle("绘制柱形图");
        setSize(600, 400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    

    @Override
    public void paint(Graphics g) 
        int Width = getWidth();
        int Height = getHeight();
        int leftMargin = 20;// 柱形图左边界
        int topMargin = 50;// 柱形图上边界
        Graphics2D g2 = (Graphics2D) g;
        g2.setColor(Color.WHITE);// 绘制白色背景
        g2.fillRect(0, 0, Width, Height - 100);// 绘制矩形图
        g2.setColor(Color.black);
        for (int i = 0; i <= 10; i++) 
            // 绘制灰色横线和百分比
            g2.drawString((100 - 10 * i) + " ", 15, topMargin + 30 * i);
            g2.drawLine(10, topMargin + 30 * i, Width, topMargin + 30 * i);// 绘制灰色横线
        
        g2.setColor(Color.RED);
        for (int i = 0; i <= ran.size(); i++) 
            // 绘制柱形图
            int step = (i + 1) * 40;// 设置每个柱形图的水平间隔为40
            // 绘制矩形
            g2.fillRoundRect(leftMargin + step * 2 - 5, (100 - ran.get(i)) * 3 + 50, 40, 300 - (100 - ran.get(i)) * 3,
                    40, 10);
            // 列出测试轮数
            g2.drawString("" + (i + 1) + "", leftMargin + step * 2, 380);
        
    

package project4;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class arithmetic 
    ArrayList<String> list = new ArrayList<String>();
    ArrayList<String> list_timu = new ArrayList<String>();
    ArrayList<String> list_answer = new ArrayList<String>();

    public arithmetic() 
        FileOutputStream outSTr = null;
        BufferedOutputStream Buff = null;
        int number_n = 10, count;

        ArrayList<String> list_temp = new ArrayList<String>();
        String[] operator = new String[]  "+", "-", "*", "/" ;

        Random rand = new Random();
        File file1 = new File("D:\\test.txt");
        if (file1.exists()) 
            // 创建文件
            try 
                file1.createNewFile();
             catch (IOException e) 
                e.printStackTrace();
            
        

        while (number_n > 0) 
            int[] number_temp = new int[rand.nextInt(2) + 3];
            String[] str_temp = new String[number_temp.length - 1];
            for (int i = 0; i < number_temp.length; i++) 
                if (i < number_temp.length - 1) 
                    number_temp[i] = rand.nextInt(100);
                    list_temp.add(String.valueOf(number_temp[i]));
                    str_temp[i] = operator[rand.nextInt(4)];
                    list_temp.add(str_temp[i]);

                

                else 
                    number_temp[i] = rand.nextInt(100);
                    list_temp.add(String.valueOf(number_temp[i]));
                
            

            count = calculate_RPN(produce_RPN(list_temp));
            if (count != -1) 
                list_timu.add(transform_string(list_temp));
                list_answer.add(String.valueOf(count));
                list_temp.add(" = " + count);
                list.add(transform_string(list_temp));
                number_n--;
                list_temp.clear();
             else
                list_temp.clear();
            System.out.println(number_n);

        
        try 
            outSTr = new FileOutputStream(file1);
            Buff = new BufferedOutputStream(outSTr);
            for (int i = 0; i < list.size(); i++) 
                try 
                    Buff.write(list.get(i).getBytes());
                    Buff.write("
".getBytes());
                 catch (IOException e) 
                    e.printStackTrace();
                    i--;
                
            
            Buff.flush();
            Buff.close();

         catch (IOException e) 
            e.printStackTrace();
        
        // Buff.close();
        try 
            outSTr.close();
         catch (IOException e) 
            e.printStackTrace();
        

        for (int i = 0; i < list.size(); i++) 
            System.out.print(list.get(i));
            System.out.println();
        
        System.out.print("计算完毕!");

    

    public static int calculate_RPN(ArrayList<String> list_temp) 
        int i = 0, t;
        double a = 0, b = 0;
        String l_temp;
        Stack sk = new Stack(10);
        for (t = 0; t < list_temp.size(); t++) 
            l_temp = list_temp.get(i++);
            if (!isInteger(l_temp)) 
                b = sk.mypop();
                a = sk.mypop();
                switch (l_temp) 
                case "+":
                    sk.mypush(a + b);
                    break;
                case "-":
                    if (!(a < b)) 
                        sk.mypush(a - b);
                     else
                        return -1;
                    break;
                case "*":
                    sk.mypush(a * b);
                    break;
                case "/":
                    if (b == 0 || a < b)
                        return -1;
                    sk.mypush(a / b);
                    break;
                
                System.out.println("st.mytop: " + sk.mypeek());
             else 
                sk.mypush((double) Integer.parseInt(l_temp));
            

        
        if (!sk.myisempty()) 
            a = sk.mypop();
            b = a - (int) a;
            System.out.println("a:  " + a);
            if (a > 0 && b == 0) 
                return (int) a;
             else
                return -1;
         else
            return -1;

    

    public static ArrayList<String> produce_RPN(ArrayList<String> list_temp) 
        int t = 0, i = 0;
        String tmp;
        Tack mytack = new Tack(10);
        ArrayList<String> lt_temp = new ArrayList<String>();
        while (true) 
            tmp = list_temp.get(i++);
            if (isInteger(tmp)) 
                lt_temp.add(tmp);
             else 
                if (mytack.myisempty()) 
                    mytack.mypush(tmp);
                

                else 
                    if (isCPriority(tmp, mytack.mypeek()))
                        mytack.mypush(tmp);
                    else 
                        lt_temp.add(mytack.mypop());
                        mytack.mypush(tmp);
                    

                
            
            if (i >= list_temp.size()) 
                while (!mytack.myisempty())
                    lt_temp.add(mytack.mypop());
                System.out.println(transform_string(list_temp));
                list_temp = lt_temp;
                System.out.println(list_temp);
                return list_temp;
            
        

    

    public static boolean isInteger(String str) 
        for (int i = str.length(); --i >= 0;) 
            if (!Character.isDigit(str.charAt(i))) 
                return false;
            
        
        return true;
    

    public static boolean isCPriority(String str, String s) 
        if ((str + s).equals("*+") || (str + s).equals("*-") || (str + s).equals("/+") || (str + s).equals("/-"))
            return true;
        else
            return false;
    

    public static String transform_string(ArrayList<String> list_temp) 
        String s = "";
        for (int i = 0; i < list_temp.size(); i++) 
            s += list_temp.get(i);
        
        return s;

    

    static class Stack 
        int mytop;
        double stk[];

        public Stack(int num) 
            mytop = -1;
            stk = new double[num];
        

        /* 出栈 */
        double mypop() 
            double peek = stk[mytop];
            mytop--;
            return peek;
        

        /* 入栈 */
        void mypush(double x) 
            mytop++;
            stk[mytop] = x;

        

        /* 判空 */
        Boolean myisempty() 
            if (mytop == -1)
                return true;
            else
                return false;
        

        /* 取栈顶元素 */
        double mypeek() 
            double peek = stk[mytop];
            return peek;
        

        /* 栈大小 */
        int mysize() 
            return mytop + 1;
        
    

    static class Tack 
        int mytop;
        String tk[];

        public Tack(int num) 
            mytop = -1;
            tk = new String[num];
        

        /* 出栈 */
        String mypop() 
            String peek = tk[mytop];
            mytop--;
            return peek;
        

        /* 入栈 */
        void mypush(String x) 
            mytop++;
            tk[mytop] = x;

        

        /* 判空 */
        Boolean myisempty() 
            if (mytop == -1)
                return true;
            else
                return false;
        

        /* 取栈顶元素 */
        String mypeek() 
            String peek = tk[mytop];
            return peek;
        

        /* 栈大小 */
        int mysize() 
            return mytop + 1;
        

    

package project4;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;

import javax.swing.*;

public class MyExGUI extends JFrame 
    ArrayList<String> user_zongti = new ArrayList<String>();
    ArrayList<String> user_zonganswer = new ArrayList<String>();
    ArrayList<String> user_answer = new ArrayList<String>();
    ArrayList<String> true_answer = new ArrayList<String>();
    ArrayList<String> jta_timu = new ArrayList<String>();
    ArrayList<String> jta_zong = new ArrayList<String>();
    ArrayList<Integer> user_fenshu = new ArrayList<Integer>();
    JMenuBar jm; // 菜单条组件
    JMenu menu;// 菜单
    JMenuItem item1, item2;// 菜单项
    JMenu build; // 二级菜单
    JMenuItem file, project;
    TextArea answer_all = new TextArea();
    TextField jta = new TextField();
    TextField jta_answer = new TextField();
    JLabel num_answer = new JLabel();
    JLabel answer;
    JToolBar jtb;// 工具条
    JButton jb1, jb2, jb3, jb4, jb5, jb6, jb7, jb_next;
    int answer_count;
    int answer_fenshu;

    public MyExGUI() 
        // 创建菜单
        jm = new JMenuBar();

        menu = new JMenu("文件(F)");
        menu.setMnemonic(f); // 助记符

        build = new JMenu("新建");

        file = new JMenuItem("文件");
        project = new JMenuItem("答题");
        item1 = new JMenuItem("保存(S)");
        item2 = new JMenuItem("退出");

        answer = new JLabel("第 1 题");

        // 添加菜单项至菜单上
        build.add(file);
        build.add(project);

        menu.add(build);
        menu.add(item1);
        menu.add(item2);
        menu.addSeparator();
        // 将菜单加入至菜单栏
        jm.add(menu);

        JPanel contentPanel = new JPanel();
        contentPanel.setLayout(null);
        JLabel daan = new JLabel("答案");
        JLabel dengyu = new JLabel("=");
        num_answer = answer;
        num_answer.setFont(new Font("宋体", Font.BOLD, 22));
        jb_next = new JButton("下一题");
        jta.setFont(new Font("宋体", Font.BOLD, 22));
        jta_answer.setFont(new Font("宋体", Font.BOLD, 22));
        jb_next.setFont(new Font("宋体", Font.BOLD, 22));
        daan.setFont(new Font("宋体", Font.BOLD, 22));
        dengyu.setFont(new Font("宋体", Font.BOLD, 22));

        contentPanel.add(num_answer);
        contentPanel.add(daan);
        contentPanel.add(dengyu);
        contentPanel.add(jta);

        contentPanel.add(jta_answer);
        contentPanel.add(answer_all);
        contentPanel.add(jb_next);

        num_answer.setBounds(90, 20, 130, 50);
        daan.setBounds(250, 20, 90, 50);
        jta.setBounds(50, 70, 150, 30);
        dengyu.setBounds(205, 70, 20, 20);
        jta_answer.setBounds(230, 70, 100, 30);
        jb_next.setBounds(350, 70, 110, 30);
        answer_all.setBounds(50, 120, 400, 300);

        this.setJMenuBar(jm); // 添加菜单栏,不能设定位置,会自动放在最上部
        this.add(contentPanel);

        this.setTitle("在线答题系统");
        this.setSize(600, 500);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        item1.addActionListener(new ActionListener() 
            public void actionPerformed(ActionEvent arg0) 
                FileOutputStream outSTr = null;
                BufferedOutputStream Buff = null;
                boolean flag = true;
                File file;
                // String test ;
                do 
                    // test = "test"+count;

                    String inputValue = JOptionPane.showInputDialog("Please input file name");
                    file = new File(inputValue + "test.txt");
                    if (!file.exists()) 
                        // 创建文件
                        try 

                            flag = file.createNewFile();

                         catch (IOException e) 
                            e.printStackTrace();

                        
                        flag = false;
                     else 

                        JOptionPane.showMessageDialog(null, "该文件名已存在,请重新输入", "ERROR", JOptionPane.ERROR_MESSAGE);
                        flag = true;
                    
                 while (flag);
                // 写入文件
                String u_answer;
                try 
                    outSTr = new FileOutputStream(file);
                    Buff = new BufferedOutputStream(outSTr);
                    System.out.println("选择是后执行的代码" + user_zongti.size() + user_answer.size());
                    for (int i = 0; i < user_zongti.size(); i++) 
                        try 
                            Buff.write(user_zongti.get(i).getBytes());
                            Buff.write("    ".getBytes());
                            u_answer = user_answer.get(i);
                            if (u_answer.equals(""))
                                u_answer = "没有作答";

                            Buff.write(u_answer.getBytes());
                            Buff.write("
".getBytes());
                         catch (IOException e) 
                            e.printStackTrace();
                            i--;
                        
                    
                    Buff.flush();
                    Buff.close();

                 catch (IOException e) 
                    e.printStackTrace();
                
                try 
                    outSTr.close();
                 catch (IOException e) 
                    e.printStackTrace();
                
                user_zongti.clear();
                user_answer.clear();
            
        );

        project.addActionListener(new ActionListener() 
            public void actionPerformed(ActionEvent arg0) 
                arithmetic art = new arithmetic();
                true_answer = art.list_answer;
                jta_timu = art.list_timu;
                jta_zong = art.list;
                answer_count = 1;
                answer_all.setText("");
                for (int i = 0; i < art.list_timu.size(); i++) 
                    user_zongti.add(jta_zong.get(i));
                    answer_all.append(jta_timu.get(i));
                    answer_all.append("
");
                
                num_answer.setText("" + answer_count + "");
                jta.setText(jta_timu.get(answer_count - 1));
                answer_count++;

            
        );
        jb_next.addActionListener(new ActionListener() 
            public void actionPerformed(ActionEvent arg0) 
                String temp;
                temp = jta_answer.getText();

                if (jta.getText().equals("")) 
                    JOptionPane.showMessageDialog(null, "错误,请导入题库", "错误", JOptionPane.ERROR_MESSAGE);
                    return;
                
                jta_answer.setText("");
                if (answer_count <= 10) 
                    if (isInteger(temp)) 

                        user_answer.add(temp);
                        System.out.println("选择否后执行的代码" + temp + "user_size" + user_answer.size());
                        num_answer.setText("" + answer_count + "");
                        jta.setText(jta_timu.get(answer_count - 1));
                        answer_count++;
                     else 
                        JOptionPane.showMessageDialog(null, "错误", "请输入数字", JOptionPane.ERROR_MESSAGE);
                    
                 else 
                    user_answer.add(temp);
                    System.out.println("选择否后执行的代码" + temp + "user_size" + user_answer.size());
                    answer_fenshu = 0;
                    for (int i = 0; i < user_answer.size(); i++) 
                        if (user_answer.get(i).equals(true_answer.get(i)))
                            answer_fenshu += 5;
                    
                    user_fenshu.add(answer_fenshu);
                    Object[] options =  "", "取消" ;
                    int res = JOptionPane.showOptionDialog(null, "是否查看成绩", "答题完毕", JOptionPane.DEFAULT_OPTION,
                            JOptionPane.YES_NO_OPTION, null, options, options[0]);
                    if (res == JOptionPane.YES_OPTION) 
                        chart ct = new chart(user_fenshu);
                        ct.setVisible(true);

                     else 
                        Object[] option =  "", "取消" ;
                        int res1 = JOptionPane.showOptionDialog(null, "是否退出程序", "终止框", JOptionPane.DEFAULT_OPTION,
                                JOptionPane.YES_NO_OPTION, null, option, option[0]);

                        if (res1 == JOptionPane.YES_OPTION) 
                            dispose();
                            System.exit(0);

                         else 

                        

                    

                

            
        );

        item2.addActionListener(new ActionListener() 
            public void actionPerformed(ActionEvent e) 
                dispose();
                System.exit(0);
            
        );

    

    public static boolean isInteger(String str) 
        for (int i = str.length(); --i >= 0;) 
            if (!Character.isDigit(str.charAt(i))) 
                return false;
            
        
        return true;
    

技术分享图片

技术分享图片

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

 学习内容:

Java语言特点与开发环境配置(第1章、第2章)

Java基本程序结构(第3章)

Java面向对象程序结构(第4章、第5章、第6章)

 类、类间关系、类图

Java JDK预定义类/接口及其API(String-第3章、 Arrays-第3章、Files-第3章62页、LocalDate-第4章、 Object-第5章、对象包装器-第5章、Comparator-第6章、 异常类-第7章、ArrayList-第5+8章、第9章、第10-12章、 第14章)    

Java异常处理编程模型    

Java GUI编程模型

Java并发程序设计(第14章)

 Java应用程序部署(第13章) 

学习方法:

课堂上老师讲授知识、课下自主学习

理论课:课前自主学习,通过观看视频和看书相结合的方法,老师总结知识,解除疑惑

实验课:通过阅读并运行示例程序学习。和理论知识结合起来作兴应当更改。课后完成老师不知道实验作业

通过老师提供分享的资料自主学习,遇到的问题找老师或助教学长解决。

学习心得:

通过本学期的学习,掌握了java的一些基本知识,对java有了一定的深入了解,但是在实际问题的解决当中依然有问题。老师和学长还介绍了Java在未来的学习方向和发展,日后还是很有必要更深入更熟练的去学习运用Java知识,感谢老师和助教学长一学期的悉心教导,帮助我完成了java学习的任务。在这一学期的学习中我也收获了很多。助教学长是我们的良师益友,很多知识学长一演示我们就有点明白了,比直接用课本讲授更容易让人接受。

     

201771010111李瑞红《第十二周学习总结》(代码片段)

实验十二 图形程序设计实验时间2018-11-14第一部分:理论知识总结1.Java的抽象口工具箱(AbstractWindowToolkit,AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类。2.AWT库处理用户界面元素的方法:把图形元素的创... 查看详情

201771010111李瑞红《第十一周学习总结》(代码片段)

  实验十一  集合实验时间2018-11-8第一部分:理论总结1.栈(Stack)也是一种特殊的线性表,是一种后进先出(LIFO)的结构。栈是限定仅在表尾进行插入和删除运算的线性表,表尾称为栈顶(top),表头称为(bottom)。栈的物... 查看详情

李瑞红201771010111《面向对象程序设计(java)》第一周学习总结

李瑞红201771010111《面向对象程序设计(java)》第一周学习总结第一部分:课程准备部分填写课程学习平台注册账号,平台名称注册账号博客园:www.cnblogs.com3451487460程序设计评测:https://pintia.cn/[email protected]代码托管平台:htt... 查看详情

201771010111李瑞红《第十七周学习总结》(代码片段)

实验十七 线程同步控制实验时间2018-12-10一、理论部分1.Java通过多线程的并发运行提高系统资源利用率,改善系统性能。2.假设有两个或两个以上的线程共享某个对象,每个线程都调用了改变该对象类状态的方法,就会引起的... 查看详情

李瑞红201771010111《第九周学习总结》(代码片段)

实验九异常、断言与日志实验时间2018-10-25第一部分:理论部分 1.异常:在程序的执行过程中所发生的异常事件,它中断指令的正常执行。Java的异常处理机制可以控制程序从错误产生的位置转移到能够进行错误处理的位置。&nbs... 查看详情

李瑞红201771010111《面向对象程序设计(java)》第四周学习总结

 实验四:类与对象的定义及使用第一部分:理论知识学习1.类与对象概念 (1)类是构造对象的模板或蓝图,由类构造对象的过程称为创建类的实例。 (2)对象:即数据,对象有三个特性,行为、状态、标识。2.类与对象的... 查看详情

李瑞红201771010111第二周实验总结报告

第一部分:理论知识学习本章主要内容是java的基本程序设计结构,包括以下几个方面的知识,(1)标识符、关键字、注释的相关知识;(2)数据类型;(3)变量;(4)运算符;(5)类型转换;(6)字符串;(7)输入输出;(8))控制流程;(9)大数... 查看详情

-考研第十八周总结-

-考研第十八周总结-暑假番外呀哈【本周完成】英语单词到L了660第一阶段做完了,改了二重积分的错题高数讲义听了3次课,跟着做课后习题以及配套小册子政治看书+听课(到了马原第二章第7次课)oj做了6道题... 查看详情

李瑞红201771010111(代码片段)

实验六继承定义与使用实验时间2018-9-2第一部分:理论知识第五章1.类、超类和子类5.2Object:所有类的超类5.3泛型数组列表5.4对象包装器和自动打包5.5参数数量可变的方法5.6枚举类5.7继承设计的技巧5.1类、超类和子类5.2Object:所... 查看详情

达拉草201771010105《面向对象程序设计(java)》第十八周学习总结(代码片段)

达拉草201771010105《面向对象程序设计(java)》第十八周学习总结实验十八 总复习实验时间2018-12-301、实验目的与要求(1)综合掌握java基本程序结构;(2)综合掌握java面向对象程序设计特点;(3)综合掌握javaGUI程序设计结构;(4)综... 查看详情

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

 《面向对象程序设计(java)》第十八周学习总结第一部分:理论知识学习部分第二部分:实验部分实验名称:实验十八 总复习1、实验目的与要求(1)综合掌握java基本程序结构;(2) 综合掌握java面向对象程序设计特点... 查看详情

201771010108-韩腊梅-第十八周学习总结(代码片段)

实验十八 总复习1、实验目的与要求        (1)综合掌握java基本程序结构;(2)综合掌握java面向对象程序设计特点;(3)综合掌握javaGUI程序设计结构;(4)综合掌握java多线程编程模型;(5)综合编程练习... 查看详情

狄慧201771010104《面向对象程序设计(java)》第十八周学习总结(代码片段)

实验十八 总复习实验时间2018-12-301、实验目的与要求(1)综合掌握java基本程序结构;(2) 综合掌握java面向对象程序设计特点;(3)综合掌握javaGUI 程序设计结构;(4)综合掌握java多线程编程模型;(5)综合编程练习。2、实验... 查看详情

201771010126王燕《面向对象程序设计(java)》第十八周学习总结(代码片段)

实验十八 总复习实验时间2018-12-301、实验目的与要求(1)综合掌握java基本程序结构;(2)综合掌握java面向对象程序设计特点;(3)综合掌握javaGUI程序设计结构;(4)综合掌握java多线程编程模型;(5)综合编程练习。2、实验内容和步... 查看详情

冯志霞201771010107《面向对象程序设计(java)》第十八周学习总结

 实验十八 总复习实验时间2018-12-301、实验目的与要求(1)综合掌握java基本程序结构;(2)综合掌握java面向对象程序设计特点;(3)综合掌握javaGUI程序设计结构;(4)综合掌握java多线程编程模型;(5)综合编程练习。2、实验内容... 查看详情

201771010109焦旭超《面向对象程序设计》第十八周学习总结(代码片段)

1、实验目的与要求(1)综合掌握java基本程序结构;(2) 综合掌握java面向对象程序设计特点;(3)综合掌握javaGUI 程序设计结构;(4)综合掌握java多线程编程模型;(5)综合编程练习。2、实验内容和步骤任务1:填写课程课后调查... 查看详情

2016710101192016-2017-2《java程序设计》第十八周学习心得

    这是最后一次的博客了,我有点不知该怎么写。从最开始的不习惯到现在的有点不想就这么结束。一学期的时间里,博客记录了我的Java学习,也让我对知识点的掌握有个了解,对我的复习有很大的帮助,知道... 查看详情

20177101010101白玛次仁《面向对象程序设计》第十八周学习总结(代码片段)

实验十八 总复习实验时间2018-12-301、实验目的与要求(1)综合掌握java基本程序结构;(2) 综合掌握java面向对象程序设计特点;(3)综合掌握javaGUI 程序设计结构;(4)综合掌握java多线程编程模型;(5)综合编程练习。2、实验... 查看详情