본문 바로가기
자바과정/스터디

스터디 2일차(실습 코드 보완)

by Parkej 2021. 2. 2.

- 기존 코드는 필드와 메소드(setter/getter)로만 사용한 반면 복습을 통해 생성자로 코드를 재작성 해봄. (getter도 같이 이용)

 

사칙연산계산기

import java.util.Scanner;
//클래스 필드 생성자 메소드 오버로딩
//계싼기 객체 계산기 쓸 수 있는 환경
//생성자를 이용한 사칙연산계산기
public class OperNew {

	// 필드 초기화 : 사용할 변수들
	private int num1, num2;
	private char op;

	public OperNew() {	} // 디폴트 생성자
	public OperNew(int a, char b, int c) {
		this.num1 = a;
		this.op = b;
		this.num2 = c;
	}

	public int getA() {
		return num1;
	}
	public char getB() {
		return op;
	}
	public int getC() {
		return num2;
	}

	public int add() {	// 더하기
		System.out.print(getA()+" + "+getC()+" = ");
		return getA()+getC(); 
	}
	public int sub() {	// 빼기
		System.out.print(getA()+" - "+getC()+" = ");
		return getA()-getC(); 
	}
	public int mul() {	// 곱
		System.out.print(getA()+" * "+getC()+" = ");
		return getA()*getC(); 
	}
	public float div() {	// 나눔
		System.out.print(getA()+" / "+getC()+" = ");
		return (float)getA()/getC();
	}

	public static void main(String[] args) {
		int num1, num2;
		char op, str;
		Scanner sc = new Scanner(System.in);
		
        do {
		System.out.println("연산 수식 입력 : ");
		num1 = sc.nextInt();
		op = sc.next().charAt(0);
		num2 = sc.nextInt();
		
		OperNew ce = new OperNew(num1, op, num2); // 생성자 객체 생성
		
		switch(ce.getB()) {
		case '+' : 
			System.out.println(ce.add());break;
		case '-' :
			System.out.println(ce.sub());break;
		case '*' :
			System.out.println(ce.mul());break;
		case '/' :
			System.out.println(ce.div());break;
		}
        
        System.out.println();
        System.out.print("Continue?(y/n) : ");
        str = sc.next().charAt(0);
        if(str == 'n' || str == 'N') {
           System.out.println("End");
           break;
        }
		}while(str == 'y' || str == 'Y');
		

		
	}
}

 

- 기존 코드는 score안의 값을 입력함에 있어 좀 더 유연한 코드로 생각해봄 스터디 내 팀원의 코드를 바탕으로 재작성 및 재복습하게됨.

 

1인 성적처리

/*
 * 성적처리프로그램
 * 입력 : 이름, 국, 영, 수
 * 연산 : 총점, 평균
 * 출력 : 이름, 국, 영, 수, 총, 평
 */
import java.util.Scanner;
public class ArrayNew {

	private String name;
	private int []score; //= new int[4];//국 영 수 총
	private float avg;

	public ArrayNew() {
		name = "";
		score = new int[4];
		avg = 1.f;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public void setScore(int i, int score) {
		this.score[i] = score;
	}
	
	public void setAvg(float data) {
		avg = data;
	}
	
	public void seTotal(int score) { // 총점 
		// 출력할때 getScore에서 마지막 인덱스를 쓰기 위함임.
		this.score[3] += score;
	}

	public String getName() {
		return name;
	}
	public int[] getScore() {
		return score;
	}
	public float getAvg() {
		return avg = score[3]/3.0f;
	}
	

	
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in); // 객체선언
		ArrayNew ae = new ArrayNew();
		
		System.out.print("이름 입력 : ");
		ae.setName(sc.next());
		for(int i=0;i<ae.getScore().length-1;i++) {
			System.out.print("성적 입력(국 영 수) : ");
			ae.setScore(i,sc.nextInt());
			ae.seTotal(ae.getScore()[i]);
		}
		// 출력
		System.out.println(ae.getName());
		for(int i=0;i<ae.getScore().length;i++) {
			System.out.println(ae.getScore()[i]);
		}
		//System.out.println(ae.getTotal());
		System.out.println(ae.getAvg());

	}

}
반응형

'자바과정 > 스터디' 카테고리의 다른 글

파이썬 기초 다지기  (2) 2021.02.27
Java 기초 - 6일차  (0) 2021.02.04
스터디 3일차(this, 클래스, 실습추가)  (0) 2021.02.03
스터디 2일차  (0) 2021.02.02
스터디 1일차  (0) 2021.02.02

댓글