王之泰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 }結果驗證如下:
?
實驗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 /** 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編程水平會有很大幅度的提升。
?
轉載于:https://www.cnblogs.com/hackerZT-7/p/9650587.html
總結
以上是生活随笔為你收集整理的王之泰201771010131《面向对象程序设计(java)》第三周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 职友集安卓面试题
- 下一篇: GNOME 3 使用技巧