Tuesday, June 16, 2015

[AP] Assigment 2 : Test/Question/Answer Management

------------------------------------------------------------------------------- Class Questions:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

[AP] Lab 6 : Delegate & Event





Friday, June 12, 2015

[AP] - Lab 8 : Generics & Iterators

* Generics: là các cấu trúc dữ liệu mà cho phép bạn dùng lại các mã giống nhau cho các kiểu khác nhau giống như class, interface. Generics được sử dụng tốt nhất khi làm việc với các mảng và các tập hợp liệt kê.

* Iterators: là các khối của đoạn mã mà có thể được lặp lại thông qua các giá trị của tập hợp.

Exam:
1.
2.


Tuesday, June 9, 2015

[AP] - Lab 7: Collections


Lab7:
Class Employees

 Class Main


Class EmployeeManagement ArrayList




Class EmployeeManagement Hashtable



Class EmployeeManagement Dictionary



Result





Monday, February 9, 2015

[ADF1]: Day 4: abstract



Make a documentation of this framework by declare some variables of Actor and create some objects of GoJumpActor, JumpGoActor, asign them to the above variables and call them (mark of 4)


//Moveable interface

public interface Moveable { public void jump(); public void forward(); }

//Child abstract

public abstract class Child implements Moveable{ public Circle image; public Child(){ image = new Circle(); image.makeVisible(); } public abstract void jump(); public void forward(){ image.slowMoveHorizontal(10); } }

//JumpGoChild class

public class JumpGoChild extends Child{ public void jump(){ super.image.slowMoveVertical(-3); super.forward(); } }

//GoJumpChild class

public class GoJumpChild extends Child{ public void jump(){ super.forward(); super.image.slowMoveVertical(-3); } }

Make an explanation to your team about the need of this framework, also point out some of this advantages to demonstrate your awareness of the complexity of this framework (Mark of 5).

Framework trên đã làm rõ hơn khái niệm về interface và abstract:
- class Child implements interface Moveable nên nó override lại các method của Moveable.
- class Moveable là abstract class và nó có một abstract method là jump().
- class GoJumpChild và JumpGoChild là các subclass của superclass Moveable nên nó thừa kế method forward() và override lại method jump() của superclass.




Sunday, February 8, 2015

[ADF1] - Day 3: interface

Today, game is an important industrial of software, one of most important features that a game must have is the extensible capacity. As an architect, you know the meaning of “implement into interface not into implementation”, so you must:

Create an interface for actor that can do (mark of 2):
- forward()
- jump()
- blink()

public interface Action { public void Forward(); public void Jump(); public void Blink(); }

Create an implementation of the above interface for current version (mark of 3)


public class Actor implements Action { private int step = 100; private Circle face; private Circle leftEye; private Circle rightEye; private Triangle mouth; public Actor(){ //face face = new Circle(); face.makeVisible(); face.changeSize(70); face.moveHorizontal(107); face.moveVertical(100); face.changeColor("yellow"); //leftEye leftEye = new Circle(); leftEye.makeVisible(); leftEye.changeSize(15); leftEye.moveHorizontal(120); leftEye.moveVertical(120); leftEye.changeColor("black"); //rightEye rightEye = new Circle(); rightEye.makeVisible(); rightEye.changeSize(15); rightEye.moveHorizontal(150); rightEye.moveVertical(120); rightEye.changeColor("black"); //mouth mouth = new Triangle(); mouth.makeVisible(); mouth.changeSize(8,30); mouth.moveHorizontal(112); mouth.moveVertical(192); mouth.changeColor("brown"); } public void Forward(){ face.moveHorizontal(step); leftEye.moveHorizontal(step); rightEye.moveHorizontal(step); mouth.moveHorizontal(step); } public void Jump(){ face.moveVertical(-step/2); leftEye.moveVertical(-step/2); rightEye.moveVertical(-step/2); mouth.moveVertical(-step/2); face.moveVertical(step/2); leftEye.moveVertical(step/2); rightEye.moveVertical(step/2); mouth.moveVertical(step/2); } public void Blink(){ for (int i = 0; i<20; i++){ leftEye.changeColor("red"); rightEye.changeColor("red"); leftEye.changeColor("black"); rightEye.changeColor("black"); } } }

Make an explanation of “implement into interface not into implementation” for your team (mark of 4)

Thực thi các phương thức trong interface chứ không phải thực thi các phương thức đó.


What is advantage or disadvantage of using interface in software development? (mark of 5)

advantage:
- Tạo ra những phương thức chung cho các class, khi sử dụng sẽ định nghĩa lại các phương thức đó --> đỡ phức tạp khi phải đặt tên cho các method có cùng tính chất trong các class khác nhau.
- Sử dụng interface trong hệ thống lớn có nhiều class sẽ làm cho code dễ hiểu hơn, khi người khác nhìn vào sẽ nắm bắt được những phương thức cơ bản trong hệ thống.
disadvantage
- Vì khi sử dụng đến method phải implements interface nên sẽ làm code chạy chậm đi.

Wednesday, February 4, 2015

[ADF1] - Day 2.2 : Method


Create methods sunRise(), sunSet() for make animation for the following scenarios
CODE:

//Sunrise
  public void sunRise(int distance) 
 {
      for (int i = 0; i < distance; i++){
         sun.moveVertical(-1);
      }
   }

//Sunset 
   public void sunSet(int distance)
  {
       for (int i = 0; i < distance; i++){
         sun.moveVertical(1);
       }       
   }

//Sun auto Up And Down
public void sunUpDown(int loop, int range){    
        if (range < 0){            
            range = -range;            
        }
        if (loop < 0){            
            loop = -loop;            
        }
        int max = yPosition + range;
        for (int i = 0; i < loop; i++)
        {
            if (yPosition < max)
            {
                for (int j = 0; j < range; j++){
                    yPosition += 1;
                    draw();
                }
            } 
            if (yPosition == max)
            {
                for (int j = 0; j < range; j++){
                    yPosition -= 1;
                    draw();
                }
            }
        }
    }

Describe the structure of a method:

method là thành phần thường được viết cuối cùng trong cấu trúc của class, nó là các behavior của objects tạo ra bởi class.
có hai loại method:
- accesscor method(): là method() tạo ra để lấy các giá trị của fields mà không làm thay đổi chúng.
thường thì các method() này có dạng
public field's_data_type getMethodName() //setter
{
return field;
}
- mutator method(): là method() tạo ra để thay đổi các giá trị các fields của class.
public void setMethodName(datatype x) //getter
{
field = x;
}

[ADF1] - Day 2.1 : Class

Create class of following images


/**
 * Draw house with sun rise and set
 * 
 * @author (Thiendmh) 
 * @version (1.0)
 */
public class Picture
{
   private Triangle roof;
   private Square wall;
   private Square window;
   private Circle sun;
   
