第二次过程性考核

码云:https://gitee.com/happywindmannn/the_second_process_assessment/tree/master

7-1 学生类-构造函数

定义一个有关学生的Student类,内含类成员变量: String name、String sex、int age,所有的变量必须为私有(private)。

1.编写有参构造函数:

能对name,sex,age赋值。

2.覆盖toString函数:

按照格式:类名 [name=, sex=, age=]输出。使用idea自动生成,然后在修改成该输出格式

3.main方法中

输入1行name age sex , 调用上面的有参构造函数新建对象。

输入样例:

tom 15 male

输出样例:

Student [name='tom', sex='male', age=15]

 

设计思路:

1.创建一个Student的类内容含有各种属性。

在Student类中构造有参数函数时,应该注意在类中构造有参函数public后不用定义该函数,切构造函数名称与类相同。

 

2.toString函数的创建,定义输入字符覆盖到Student类中的属性。

 

 

 1  import java.util.Scanner;
 2   
 3  class Student {        //创建类
 4       private String name;
 5       private String sex;
 6       private int age;
 7   
 8       public Student() {       //此处为有参构造函数,把类中属性赋值。
 9          this.name = "tom";
10          this.sex = "male";
11          this.age = 15;
12      }
13  
14      public void toString(String n, int a, String s) {         //toString输出函数,并定义输入字符n,s,a赋值到类中属性。
15          this.name = n;
16          this.sex = s;
17          this.age = a;
18          System.out.println("Student [name=" + this.name + ", sex=" + this.sex + ", age=" + this.age + "]");
19      }
20  
21  }
22  
23  public class StudentClass {                           
24      public static void main(String[] args) {
25       
26          Scanner reader = new Scanner(System.in);
27          String n = reader.next();               //     创建对象,实例化
28          int a = reader.nextInt();
29          String s = reader.next();
30          Student ww = new Student();
31          ww.toString(n, a, s);
32          reader.close();
33  
34      }
35  }

 

总结:此题在考试中没有得分,因为没有掌握toString函数,以及对输入的覆盖问题没有掌握。

 

ps:此题思路参考陈炳全同学,应还有没有完善的地方,在之后补充。

 

7-2 定义类

请补充以下代码,完成输出要求。

 1 import java.util.Scanner;
 2   public class Main {
 3       public static void main(String[] args) {
 4                  Scanner in = new Scanner(System.in);
 5                  int a,b,c,d,e;
 6                  a = in.nextInt();
 7                  b = in.nextInt();
 8                  c = in.nextInt();
 9                  d = in.nextInt();
10                  e = in.nextInt();
11                  RR rr = new RR();
12                  double dd = rr.fun(a,b,c,d,e);
13                  System.out.printf("%.2f",dd);
14      }
15  }
16  class RR{
17  
18  
19  }

输入格式:

在一行中给出5个不超过1000的正整数。

输出格式:

输出5个整数的平均值,保留小数点后两位

输入样式:

1 2 3 4 5

输出样式:

3.00

 

设计思路:

此题应该把类RR补全,RR内应该定义方法将5个输入变量,方法内求五个变量求平均数。

 

 import java.util.Scanner;
  public class Main {
      public static void main(String[] args) {
                 Scanner in = new Scanner(System.in);
                 int a,b,c,d,e;
                 a = in.nextInt();
                 b = in.nextInt();
                 c = in.nextInt();
                 d = in.nextInt();
                 e = in.nextInt();
                 RR rr = new RR();
                 double dd = rr.fun(a,b,c,d,e);
                 System.out.printf("%.2f",dd);
     }
 }
 class RR{

  public double fun(int a, int b, int c, int d, int e,double i) {
         i =(a+b+c+d+e)/5;
         return i;

 }

 

 

总结:

类中方法的构建,以及方法中的值传参。

 

7-3 横平竖直

程序填空题。根据题目要求完善下面的代码。请提交完整代码。 一个木块如果高度比宽度大,我们说它是竖着放的,否则我们说它是平放的。 读入一个木块的高度和宽度。如果它是平放的,则输出A,否则输出B

 1 import java.util.Scanner;
 2   public class Main{
 3      public static void main(String[] args){
 4           Scanner in = new Scanner(System.in);
 5           int height, width;
 6           char status;
 7           height = in.nextInt();
 8           width = in.nextInt();
 9           Board board = new Board(height, width);
10           status = board.getStatus();
11           System.out.print(status);
12      }
13  }
14  class Board{
15     int height, width;
16     public Board(int height, int width){
17         this.height = height;
18         this.width = width;
19     }
20    public char getStatus(){
21         if(height<=width){
22            return status(1);
23         }else{
24           return status(1.0);
25         }
26     }
27     public char status(double rate){
28  
29      } 
30      public char status(int rate){
31  
32      }
33  } 

 

设计思路:

(height<=width) 当宽大于等于高的时候返回值为1所以执行 public char status(int rate) 函数所以输出“A”。


反之则执行public char status(double rate)函数输出值为“B”。

 

 1  import java.util.Scanner;
 2     public class Main{
 3        public static void main(String[] args){
 4             Scanner in = new Scanner(System.in);
 5             int height, width;
 6             char status;
 7             height = in.nextInt();
 8             width = in.nextInt();
 9             Board board = new Board(height, width);
10             status = board.getStatus();
11             System.out.print(status);
12       }
13   }
14   class Board{
15      int height, width;
16      public Board(int height, int width){
17          this.height = height;
18          this.width = width;
19      }
20     public char getStatus(){
21          if(height<=width){
22             return status(1);
23          }else{
24            return status(1.0);
25          }
26      }
27      public char status(double rate){
28       return 'B';
29       } 
30       public char status(int rate){
31          return 'A';
32       }
33   } 

 

7-4 程序改错题

程序改错题。以下代码存在错误,请修改后提交。

 1 public class Main {
 2       public static void main(String[] args) {
 3           Animal animal = new Dog();
 4           animal.shout();
 5           animal.run();
 6       }
 7   }
 8   
 9   class Animal {
10      void shout() {
11          System.out.println("animal shout!");
12      }
13  }
14  
15  class Dog extends Animal {
16      void shout() {
17          super.shout();
18          System.out.println("wangwang……");
19      }
20  
21      void run() {
22          System.out.println("Dog is running");
23      }
24  }

输出样例:

 

animal shout!
wangwang……
Dog is running

设计思路:

Dog为Animal的继承类,在实例化输出时无法输出子类的方法,可以在父类中重新定义一个run方法,在子类Dog构造run时相当于重写run函数

 1 public class Main {
 2         public static void main(String[] args) {
 3             Animal animal = new Dog();
 4             
 5                 animal.shout();
 6                 animal.run();
 7         }
 8     }
 9     
10     class Animal {
11       void shout() {
12           System.out.println("animal shout!");
13         public void run() {
14         
15   }
16  }
17  }
18   }
19   
20   class Dog extends Animal {
21       void shout() {
22           System.out.println("wangwang……");
23       }
24   
25       void run() {
26           System.out.println("Dog is running");
27       }
28   }

 

代码行数

博客行数

1000

 

 

 

 

posted on 2018-10-11 22:35  沙雕网友  阅读(657)  评论(0编辑  收藏  举报