第五次作业
一.请运行下面code,指出其功能(需附运行结果截图,并用简短文字描述其功能)
代码实现的功能:
对程序中所给出的lastName,firstName中随机产生一个lastName和firstName就得到一个人的名字,并随机产生一个20以内的正整数,在加上18就是该名字的人的年龄。
每运行一次程序就按照上述规则随机的产生,得到三个人的姓名和年龄。
运行结果图:
二.请将该code进行代码重构,使之模块化,并易于阅读和维护
对Driver.java进行重构后的代码
1 import java.util.ArrayList; 2 import java.util.List; 3 import java.util.Random; 4 5 6 public class Driver { 7 8 private static final int MAXNUMBER = 3;//MAXNUMBER就是产生的最大人数的个数 9 private static String[] lastNames = {"Doe", "Smith", "Jones", "Adams", "Marshall", "Thompson", "Bradley", "Brown", "White", "Franklin", "Davis", "Cohn", "Clark"}; 10 private static String[] firstNames = {"Mary", "John", "Susan", "Michael", "David", "Lisa", "Wendy", "Diane", "Kelly", "Claire", "Elizabeth", "Mitchell", "Richard"}; 11 12 public static void main(String[] args) { 13 14 // create an empty list 15 List<Student> studentList = new ArrayList<Student>(); 16 17 // initialize random generator 18 Random random = new Random(); 19 20 // create random number of students 21 GetInformation(studentList, random);//该方法得到的是随机产生的人的信息(包括姓名和年龄) 22 23 24 //print out the students 25 PrintStudentInformation(studentList);//该方法用于输出学生的信息 26 27 } 28 29 private static void PrintStudentInformation(List<Student> studentList) { 30 for (Student temp : studentList) { 31 System.out.println(temp); 32 33 } 34 } 35 36 private static void GetInformation(List<Student> studentList, Random random) { 37 for (int i=0; i < MAXNUMBER; i++) { 38 39 // get random first name 40 String tempFirstName = firstNames[random.nextInt(firstNames.length)]; 41 42 // get random last name 43 String tempLastName = lastNames[random.nextInt(lastNames.length)]; 44 45 // get random age 46 int age = 18 + random.nextInt(20); 47 48 // create student 49 Student tempStudent = new Student(tempLastName, tempFirstName, age); 50 51 // add them to the list 52 studentList.add(tempStudent); 53 } 54 } 55 56 }
三.观看视频The Expert (Short Comedy Sketch),写出观后感(内容是什么,说明了什么问题,有什么启示),提交到博客!
这个视频主要讲了一个工程师和一群完全什么技术都不懂的CEO,产品经理和设计师面前之间的对话。用户需要画7根红线,他们必须互相两两垂直,而且有一些用绿色墨水、有一些用透明墨水来画。开发人员认为用户的需求是不可能达到的,但是项目经理认为开发人员就是专家,专家就是要解决问题的。
看完这个视频后,我觉得沟通是导致他们发生冲突的原因。客户对自己所需产品的特征没有和工程师解释清楚,导致工程师对此项目并不了解。其次工程师的上司是一个什么技术都不懂的CEO,认为工程师是自己雇来的员工,且是自己公司这方面的专家,就一定能解决好问题。这就是一个需求分析问题。一个项目能够很好地开发,需要开发人员对客户的需求进行深入的了解,而客户也需要清楚的给开发人员表达出自己的需求。
四.学习在项目中使用 jar 文件:
1)在下列code中导入jar文件“commons-lang3-3.3.2.jar”,并运行,将运行结果截图提交到博客:
import org.apache.commons.lang3.time.StopWatch; public class Driver { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Running..."); StopWatch myStopWatch = new StopWatch(); myStopWatch.start(); performLengthyProcess(); myStopWatch.stop(); System.out.println("Time is:" + myStopWatch.getTime() + " millis"); System.out.println("Finished..."); } private static void performLengthyProcess() { try { Thread.sleep(3000); // 3 second delay } catch (InterruptedException e) { e.printStackTrace(); } } }
运行结果图: