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)用户点击提交按钮时,用户输入信息显示控制台界面;

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

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

package 练习一;

import java.awt.EventQueue;

import javax.swing.JFrame;

public class Main {
    public static void main(String[] args) {
        EventQueue.invokeLater(() -> {
            DemoJFrame page = new DemoJFrame();
        });
    }
}

Main

package 练习一;

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

WinCenter

package 练习一;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.BorderFactory;
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.JTextField;

public class DemoJFrame extends JFrame {
    private JPanel jPanel1;
    private JPanel jPanel2;
    private JPanel jPanel3;
    private JPanel jPanel4;
    private JTextField fieldname;
    private JComboBox comboBox;
    private JTextField fieldadress;
    private ButtonGroup bg;
    private JRadioButton Male;
    private JRadioButton Female;
    private JCheckBox read;
    private JCheckBox sing;
    private JCheckBox dance;

    public DemoJFrame() {
        // 设置窗口大小
        this.setSize(800, 400);
        // 设置可见性
        this.setVisible(true);
        // 设置标题
        this.setTitle("用户信息采集");
        // 设置关闭操作
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        // 设置窗口居中
        WinCenter.center(this);
        // 创建四个面板对象
        jPanel1 = new JPanel();
        setJPanel1(jPanel1);
        jPanel2 = new JPanel();
        setJPanel2(jPanel2);
        jPanel3 = new JPanel();
        setJPanel3(jPanel3);
        jPanel4 = new JPanel();
        setJPanel4(jPanel4);
        // 设置容器的为流布局
        FlowLayout flowLayout = new FlowLayout();
        this.setLayout(flowLayout);
        // 将四个面板添加到容器中
        this.add(jPanel1);
        this.add(jPanel2);
        this.add(jPanel3);
        this.add(jPanel4);

    }

    /*
     * 设置面一
     */
    private void setJPanel1(JPanel jPanel) {
        // TODO 自动生成的方法存根
        jPanel.setPreferredSize(new Dimension(700, 45));
        // 给面板的布局设置为网格布局 一行4列
        jPanel.setLayout(new GridLayout(1, 4));

        JLabel name = new JLabel("name:");
        name.setSize(100, 50);
        fieldname = new JTextField("");
        fieldname.setSize(80, 20);

        JLabel study = new JLabel("qualification:");
        comboBox = new JComboBox();
        comboBox.addItem("初中");
        comboBox.addItem("高中");
        comboBox.addItem("本科");
        jPanel.add(name);
        jPanel.add(fieldname);
        jPanel.add(study);
        jPanel.add(comboBox);

    }

    /*
     * 设置面板二
     */
    private void setJPanel2(JPanel jPanel) {
        // TODO 自动生成的方法存根
        jPanel.setPreferredSize(new Dimension(700, 50));
        // 给面板的布局设置为网格布局 一行4列
        jPanel.setLayout(new GridLayout(1, 4));

        JLabel name = new JLabel("address:");
        fieldadress = new JTextField();
        fieldadress.setPreferredSize(new Dimension(150, 50));

        JLabel study = new JLabel("hobby:");
        JPanel selectBox = new JPanel();
        selectBox.setBorder(BorderFactory.createTitledBorder(""));
        selectBox.setLayout(new GridLayout(3, 1));
        read = new JCheckBox("reading");
        sing = new JCheckBox("singing");
        dance = new JCheckBox("danceing");
        selectBox.add(read);
        selectBox.add(sing);
        selectBox.add(dance);
        jPanel.add(name);
        jPanel.add(fieldadress);
        jPanel.add(study);
        jPanel.add(selectBox);
    }

    /*
     * 设置面板三
     */
    private void setJPanel3(JPanel jPanel) {
        // TODO 自动生成的方法存根
        jPanel.setPreferredSize(new Dimension(700, 150));
        FlowLayout flowLayout = new FlowLayout(FlowLayout.LEFT);
        jPanel.setLayout(flowLayout);
        JLabel sex = new JLabel("性别:");
        JPanel selectBox = new JPanel();
        selectBox.setBorder(BorderFactory.createTitledBorder(""));
        selectBox.setLayout(new GridLayout(2, 1));
        bg = new ButtonGroup();
        Male = new JRadioButton("male");
        Female = new JRadioButton("female");
        bg.add(Male );
        bg.add(Female);
        selectBox.add(Male);
        selectBox.add(Female);
        jPanel.add(sex);
        jPanel.add(selectBox);

    }

