• 王之泰201771010131《面向对象程序设计(java)》第三周学习总结


    王之泰201771010131《面向对象程序设计(java)》第三周学习总结

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

    第一章

      回顾了Java“白皮书”的关键性语句,再次理解了以前未理解的句子。对Java语言的十多种特性又有了更深刻的理解和不同角度的体会。

    第二章

      继续使用eclipse实验开发程序,在jdk源文件中仔细欣赏体会了标准代码的范例,以此来规范自己的编写风格。

    第三章

      第三章中复习了Java的基本语法,着重复习了运算符的使用和文件的输入输出,深刻理解了例如:控制流程语句等五种语句。

    第二部分:实验部分

    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()方法,以免出错。

    输入样例:

    34080019810819327X

    输出样例:

    1981-08-19

    实验代码如下:

     1 package test1;
     2 
     3 import java.util.Scanner;
     4 
     5 public class test01 {
     6         String year;
     7         String month;
     8         String day;
     9         static String id;
    10         
    11         public void InputId() {
    12             Scanner sr = new Scanner(System.in);
    13             System.out.println("请输入你的身份证号:");
    14             id =sr.nextLine();
    15         }
    16         public void CutId(String id){
    17             year = id.substring(6, 10);
    18             month = id.substring(10, 12);
    19             day = id.substring(12, 14);
    20         }
    21         public String toString(){
    22             return "你的生日是:" + year + "-" + month + "-" + day ;
    23         }
    24 
    25             public static void main(String[] args) {
    26                 test01 peopleId = new test01();
    27                 peopleId.InputId();
    28                 peopleId.CutId(id);
    29                 System.out.println(peopleId.toString());
    30         }
    31 
    32         }

    结果验证如下:

    实验3studentfile.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)

     实验代码如下:

      1 /**
      2  * @author hr wzt
      3  *
      4  */
      5 package workPractice.work1;
      6 
      7 import java.io.BufferedReader;
      8 import java.io.File;
      9 import java.io.FileReader;
     10 import java.io.IOException;
     11 import java.util.ArrayList;
     12 import java.util.Scanner;
     13 
     14 public class Test {
     15     
     16     private static ArrayList<Student> studentList = null;
     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         System.out.println("     byebye!  ");111 
    112     }
    113 }

    结果验证如下:

     

    第三部分:总结

      本周复习了一到三章的内容,因为从实验课中发现了太多的隐藏问题,所以并没有学习新知识,但主要复习内容重点是在第三章,因为通过这次实验课测验,基础知识基本没有太大的的问题,只是一些琐碎的知识点未记牢,大的问题还是处在编程上。编程题总共有四道题,但是在考试结束前仅仅只提交了两道题目。

      一方面是因为第一次接触这个实验平台并不了解这个平台的代码测验标准,eclipse中可以成功跑出来的代码在这个平台却不行,但后来在老师的鼓励下成功跑出两段代码。另一方面也是自己基础语法并没有记牢,而且平时的练习量还是太少,照着书编写程序还是可以,但是真正实战还是有着很大的差距的,所以在以后的学习中增加自己的代码量是必要的,因为只有在实战中才能检测出来自己的不足之处,对知识的反复理解也是必不可少的。因为有了扎实的知识基础才能避免一些基本错误的发生。课后实验中实验三比较有难度,因为要求要很好的人机交互界面,但是因为能力问题只能做到这样的效果。我相信在接下来的每一周里,我的Java编程水平会有很大幅度的提升。

  • 相关阅读:
    centos6.5安装mysql5.7.20
    redis错误总结
    批量杀死MySQL连接的四种方法详解
    VMware虚拟机宿主机与虚拟机通讯慢解决方法
    linux下ssh/scp无密钥登陆方法
    天兔3.8安装 centos7
    《TensorFlow+Keras自然语言处理实战》已出版
    几本技术图书资源下载
    2020年上半年新书
    《Neo4j 图数据库扩展指南:APOC和ALGO》
  • 原文地址:https://www.cnblogs.com/hackerZT-7/p/9650587.html
Copyright © 2020-2023  润新知