赵栋 201771010137 第三周学习总结

自主学习任务

1、 复习课程第1-3章学习内容

2、 回顾实验三中实验题1《2018秋季西北师范大学面向对象程序设计(Java)(ch1-ch3)测试题1》,对照测试题参考答案,反思修改本人答卷的错误内容;

3、完成实验2与实验3;

4、修改置顶博文《面向对象程序设计课程学习进度条》,记录第三周个人编程水平提升参数

第一部分:复习第一到三章

1、第一章

复习了Java语言的优点,发展简史,以及Java语言的关键术语和“白皮书”的特性,对Java的了解更加深刻了一点

2、第二章

          复习了如何安装java开发工具包(JDK)以及如何编译和运行不同类型的程序以及如何构建并运行applet

3、第三章

         复习了Java的数据类型,运算符,字符串等,重新学习了文件的输入输出,以及控制流程

第二部分:实验部分

1、实验目的与要求

  (1)进一步掌握Eclipse集成开发环境下java程序开发基本步骤;

  (2)熟悉PTA平台线上测试环境;

  (3)掌握Java语言构造基本程序语法知识(ch1-ch3);

  (4)利用已掌握Java语言基本程序设计知识,学习设计开发含有一个主类、类内可有多个方法的应用程序。

2、实验内容和步骤

  实验2:公民身份证号码按照GB11643—1999《公民身份证号码》国家标准编制,由18位数字组成:前6位为行政区划分代码,第7位至14位为出生日期码,第15位至17位为顺序码,第18位为校验码。从键盘输入1个身份证号,将身份证号的年月日抽取出来,按年-月-日格式输出。注意:输入使用Scanner类的nextLine()方法,以免出错。

输入样例:

34080019810819327X

输出样例:

1981-08-19

实验3:studentfile.txt文件内容是本班同学的学号与姓名,利用此文件编制一个程序,将studentfile.txt文件的信息读入到内存,并提供两类查询功能:(1)输入姓名查询学号;(2)输入学号查询姓名。要求程序具有友好人机交互界面

3代码及结果

1>实验二

代码如下

1 package jjj;

2 import java.util.Scanner;

3

4 public class hhh {

5

6    public static void main(String[] args) {

8         Scanner sc = new Scanner(System.in);

10        System.out.println("请输入身份证号码:");

11        String str = sc.nextLine();

12        String regex = "^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$";

13        boolean flag = str.matches(regex);

14        if(flag == false) {

15          System.out.println("身份证号码格式错误,请重新运行程序");

16              }

17

18              String s1 = str.substring(6,10);
19              String s2 = str.substring(10,12);
20              String s3 = str.substring(12,14);
21              System.out.println("出生年月"+ "-"+ s1+ "-"+s2+ "-"+s3);
22    }

23

24 }

结果验证如下:

2>实验三

(1)从文件中读入学生信息,可以编写如下函数:

public static void StudentsFromFile(String fileName))

(2)输入姓名查找学生学号,可以编写如下函数:

public static String findStudent(String name)

(3)输入学号查找学生姓名,可以编写如下函数:

public static String findStudent(String ID)

代码如下

1 package mmm;

2

3  import java.io.BufferedReader;
4 import java.io.File;

5 import java.io.FileReader;

6 import java.io.IOException;

7 import java.util.ArrayList;

8 import java.util.Scanner;

9

