Java学习总结

Posted 2017xinghui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习总结相关的知识,希望对你有一定的参考价值。

实验十八  总复习

 

1、实验目的与要求

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

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

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

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

(5) 综合编程练习

 

2、实验内容和步骤

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

任务2:综合编程练习

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

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

技术分享图片

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

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

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

技术分享图片
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
import javax.swing.*;

public class Guiwork 
{
   public static void main(String[] args)
   {
      EventQueue.invokeLater(() -> {
         JFrame frame = new FrameTest();
         frame.setTitle("produce by 杨野");
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         frame.setVisible(true);
      });
   }
}



class FrameTest extends JFrame
{
    
    private JPanel panel;
    private JTextArea text,text2;
    private JRadioButton JRadioButton1,JRadioButton2;
    private ButtonGroup ButtonGroup;
    private JLabel JLabel;
    private JCheckBox h1,h2,h3;
    private JComboBox<String> JComboBox;
    private JButton Button,Button2;
    
    
   public FrameTest()
   {
      setSize(700,500);
      panel=new JPanel();
      panel.setLayout(null);

      ButtonGroup=new ButtonGroup();
      JRadioButton1=new JRadioButton("Male",false);   JRadioButton1.setBounds(150,330, 80, 50);
      JRadioButton2=new JRadioButton("Female",false); JRadioButton2.setBounds(150,300, 80,50);
      ButtonGroup.add(JRadioButton1);
      ButtonGroup.add(JRadioButton2);
      
      addJLabel("sex:",100,300);
      addJLabel("name:",100,50);
      addJLabel("address:",100,150);
      addJLabel("Qualification:",400,50);
      addJLabel("Hobby:",400,150);
      
      
      text=new JTextArea(1,1);text.setBounds(150,70, 120, 30);text.setLineWrap(true);
      text2=new JTextArea(5,3);text2.setBounds(150,160, 130, 100);text2.setLineWrap(true);
      
      
      h1=new JCheckBox("Reading");h1.setBounds(450,160,100,30);
      h2=new JCheckBox("dancing");h2.setBounds(450,180,100,30);
      h3=new JCheckBox("singing");h3.setBounds(450,200,100,30);

      
      JComboBox=new JComboBox<>();
      JComboBox.addItem("Graduate");
      JComboBox.addItem("Graduate1");
      JComboBox.addItem("Graduate2");
      JComboBox.setBounds(500,65, 100, 20);
      
      Button = new JButton("提交");Button.setBounds(200, 400, 100, 35);
      Button2 = new JButton("重置");Button2.setBounds(400, 400, 100, 35);

      Button.addActionListener(new Action1());
      Button2.addActionListener(new Action2());
      
      panel.add(h1);
      panel.add(h2);
      panel.add(h3);
      panel.add(Button);
      panel.add(Button2);
      panel.add(JComboBox);
      panel.add(text);
      panel.add(text2);
      panel.add(JRadioButton1);
      panel.add(JRadioButton2);
      add(panel);
      
      
   }
   
   
   public void addJLabel(String n,int a,int b)
   {
       JLabel = new JLabel(n);
       JLabel.setBounds(a,b,100,50);
       panel.add(JLabel);
   }
   
