티스토리 뷰

Programming Language/Java 실습

7/15 실습

mming_0213 2019. 7. 20. 14:49
package Day190715;

class Programmer{
	private String name;
	private int age;
	private Project now;
	private Project[] history = new Project[50];
	Project project;
	private int cnt = 0;
	private int sum = 0;
	
	Programmer(String name, int age){
		this.name = name;
		this.age = age;
	}
	
	//현재 진행중인 Project를 설정
	public void joinProject(Project p) {
		this.now = p;
	}
	
	//project 경력을 추가(history)
	public void addProjectHistory(Project p) throws Exception {
		if(cnt > 4) {
			throw new Exception("Project History는 5개까지 추가가능합니다.");
		}
		history[cnt++] = p;
	}
	
	//현재 Project를 리턴
	public Project getNowProject() {
		return project;
	}
	
	//Project 경력을 출력
	public void printProjectHistory() {
		for(int i = 0; i < cnt; i++)
		{
			System.out.println("프로젝트명 :" + history[i].getName() +  ", 수행기간 :" + history[i].getMonth());
		}
	}
	
	//모든 Project의 총 경력의 합을 리턴(x년 x월)
	String getTotalHistory(){
		for(int i = 0; i < cnt; i++)
		{
			sum += history[i].getMonth();
		}
		int year = sum/12;
		int month = sum - (12*year);
		
		return year + "년" + month + "월";
	}
	
}

class Project {
	private String name;
	private int month;
	private String company;
	
	Project(String name, int month, String company){
		this.name = name;
		this.month = month;
		this.company = company;
	}
	
	String getName() {
		return name;
	}
	
	void setName(String name) {
		this.name = name;
	}
	
	int getMonth() {
		return month;
	}
	
	void setMonth(int month) {
		this.month = month;
	}
}

public class ProjectTest {

	public static void main(String[] args) {
		
		Programmer pg = new Programmer("염민주", 25);
		
		Project p1 = new Project("project1", 10, "회사1");
		Project p2 = new Project("project2", 7, "회사2");
		Project p3 = new Project("project3", 5, "회사3");
		Project p4 = new Project("project4", 5, "회사4");
		Project p5 = new Project("project5", 5, "회사5");
		Project p6 = new Project("project6", 5, "회사6");
		pg.joinProject(p1);
		
		try {
		pg.addProjectHistory(p1);
		pg.addProjectHistory(p2);
		pg.addProjectHistory(p3);
		pg.addProjectHistory(p4);
		pg.addProjectHistory(p5);
		pg.addProjectHistory(p6);
		
		}catch(Exception e) {
			e.printStackTrace();
		}
		pg.printProjectHistory();
		System.out.println(pg.getTotalHistory());
	}

}

<문제>

...더보기

실습:  소스코드로 전환

Programmer

1.속성: private String name, private int age, private Project now, private Project[] history

2.함수

-void joinProject(Project p): 현재 진행중인 Project를설정

-void addProjectHistory(Project p): Project경력을 추가

-Project getNowProject(): 현재Project리턴한다

-void printProjectHistory(): Project 경력을 출력한다

-String getTotalHistory: 모든 Project의 총 경력의 합을 리턴한다(xx)

-void setTotalHistory(Project[] p): 총 경력을 설정한다

* 참고

- Project History5개까지 가능: 5개를 넘게 추가 시 Exception 발생

   “Project History5개까지 추가가능합니다

 

Project

- 속성:private (String)name, private (int)month, private String company

- 메소드:

  String getName(): Project명 리턴

  void setName(String name): Project명 설정

   intgetMonth(): Project 수행기간을 월로 리턴

   void setMonth(int month): Project 수행기간을 설정

 

 

-------------------------------------------------------

오후실습:  분석

Teacher, Student에 대한 클래스를 상속/다형성을 반영하여 설계하라

실습1

 

'Programming Language > Java 실습' 카테고리의 다른 글

7/17 실습  (0) 2019.07.20
7/16 실습-2  (0) 2019.07.20
7/16 실습  (0) 2019.07.20
7/12 실습  (0) 2019.07.20
7/11 실습  (0) 2019.07.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함