10
11 public class Test {

12

13    
14

15    private static ArrayList<Student> studentList = null;

16

17    
18    
19     public static void StudentsFromFile(String fileName){

20         File file = new File(fileName);

21         BufferedReader reader = null;

22         try {

23             reader = new BufferedReader(new FileReader(file));

24             String tempString = null;

25             while ((tempString = reader.readLine()) != null) {

26                 String str[] = tempString.split(" ");

27                 if(studentList != null && str.length > 1) {

28                     Student student = new Student();

29                     student.setStudentId(str[0]);

30                     student.setName(str[1]);

31 studentList.add(student);

32 }

33 }

34 reader.close();

35         } catch (IOException e) {

36 e.printStackTrace();

37         } finally {

38             if (reader != null) {

39                 try {

40 reader.close();

41                 } catch (IOException e1) {

42 }

43 }

44 }

45 }

46     public static String findStudentIdByName(String name) {

47         String studentId = null;

48         for(Student student : studentList) {

49             if(student.getName().equals(name)) {

50                 studentId = student.getStudentId();

51                 break;

52 }

53 }

54         return studentId;

55 }

56     public static String findStudentNameById(String ID) {

57         String studentName = null;

58         for(Student student : studentList) {

59             if(student.getStudentId().equals(ID)) {

60                 studentName = student.getName();

61                 break;

62 }

63 }

64         return studentName;

65 }

66     public static void main(String args[]) {

67         String path = "D:/studentfile.txt";

68         studentList = new ArrayList<Student>();

69 StudentsFromFile(path);

70         int statu = 1;

71         System.out.println();

72         while(statu != 0) {

73             System.out.println("******************");

74             System.out.println("1:通过姓名查询学生学号");

75             System.out.println("2:通过学号查询学生姓名");

76             System.out.println("0:退出");

77             System.out.println("******************");

78             Scanner scanner = new Scanner(System.in);

79             statu = scanner.nextInt();

80             switch(statu) {

81             case 1:{

82                 System.out.println("请输入学生姓名:");

83                 Scanner scanner1 = new Scanner(System.in);

84                 String name = scanner1.nextLine();

85                 String Id = findStudentIdByName(name);

86                 if(Id != null) {

87                     System.out.println("姓名: "+name+" 学号: "+Id);

88                 }else {

89                     System.out.println("不存在该学生!请重新查找");

90 }

91
92             }break;

93             case 2:{

94                 System.out.println("请输入学生学号:");

95                 Scanner scanner2 = new Scanner(System.in);

96                 String Id = scanner2.nextLine();

97                 String name = findStudentNameById(Id);

98                 if(name != null) {

99                     System.out.println("姓名: "+name+" 学号: "+Id);

100                 }else {

101                     System.out.println("不存在该学生!请重新查找");

102 }

103             }break;

104             case 0:

105                 statu = 0; break;

106             default:

107                 System.out.println("输入错误");

108 }

109         }

110 }

111 }

结果验证如下:

实验总结:

    对前三章的理论知识内容复习了一遍,对一些没有掌握的的知识再次进行了学习,而实验三确实让我费尽了脑筋也没有弄会,最后还是经过舍友的帮忙才勉强完成了虽然是他的思路,但是通过他的帮忙也学到了很多,第一次感觉到了Java学习起来真不容易,好难啊。

原文地址:https://www.cnblogs.com/zd0421/p/9657781.html

时间: 2024-10-24 16:49:17

赵栋 201771010137 第三周学习总结的相关文章

201771010137赵栋《第八周学习总结》

实验六 接口的定义与使用 实验时间 2018-10-18 1.实验目的与要求 (1) 接口定义:接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义:由常量和一组抽象方法组成:接口中的是所有方法自动地属于public. 任何实现Comparable接口的类都需要包含compareTo方法,并且这个方法的参数必须是一个Object对象,返回一个整型数值. 为了让类实现一个接口,两个步骤:1.将类声明为实现给定的接口 2.对接口中的所有方法进行定义 要让一个类使用排序服务必须让

2018-2019-20172329 《Java软件结构与数据结构》第三周学习总结

2018-2019-20172329 <Java软件结构与数据结构>第三周学习总结 教材学习内容总结 <Java软件结构与数据结构>第五章-队列 一.概述 1.队列是什么? 队列是种线性集合,其元素从一端加入,从另一端删除:注:队列是按照先进先出的方式处理的.从队列中删除元素的次序,与放置元素的次序是一样的. 2.队列的构成 (1)方法: 操作 描述 enqueue 向队列末端添加一个元素 dequeue 从队列前段删除一个元素 first 考察队列前端的那个元素 isempty

