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-实验3在课后完成

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

输入样例:

34080019810819327X

输出样例:

1981-08-19

  1. package 实验2;
  2. import java.util.Scanner;
  3. public class Readdatabirth {
  4.  
  5. public static void main(String[] args) {
  6.  
  7. String ID;
  8. Scanner id=new Scanner(System.in);
  9. System.out.print("输入身份证号:");
  10. ID=id.nextLine();
  11. String year=ID.substring(6,10);
  12. String month=ID.substring(10,12);
  13. String day=ID.substring(12,14);
  14. System.out.println(year+"-"+month+"-"+day);
  15. }
  16. }

 实验截图如下 :

结果如下:

 

实验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)

  1. package 实验三;
  2. import java.io.BufferedReader;
  3. import java.io.File;
  4. import java.io.FileReader;
  5. import java.io.IOException;
  6. import java.util.ArrayList;
  7. import java.util.Scanner;
  8.  
  9. public class StudentInformation {
  10. private static ArrayList<Student>studentList = null;
  11. public static void StudentsFromFile(String fileName){
  12.  
  13. File file = new File(fileName);
  14. BufferedReader reader = null;
  15. try {
  16. reader = new BufferedReader(new FileReader(file));
  17. String tempString = null;
  18. while ((tempString = reader.readLine()) != null) {
  19. String str[] = tempString.split(" ");
  20. if(studentList!= null && str.length > 1) {
  21. //Object studentId;
  22. Student student = new Student();
  23. student.setStudentId(str[0]);
  24. student.setName(str[1]);
  25. studentList.add(student);
  26. }
  27. }
  28. reader.close();
  29. } catch (IOException e) {
  30. e.printStackTrace();
  31. } finally {
  32. if (reader != null) {
  33. try {
  34. reader.close();
  35. } catch (IOException e1) {
  36. }
  37. }
  38. }
  39. }
  40. public static String findStudentIdByName(String name) {
  41. String studentId = null;
  42. for(Student student : studentList) {
  43. if(student.getName().equals(name)) {
  44. studentId = student.getStudentId();
  45. break;
  46. }
  47. }
  48. return studentId;
  49. }
  50. public static String findStudentNameById(String ID) {
  51. String studentName = null;
  52. for(Student student : studentList) {
  53. if(student.getStudentId().equals(ID)) {
  54. studentName = (String) student.getName();
  55. break;
  56. }
  57. }
  58. return studentName;
  59. }
  60. public static void main(String args[]) {
  61. String path = "C:\\Users\\Dell\\Documents\\Tencent Files\\1689164469\\FileRecv\\实验三/studentfile.txt";
  62. studentList = new ArrayList<Student>();
  63. StudentsFromFile(path);
  64. int statu = 1;
  65. System.out.println();
  66. while(statu != 0) {
  67. System.out.println("******************");
  68. System.out.println("1:通过姓名查询学生学号");
  69. System.out.println("2:通过学号查询学生姓名");
  70. System.out.println("0:退出");
  71. System.out.println("******************");
  72. Scanner in = new Scanner(System.in);
  73. statu = in.nextInt();
  74.  
  75. switch(statu) {
  76. case 1:{ System.out.println("请输入学生姓名:");
  77. Scanner scanner1 = new Scanner(System.in);
  78. String name = scanner1.nextLine();
  79. String Id = findStudentIdByName(name);
  80. if(Id != null) {
  81. System.out.println("姓名: "+name+" 学号: "+Id);
  82. }else {
  83. System.out.println("不存在该学生!请重新查找");
  84. }
  85.  
  86. }break;
  87. case 2:{
  88. System.out.println("请输入学生学号:");
  89. Scanner scanner2 = new Scanner(System.in);
  90. String Id = scanner2.nextLine();
  91. String name = findStudentNameById(Id);
  92. if(name != null) {
  93. System.out.println("姓名: "+name+" 学号: "+Id);
  94. }else {
  95. System.out.println("不存在该学生!请重新查找");
  96. }
  97. }break;
  98. case 0:
  99. statu = 0; break;
  100. default:
  101. System.out.println("输入错误");
  102. }
  103. }
  104. }
  105.  
  106. }

  

实验结果如下:

实验总结:

这周接触的新知识最少,在周四的实验课上进行了一次测试,我考的很差,程序一个也没运行出来,感觉很挫败。让我深刻的感觉到自己的不足。动手能力差。而且这次的实验对于我而言很难,我感觉自己的语法知识掌握的太少。我以后会在编程上多加练习,多敲代码,希望可以弥补一些自己的不足。

汪慧和201771010123《面向对象程序设计(Java)》第三周学习总结的更多相关文章

  1. 201771010123汪慧和《面向对象程序设计Java》第二周学习总结

    一.理论知识部分 1.标识符由字母.下划线.美元符号和数字组成, 且第一个符号不能为数字.标识符可用作: 类名.变量名.方法名.数组名.文件名等.第二部分:理论知识学习部分 2.关键字就是Java语言 ...

  2. 201771010134杨其菊《面向对象程序设计java》第九周学习总结

                                                                      第九周学习总结 第一部分:理论知识 异常.断言和调试.日志 1.捕获 ...

  3. 201871010132-张潇潇《面向对象程序设计(java)》第一周学习总结

    面向对象程序设计(Java) 博文正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cn ...

  4. 扎西平措 201571030332《面向对象程序设计 Java 》第一周学习总结

    <面向对象程序设计(java)>第一周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 ...

  5. 201771010123汪慧和《面向对象程序设计JAVA》第九周实验总结

    一.理论部分 1.异常 (1)异常处理的任务就是将控制权从错误产生的地方转移给能够处理这种情况的错误处理器. (2)程序中可能出现的错误和问题:a.用户输入错误.b.设备错误.c.物理限制.d.代码错 ...

  6. 杨其菊201771010134《面向对象程序设计Java》第二周学习总结

    第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...

  7. 201871010124 王生涛《面向对象程序设计JAVA》第一周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://edu.cnblogs.com/campus/xbsf/ ...

  8. 201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  9. 201871010115——马北《面向对象程序设计JAVA》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  10. 201871010132——张潇潇《面向对象程序设计JAVA》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

随机推荐

  1. 获取QQ状态接口开发示例

    unit checkqqstatus; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Control ...

  2. 字符设备驱动之LED驱动

    实现 ①编写驱动框架 ②编写硬件实现代码 (在Linux系统下操作硬件,需要操作虚拟地址,因此需要先把物理地址转换为虚拟地址 ioremap()) 如何实现单个灯的操作: 实现方法之一--操作次设备号 ...

  3. CodeForces - 755C PolandBall and Forest (并查集)

    题意:给定n个数,Ai的下标为1~n.对于每一个i,Ai与i在同一个树上,且是与i最远的点中id最小的点(这个条件变相的说明i与Ai连通).求森林中树的个数. 分析:若i与Ai连通,则在同一个树上,因 ...

  4. POJ 3614:Sunscreen 贪心+优先队列

    Sunscreen Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5378   Accepted: 1864 Descrip ...

  5. 百度杀毒停止下载,个人PC杀毒软件真的走到尽头了吗?

    在时代浪潮的席卷下,不适应的服务和产品终将被淘汰.诺基亚如此,杀毒软件亦是如此.就在近日,久久沉寂的杀毒软件市场被投下一颗重磅炸弹--百度杀毒软件官网PC端不再提供下载,但手机端依然提供下载和杀毒服务 ...

  6. nodeks —— fs模块 —— 从流中 读取和写入数据

    Fs流读取和写入数据 使用文件流来读取大文件不会卡顿 1, 从流中读取数据 var fs = require("fs"); var data = ''; var count = 0 ...

  7. MongoDB 删除,添加副本集,并修改副本集IP等信息

    MongoDB 删除,添加副本集,并修改副本集IP等信息 添加副本,在登录到主节点下输入 rs.add("ip:port"); 删除副本 rs.remove("ip:po ...

  8. Windows下C++遍历文件夹中的文件

    Windows下,在VS中开发,C++遍历文件夹下文件. 在Windows下,遍历文件所用到的函数和结构体,需要在程序中包含头文件#include <io.h>,在VS中,头文件io.h实 ...

  9. 如何生成 SSH keys, 并在 Github 或 Gitlab 等上添加密钥

    1 打开 Git Bash $ 2 输入 dir, 确认当前文件夹,并切换到想存密钥文件即pub文件的路径 $ dir 3 生成 密钥命令 ssh-keygen -t rsa -C "{ y ...

  10. cf 261B.Maxim and Restaurant

    什么什么期望的,不会! (题解http://blog.sina.com.cn/s/blog_140e100580102wj4e.html(看不懂)) #include<bits/stdc++.h ...