   public Picture(){
       
   }
   
   public void draw(){
        wall = new Square();
        wall.moveVertical(80);
        wall.changeSize(100);
        wall.makeVisible();

        window = new Square();
        window.changeColor("black");
        window.moveHorizontal(20);
        window.moveVertical(100);
        window.makeVisible();

        roof = new Triangle();
        roof.changeSize(50, 140);
        roof.moveHorizontal(60);
        roof.moveVertical(70);
        roof.makeVisible();

        sun = new Circle();
        sun.changeColor("yellow");
        sun.moveHorizontal(180);
        sun.moveVertical(-10);
        sun.changeSize(60);
        sun.makeVisible();
   }
   
   public void sunRise(int distance) {
      for (int i = 0; i < distance; i++){
         sun.moveVertical(-1);
      }
   }
   
   public void sunSet(int distance) {
       for (int i = 0; i < distance; i++){
         sun.moveVertical(1);
       }       
   }
}

What is structure of a class and name each components of application?(mark of 3).

Khai báo Class:
public class className()
{
data field : chứa các biến của class.
constructor() : hàm khởi tạo ban đầu của object có thể có hoặc không có tham số.
method() : các behavior của object tạo bởi class.
}

What does key word this mean?(mark of 4).

Từ khóa this trong method của một class trỏ đến object đang được gọi của class đó.

Develop your version of class Person? (mark of 5)



/**
 * Person
 * @author (Thiendmh) 
 * @version (1.0)
 */
public class Person
{
    private String firstName;
    private String lastName;
    private int age;
    private String sex;    
    public Person()
    {
        firstName = "Victor";
        lastName = "Hugo";
    }
    public Person(int myAge, String mySex)
    {
        age = myAge;
        sex = mySex;
    }
    public void showInfor(){
        System.out.println("My name is :" + firstName + " " + lastName);
        System.out.println("My age is :" + age);
        System.out.println("I am " + sex);
    }
    public void pEat(String food)
    {
        System.out.println("Person name " + firstName +" "+ lastName + " eating "+ food);
    }
    public String getSex()
    {
        return sex;
    }
    public void setName(String nfirstName, String nlastName)
    {
        firstName = nfirstName;
        lastName = nlastName;
    }

}

[ADF1] - Day 1: Draw picture using BlueJ's example



Add code draw RECTANGLE:

public class Rectange
{
    private int xSize;
    private int ySize;
    private int xPosition;
    private int yPosition;
    private String color;
    private boolean isVisible;

public Rectange()
    {
        xSize = 100;
        ySize = 5;
        xPosition = 60;
        yPosition = 50;
        color = "magenta";
        isVisible = false;
    }

public void changeSize(int new_xSize, int new_ySize)
    {
        erase();
        xSize = new_xSize;
        ySize = new_ySize;
        draw();
    }

private void draw()
    {
        if(isVisible) {
            Canvas canvas = Canvas.getCanvas();
            canvas.draw(this, color,
                    new Rectangle(xPosition, yPosition, xSize, ySize));
            canvas.wait(10);
        }
    }
}

Add code to draw SunRiseUp: with loop pass by user


Draw house with Sun auto Rise and Up: