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

总复习纲要

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

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

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

4. 类、类间关系、类图

5. 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编程模型

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

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

第二部分:实验部分——实验十八  总复习

实验时间 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)  用户信息输入界面如下图所示:

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

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

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

 package jiemian;

 import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextArea; public class aaa { public static void main(String[] args) {
EventQueue.invokeLater(() -> {
JFrame frame = new FrameTest();
frame.setTitle("WangZT");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
});
}
}
class FrameTest extends JFrame { private JPanel panel;
private JRadioButton JRadioButton1,JRadioButton2;
private ButtonGroup ButtonGroup;
private JLabel JLabel;
private JTextArea fieldname,fieldadress;
private JCheckBox Read,dance,sing;
private JComboBox<String> JComboBox;
private JButton Button1,Button2;
public FrameTest() {
setSize(700,500);
panel=new JPanel();
panel.setLayout(null);
ButtonGroup=new ButtonGroup();
JRadioButton1=new JRadioButton("男",false); JRadioButton1.setBounds(130,330, 80, 50);
JRadioButton2=new JRadioButton("女",false); JRadioButton2.setBounds(130,300, 80,50);
ButtonGroup.add(JRadioButton1);
ButtonGroup.add(JRadioButton2);
addJLabel("性别:",100,300);
addJLabel("姓名:",100,50);
addJLabel("地址:",90,150);
addJLabel("资格:",400,50);
addJLabel("喜好:",400,150); fieldname=new JTextArea(1,1);fieldname.setBounds(150,70, 120, 30);fieldname.setLineWrap(true);
fieldadress=new JTextArea(5,3);fieldadress.setBounds(150,160, 130, 100);fieldadress.setLineWrap(true);
Read=new JCheckBox("读书");Read.setBounds(450,160,100,30);
dance=new JCheckBox("跳舞");dance.setBounds(450,180,100,30);
sing=new JCheckBox("唱歌");sing.setBounds(450,200,100,30);
JComboBox=new JComboBox<>();
JComboBox.addItem("研究生");
JComboBox.addItem("本科生");
JComboBox.addItem("专科生");
JComboBox.setBounds(500,65, 100, 20);
Button1 = new JButton("提交");Button1.setBounds(200, 400, 100, 35);
Button2 = new JButton("重置");Button2.setBounds(400, 400, 100, 35);
Button1.addActionListener(new Action1());
Button2.addActionListener(new Action2()); panel.add(Button2);
panel.add(Button1);
panel.add(JComboBox);
panel.add(Read);
panel.add(dance);
panel.add(sing);
panel.add(fieldname);
panel.add(fieldadress);
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:"+fieldname.getText()+"\n"+"address:"+fieldadress.getText());
System.out.println("Qualification:"+JComboBox.getSelectedItem());
System.out.println("Hobby:");
if(Read.isSelected()==true)System.out.print(Read.getText());
if(dance.isSelected()==true)System.out.print(dance.getText());
if(sing.isSelected()==true)System.out.print(sing.getText());
System.out.println("\n"+"sex:");
if(JRadioButton1.isSelected()==true)System.out.println(JRadioButton1.getText());
if(JRadioButton2.isSelected()==true)System.out.println(JRadioButton2.getText());
System.out.println("\n");
}
}
private class Action2 implements ActionListener {
public void actionPerformed(ActionEvent event) {
fieldname.setText(null);
fieldadress.setText(null);
Read.setSelected(false);
dance.setSelected(false);
sing.setSelected(false);
ButtonGroup.clearSelection();
JComboBox.setSelectedIndex(0);
}
} }

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

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

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

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

4.查询最小年龄人员信息;

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

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

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

 package shiwuzhou;

 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("第四组");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
});
} }

Out

 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)+"\n"+"年龄最小: "+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; } }

Main1

 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+"\t"+sex+"\t"+age+"\t"+ID+"\t"+birthplace+"\n"; } }

Person

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

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

9.利用计算机类,设计一个小学生100以内数的四则运算练习程序,由计算机随机产生10道加减乘除练习题,学生输入答案,由程序检查答案是否正确,每道题正确计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("第四组");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
});
} }

New

 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(); } }
}

Demo

  

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

第三部分:总结

  通过这一学期对Java程序设计这门课程的学习,不管是在知识层面还是能力提升方面,都对我有很大的帮助。尤其是在老师的积极关心和助教学长认真负责的帮助下,学到的东西不止课本上的那些知识,虽然课本的有些知识也还没吃透,但我觉得无论是老师上课为我们开拓的就业层面和未来发展层面的相关知识,还是助教学长给我们教授的编程技能。其重要性都高于课本所学的内容。所以,能通过这门课程认识两位良师益学长也可以说是非常Lucky了。

  统计这学期的个人专业能力提升数据,代码量也有个一万多行了,但是自己的能力还是很差,反思之后。首先,投入的学习时间还是太少,自主练习程度还不够。其次,没有认真进行课后反思,对自己的要求偏低。最后,指定的学习计划并没有很好的完成。  

  学习内容方面,在老师的划分梳理总结下,很厚的一本书我们有条理的循序渐进学习,成功学完大部分基础性知识。而且老师也为我们的以后发展做出了指导和引荐,让我们对自己有个大致定位和目标方向。而且,在老师新加入的学习模式当中,结对编程,助教演示,课上检测,课后答疑等都从不同方面提升我们的学习能力和专业能力。我个人觉得以后可以继续下去。

  学习方法和对大家的建议在以前的一篇博客当中总结的很完善,之后的之一段时间里也没有做太多变化,所以这里就不多废话了。

  学习心得,在我看来,学习是一个不断求知、不断探索、不断完善自己的过程,而兴趣则是最好的老师。而授课老师只是为你指引一个前进的方向,和在你走偏的时候帮你回归正道。自主学习才是王道,而老师对我们的培养也是抓住自主学习能力这一核心开展的。所谓“知之者不如好之者,好之者不如乐之者”,有了学习的兴趣,就有了学习的动力,就有信心学好一切。其次对学习要有一个正确的态度和认识。学习是成长的一部分,我们在学习中成长,同时也在成长中学习,因此我们不仅要学习新的知识,跟要学习如何做人,因为人的道德品行高于一切,人的高贵在于灵魂。只有态度端正了,目标明确了,才有前进的方向。

  我对老师不断跟进教学模式这一做法很是赞同,希望老师能将“不断革新课程模式,加入新的学习模式”,这一做法坚持下去。因为时代在变化,我们对知识的获取,学习,理解都会有着不同的变化。

  最后,祝老师学长和同窗们在新的一年继续努力,再创辉煌!

