《面向对象程序设计(Java)》第三周学习总结
第一部分:理论知识
这周课程没有新进度,由于感觉对基础语法的不熟悉,复习了一遍前三章的细碎知识,学到一些之前不知道的原理:
1.计算机高级语言按程序的方式可以分为两种:编译型和解释型
编译型:C,C++,Objective-C,Pascal等;
解释型:Ruby,Python,
半编译型:Visual Basic,
java:既是编译型语言又是解释型语言。
2.classpath 环境变量的设置:如果使用1.5以上的版本,完全可以不用设置这个环境变量,也可以正常的编译和运行程序。
3.系统变量与用户变量:
两者本没有太大的区别,只是用户变量只对当前用户有效,而系统变量对所有用户有效。系统变量的路径排在用户变量的路径之前。如果PATH用户变量大的路径里包含了Java命令,而PATH系统变量的路径里包含也包含了java命令,则优先执行PATH系统变量路径包含的java命令。
4.UML(统一建模语言)简介
5.基本类型的类型转换
第二部分:实验部分
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 import java.util.Scanner; 2 3 public class BirthDate{ 4 5 public static void main(String[] args) { 6 7 String year; 8 String month; 9 String day; 10 String id; 11 12 Scanner reader= new Scanner(System.in); 13 14 System.out.println("请输入你的身份证号码:"); 15 16 id=reader.nextLine(); 17 18 year=id.substring(6,10); 19 20 month=id.substring(10,12); 21 22 day=id.substring(12,14); 23 24 String outcome=year+"-"+month+"-"+day; 25 26 System.out.println("出生日期:"+outcome); 27 28 29 } 30 }
实验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 import java.io.BufferedReader; 2 import java.io.File; 3 import java.io.FileReader; 4 import java.io.IOException; 5 import java.util.ArrayList; 6 import java.util.Scanner; 7 8 9 public class FileRead { 10 11 public static void main(String[] args) throws IOException 12 { 13 17 FileReader fr=new FileReader("studentfile.txt"); 18 //调用读取流对象的read方法。 19 //read():一次都一个字符,而且会自动往下读。 20 int ch=0; 21 22 while((ch=fr.read())!=-1) 23 { 24 System.out.println((char)ch); 25 } 26 27 /* 28 while(true) 29 30 { 31 int ch=fr.read(); 32 if(ch==-1); 33 break; 34 System.out.println("ch="+(char)ch); 35 } 36 37 */ 38 39 fr.close(); 40 } 41 42 }
第三部分:学习总结:
本周周四经历了第一次上机小测试,立马被打回原形,果然这门课的所有学习最后都要归结到编程能力的提高上。100分的测试题我得了25分,别说是编程能力的提高,连个结果都没搞出来。够挫败!!!不过也算是一次警示,早些打“预防针”也是好事。在测试中连基本语法知识都生疏,所以有复习了遍前三章的理论知识,还发现了很多之前没意识到的疑惑,很多没听过名词都查了遍资料,之前没在意的基本操作也都动手试了一遍,暴露了很多问题。仅是一些基础的操作都显得如此,别说是脱离去编写程序解决实际问题,想想还得多元的距离,以后必须每周增加代码的阅读量和编辑量,只有在实战中才能有所提升。
另外,这次的两个课后实验,我只完成了一个且语言不规范,第2个到即将到的截止时间还没做出来,感觉有些泄气,但有难度的才有挑战,有挑战才能有提升。还有API文档也没搞定,本周的学习让我对Java的学习方法有了更深的体会,要练!!!
原文地址:https://www.cnblogs.com/yqj-yf-111/p/9655186.html