    /*
     * 设置面板四
     */
    private void setJPanel4(JPanel jPanel) {
        // TODO 自动生成的方法存根
        jPanel.setPreferredSize(new Dimension(700, 150));
        FlowLayout flowLayout = new FlowLayout(FlowLayout.CENTER, 50, 10);
        jPanel.setLayout(flowLayout);
        jPanel.setLayout(flowLayout);
        JButton sublite = new JButton("提交");
        JButton reset = new JButton("重置");
        sublite.addActionListener((e) -> valiData());
        reset.addActionListener((e) -> Reset());
        jPanel.add(sublite);
        jPanel.add(reset);
    }

    /*
     * 提交数据
     */
    private void valiData() {
        // TODO 自动生成的方法存根
        // 拿到数据
        String name = fieldname.getText().toString().trim();
        String xueli = comboBox.getSelectedItem().toString().trim();
        String address = fieldadress.getText().toString().trim();
        System.out.println(name);
        System.out.println(xueli);
        String hobbystring="";
        if (read.isSelected()) {
            hobbystring+="reading   ";
        }
        if (sing.isSelected()) {
            hobbystring+="singing   ";
        }
        if (dance.isSelected()) {
            hobbystring+="dancing  ";
        }
        System.out.println(address);
        if (Male.isSelected()) {
            System.out.println("male");
        }
        if (Female.isSelected()) {
            System.out.println("female");
        }
        System.out.println(hobbystring);
    }

    /*
     * 重置
     */
    private void Reset() {
        // TODO 自动生成的方法存根
        fieldadress.setText(null);
        fieldname.setText(null);
        comboBox.setSelectedIndex(0);
        read.setSelected(false);
        sing.setSelected(false);
        dance.setSelected(false);
        bg.clearSelection();
    }
}

DemoJFrame

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

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

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

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

查询最小年龄人员信息;

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

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

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

package 练习二;

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

public class IdTest {
    public static void main(String[] args) {
        EventQueue.invokeLater(() -> {
            JFrame frame = new Main();
            frame.setTitle("身份证信息查询");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        });
    }
}

IdTest

IdTest

package 练习二;

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

public class Main extends JFrame {
    private static ArrayList<Student> studentlist;
    private static ArrayList<Student> list;
    private JPanel panel;
    private JPanel buttonPanel;
    private static final int DEFAULT_WITH = 900;
    private static final int DEFAULT_HEIGHT = 600;

