201771010112罗松《面向对象程序设计(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)點擊窗口關閉,程序退出。
package 圖形用戶界面;import java.awt.EventQueue;import javax.swing.JFrame;public class Gui {public static void main(String[] args){EventQueue.invokeLater(() -> {JFrame frame = new FrameTest();frame.setTitle("羅松");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);});}}Gui package 圖形用戶界面;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.*; import javax.swing.*;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()+"\n"+"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("\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){ text.setText(null);text2.setText(null);h1.setSelected(false);h2.setSelected(false);h3.setSelected(false);ButtonGroup.clearSelection();JComboBox.setSelectedIndex(0);}} private class Action21 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);}} }FrameTest?
練習2:采用GUI界面設計以下程序:
l?編制一個程序,將身份證號.txt?中的信息讀入到內存中;
l?按姓名字典序輸出人員信息;
l?查詢最大年齡的人員信息;
l?查詢最小年齡人員信息;
l?輸入你的年齡,查詢身份證號.txt中年齡與你最近人的姓名、身份證號、年齡、性別和出生地;
l?查詢人員中是否有你的同鄉。
l?輸入身份證信息,查詢所提供身份證號的人員信息,要求輸入一個身份證數字時,查詢界面就顯示滿足查詢條件的查詢結果,且隨著輸入的數字的增多,查詢匹配的范圍逐漸縮小。
package unsynch;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("F:\\身份證號.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() {@Overridepublic void run(){ // TODO Auto-generated method stubtext2.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;}} package unsynch;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);}); }} package unsynch;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";}}練習3:采用GUI界面設計以下程序
l?編寫一個計算器類,可以完成加、減、乘、除的操作
l?利用計算機類,設計一個小學生100以內數的四則運算練習程序,由計算機隨機產生10道加減乘除練習題,學生輸入答案,由程序檢查答案是否正確,每道題正確計10分,錯誤不計分,10道題測試結束后給出測試總分;
l?將程序中測試練習題及學生答題結果輸出到文件,文件名為test.txt。
import java.awt.Dimension; import java.awt.EventQueue; import java.awt.Toolkit;import javax.swing.JFrame;public class main {public static void main (String args[]){Toolkit t=Toolkit.getDefaultToolkit();Dimension s=t.getScreenSize(); EventQueue.invokeLater(() -> {JFrame frame = new nic();frame.setBounds(0, 0,(int)s.getWidth()/2,(int)s.getHeight()/2);frame.setTitle("大師");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}); }} 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 nic extends JFrame {private String[] c=new String[10];private String[] c1=new String[11];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 nic() {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<11) {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 1:while(a<b){ b = (int) Math.round(Math.random() * 100);a = (int) Math.round(Math.random() * 100); } c[i]=((i+1)+":"+a+"/"+b+"=");list[(i+1)]=Math.floorDiv(a, b);text.setText((i+1)+":"+a+"/"+b+"=");i++;break; case 2:c[i]=((i+1)+":"+a+"*"+b+"=");list[(i+1)]=Math.multiplyExact(a, b);text.setText((i+1)+":"+a+"*"+b+"="); i++;break;case 3:c[i]=((i+1)+":"+a+"+"+b+"=");list[(i+1)]=Math.addExact(a, b);text.setText((i+1)+":"+a+"+"+b+"=");i++;break ;case 4:while(a<=b){ b = (int) Math.round(Math.random() * 100);a = (int) Math.round(Math.random() * 100); } c[i]=((i+1)+":"+a+"-"+b+"=");text.setText((i+1)+":"+a+"-"+b+"=");list[(i+1)]=Math.subtractExact(a, b);i++;break ;}}}} private class Action1 implements ActionListener{public void actionPerformed(ActionEvent event){ if(i<10) {String daan=text1.getText().toString().trim();int a = Integer.parseInt(daan);if(text1.getText()!=" ") {if(list[i1]==a) sum+=10;}c1[i1]=daan;i1++;}}}任務3:本學期課程已結束,請匯總《面向對象程序設計課程學習進度條》的數據,統計個人專業能力提升的數據。并從學習內容、學習方法、學習心得幾個方面進行課程學習總結,也希望你對課程的不足提出建議和意見。
實驗總結:
一學期的java課結束了,收獲還是挺多的,以后在空閑時間還會繼續學習java。
?
轉載于:https://www.cnblogs.com/xuezhiqian/p/10199491.html
總結
以上是生活随笔為你收集整理的201771010112罗松《面向对象程序设计(java)》第十八周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 精品软件 推荐 Able2Extract
- 下一篇: jpa,分析duid参数,当前用户的最大