   private class Action1 implements ActionListener
   {
   public void actionPerformed(ActionEvent event)
       {        
       System.out.println("name:"+text.getText()+"
"+"address:"+text2.getText());
       System.out.println("Qualification:"+JComboBox.getSelectedItem());
       System.out.println("Hobby:");
       if(h1.isSelected()==true)System.out.print(h1.getText());
       if(h2.isSelected()==true)System.out.print(h2.getText());
       if(h3.isSelected()==true)System.out.print(h3.getText());
       System.out.println("
"+"sex:");
       if(JRadioButton1.isSelected()==true)System.out.println(JRadioButton1.getText());
       if(JRadioButton2.isSelected()==true)System.out.println(JRadioButton2.getText());
       System.out.println("
");
       }
   } 
   private class Action2 implements ActionListener
   {
   public void actionPerformed(ActionEvent event)
       {        
       text.setText(null);
       text2.setText(null);
       h1.setSelected(false);
       h2.setSelected(false);
       h3.setSelected(false);
       ButtonGroup.clearSelection();
       JComboBox.setSelectedIndex(0);
       }
   }   
}
Gui界面

 

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

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

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

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

查询最小年龄人员信息;

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

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

输入身份证信息,查询所提供身份证号的人员信息,要求输入一个身份证数字时,

查询界面就显示满足查询条件的查询结果,且随着输入的数字的增多,查询匹配的范围逐渐缩小

 

技术分享图片
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Toolkit;

import javax.swing.JFrame;

public class Out {

     public static void main (String args[])
        {
             Toolkit t=Toolkit.getDefaultToolkit();
            Dimension s=t.getScreenSize(); 
            EventQueue.invokeLater(() -> {
                JFrame frame = new Main1();
                frame.setBounds(0, 0,(int)s.getWidth(),(int)s.getHeight());
                frame.setTitle("produce by 杨野");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
             });        
        }
 
}
View Code

 

技术分享图片
public class Person implements Comparable<Person> {
private String name;
private String ID;
private int age;
private String sex;
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 int getage() {

return age;
}
public void setage(int age) {
this.age= age;
}
public String getsex() {
return sex;
}
public void setsex(String sex) {
this.sex= sex;
}
public String getbirthplace() {
return birthplace;
}
public void setbirthplace(String birthplace) {
this.birthplace= birthplace;
}

public int compareTo(Person o) {
   return this.name.compareTo(o.getname());

}

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

}



}
View Code
技术分享图片
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
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.*;
import java.util.Timer;
import javax.swing.*;

public class Main1 extends JFrame
{
    private static ArrayList<Person> Personlist;
    
    
    Scanner scanner = new Scanner(System.in);
    File file = new File("D:\\身份证号.txt");
    
    private JPanel Panel;
    private JLabel JLabel1;
    private JButton Button,Button2,Button3;
    private JTextArea text,text1,text2,text3;
    boolean tru=true;
    
    
    
    public  Main1() {

        
        Panel = new JPanel();Panel.setLayout(null);
        Button = new JButton("1:按姓名字典序输出人员信息");
        Button2 = new JButton("2:查询最大年龄与最小年龄人员信息");
        Button3 = new JButton("查询相近年龄");
        JLabel1 = new JLabel("输入身份证号或者地址查询");JLabel1.setBounds(900, 50, 400, 30);
        
        text=new JTextArea(30,80);text.setBounds(50, 180, 700, 700);
        text1=new JTextArea(1,30);text1.setBounds(900, 80, 400, 30);
        text2=new JTextArea(30,80);text2.setBounds(900,180,700, 700);
        text3=new JTextArea(30,80);text3.setBounds(420,100,200,40);
       
        Button.addActionListener(new Action());Button.setBounds(50,50,300,40);
        Button2.addActionListener(new Action1());Button2.setBounds(50,100,300,40);
        Button3.addActionListener(new Action2());Button3.setBounds(650,100,120,40);
        Panel.add(JLabel1);
        Panel.add(Button);
        Panel.add(Button2);
        Panel.add(Button3);
        Panel.add(text);
        Panel.add(text2);
        Panel.add(text1);
        Panel.add(text3);
        add(Panel);
        
        
        Timer timer = new Timer();      
        TimerTask timeTask=new TimerTask() {
            
             @Override
            public void run()
             {             
                     // TODO Auto-generated method stub
                     text2.setText(null);
                     String place=text1.getText().toString().trim();
                     for (int i = 0; i <Personlist.size(); i++) 
                     {
                         
                         String Str=(String)Personlist.get(i).getbirthplace();
                         if(Str.contains(place)&&!place.equals("")) 
                             {
                             text2.append(Personlist.get(i).toString());
                             }  
                    }      
                     for (int i = 0; i <Personlist.size(); i++) 
                     {
                         
                         String Str=(String)Personlist.get(i).getID();
                         if(Str.contains(place)&&!place.equals("")) 
                             {
                             text2.append(Personlist.get(i).toString());
                             }  
                    }    
                     
            }
            
        };timer.schedule(timeTask, 0,100);
     
        Personlist = new ArrayList<>();       
        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 place =linescanner.nextLine();
                Person Person = new Person();
                Person.setname(name);
                Person.setID(ID);
                Person.setsex(sex);
                int a = Integer.parseInt(age);
                Person.setage(a);
                Person.setbirthplace(place);
                Personlist.add(Person);

            }
        } catch (FileNotFoundException e) {
            System.out.println("查找不到信息");
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("信息读取有误");
            e.printStackTrace();
        }
 
        
    }
    
    


