zoukankan      html  css  js  c++  java
  • 张季跃 201771010139《面向对象程序设计(java)》第三周学习总结(改)

    张季跃 201771010139《面向对象程序设计(java)》第周学习总结

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

     3.6字符串

         u1)Java字符串是Unicode字符的序列,它是组织字符的基 本数据结构,用法类似于字符数组。 u

    (2)有内置的字符串类型,而是在标准Java类库中提供了一 个Java预定义类String。在Java中,字符串被当作对象 来处理。 u      3)程序中需要用到的字符串可以分为两大类: –创建之后不会再做修改和变动的不可变字符串String类; –创建之后允许再做更改和变化的构建字符串StringBuilder类

      3.7输入输出

    (1)读取输入:

    l  a.通过控制台进行输入时,需要构造一个Scanner对象,并 与“标准输入流”System.in关联。 –Scannerin=newScanner(System.in);  

    b.Scanner类定义在java.util包中,因此使用时需将相应的 包加载进来。 l

    C.由于Scanner类输入是可见的,所以不适用于从控制台读 取密码。JavaSE6.0特别引入Console类实现这个目的。

    l   2)格式化输出

    l       a.使用System.out.print(x)将数值x输出到控制台上, 这条命令将以x对应的数据类型所允许的最大非0数字 位数打印输出x。 l

    b.JavaSE5.0沿用了C语言库函数中的printf方法, System.out.printf()。(了解) –用于printf的转换符 –用于printf的标志 l

    C.printf方法中日期和时间的格式化输出。(了解) –日期和时间的转换符

    l   3)文件输入与输出

    l       a.要想对文件进行读取,就需要一个用File对象构 造一个Scanner对象。比如: –Scanner  in = new Scanner(new File(“myfile.txt”)); l

    b.要想写入文件,就需要构造一个PrintWriter对象, 在构造器中,只需提供文件名: –PrintWriterout = new PrintWriter(“myfile.txt”)

      3.8 控制流程

    Java有5种语句: l

    (1)方法调用语句 System.out.println(“Hello!”);

    (2)表达式语句 x=23; i++;l

    (3)复合语句p63 用{}把一些语句括起来就构成了一个语句。 { z=x+23; System.out.println(“Hello”); } l

    (4)控制语句(程序控制流程由这些语言确定) if 、switch、for、while、do-while l

    (5)packege语句和import语句

    3.9大数值

    (1)如果基本的整型和浮点型数据无法达到要求的精度, 那么可以使用java.math包中的两个类, BigInteger和BigDecimal。这两个类可以操作任 意长的数字。 l

    (2)BigInteger类实现了任意精度的整数运算, BigDecimal实现了任意精度的浮点运算

    3.10数组

    l      (1)数组是一种数据结构,它是有序数据的集合, 数组中的每个元素的数据类型都是相同的。

    l      (2)对元素的确定是由数组名和它的下标实现的, 如a[0]代表数组a的第一个元素,a[1]代表数组 a的第二个元素,依次类推。

    第二部分:实验部分

    1、实验目的与要求

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

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

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

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

    2、实验内容和步骤

    实验1:采用个人账号登录https://pintia.cn/,使用邀请码588329加入PTA平台NWNU-2017NISE教学班(西北师范大学 计算机科学与工程学院 2017级 网络与信息安全),完成《2018秋季西北师范大学面向对象程序设计(Java)(ch1-ch3)测试题1》,测试时间120分钟;

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

    实验代码:

    package 实验2;

    import java.util.*;

    public class 实验2 {

      public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("输入你的身份证号:");

        String code = sc.nextLine().trim();

        String id="^(.{6})(.{4})(.{2})(.{2}).*$";

    String year = code.replaceAll(id,"$2");

    String month = code.replaceAll(id,"$3");

    String day = code.replaceAll(id,"$4");

        System.out.println(year+"-"+month+"-"+day);

      }

    }

    输入样例:

    34080019810819327X

    输出样例:

    1981-08-19

    结果验证:

     

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

    编程建议:

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

    public static void StudentsFromFile(String fileName))

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

    public static String findStudent(String name)

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

    public static String findStudent(String ID)

    实验代码:

    package d;

      import java.io.BufferedReader;

       import java.io.File;

       import java.io.FileReader;

      import java.io.IOException;

     import java.util.ArrayList;

      import java.util.Scanner;

      

      public class D {

          private static ArrayList<Student>studentList  = null;

          public static void StudentsFromFile(String fileName){

            

              File file = new File(fileName);  

              BufferedReader reader = null;  

              try {  

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

                  String tempString = null;  

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

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

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

                        //Object studentId;

                        Student student = new Student();

                         student.setStudentId(str[0]);

                        student.setName(str[1]);

                        studentList.add(student);

                     }

                  }  

                  reader.close();  

              } catch (IOException e) {  

                 e.printStackTrace();  

             } finally {  

                  if (reader != null) {  

                      try {  

                          reader.close();  

                      } catch (IOException e1) {  

                      }  

                  }  

              }

          }

         public static String findStudentIdByName(String name) {

              String studentId = null;

              for(Student student : studentList) {

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

                      studentId = student.getStudentId();

                      break;

                  }

              }

              return studentId;

          }

          public static String findStudentNameById(String ID) {

              String studentName = null;

              for(Student student : studentList) {

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

                      studentName = student.getName();

                      break;

                  }

              }

              return studentName;

          }

          public static void main(String args[]) {

              String path = "C:\Users\张季跃\Desktop\实验三\studentfile.txt";

            studentList = new ArrayList<Student>();

              StudentsFromFile(path);

              int statu = 1;

              System.out.println();

              while(statu != 0) {

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

                  System.out.println("1:输入姓名查询同学的信息");

                  System.out.println("2:输入学号查询同学的信息");

                 System.out.println("0:返回");

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

                  Scanner in = new Scanner(System.in);

                  statu = in.nextInt();

                 

                  switch(statu) {

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

                     Scanner scanner1 = new Scanner(System.in);

                      String name = scanner1.nextLine();

                      String Id = findStudentIdByName(name);

                      if(Id != null) {

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

                      }else {

                          System.out.println("无此学生,请确认");

                      }

      

                  }break;

                  case 2:{

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

                      Scanner scanner2 = new Scanner(System.in);

                      String Id = scanner2.nextLine();

                      String name = findStudentNameById(Id);

                      if(name != null) {

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

                     }else {

                         System.out.println("无此学生,请确认");

                     }

                 }break;

                 case 0:

                     statu = 0; break;

                 default:

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

                 }

              }     

              System.out.println("结束!");

          }

        

       }

     实验结果:

    总结:

    本周的学习中,我们学习了第三单元剩余的部分,虽然较之前两周学习的内容不多,但大部分都是重点难点,而且对以后的学习有很大的影响。

    通过这一周的学习,我充分认识到了自己在Java上的缺陷,不仅是在老师的测验中考得不好,更重要的是实验三。这个实验让我彻底了解到了Java的难学之处,即使请教了许多的同学我也仅仅是初步打出了与他人相似的代码,并没有完全的理解。

    而在考试中,我也有许多的缺陷,不仅是最后的应用题不会,在前面的判断,选择等概念题也有许多的失分点。这也让我认识到了我今后还要加强对概念的理解。

  • 相关阅读:
    sparql学习sparql示例、dbpedia在线验证
    中国绿卡
    逾期率的水有多深,你知道吗?
    ICO和区块链区别
    What are the benefits to using anonymous functions instead of named functions for callbacks and parameters in JavaScript event code?
    Link static data in sql source control
    sql data compare
    viewbag
    多态的实际使用
    win10 sedlauncher.exe占用cpu处理
  • 原文地址:https://www.cnblogs.com/Alex-Morcer/p/9657788.html
Copyright © 2011-2022 走看看