20145207《Java程序设计》第三周学习总结

20145207<Java程序设计>第三周学习总结 教材学习内容总结 这部分可能要扒一些课本而上的东西了.在第三章中,知道了Java可区分为基本类型和类类型两大类型系统,其中类类型也称为参考类型.在这一周主要学习了类类型. 对象(Object):存在的具体实体,具有明确的状态和行为 类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制. 简单来说,类是对象的设计图,对象是类的实例. 要深刻理解对象的含义,例如Clothes c1 = new Clot

20145301第三周学习总结

20145301第三周学习总结 教材学习内容总结 第四章 4.1 类与对象 对象(Object):存在的具体实体,具有明确的状态和行为 类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制 从类看对象:类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象 从对象看类:类的产生,是从少数实例,推广到大量相似实例的抽象化过程(abstraction) 类是对象的设计图,对象是类的实例,生成对象要先定义类 4.2 基本类型包装 Long.In

201671010117 2016-2017-2 《Java程序设计》Java第三周学习心得

Java第三周学习心得 通过这一周的学习,了解到了Java的核心部分,理解了用户自定义类的定义 ,了解了对象的声明 ,了解了使用构造函数初始化对象 ,使用类属性与方法的使用,了解了package和import语句的用途,知道了假设你面对现实世界的一个对象,你不会把它的属性和处理方法分开,程序设计也是一样.面向对象程序设计(OOP):一种新的思维方法,更接近人类处理现实世界问题的自然表示方法.面向对象的语言有:C++,Smalltalk,Java等.面向对象程序设计的几个主要概念:抽象数据类型.类

20145317《信息安全系统设计基础》第三周学习总结

20145317<信息安全系统设计基础>第三周学习总结 教材学习内容总结 整型数据类型 32位机器和64位机器对于同一数据类型的典型取值范围是有所不同的 . 64位机器用8个字节表示:32位机器用4个字节表示 典型取值范围中,取值范围不对称——负数的范围比整数的范围大1 三种最重要的数字表示:①无符号:基于传统的二进制方法,表示大于等于0的数字②补码(有符号数):表示有符号数整数的最常见方法,有符号整数就是可以为正或者负的数字③浮点数:表示实数的科学计数法的以2为基数的版本 ·进制转换:用二进

LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS

LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS 黄韧(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 回顾: [计算机三个法宝] 1)存储程序计算机 2)函数调用堆栈 3)中断 [操作系统两把宝剑] 1)中断上下文的切换:保存现场和恢复现场 2)进程上下文的切换 一.使用gdb跟踪调试内核从start_kernel到init进程启动 使用实验楼的虚拟机打开

20145319 第三周学习总结

20145319 <Java程序设计>第三周学习总结 教材学习内容总结 本周学习教材第四.五章,这两章主要讲述了java语言中“对象”的相关知识,认识对象以及对象封装. 1. 类与对象 定义:对象是java语言中极为重要的一环,在使用java编写程序时基本离不开对象,而java中有基本类型和类类型两种类型系统,在使用对象前就需先定义类(Class),类是对象的设计图,对象是类的实例 使用事项: 1对象的一些使用和c语言中的指针极为相似,例如Clothes c1 = new Clothes();

20165315 第三周学习总结

20165315 第三周学习总结 本周学习中遇到的问题和解决过程 在编写书上第四章例子5的代码时,我发现无法直接使用javac -d bin src/Example4_5.java命令使该代码的字节码文件直接放入bin目录 解决方法: 经过询问老师和同学,得知问题出在无法一同编译另外两个源文件,输入如下图所示的代码即可编译并运行成功 在编写书上第四章例子17和例子18的代码时,无法通过编译,显示如下图错误: 解决方法: 经过多次尝试和细心检查后,我发现是在编写时大意,将setSides编写为se