    public Main() {
        studentlist = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);
        File file = new File("G:\\身份证号.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 number = linescanner.next();
                String sex = linescanner.next();
                String age = linescanner.next();
                String province = linescanner.nextLine();
                Student student = new Student();
                student.setName(name);
                student.setnumber(number);
                student.setsex(sex);
                int a = Integer.parseInt(age);
                student.setage(a);
                student.setprovince(province);
                studentlist.add(student);

            }
        } catch (FileNotFoundException e) {
            System.out.println("文件找不到");
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("文件读取错误");
            e.printStackTrace();
        }
        panel = new JPanel();
        panel.setLayout(new BorderLayout());
        JTextArea A = new JTextArea();
        panel.add(A);
        add(panel, BorderLayout.NORTH);
        buttonPanel = new JPanel();

        buttonPanel.setLayout(new GridLayout(6, 2));
        JButton jButton = new JButton("字典排序");
        JButton jButton1 = new JButton("年龄最大和年龄最小");
        JLabel lab1 = new JLabel("寻找你的老乡");
        JTextField a1 = new JTextField();
        JLabel lab2 = new JLabel("寻找找同龄人:");
        JTextField a2 = new JTextField();
        JLabel lab3 = new JLabel("输入身份证号码查询信息:");
        JTextField a3 = new JTextField();
        JButton jButton2 = new JButton("退出");

        jButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Collections.sort(studentlist);
                A.setText(studentlist.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 < studentlist.size(); i++) {
                    j = studentlist.get(i).getage();
                    if (j > max) {
                        max = j;
                        k1 = i;
                    }
                    if (j < min) {
                        min = j;
                        k2 = i;
                    }

                }
               A.setText("年龄最大:" + studentlist.get(k1) + "年龄最小:" + studentlist.get(k2));
            }
        });
        jButton2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dispose();
                System.exit(0);
            }
        });
        a1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String find = a1.getText();
                String text="";
                String place = find.substring(0, 3);
                for (int i = 0; i < studentlist.size(); i++) {
                    if (studentlist.get(i).getprovince().substring(1, 4).equals(place)) {
                        text+="\n"+studentlist.get(i);
                        A.setText("老乡:" + text);
                    }
                }
            }
        });
        a2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String yourage = a2.getText();
                int a = Integer.parseInt(yourage);
                int near = agenear(a);
                int value = a - studentlist.get(near).getage();
                A.setText("年龄相近:" + studentlist.get(near));
            }
        });
        a3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                list = new ArrayList<>();
                Collections.sort(studentlist);
                String key = a3.getText();
                for (int i = 1; i < studentlist.size(); i++) {
                    if (studentlist.get(i).getnumber().contains(key)) {
                        list.add(studentlist.get(i));
                        A.setText("结果:\n" + list);

                    }
                }
            }
        });
        buttonPanel.add(jButton);
        buttonPanel.add(jButton1);
        buttonPanel.add(lab1);
        buttonPanel.add(a1);
        buttonPanel.add(lab2);
        buttonPanel.add(a2);
        buttonPanel.add(lab3);
        buttonPanel.add(a3);
        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 < studentlist.size(); i++) {
            value = studentlist.get(i).getage() - age;
            if (value < 0)
                value = -value;
            if (value < min) {
                min = value;
                k = i;
            }
        }
        return k;
    }

}

 Main

extends JFrame

package AA;

public class Student implements Comparable<Student> {

    private String name;
    private String number ;
    private String sex ;
    private int age;
    private String province;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getnumber() {
        return number;
    }
    public void setnumber(String number) {
        this.number = number;
    }
    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 getprovince() {
        return province;
    }
    public void setprovince(String province) {
        this.province=province ;
    }

    public int compareTo(Student o) {
       return this.name.compareTo(o.getName());
    }

    public String toString() {
        return  name+"\t"+sex+"\t"+age+"\t"+number+"\t"+province+"\n";
    }
}

Student

Student implements Comparable

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

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

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

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

package 练习三;

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 calculator ();
                frame.setBounds(0, 0,(int)s.getWidth()/2,(int)s.getHeight()/2);
                frame.setTitle("计算练习");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
             });
        }

}

Main

package 练习三;

import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import java.io.PrintWriter;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class calculator 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 calculator()  {
        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();

        }

    }
}

calculator

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

学习内容:

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

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

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

类、类间关系、类图

Java JDK预定义类/接口及其APIString-3章、Arrays-3章、Files-362页、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的同学,重心能放在动手上。

原文地址:https://www.cnblogs.com/lcjcc/p/10199573.html

时间: 2024-10-08 01:05:17

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

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

20182333 2019-2020-1 <数据结构与面向对象程序设计>第八周学习总结 教材学习内容总结 查找 1.查找:是一个过程,即在某个项目组中寻找某一项指定目标元素,或者确定该指定目标并不存在. 2.静态方法:也称为类方法,可以通过类名来调用,无需实例化该类的对象. 在方法声明中,通过使用static修饰符就可以把他声明为静态的. 3.泛型方法:要创建一个泛型方法,只需要在方法头的返回类型前插入一个泛型声明即可,其格式是:修饰符 返回类型 方法名(形参列表) { 方法体 }.例如: p

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

目录 20182306 2019-2020-1 <数据结构与面向对象程序设计>第八周学习总结 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错题总结 结对及互评 评分标准 点评模板: 点评过的同学博客和代码 其他(感悟.思考等,可选) 学习进度条 参考资料 20182306 2019-2020-1 <数据结构与面向对象程序设计>第八周学习总结 教材学习内容总结 查找 线性查找即按顺序从前向后一个一个进行查找,但是为了提高代码运行效率,可

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

20182332 2019-2020-1 <数据结构与面向对象程序设计>第八周学习总结 教材学习内容总结 查找: 顺序查找: 顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位.适用于线性表的顺序存储结构和链式存储结构. 缺点:查找效率低. 二分查找: 将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分.通过一次比较,

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

 <面向对象程序设计(java)>第十八周学习总结 第一部分:理论知识学习部分 第二部分:实验部分 实验名称:实验十八  总复习 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设计结构: (4) 综合掌握java多线程编程模型: (5) 综合编程练习. 2.实验内容和步骤 任务1:填写课程课后调查问卷,网址:https://www.wjx.cn/jq/33108969.aspx. 任务2:综合编

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

学号 2019-2020-1 <数据结构与面向对象程序设计>第X周学习总结 教材学习内容总结 super和this: this 一是引用隐式参数. 二是调用该类其他构造器. super 调用父类的方法. 调用父类的构造器. 通过super关键字来实现对父类成员的访问,用来引用当前对象的父类,super与this引用不是类似的概念,因为super不是一个对象引用,不能将super赋给另一个对象变量,它只是一个指示编译器调用超类方法的特殊关键字,super指向父类,this是指向自己的引用. 继承

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

学号20182329 2019-2020-1 <数据结构与面向对象程序设计>第5周学习总结 教材学习内容总结 首先学习Java Socket的编程,后面实验45都要用到,来传递数据. 学习凯撒密码的使用方法 学习Java密码的DES算法和RSA算法还有HD算法 编写简单计算器(有理数计算器). 使用试验1里面的方法和实验三代码,编写客户端,客户端通过键盘输入一个有理数计算的公式(例如:1/4 + 1/6 = ),并把该公式以字符串的形式发送给伙伴B(服务器端),服务器端根据字符串计算出结果为5

学号 2019-2020-20182318 《数据结构与面向对象程序设计》第7周学习总结

学号 2019-2020-20182318 <数据结构与面向对象程序设计>第7周学习总结 教材学习内容总结 十二章在讲编程中的时间复杂度的概念,时间复杂度越低,程序运行效率越高.时间复杂度的计算可通过寻找运行次数最多的程序,计算他的运行次数,取n的最高次方的极数,即为程序的时间复杂度. 栈可以理解为一类数据的集合,栈中的元素可以写入,也可以读出.元素存在先后次序.先入栈的先被读出.栈可用数组,链表两种形式实现.应注意使用数组的实现链表时要注意数组大小,在push过程中可添加扩大数组大小的程序.

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

20182301 2019-2020-1 <数据结构与面向对象程序设计>第7周学习总结 教材学习内容总结 第十二章 算法效率:用更少的时间去做同等质量的事情 好算法的要求:正确性.可读性.健壮性.通用性.效率与储存空间需求 算法效率可以用问题大小(n)和及处理步骤来定义.增长函数表示问题大小与希望优化的值之间的关系,该函数表示算法的时间或空间利用率 复杂度(时间.空间) 图: 注意:若计算一个算法的阶,其中涉及函数调用时,要把函数里面的调用也算上. 第十四章 集合 集合是收集并组织其他对象的对

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

20182331 2019-2020-1 <数据结构与面向对象程序设计>第8周学习总结 教材学习内容总结 查找 常见查找方式:线性查找,折半查找,哈希表查找,分块查找. 哈希函数构造方法:直接定址法,数字分析法,平方取中法,折叠法,除留余数法. 解决冲突的办法:开放定址法,再哈希法,链地址法. 查找目标:高效地完成查找,用最小化比较操作.通常查找池中项目数目定义了该问题的大小. 静态方法(类方法):可通过类名激活 在方法声明中,通过static修饰符就可以把它声明为静态的. 泛型方法:与泛型类

20182308 华罗晗 2019-2020-1 《数据结构与面向对象程序设计》第10周学习总结

20182308 2019-2020-1 <数据结构与面向对象程序设计>第10周学习总结 教材学习内容总结 有关于图的课堂内容: 邻接矩阵.邻接表,图的数组表示法.一个字符串上的数组就可实现数组.需要掌握. 我们简单提到了其他以下几种图:边集数组.无向图邻接表.逆邻接表.十字链表.邻接多重表(比较复杂,老师也没有讲) 图的遍历以及编码实现主要包括以下两大块的内容:前序中序后序的实现:广度优先搜索.深度优先搜索两种搜索方式的实现. 教材学习中的问题和解决过程 问题1:图和树有什么区别?我们说的完