软件工程第五次作业
---恢复内容开始---
1、请运行下面code,指出其功能;
(需附运行结果截图,并用简短文字描述其功能)
运行效果如下:
Driver.java功能:创建一个空的列表并初始化随机数,随机生成三个获得姓和名以及大于等于18,小于38的整形随机年龄的学生。
2、请将该code进行代码重构,使之模块化,并易于阅读和维护;
将原code进行代码重构,使之模块化的效果如下:
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 String[] lastNames = {"Doe", "Smith", "Jones", "Adams", "Marshall", "Thompson", "Bradley", "Brown", "White", "Franklin", "Davis", "Cohn", "Clark"}; 9 private static String[] firstNames = {"Mary", "John", "Susan", "Michael", "David", "Lisa", "Wendy", "Diane", "Kelly", "Claire", "Elizabeth", "Mitchell", "Richard"}; 10 11 public static void main(String[] args) { 12 13 // create an empty list 14 List<Student> studentList = new ArrayList<Student>(); 15 16 // initialize random generator 17 Random random = new Random(); 18 19 // create random number of students 20 loopcode(studentList, random); 21 22 23 //print out the students 24 printresult(studentList); 25 26 } 27 28 private static void printresult(List<Student> studentList) { 29 for (Student temp : studentList) { 30 System.out.println(temp); 31 32 } 33 } 34 35 public static void loopcode(List<Student> studentList, Random random) { 36 for (int i=0; i < 3; i++) { 37 38 // get random first name 39 String tempFirstName = firstNames[random.nextInt(firstNames.length)]; 40 41 // get random last name 42 String tempLastName = lastNames[random.nextInt(lastNames.length)]; 43 44 Student tempStudent = caculateage(random, tempFirstName,tempLastName); 45 46 // add them to the list 47 studentList.add(tempStudent); 48 } 49 } 50 51 private static Student caculateage(Random random, String tempFirstName, 52 String tempLastName) { 53 // get random age 54 int age = 18 + random.nextInt(20); 55 56 // create student 57 Student tempStudent = new Student(tempLastName, tempFirstName, age); 58 return tempStudent; 59 }
3、观看视频The Expert (Short Comedy Sketch),写出观后感(内容是什么,说明了什么问题,有什么启示),提交到博客!
该视频主要讲的是一个开发产品公司里的一些经理、设计师、开发人员和客户大家在一起讨论怎样根据客户的需求开发新产品。经理和设计师对开发人员提出了一些要求,让他画出七条红线而且这七条红线要两两互相垂直,这七条红线有一些是用绿色墨水画的,有一些是用透明墨水画的。他们都认为开发人员就是可以完成任务的。然而开发人员觉得每个任务都相当的困难。开发人员问客户想要的新产品是什么样的,不过最终也没有得出对将要开发的新产品的需求。
我认为领导最擅长的方式是行政命令,这显然是不可取的。要考虑的是对客户所提出的要求是否具有可行性、可实现性,不要一味的觉得客户只要提出要求,就要求下属一定要完成任务,这是很盲目的做法。作为开发人员,要详细了解客户的需求,和客户之间达成一致的协议,而不是双方想法各异。我认为一个公司要想把一个项目给做好,要懂得如何进行需求分析,知道如何说服相关利益者同意并支持正确的项目方向,做到团队合作以及统一的流程。
4、学习在项目中使用 jar 文件:
1)在下列code中导入jar文件“commons-lang3-3.3.2.jar”,并运行,将运行结果截图提交到博客:
在code中导入jar文件“commons-lang3-3.3.2.jar:
运行结果如下:
---恢复内容结束---