实验三 Java基本程序设计(2

实验时间 2018-9-13

1、实验目的与要求

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

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

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

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

理论知识概括:JAVA 的五种语句:(1)方法调用语句(2)表达式语句(3)复合语句(4)控制语句(5)package语句

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

package c;

import java.util.Scanner;

public class A {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner in= new Scanner(System.in);

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

String num = in.nextLine();

int len =num.length();

if(len<18||len>18)

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

else

{

int i = 6;

String year = num.substring(i, i+4);

String month = num.substring(i+4, i+6);

String day = num.substring(i+6, i+8);

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

}

}

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

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\\Dell\\Documents\\Tencent Files\\1689164469\\FileRecv\\实验三/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("byebye!");

}

}

总结:通过本次实验发现程序编写有很多困难,程序在eclipse上运行不出结果,在编写过程中,出现了很多错误并且不能独立完成。在第二个实验时,编写过程没有头绪,不知道该怎么编写; 通次这次的作业发现自己编写能力很不好很差,感觉自己好多不会,需要好好练习加以进步;好好学习课本内容并积极向其他同学学习(在实验编写过程中找不出问题所在)。

刘志梅201771010115.《面向对象程序设计(java)》第三周学习总结的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  10. 20155304 2016-2017-2 《Java程序设计》第三周学习总结

    20155304 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 第四章 类与对象 定义: 对象(Object):存在的具体实体,具有明确的状态和行为. 类( ...

随机推荐

  1. hdu多校第3场A.Ascending Rating

    Problem A. Ascending Rating Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Sub ...

  2. RandomAccessFile多线程下载

    public class DownloadServer { ; private static String fileUrl = "https://dldir1.qq.com/qqtv/mac ...

  3. 【log4j】使用注意事项

    实际过程中,使用log4j遇到的一些问题,进行总结: 1.log4j.properties文件的放置路径: 必须放在src的根目录下,这样就不需要额外的加载了 2.申明一个log对象 Logger l ...

  4. tensorboard中show不出来数据

    tensorboard中show不出来数据,可通过在命令中加入training解决,如下: tensorboard --logdir==training:model_dir

  5. day08_python_1124

    01 昨日内容回顾 文件操作 文件操作的流程: 1,打开文件创建文件句柄. 2,对文件句柄进行操作. 3,关闭文件句柄. 读, r r+ rb r+b read() 全部读取 read(n) 读取一部 ...

  6. Spring Security 案例实现和执行流程剖析

    Spring Security Spring Security 是 Spring 社区的一个顶级项目,也是 Spring Boot 官方推荐使用的安全框架.除了常规的认证(Authentication ...

  7. Shell 与正则表达式part1

    1.什么是shell? shell代表两个层面的意思,一个是命令解释器,比如:BASH,另外一个是shell脚本(利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与 ...

  8. 第一章03 java 开发环境搭建

    1. 首先,搭配java开发环境,安装(jdk:java 开发工具包) 2.安装下载:输入www.oracle.com.cn/indek.html  (cn代表中文) 3.测试安装是否成功 (1)wi ...

  9. Jsの数组练习-求一组数中的最大值和最小值,以及所在位置

    要求:求一组数中的最大值和最小值,以及所在位置 代码实现: <!DOCTYPE html> <html lang="en"> <head> &l ...

  10. Oracle数据库统一审核的启用测试与关闭

    环境:windows server 2008.Oracle 12c R2 下面的步骤,连接为sysdba,除非指定了其它方式. (1)运行如下查询,确定统一审核是否启用了: select value ...