    private class Action implements ActionListener
    {
    public void actionPerformed(ActionEvent event)
        {        
         text.setText(null);
         Collections.sort(Personlist);
         text.append(Personlist.toString());
        }

    }         

    private class Action1 implements ActionListener
        {
        public void actionPerformed(ActionEvent event)
            {        
            text.setText(null);
            int max=0,min=100;int j,k1 = 0,k2=0;
            for(int i=1;i<Personlist.size();i++)
            {
                j=Personlist.get(i).getage();
               if(j>max)
               {
                   max=j; 
                   k1=i;
               }
               if(j<min)
               {
                   min=j; 
                   k2=i;
               }
            }  
            text.append("年龄最大:   "+Personlist.get(k1)+"
"+"年龄最小:  "+Personlist.get(k2));     
            }
   
        }          

    private class Action2 implements ActionListener
    {
    public void actionPerformed(ActionEvent event)
        {        
         text.setText(null);
         int a = Integer.parseInt(text3.getText().toString().trim());         
         int d_value=a-Personlist.get(agenear(a)).getage();
         
         for (int i = 0; i < Personlist.size(); i++)
         {
             int p=Personlist.get(i).getage()-a;
            
             if(p==d_value||-p==d_value) text.append(Personlist.get(i).toString());
         } 
        }

    } 
    
    
    public static int agenear(int age) {
        
        int j=0,min=53,d_value=0,k=0;
         for (int i = 0; i < Personlist.size(); i++)
         {
             d_value=Personlist.get(i).getage()-age;
             if(d_value<0) d_value=-d_value; 
             if (d_value<min) 
             {
                min=d_value;
                k=i;
             }

          }    return k;
         
      }

}
JFrame

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

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

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

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

技术分享图片
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Toolkit;

import javax.swing.JFrame;

public class New {

     public static void main (String args[])
        {
             Toolkit t=Toolkit.getDefaultToolkit();
            Dimension s=t.getScreenSize(); 
            EventQueue.invokeLater(() -> {
                JFrame frame = new Demo();
                frame.setBounds(0, 0,(int)s.getWidth()/2,(int)s.getHeight()/2);
                frame.setTitle("produce by 杨野");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
             });        
        }
 
}
View Code
技术分享图片
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Collections;
import java.util.Scanner;

import javax.swing.*;

import java.math.*;


public class Demo extends JFrame {
    
    private String[] c=new String[10];
    private String[] c1=new String[10];
    private int[] list=new int[10];
    int i=0,i1=0,sum = 0;
    private PrintWriter out = null;
    private JTextArea text,text1;
    private int counter;
    
    public Demo()  {
        JPanel Panel = new JPanel();Panel.setLayout(null);
        JLabel JLabel1=new JLabel("");JLabel1.setBounds(500, 800, 400, 30);JLabel1.setFont(new Font("Courier",Font.PLAIN,35));
        JButton Button = new JButton("生成题目");Button.setBounds(50,150,150,50);Button.setFont(new Font("Courier",Font.PLAIN,20)); Button.addActionListener(new Action());
        JButton Button2 = new JButton("确定答案");Button2.setBounds(300,150,150,50);Button2.setFont(new Font("Courier",Font.PLAIN,20));Button2.addActionListener(new Action1());
        JButton Button3 = new JButton("读出文件");Button3.setBounds(500,150,150,50);Button3.setFont(new Font("Courier",Font.PLAIN,20));Button3.addActionListener(new Action2());
         text=new JTextArea(30,80);text.setBounds(30, 50, 200, 50);text.setFont(new Font("Courier",Font.PLAIN,35));
         text1=new JTextArea(30,80);text1.setBounds(270, 50, 200, 50);text1.setFont(new Font("Courier",Font.PLAIN,35));

         Panel.add(text);
         Panel.add(text1);

         Panel.add(Button);
         Panel.add(Button2);
         Panel.add(Button3);
         Panel.add(JLabel1);
         add(Panel);
         
         
         


           
                  
    }
    
    private class Action implements ActionListener
    {
    public void actionPerformed(ActionEvent event)
        {        
        text1.setText("0");
        if(i<10) {
        
        int a = 1+(int)(Math.random() * 99);
        int b = 1+(int)(Math.random() * 99);
        int m= (int) Math.round(Math.random() * 3);
      switch(m)
      {
      case 0:
          while(a<b){  b = (int) Math.round(Math.random() * 100);a = (int) Math.round(Math.random() * 100); }  
          c[i]=(i+":"+a+"/"+b+"=");
            list[i]=Math.floorDiv(a, b);
            text.setText(i+":"+a+"/"+b+"=");
            i++;
            
          break; 
      case 1:
          c[i]=(i+":"+a+"*"+b+"=");
          list[i]=Math.multiplyExact(a, b);
          text.setText(i+":"+a+"*"+b+"=");        
         i++;
          break;
      case 2:
          c[i]=(i+":"+a+"+"+b+"=");
          list[i]=Math.addExact(a, b);
         text.setText(i+":"+a+"+"+b+"=");
         i++;
          break ;
      case 3:
          while(a<=b){  b = (int) Math.round(Math.random() * 100);a = (int) Math.round(Math.random() * 100); }    
          c[i]=(i+":"+a+"-"+b+"=");
          text.setText(i+":"+a+"-"+b+"=");
          list[i]=Math.subtractExact(a, b);i++;

          break ;
          }
        }
      }
    }      
    private class Action1 implements ActionListener
    {
    public void actionPerformed(ActionEvent event)
        {    
        if(i<10) {
        text.setText(null);        
        String daan=text1.getText().toString().trim();
        int a = Integer.parseInt(daan);
        if(text1.getText()!="") {
         if(list[i1]==a) sum+=10;
         }
        
         c1[i1]=daan;
         
         i1++;
         
        }
        }

    }      
    

    private class Action2 implements ActionListener
    {
    public void actionPerformed(ActionEvent event)
        {
         
        try {
            out = new PrintWriter("text.txt");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        for(int counter=0;counter<10;counter++)
        {
            out.println(c[counter]+c1[counter]);
        }
        out.println("成绩"+sum);
        out.close();

        }

    }   
}
View Code

 

任务3:本学期课程已结束,请汇总《面向对象程序设计课程学习进度条》的数据,统计个人专业能力提升的数据。

并从学习内容、学习方法、学习心得几个方面进行课程学习总结,也希望你对课程的不足提出建议和意见。

 

第一章 Java程序设计概述

第二章 程序设计环境

第三章  Java基本程序设计结构

第四章 对象与类

第五章 继承

第六章 接口 lambda表达式与内部类

第七章  异常断言与日志

第八章 泛型程序设计

第九章 集合

第十章 图形程序设计

第十一章 事件处理

第十二章 Swing用户界面总结

第十三章 部署Java应用程序

第十四章 并发

这是这个学期学过的知识,在其中有掌握的,有生疏的,还有不曾了解过的

现在经过一学期的努力勉强达到了入门的标准,自己所构造的代码有上千行了

浏览过的代码有上万行,每一次新的学习和理解知识来自不同的途径,

课堂,网络,书本,一个问题努力几个小时后解决后的辛苦与喜悦

未曾解决问题困扰与失落,后者永远多于前者,当然过不去就要绕着走

或者叫人帮忙一起努力,众人拾柴火焰高,一起努力总要容易一点的。

偶然间看见博客园的园龄也四个月了,也就是说学习这门语言也四个月了

交的作业也有很多份了,关于java这门课程也就是这样,这学期就到此为止

下学期的课程还会继续深入学习。-----关于java课程感想

 

以上是关于Java学习总结的主要内容,如果未能解决你的问题,请参考以下文章

Java Web学习总结JSP

201621123048《Java程序设计》第九周学习总结

201621123037 《Java程序设计》第9周学习总结

201621123062《java程序设计》第九周作业总结

201621123057 《Java程序设计》第9周学习总结

学号:201521123116 《java程序设计》第八周学习总结