王之泰《面向对象程序设计(java)》课程学习总结的更多相关文章

  1. 201771010126 王燕《面向对象程序设计(java)》第二周学习总结

    201771010126 王燕<面向对象程序设计(java)>第二周学习总结 一.理论知识学习部分 3.1j简单 的java应用程序 标识符由字母.下划线.美元符号和数字组成, 且第一个符 ...

  2. 201771010118 马昕璐《面向对象程序设计java》第十二周学习总结

    第一部分:理论知识学习部分 用户界面:用户与计算机系统(各种程序)交互的接口 图形用户界面:以图形方式呈现的用户界面 AET:Java 的抽象窗口工具箱包含在java.awt包中,它提供了许多用来设计 ...

  3. 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结

    <面向对象程序设计Java>第八周学习总结   项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...

  4. 201771010118马昕璐《面向对象程序设计java》第八周学习总结

    第一部分:理论知识学习部分 1.接口 在Java程序设计语言中,接口不是类,而是对类的一组需求描述,由常量和一组抽象方法组成.Java为了克服单继承的缺点,Java使用了接口,一个类可以实现一个或多个 ...

  5. 201771010134杨其菊《面向对象程序设计java》第十周学习总结

    第8章泛型程序设计学习总结 第一部分:理论知识 主要内容:   什么是泛型程序设计                   泛型类的声明及实例化的方法               泛型方法的定义      ...

  6. 201771010134杨其菊《面向对象程序设计java》第九周学习总结

                                                                      第九周学习总结 第一部分:理论知识 异常.断言和调试.日志 1.捕获 ...

  7. 201771010134杨其菊《面向对象程序设计java》第八周学习总结

    第八周学习总结 第一部分:理论知识 一.接口.lambda和内部类:  Comparator与comparable接口: 1.comparable接口的方法是compareTo,只有一个参数:comp ...

  8. 20175215 2018-2019-2 第四周Java课程学习总结

    第五章学习内容 1.子类的继承性 (1)子类和父类在同一包中的继承性 如果子类和父类在同一个包中,那么,子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中 ...

  9. JAVA课程学习感想

    JAVA课程学习感想 在学习JAVA之前,我们学习了C语言,汇编语言,数据结构等等.虽然学习了这些,但对于JAVA来说,学习起来不是那么容易,所有的计算机语言有相似的地方,但他们更有不同的地方.对我来 ...

  10. THE LAST ONE!! 2017《面向对象程序设计》课程作业八

    THE LAST ONE!! 2017<面向对象程序设计>课程作业八 031602230 卢恺翔 GitHub传送门 题目描述 1.时间匆匆,本学期的博客作业就要结束了,是否有点不舍,是否 ...

随机推荐

  1. redis加固

    一.背景描述 1.漏洞描述 Redis 因配置不当存在未授权访问漏洞,可以被攻击者恶意利用. 在特定条件下,如果 Redis 以 root 身份运行,黑客可以给 root 账号写入 SSH 公钥文件, ...

  2. Django---框架简介和工程搭建

    Django框架 一.Django介绍 二.Django工程搭建 回到顶部 一.Django介绍 1.简介    Django的主要目的是简便.快速的开发数据库驱动的网站.它强调代码复用,多个组件可以 ...

  3. 3.2.2 SpringMVC配置式开发

    SpringMVC配置式开发 1. SpringMVC运行原理(执行过程) 2. 需求 用户提交一个请求, 服务端处理器接收到请求后, 给出一条信息,在相应页面中显示该条信息 3. 开发步骤 (1) ...

  4. Postman代码测试工具如何用?

    1.  1)get请求,参数为map时, postman的传参 2)参数为基本数据类型的参数时 postman传参: 3)当参数在接口中动态获取时 postman传参: 2.  1)post请求,参数 ...

  5. go基本语法

    1. 用var来定义变量, 类型被纺织在变量名的后面. var i int 并且运行时默认初始化为二进制0 var i , y int var x string, y int2. 显示初始化值的时候, ...

  6. 获取Button脚本挂载的事件名

    (function(){ var Super = function(){}; Super.prototype = cc.Button.prototype; //实例化原型 Super.prototyp ...

  7. DeleteFile 删除文件

    #include <Windows.h> #include <tchar.h> int WINAPI _tWinMain(HINSTANCE hInstance, HINSTA ...

  8. GET和POST两种基本请求方法(转自博主--在途中#)

    GET和POST两种基本请求方法的区别 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过req ...

  9. JAVA String中文乱码

    System.out.println(str); String str1 = new String(str.getBytes("ISO-8859-1"), "utf-8& ...

  10. CentOS 7 安装samba服务

    STEP 1. 安装 #安装 [root@study ~]yum install smaba [root@study ~]systemctl start smb nmb STEP 2. 建立共享目录以 ...