'전체 글'에 해당되는 글 384건

  1. 2019.07.04 9일차
  2. 2019.07.03 8일차 - 과제
  3. 2019.07.03 8일차 - 배열(2차원)
  4. 2019.07.03 8일차 - 배열(1차원)
  5. 2019.07.02 정보로서의 HTML
  6. 2019.07.02 7일차 - 과제
  7. 2019.07.02 7일차 - 중요메소드
  8. 2019.07.02 7일차 - 생성자
  9. 2019.07.02 6일차 - 과제
  10. 2019.07.01 은행계좌시스템

9일차

|

주요내용 : 배열(3차원), 상속

		//배열에서 원하는 데이터 찾기
		//임의의 수를 10개 입력하고, 찾고자 하는 데이터의 위치가 어디인지를 찾아서 인덱스를 출력하세요.
		int su, i;
		int num[] = new int[10];
		Scanner sc = new Scanner(System.in);
		System.out.println("10개의 정수형 데이터를 입력해 주세요 : ");
		for(i=0;i<num.length; i++) {
			num[i]=sc.nextInt();
		}
		System.out.println();
		System.out.println("찾을 데이터를 입력하세요.");
		su = sc.nextInt();
		for(i=0; i<num.length;i++)
			if(num[i]==su)
				break;
		if(i!=num.length)
			System.out.println("숫자의 위치한 곳의 배열의 위치는 = " + (i+1));
		else
			System.out.println("숫자를 찾지 못하였습니다.");
		
		
		//문제] 30명의 학생에게 주변음식점에 대한 만족도를 조사했습니다. -- 문제해결 및 강사님 풀이법 추가할것.
		//조사한 결과를 출력하세요.
		//기준 : 5(매우만족) 4(만족) 3(보통) 2(불만) 1(매우불만족)
		//결과 : 5:10명        4:5명     3:10명     2:2명     1:3명
//		int sur[][] = new int[1][4];
//		System.out.println("============================================");
//		System.out.println("  \t매우만족\t만족\t보통\t불만\t매우불만족");
//		System.out.println("============================================");
//		System.out.print("기준\t");
//		int num=5;
//		for(int i=0; i<sur[0].length; i++) { 
//			sur[0][i]=num; 
//			num--;
//			}
//		for(int i=0; i<sur[0].length;i++) { //열증가
//			System.out.print(sur[0][i] + "\t"); //title 출력
//			}
//		System.out.println();
//		System.out.print("결과\t");
//		for(int i=0;i<sur[1].length;i++) {
//			sur[1][i] = (int) (Math.random()*30);
//		}
//		for(int i=0;i<sur[1].length;i++) {
//			System.out.print(sur[1][i] +"명  ");
//		}
		
		//강사님 풀이법
		int response[] = {5,2,3,1,1,5,5,5,2,3,1,4,5,4,3,2,4,5,2,1,1,2,3,4,5,5,4,3,2,1};
		int frenquency[] = new int[5];//응답유형5가지
		
		for(int i=0; i<response.length; i++) {
			if(response[i]==1) //1점
				++frenquency[0];
			else if(response[i]==2) //2점
				++frenquency[1];
			else if(response[i]==3) //3점
				++frenquency[2];
			else if(response[i]==4) //4점
				++frenquency[3];
			else
				++frenquency[4];//5점
		}
		//출력
		for(int j=0; j<frenquency.length; j++) {
			System.out.println(j + ":" + frenquency[j]);
		}
		
		//배열이름을 이용한 주소 복사
		//->부작용(side effect) : 하나의 메모리를 공유할때, 예상하지 못한 일이 발생하는 현상.
		int[] num1 = {10, 20, 30, 40, 50};
		int[] num2;
		num2 = num1; // num1의 배열의 시작 주소 복사
		for(int i=0; i<num2.length; i++) {
			num2[i]++; //1을 증가시켜서 복사
		}
		for(int j=0; j<num1.length; j++) {
			System.out.println("num[" + j +"]" + num1[j]);
		}
				
		
		//다음과 같은 출력을 하는 프로그램을 작성합니다.
		// 1 -1 1 -1 1
		// 0 -1 1 -1 1
		// 0 0 -1 1 -1
		// 0 0 0 1 -1
		// 0 0 0 0 1
		int array[][] = new int[5][5];
		int temp=1;
		//저장
		for(int i=0; i<5; i++) {
			for(int j=i; j<5; j++) { 
				array[i][j]=temp;
				temp*=(-1);
			}
		}
		//출력
		for(int i=0; i<5; i++) {
			for(int j=0; j<5; j++) {
				System.out.print(array[i][j]+" ");
			}System.out.println();
		}
		
		
		//다음과 같은 출력을 하는 프로그램을 작성합니다.
		// 1 4 9 16 25
		// 0 36 49 64 81
		// 0 0 100 121 144
		// 0 0 0 169 196
		// 0 0 0 0 225
		int array[][] = new int[5][5];
		int temp=0;
		//저장
		for(int i=0; i<5; i++) {
			for(int j=i; j<5; j++) {
				temp++;                 ////////// 순서만 바로 아래와 바꿔주면 되었음..
				array[i][j]=temp*temp;
			}
		}
		//출력
		for(int i=0; i<5; i++) {
			for(int j=0; j<5; j++) {
				System.out.print(array[i][j]+" ");
			}System.out.println();
		}
		
		//bitcamp hotel을 증축하여 5층이고, 각 층의 호실은 7개씩 있습니다.
		//투숙객은 다음과 같이 있다면, 전체 인원수와 각층의 평균 인원수는 얼마인가요?
		//[data]
		//     1호실 2호실 3호실 4호실 5호실 6호실 7호실  각층의총합  각층의평균인원수
		//5층 :
		//4층 :
		//3층 :
		//2층 :
		//1층 :
		
//		Random ran = new Random();
//		int bh[][] = new int[5][9];
//		int sum=0, avg = 0;
//		System.out.println("======================================================================================");
//		System.out.println("\t1호실\t2호실\t3호실\t4호실\t5호실\t6호실\t7호실\t총합\t평균");
//		System.out.println("======================================================================================");
//		System.out.print("5층\t");
//		for(int i=0; i<7; i++) { 
//			bh[0][i]=ran.nextInt(5)+1; 
//			}
//		for(int i=0; i<7;i++) { //열증가
//			System.out.print(bh[0][i] + "\t"); //title 출력
//			}
//		for(int i=0; i<7; i++) { 
//			sum+=bh[0][i]; 
//			}
//		bh[0][7] = sum;
//		avg = sum/7;
//		bh[0][8] = avg;
//		System.out.print(bh[0][7] + "\t");
//		System.out.print(bh[0][8]);
//		System.out.println();
		
		
		
		
		//1차원과 2차원의 혼합방식
		//다음과 같이 성적이 있습니다. 이름은 1차원 배열로 하고, 데이터는 2차원 배열로 합니다.
		//총점과 평균을 구하여 출력하세요.
		//[data]
		//기섭  은지  홍수
		// 90  90  90
		// 80  85  75
		// 70  60  90
		String name[] = new String[3]; //이름배열 사용
		int sung[][] = new int[3][3]; //성적배열 사용
		int sum = 0, avg = 0;
		Scanner sc = new Scanner(System.in);
		System.out.println("이름을 입력하세요.");
		for(int i=0; i<name.length; i++) {
			name[i]=sc.next();
		}
		System.out.println("국어, 영어, 수학 데이터를 입력해 주세요. : ");
		for(int i=0; i<sung.length; i++) {
			for(int j=0; j<sung.length; j++) {
				sung[i][j] = sc.nextInt();
			}
		}
		System.out.println("\t성적표");
		System.out.println("=========================");
		System.out.println("번호 이름 국어 영어 수학 총점 평균");
		System.out.println("=========================");
		for(int i=0; i<sung.length; i++) {
			System.out.print(" " + (i+1) + " ");
			System.out.print(name[i] + " ");
			for(int j=0; j<sung.length; j++) {
				System.out.print(sung[i][j] + " ");
				sum+=sung[i][j];
				avg = sum/3;
			}
			System.out.print(sum + " ");
			System.out.print(avg);
			System.out.println();
			sum=0;
			avg=0;
		}
		System.out.println("---------------------------");
		
		
		
		
		//3차원 배열 : 면중심, [면][행][열] :주사위(6면, 각행과 열이 존재)
		// int [][][] sam = new int[3][2][4]; // -> 2행 4열짜리가 3개있다.(=2차원 배열이 3개가 존재)
		int [][][] sam = {
				{{1,2,3,4}, {3,4,5,6}},
				{{10,20,30,40},{5,7,9,11}},
				{{11,21,31,41},{51,71,91,111}},
			};
		for(int i =0; i<sam.length; i++) {
			for(int j=0; j<sam[i].length; j++) {
				for(int k=0; k<sam[i][j].length; k++) {
					System.out.println("sam[" + i + "][" + j +  "][" + k + "]=[" + sam[i][j][k] + "]");
				}
				System.out.println();
			}
			System.out.println();
		}
        
        
//-----------------------------------------상속---------------------------------------

package OOP;

/* 클래스 : 객체를 사용하기 위한 틀.
 * 객체 : 데이터를 처리하기 위한 틀.
 * 메소드 : 객체가 가지고 있는 데이터를 어떤 형태로 가공처리하기 위한 틀.
 * 메소드오버로딩 : 서로 다른 역할을 하지만, 이름은 반드시 메소드명이 같다.
 * 생성자 : 클래스 단위 처리하는 데이터를 저장하여 초기화하는 역할.(클래스 변수)
 * 생성자(메소드) 오버로딩 : 서로 다른 역할을 하지만, 이름은 반드시 클래스명과 같아야 한다.
 * 상속 : 부모클래스와 자식클래스간의 관계성 , extends, implements
 *  public class A extends B { -> class 하위클래스명 extends 상위클래스
 *  public class A extends B implements C, D, E...{ //다중 상속의 효과.
 *  public interface A extends B {
 *  
 * 메소드 오버라이딩 : 두 클래스가 상속관계 일 때, 메소드를 오버라이딩하여 사용할 수 있습니다.
 *  인터페이스를 이용하여 상속도 가능합니다.
 * 인터페이스 : 
 * 추상클래스 : 
 * 내부클래스 :   
 * 다형성 : 
 */



//1. 엄마와 아빠의 용돈을 합산하여 출력하세요. 단, 상속이용.
//class Parent{ // 부모클래스
//	//1.20000
//	
//	static int dad; //5
//	
//	Parent(int dad){ //생성자 이름은 클래스 이름과 동일해야한다.
//		this.dad = dad; //5
//	}
//}
//
//class Child extends Parent{ // 자식클래스
//	static int dad, mom;
//	int sum;
//                     //2     5
//	public Child(int dad, int mom) {
//		super(dad); //2
//		this.mom = mom; //5
//	} 
//	
//	public void add() {
//		sum = dad + mom ; // 5 + 2 = 7
//	}
//
//	public void display() {
//		System.out.println("용돈의 합계: " + sum);
//	}
//	
//}

//2. 엄마(20000원), 아빠(50000원) = 70000원

class Person { // 파더와 마더의 최상위클래스
	
	private int money; //4. m.mother : 50000, f.father : 30000 저장

	public Person() {
		
	}
	
	public Person(int money) {
		this.money = money;  //3. 전달받아서 저장함.
	}
	
	public int getMoney() { //5. 50000원, 30000원 저장.
		return money;
	}
	
	public void setMoney(int money) {
		this.money = money;
	}
	
}

class Mother extends Person{ //마더 왔더니 상위클래스 퍼슨으로 가라고 되어있음.

	public Mother() {
		super(); //2. 상위클래스에 전달
	}
	
	public Mother(int money) {
		super(money);
	}
	
}

class Father extends Mother{ //파더 왔더니 상위클래스 마더로 가라고 되어있음.

	private int dad; //30000
	private int mom;
	private int sum;

	public Father() {
		super();
	}
	
	public Father(int money) {
		super(money);
	}
	
	protected void add() {
		sum = mom + dad; //80000 기억
	}
	
	protected void output() {
		System.out.println("용돈의 합계는 = " + sum);
	}
	
}

public class InherSample1 extends Father {

	public InherSample1(int dad) {
		super(dad);
	}

	public static void main(String[] args) {
		
		//1. 엄마와 아빠의 용돈을 합산하여 출력하세요. 단, 상속이용.
//		Child c = new Child(20000, 50000);
//		c.add();
//		c.display();
		
		//2. 엄마(30000원), 아빠(50000원) = 80000원
		//   Mother()      Father()
		Mother m = new Mother(50000); //1. 클래스에서 넘김
		Father f = new Father(30000);
		int res1 = m.getMoney();
		int res2 = f.getMoney();
		int res3 = res1 + res2;
//		System.out.println(m.getMoney());
//		System.out.println(f.getMoney());
//		m.setMoney(4500); // m이 마더이므로, setMoney로 던져주면. -> 마더로 리턴.
		System.out.println("합계는 " + res3 + "원 입니다.");
		
/* 상위클래스 : Person
 * 하위클래스 : Mother, Father
 * super : 상위클래스의 객체를 가리킨다.
 * this : 자기자신의 클래스의 객체를 가리킨다.
 * 
 */
		
		

	}

}

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

package OOP;

import java.util.Scanner;

class Parent1 {
	public void Divi2(int su1, int su2){
		int sum = su1 % su2;
		System.out.println("나누기(나머지)  : " + sum);
	}
}

class Parent2 extends Parent1{
	public void Divi(int su1, int su2){
		int sum = su1 / su2;
		System.out.println("나누기 (몫) : " + sum);
	}
}

class Parent3 extends Parent2{
	public void Multi(int su1, int su2){
		int sum = su1 * su2;
		System.out.println("곱하기  : " + sum);
	}
}

class Parent4 extends Parent3{
	public void Minus(int su1, int su2){
		int sum = su1 - su2;
		System.out.println("빼기  : " + sum);
	}
}

class Child extends Parent4{
	public void Plus(int su1, int su2){
		int sum = su1 + su2;
		System.out.println("더하기  : " + sum);
	}
}



public class InherSample2 {

	public static void main(String[] args) {
		
		//가감승제산을 상속을 이용하여 풀어보세요.
		// Child class, Parent1, Parent2, Parent3, Parent4
		
		Child c = new Child();
		Scanner sc = new Scanner(System.in);
		System.out.println("두 수를 입력하세요.");
		int su1 = sc.nextInt();
		int su2 = sc.nextInt();
		
		c.Plus(su1, su2);
		c.Minus(su1, su2);
		c.Multi(su1, su2);
		c.Divi(su1, su2);
		c.Divi2(su1, su2);

	}

}


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

package OOP;

import java.util.Scanner;

class P3{
	public void Com(int commition){
		System.out.println("수당: " + commition +"원");
	}
}

class P2 extends P3{
	public void Sal(int salary){
		System.out.println("연봉: " + salary +"원");
	}
}

class P1 extends P2{
	public void Dep(String dept){
		System.out.println("부서 : " + dept +"팀");
	}
}

class don extends P1{
	public void Nam(String name){
		System.out.println("이름 : " + name +"님");
	}
}


//이름과 부서, 그리고 연봉, 수당을 입력받아서 연산하는 프로그램
public class InherSample3 {
	
//	private static String name;
//	private static String dept;
//	private static int salary;
//	private static int commition;

	public static void main(String[] args) {
		
		don c = new don();
		Scanner sc = new Scanner(System.in);
		System.out.println("이름, 부서, 연봉, 수당을 입력하세요.");
		String name = sc.next();
		String dept = sc.next();
		int salary = sc.nextInt();
		int commition = sc.nextInt();
		
		c.Nam(name);
		c.Dep(dept);
		c.Sal(salary);
		c.Com(commition);

	}

}

'Bitcamp > BITCAMP - Java' 카테고리의 다른 글

10일차 - 상속  (0) 2019.07.05
9일차 - 과제  (0) 2019.07.05
8일차 - 과제  (0) 2019.07.03
8일차 - 배열(2차원)  (0) 2019.07.03
8일차 - 배열(1차원)  (0) 2019.07.03
And

8일차 - 과제

|
package ArrayS;

import java.util.Arrays;
import java.util.Random;

public class 과제0703 {

	public static void main(String[] args) {
		
/*과제1> 다음과 같이 출력하시오.
 * 1 2 3 4 5
 *   6 7 8
 *     9
 *  10 11 12
 * 13 14 15 16 17
 */
		int num = 1;
		int gj1[][] = new int[5][5];
        //저장하는 부분
		for(int i=0;i<gj1.length;i++){
			if(i<3) //입력하면서 감소하는 부분
				for(int j=i;j<5-i;j++){
					gj1[i][j]=num;
					num++;
				}
			}else{  //입력하면서 증가하는 부분
				for(int j=4-i;j<=i;j++){
					gj1[i][j]=num;
					num++;
				}
			}
		}
        //출력하는 부분
		for(int i=0; i<gj1.length;i++) {
			for(int j=0; j<gj1.length; j++) {
				if(gj1[i][j]==0) 
					System.out.print("   ");
				else if(gj1[i][j]<10)
					System.out.print(gj1[i][j] + "  ");
				else
					System.out.print(gj1[i][j] + " ");
			}
			System.out.println();	
		}
		
        //강사님 풀이법
		int Exam1[][] = new int[5][5];
		int i, j, n=0;

		//입력하면서 감소하는 부분.
		for(i=0; i<3; i++) {  // 0<3, 1<3, 2<3, 3<3
			for(j=i; j<5-i; j++) { //2<3, 3<3
				n+=1;//1-> 2->3...->9
				Exam1[i][j] = n;//1,2,3,4,5
			}
		}
		//입력하면서 증가하는 부분.
		for(i=3;i<5; i++) { //3, 4
			for(j=4-i; j<i+1; j++) {   //1,2,3, 4<4, 0, 1<5, 2<5, 3<5, 4<5, 5<5
				n+=1;  //10, 11, 12, 13, 14, 15
				Exam1[i][j] = n;  //[3][1]=10, [3][2]=11, [3][3]=12, 
				   //[4][0]= 13, [4][1]=14, [4][2]=15,				
			}
		}
		//배열 출력
		for(i=0; i<5; i++) {
			for(j=0; j<5; j++) {
				System.out.print(Exam1[i][j] + "\t");
			}
			System.out.println(); 
	
		}
        

/*과제2> 변경 후와 같이 출력하시오.
 * 배열 num(10)에는 10개의 숫자가 저장되어 있습니다.
 * <변경전>
 * 10 20 30 40 50 60 70 80 90 100
 * <변경후>
 * 20 10 40 30 60 50 80 70 100 90
 */
		int num[] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
		int num2[] = new int [10];
		for(int i = 0; i<num.length-1; i+=2) {
			if(num[i]<num[i+1]) {
				num2[i] = num[i+1];
				num2[i+1] = num[i];
			}
		}
		for(int i = 0; i<num2.length;i++) {
			System.out.print(num2[i] + " ");
		}
		
		
/*과제3> 다음과 같이 출력하시오.
 * 1
 * 3 2
 * 6 5 4
 * 10 9 8 7
 * 15 14 13 12 11
 */
		
		int gj3[][] = new int[5][5];
		int temp=1; //표시할 값 temp
        //입력
		for(int i = 0; i<gj3.length; i++) { //i는 행
			for(int j = i ; j>=0; j--) { //j는 열
				gj3[i][j]=temp++; //[0][0] = 1, [1][1] = 2, [1][0] = 3....
			}
		}
        //출력
		for(int i = 0; i<gj3.length; i++) {
			for(int j = 0 ; j<=i; j++) {
				System.out.print(gj3[i][j] + " ");
			}
			System.out.println();
		}
		
/*과제4> 다음과 같이 출력하시오.
 * 21 22 23 24 25
 * 16 17 18 19 20
 * 11 12 13 14 15
 * 6 7 8 9 10
 * 1 2 3 4 5 
 */
		int gj4[][] = new int[5][5];
		int num = 1;
        //입력
		for(int i = gj4.length-1; i>=0; i--) {  //i는 행
			for(int j = 0 ; j<gj4.length ; j++) { //j는 열
				gj4[i][j]=num;   //[4][0]=1, [4][1]=2, [4][2]=3....(밑에서부터 찍음)
				num++;
			}
		}
        //출력
		for(int i=0;i<gj4.length;i++) {
			for(int j=0;j<gj4[i].length;j++) {
				System.out.print(gj4[i][j] + " ");
			}
			System.out.println();
		}
		
//과제5> boolean형 난수를 100개 생성하여 출력하세요.
		
		Random ran = new Random();
		Boolean gj5[] = new Boolean[100];
		int i = 0;
		for(i=0;i<gj5.length;i++) {
			gj5[i] = ran.nextBoolean();
			System.out.println((i+1) + "번째 난수는 = " +gj5[i]);
		}
		
//과제6> 100점대 난수를 100개 발생하여 출력하세요.
		
		int gj6[] = new int[100];
		int i = 0;
		for(i=0;i<gj6.length;i++) {
			gj6[i] = (int) (Math.random()*100);
			System.out.println((i+1) + "번째 난수는 = " +gj6[i]);
		}
		
        //강사님 풀이법
        Random rand = new Random();
		for(int i=0; i<100; i++) {
		double ranDouble2 = rand.nextDouble() + 100;//
		System.out.print(ranDouble2 + "\n");
		}
        

//과제7> 10~50을 초기값으로 갖는 1차원 배열을 text라는 이름으로 선언합니다.
// 4번째 원소의 값을 100으로 변경하고, 출력합니다.
// 모든 원소의 값을 0원으로 초기화하고, 출력합니다.
// 각 단계별 출력을 모두 실행이 되도록 합니다.
		
		int text[] = new int[41];
		int i = 0;
		for(i=0;i<text.length;i++) {
			text[i] = i + 10;
		}
		text[3] = 100;
		String one = Arrays.toString(text);
		System.out.println("1. 4번째 원소의 값을 100으로 변경하여 출력한 값");
		System.out.println(one);
		for(i=0;i<text.length;i++) {
			text[i] = 0;
		}
		String one2 = Arrays.toString(text);
		System.out.println("2. 모든 원소의 값을 0으로 초기화한 값");
		System.out.println(one2);
		
	}

}

'Bitcamp > BITCAMP - Java' 카테고리의 다른 글

9일차 - 과제  (0) 2019.07.05
9일차  (0) 2019.07.04
8일차 - 배열(2차원)  (0) 2019.07.03
8일차 - 배열(1차원)  (0) 2019.07.03
7일차 - 과제  (0) 2019.07.02
And

8일차 - 배열(2차원)

|

주요내용 : 배열(2차원)

package ArrayS;

public class arraySample2 {

	public static void main(String[] args) {
		int[] arr1 = new int[5]; //1차원 표현, 행과 열이 같다.
		
		int[][] arr2 = new int[2][3]; //2차원 표현, 행과 열로 구분. 행중심 언어(열엔 관심이 없음, 자동으로 따라 오는것이라 생각).
		
		System.out.println(arr1.length); // 5 X 4 = 20byte
		System.out.println(arr2.length); // 2행(0행, 1행)
		System.out.println(arr2[0].length); //3열 (행을 지정해야 그때 , 열을 생각)
		System.out.println(arr2[1].length); //3열
		
		//문제]
		//구구단을 2차원 배열로 저장하고 출력하세요.
		int gugu[][] = new int[9][9];
		for(int i=0; i<gugu.length; i++) {
			for(int j=0; j<gugu.length; j++) {
				gugu[i][j]=(i+1)*(j+1); // 배열의 i, j는 0부터 시작하므로 계산시는 +1 을 해줘야함.
				System.out.println((i+1) + " * " + (j+1) + " = " + gugu[i][j]); // 배열의 i, j는 0부터 시작하므로 출력시는 +1 을 해줘야함.
			}
		}
		
		//문제]
		//다음과 같은 점수가 존재합니다.
		//4행 3열 데이터
		//{70, 80, 90, 60, 70, 80, 50, 60, 70, 40, 50, 60};
		//타이틀 : 번호, 자바, C#, 프로그램밍, 총점
		int score[][] = new int[][]{
			{70, 80, 90}, //0행 1열~3열
			{60, 70, 80}, //1행 1열~3열
			{50, 60, 70}, //2행 1열~3열
			{40, 50, 60}, //3행 1열~3열 : 총 4행 3열
		};
		System.out.println("=======================");
		System.out.println(" 번호  자바 C# 프로그래밍 총점");
		System.out.println("=======================");
		
		for(int i=0; i<score.length; i++) { //행증가
			System.out.print("  " + (i+1) + "  "); //번호출력
			int total=0; //행바꿈(다음번호)출력시 총점 초기화
			for(int j=0; j<score[i].length;j++) { //열증가
				System.out.print(score[i][j] + "  "); //title 출력
				total+=score[i][j];
			}
		System.out.println(total);
		}
		
		

	}

}

'Bitcamp > BITCAMP - Java' 카테고리의 다른 글

9일차  (0) 2019.07.04
8일차 - 과제  (0) 2019.07.03
8일차 - 배열(1차원)  (0) 2019.07.03
7일차 - 과제  (0) 2019.07.02
7일차 - 중요메소드  (0) 2019.07.02
And

8일차 - 배열(1차원)

|

주요내용 : 배열(1차원)

package ArrayS;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;


/* 배열(array) : 상당히 많은 자료들의 집합.
 * 1, 2, 3 차원 배열이 존재합니다.
 * 1차원[ ](점의 집합) : 소량의 데이터, 행과 열이 같은 개념.
 * 2차원[ ][ ]선의 집합) : 관리비, 다량의 데이터, 행과 열이 따로 존재.
 * 3차원[ ][ ][ ](면의 집합 ; GIS, 지리공간시스템구축) : 대단위 데이터... etc / 면,행,열이 존재
 * 4차원(시간과 공간)
 * 
 * ☆Java는 행중심 언어이다.☆
 * 
 */

public class arraySample1 {
	
	
//문제] 다음 데이터에서 오름차순과 내림차순을 구하여 출력하는 프로그램 작성.
//오름차순 : Ascending, 1 2 3 4 5 6
//내림차순 : Descending,  6 5 4 3 2 1
static int jumsu[] = {100, 90, 95, 100, 78, 95, 56};
private static void print_Ascending(int[] su) {
			System.out.print("[Ascending sort = ");
		for(int i=0; i<jumsu.length; i++) {
			System.out.print(jumsu[i] + " ");
		}
		System.out.println("]");
		}

private static void print_Descending(int[] su) {
			System.out.print("[Descending sort = ");
		for(int i=jumsu.length - 1; i > -1; i--) {
			System.out.print(jumsu[i] + " ");
		}
		System.out.println("]");
		}


//문제] 컴퓨터와 가위, 바위, 보 게임을 합니다.
//1차원 배열을 이용하여 win, lose, draw 표현을 하고, 계속하려면 y, 아니면 n을 입력합니다. + 몇승몇패 표시?
	
		Scanner input = new Scanner(System.in);
		String ComHand[] = {"가위", "바위", "보"};
		String Com;
		String MyHand;
		String YN;

		public arraySample1() {

		}

		public String reStart() {
			System.out.println("계속 하시겠습니까? y/n");
			YN = input.next();
			return YN;
		}

		public void input() {
			System.out.println("가위, 바위, 보 중에서 입력해 주세요.");
			MyHand = input.next();
		}

		public void rad() {
			Random ran = new Random();
			Com = ComHand[ran.nextInt(3)];
		}

		public void answer() {

			if (MyHand.equals("가위")) {
				if (Com.equals("가위")) {
					System.out.println("==");
				} else if (Com.equals("바위")) {
							System.out.println("ㅠㅠ");
				} else if (Com.equals("보")) {
							System.out.println("^^");
				}
			} else if (MyHand.equals("바위")) {
				if (Com.equals("가위")) {
					System.out.println("^^");
				} else if (Com.equals("바위")) {
							System.out.println("==");
				} else if (Com.equals("보")) {
							System.out.println("ㅠㅠ");
				}
			} else if (MyHand.equals("보")) {
				if (Com.equals("가위")) {
					System.out.println("ㅠㅠ");
				} else if (Com.equals("바위")) {
							System.out.println("^^");
				} else if (Com.equals("보")) {
							System.out.println("==");
				}
			} else {
				System.out.println("잘못 입력하셨습니다.");
			}
		}

	public static void main(String[] args) {
		
		//1차원 배열의 초기화
		//1.
		String[] arr1 = new String[]{"data1", "data2", "data3", "data4", "data5"};
		String data1 = arr1[0];
		String data2 = arr1[1];
		String data3 = arr1[2];
		String data4 = arr1[3];
		String data5 = arr1[4];
		int len = arr1.length;
		System.out.println("data의 수량은 = " + len); //5
		
		//2.
		String[] sungjuk = new String[5];
		sungjuk[0] = "10";
		sungjuk[1] = "20";
		sungjuk[2] = "30";
		sungjuk[3] = "40";
		sungjuk[4] = "50";
		int len2 = sungjuk.length;
		System.out.println("data의 수량은 = " + len2); //5
		
		//3. 출력
		if(sungjuk != null) { // null이 아니면 읽고, null이면 읽을 필요없다. 
			for(int i=0; i<sungjuk.length; i++) {
				System.out.println((i+1) + "번째 배열의 값은 = " + sungjuk[i]);
			}
		}
		
		//4. 연산
		int num[] = new int[5];
		int total = 0;
		
		num[0]=100; //data input
		num[1]=200;
		num[2]=300;
		num[3]=400;
		num[4]=500;
		
		total = num[0] + num[1] + num[2] + num[3] + num[4];
		System.out.println("1.num배열의 총합은 = " + total); // 1500
		
		int[] arr3 = new int[] {10, 30, 25, 7, 4, 6};
		Arrays.sort(arr3); //오름차순
		String one = Arrays.toString(arr3);
		System.out.println(one); // [4, 6, 7, 10, 25, 30]
		
		//문제] 국어(100), 영어(90), 수학(90) 점수가 있습니다.
		// 위 점수를 입력하여 합계와 평균을 구하여 출력합니다.
		int jumsu[] = {100, 90, 90}; //핵심★★★★
		int sum=0, count=0;
		for(int i=0; i<jumsu.length; i++) { // 종료지점은 무조건 작다고 해야함. 배열사이즈 크기 때문에.
			sum+=jumsu[i]; //핵심★★★★
			count++;
		}
		System.out.println("합계는 = " + sum); //280
		System.out.println("평균은 = " + sum/count); //93   count 대신 jumsu.length 를 써줘도 됨.
		
		
//----------------------------------------8일차--------------------------------------
		
				//문제] 다음 데이터에서 짝수, 홀수 각각의 합과 평균을 구하는 프로그램 작성.
				int jumsu[] = {100, 90, 95, 100, 78, 95, 56};
				int odd=0, even=0, oddCount=0, evenCount=0;
				for(int i = 0; i<jumsu.length; i++) {
					if(jumsu[i]%2==0) {
						even+=jumsu[i];
						evenCount++;
					}else {
						odd+=jumsu[i];
						oddCount++;
					}
				}
				System.out.println("짝수의 합은 = " + even);
				System.out.println("짝수의 평균은 = " + even/evenCount);
				System.out.println("홀수의 합은 = " + odd);
				System.out.println("홀수의 평균은 = " + odd/oddCount);
				
				//문제] 다음 데이터에서 오름차순과 내림차순을 구하여 출력하는 프로그램 작성.
				//오름차순 : Ascending, 1 2 3 4 5 6
				//내림차순 : Descending,  6 5 4 3 2 1
				Arrays.sort(jumsu);
				print_Ascending(jumsu);
				Arrays.sort(jumsu);
				print_Descending(jumsu);
				
				//문제] 50~100 사이의 난수를 발생하여 100개를 만들고, 배열에 저장한 후, 정렬하세요.(아무 조건이 없으면 오름차순 정렬임.)
				int ranArr[] = new int[100]; //100개를 저장할 수 있는 배열 준비
				Random r = new Random();
				System.out.println("============정렬이전 출력방법============");
				for(int i=0; i<ranArr.length; i++) {
					ranArr[i] = r.nextInt(50) + 50; //앞의 50은 시작지점.  뒤의 50은 종료지점.
					System.out.print(ranArr[i] + ", "); // 정렬이전 출력방법
				}
				System.out.println();
				System.out.println("============정렬이후 출력방법============");
				
				Arrays.sort(ranArr); //정렬이후 출력방법
				String one = Arrays.toString(ranArr);
				System.out.println(one);
				
				//문제] 1차원 배열 int[5]선언이 되어 있습니다.
				//국어[0], 영어[1], 수학[2]의 데이터를 입력받고, 총점[3]과 평균[4]을 구하여 배열에 저장하세요.
				double sj[] = new double[5];
				System.out.println("국어, 영어, 수학 점수를 입력하세요.");
				Scanner sc = new Scanner(System.in);
				sj[0] = sc.nextDouble();
				sj[1] = sc.nextDouble();
				sj[2] = sc.nextDouble();
				for(int i=0; i<=2; i++) { //for문 이용한 합계 구하기.
					sj[3]+=sj[i];
				}
				sj[4] = sj[3] / 3 ;
				for(int i=0; i<sj.length; i++) { //for문 이용한 배열문 출력.
					System.out.println("sj[" + i +"]" + sj[i]);
				}
				
				//문제] 학생수를 입력받고, 점수를 입력받아서, 점수리스트를 출력하고,
				// 데이터 분석을 하는데, 최고 점수와 평균 점수를 출력합니다.
				// 계속 하시려면 Y, 아니면 N을 입력하세요. (배열이용)
				int stdNum=0;
				int[] score = null;
				Scanner sc = new Scanner(System.in);
				while(true) {
					System.out.println("학생수를 입력하세요.");
					stdNum = sc.nextInt();
					score = new int[stdNum];
					System.out.println("성적을 입력하세요.");
					for(int i=0; i<score.length; i++) {
						score[i] = sc.nextInt();
						System.out.println("score[" + i + "]>" + score[i]);//점수 리스트 출력
					}
					int max = 0, sum = 0;
					double aver = 0.0;
					
					for(int i=0; i<score.length; i++) {
					      max=(max < score[i] ? score[i] : max);
					      sum+=score[i];
					}
					aver = sum/stdNum;
					System.out.println("최고 점수는 = " + max);
					System.out.println("평균 점수는 = " + aver);
					System.out.println("계속하시려면 y, 아니면 n를 입력하세요.");
					String ans = sc.next();
					if(ans.equals("y")) {
						continue;
					} else {
						System.out.println("프로그램을 종료합니다.");
						System.exit(0);
						break;
					}
				
				}
				
				//문제] 쉬어가는 페이지
				//임의의 숫자를 입력하여 배열에 저장하고, 내용중에서 짝수에 해당하는 데이터만 출력하세요.
				//그리고, 5의 배수만 출력해 보세요.
				int size;
				Scanner sc = new Scanner(System.in);
				System.out.println("배열의 크기를 입력해주세요.");
				size = sc.nextInt();
				int array[] = new int[size];
				System.out.println("배열크기에 맞는 데이터를 입력해주세요.");
				for(int i=0; i<array.length; i++) {
					array[i] = sc.nextInt();
				}
				for(int i=0; i<array.length; i++) {
					if(array[i]%2==0) {
						System.out.println("짝수는 " + array[i]);
					} else if(array[i]%5==0) {
						System.out.println("5의 배수는 " + array[i]);
					} else
						System.out.println("짝수와 5의 배수에 해당하지 않는 값은 " + array[i]);
				}
				
				//문제] 구구단중에서 5단을 출력하세요. 단, 배열을 이용해서
				int gugu[] = new int[9];
				for(int i = 0; i<gugu.length; i++) { // 배열의 길이로 나눔.
					gugu[i] = 5*(i+1); //5단을 배열로 저장.
					System.out.println("5 * " + (i+1) + " = " + gugu[i]);
				}
				
				//문제] 임의의 수를 입력하여 수의 등수를 매깁니다.
				//값이 클수록 순위가 적어집니다. (성적 석차 구하기 알고리즘)
				int[] rank = {1, 1, 1, 1, 1}; //순위를 구하기 위한 시작점.
				Scanner sc = new Scanner(System.in);
				System.out.println("석차를 매길 배열의 크기를 입력하세요.");
				int n = sc.nextInt();
				int[] AmasterpieceArray = new int[n];
				//데이터 입력
				for(int i=0; i<AmasterpieceArray.length; i++) {
					AmasterpieceArray[i] = sc.nextInt();
				}
				for(int i = 0; i<n-1; i++) {
					for(int j = i+1; j<n; j++) {
						if(AmasterpieceArray[i] != AmasterpieceArray[j]) {
							if(AmasterpieceArray[i] < AmasterpieceArray[j])
								rank[i]++;
							else
								rank[j]++;
						}
					}
				}
				for(int i=0; i<n; i++) {
					System.out.println("점수는 = " + AmasterpieceArray[i] + ", 등수는 = " + rank[i]);
				}
				
				//아래와 같은 데이터가 존재합니다.
				//이중에서 가장 큰값과 가장 작은 값을 판별하여 출력하세요.
				int[] numList = {123, 146, 451, 51, 15, 547, 2692};
				int max = numList[0]; 
				int min = numList[0];
				for(int i=0; i<numList.length; i++) {
				      max=(max < numList[i] ? numList[i] : max); // if문 max<numList[i]{max = numList[i]; 와 동일 의미
				      min=(min > numList[i] ? numList[i] : min); // if문 min>numList[i]{min = numList[i]; 와 동일 의미
				}
				System.out.println("최고 점수는 = " + max);
				System.out.println("최저 점수는 = " + min);
				
				//3개의 숫자를 입력받아서 가장 큰 값을 구하는 프로그램을 작성.
				int max = 0;
				int su[] = new int[3];
				Scanner sc = new Scanner(System.in);
				System.out.println("3개의 숫자를 입력하세요.");
				su[0] = sc.nextInt();
				su[1] = sc.nextInt();
				su[2] = sc.nextInt();
				max = su[0];
				for(int i=1; i<su.length; i++) {
					 if(max<su[i]){
						 max = su[i];
					 }
				}
				System.out.println(max);
				
				
				
				//문제] 컴퓨터와 가위, 바위, 보 게임을 합니다. -> 강사님 올려주신거 보고 수정할것.!!!!!!!!!!!!!!!
				//1차원 배열을 이용하여 win, lose, draw 표현을 하고, 계속하려면 y, 아니면 n을 입력합니다. + 몇승몇패 표시?
				arraySample1 as1 = new arraySample1();
				int cnt = 0;
				while (true) {
					cnt++;
					as1.input();
					System.out.println("--------" + cnt + "차-----------");
					as1.rad();
					System.out.println("컴퓨터\tVS\t유저");
					System.out.println(as1.Com + "\t\t" + as1.MyHand);
					System.out.println("------------------------");
					as1.answer();
					
					System.out.println("------------------------");
					
					as1.reStart();
					
					if (as1.YN.equals("n")) {
						System.out.println("종료되었습니다.");
						break;
					}

				
				
				
				//토요일 저녁 8시 KBS : 로또 복권 추첨
				//로또 복권 발행하여 숫자를 출력하세요.
				int lotto[] = new int[6];
				for(int i=0; i<lotto.length; i++) {
					lotto[i] = (int) (Math.random()*45 +1);
					for(int j=0; j<i; j++) { //중복값 제거
						if(lotto[i]==lotto[j]) {
						i--;
						break;
						}
					}
				}
				Arrays.sort(lotto);
				String lt = Arrays.toString(lotto);
				System.out.println("이번주 로또의 당첨번호는");
				System.out.println(lt);
					
					//강사님 풀이법
					int lotto[] = new int[6];//6자리 복권 번호 저장 배열
					Random r = new Random();
					
					Scanner sc = new Scanner(System.in);
					System.out.println("반복 횟수를 입력해 주세요: ");//복권 발행 횟수
					int gameCnt  = sc.nextInt();
					
					for(int cnt=1; cnt <=gameCnt; cnt++) {	//복권 구입 카운트
						
					hyun:
						for(int idx=0; idx < lotto.length; idx++) {
							int lot = r.nextInt(45)+1;	//1~45사이 난수 생성			
						
						for(int i=0; i<idx; i++) {
							if(lot == lotto[i]) { //같은 복권 생성되면, 다음으로 넘어가기
								idx--;
								continue hyun;//goto문.
							}
						}
						lotto[idx] = lot;//정상복권 배열에 저장
					}
						Arrays.sort(lotto);//배열내의 복권 정렬
						
						System.out.println(cnt + "Game=");//발행된 복권 횟수 번호
						for(int i=0; i <lotto.length; i++) { 
							System.out.print(lotto[i] + ", ");//복권 출력
					}
						System.out.println();
					
					
				
					
			}

		
	}

}

'Bitcamp > BITCAMP - Java' 카테고리의 다른 글

8일차 - 과제  (0) 2019.07.03
8일차 - 배열(2차원)  (0) 2019.07.03
7일차 - 과제  (0) 2019.07.02
7일차 - 중요메소드  (0) 2019.07.02
7일차 - 생성자  (0) 2019.07.02
And

정보로서의 HTML

|

################ 글꼴 -  font ################

퇴출됨~.~

 

<font> 태그는 문서 내의 TEXT를 시각적으로 꾸며주는 역할을 담당하며
size / color 등의 여러 속성들을 적용할 수 있다.
(size 속성값은 기본이 3이며 1~7까지의 값을 표현해낼 수 있다.)

단, <font> 태그는 디자인의 역할만 할 뿐 어떠한 정보로서의 의미도 갖지 않으며,
중복 사용으로 인한 파일 용량 증가, 가독성 저하, 관리 측면에서의 불편함 등의 이유로
현재는 퇴출된 태그이며 그 역할을 CSS가 담당하게 되었다.

 

################ meta ################

 

1. <meta> 태그
 웹페이지에 표현되진 않지만, 웹 페이지를 잘 설명하기 위한 부가 정보들을 담당한다.

2. 사용가능한 속성
· charset="속성값" : 브라우저에 디코딩되는 문자형식을 지정 (속성값 utf-8은 한글폰트를 정상 출력시켜줌)
· name="description" content="내용" : 검색 결과에 대한 요약에 사용됨
· name="keywords" content="내용" : 문서를 설명하는 중요 단어(키워드)들
· name="author" content="내용" : 저자
· http-equiv="refresh" content="숫자" : 지정한 시간(초) 마다 웹페이지를 리프레쉬 시켜줌

 

################ 의미론적 태그(semantic element) ################

 

1. semantic(의미론적) 태그
 시각적인 변화는 없지만 문서상의 정보들을 각 용도에 맞게 체계적으로 정리하기 위해 사용되는 태그
 문서를 의미론적으로 잘 정리하는 것이 검색엔진 최적화에 도움이 된다.

 

html을 코딩할때는 의미에 집중해서 코딩하는 것이 좋다.

※ <section>태그
 한 페이지에 여러 번 사용될 수 있는 시멘틱 태그(대표적으로 <article>태그)들을 묶어줄 때 사용
 (<header>, <footer> 등과 같이 한 번만 사용되는 태그는 <section>태그로 묶어줄 필요가 없다.)

 

article 본문
aside 광고와 같이 페이지의 내용과는 관계가 적은 내용들
details 기본적으로 표시되지 화면에 표시되지 않는 정보들을 정의
figure 삽화나 다이어그램과 같은 부가적인 요소를 정의
footer 화면의 하단에 위치하는 사이트나 문서의 전체적인 정보를 정의
header 화면의 상단에 위치하는 사이트나 문서의 전체적인 정보를 정의
main 문서에서 가장 중심이 되는 컨텐츠를 정의
mark 참조나 하이라이트 표시를 필요로 하는 문자를 정의
nav 문서의 네비게이션 항목을 정의
section 문서의 구획들을 정의 (참고)
time 시간을 정의

 

################ 검색엔진 최적화 ################

 

1. <link rel="canonical" href="특정 URL주소" />
 A와 B와 C라는 문서가 동일한 내용일 경우, 사용자가 B나 C의 URL로 접속해도 A를 보여주도록 하는 태그
 (A 태그를 기준으로 하려면 나머지 문서들(B와 C)에 적용시키면 된다.)

2. 리디렉션
 특정 URL을 통해 접속한 사용자를 미리 지정해둔 다른 URL로 보내는 기능
 (HTML이 아닌, java나 php나 ruby등 서버쪽 언어에서 사용)

3. robots.txt
 페이지를 방문하는 로봇에게 크롤링 허용 범위를 요청하는 것
 예시 :
   User-agent : *
   Disallow : /
  / 뒤에 아무 것도 없다면, 모든 웹페이지에 대해 어떠한 로봇의 크롤링도 허용하지 않는다는 의미.
  검색할 필요가 없거나, 보호될 필요가 있거나 비즈니스적인 목적으로 보호되어야 할 경우 Disallow에,
  크롤링이 권장될 경우에는 Allow에 표시한다.

4. page rank
 검색엔진이 동일한 주제의 웹페이지들에 대해 순위를 매겨 검색 노출 순서를 조정하는 것.
 순위가 높은 웹페이지가 우선 노출되며 트래픽이 더 많이 증가한다.

'HTML & CSS' 카테고리의 다른 글

외부문서삽입 - iframe  (0) 2019.07.05
모바일 지원 (viewport)  (0) 2019.07.05
입력양식 - form  (0) 2019.06.27
표 - table  (0) 2019.06.27
부록 : 코드의 힘  (0) 2019.06.23
And

7일차 - 과제

|
package Constructor;

import java.util.Scanner;

//과제1]
class Grade{

	static int kor, eng, math, sum = 0, avg;

	public Grade(int kor, int eng, int math, int sum, int avg) {
		this.kor = kor;
		this.eng = eng;
		this.math = math;
		this.sum = sum;
	    this.avg = avg;
	}
}

public class 과제0702 {

	public static void main(String[] args) {
		
/*과제1] 기섭이라는 친구가 있습니다.
 * 국어, 영어, 수학 점수가 입력이 됩니다.
 * 이 세과목의 입력 데이터를 생성자를 이용하여 입력을 받고, 저장합니다.
 * 그리고, 총점, 평균을 구합니다.
 */
		System.out.println("기섭이의 국어, 영어, 수학점수를 입력하세요.");
	
		Scanner sc = new Scanner(System.in);
		int kor = sc.nextInt();
		int eng = sc.nextInt();
		int math = sc.nextInt();
		int sum = kor + eng + math;
		int avg = sum /3;
		Grade gr = new Grade(kor, eng, math, sum, avg);
		
		System.out.println(Grade.sum); 
		System.out.println(Grade.avg); 

		
/*과제2]
 * int jumsu[] = {100, 90, 90, 100, 100, 95, 56};
 * 위 데이터에서 3의 배수의 합과 평균을 구하는 프로그램을 작성.
 */
		int jumsu[] = {100, 90, 90, 100, 100, 95, 56};
		int sum=0, count=0;
		for(int i=0; i<jumsu.length; i++) {
			if(jumsu[i]%3==0) {
				sum+=jumsu[i];
				count++;
			}
		}
		System.out.println("합계는 = " + sum); //180
		System.out.println("평균은 = " + sum/count); //90
		
		
	}

}

'Bitcamp > BITCAMP - Java' 카테고리의 다른 글

8일차 - 배열(2차원)  (0) 2019.07.03
8일차 - 배열(1차원)  (0) 2019.07.03
7일차 - 중요메소드  (0) 2019.07.02
7일차 - 생성자  (0) 2019.07.02
6일차 - 과제  (0) 2019.07.02
And

7일차 - 중요메소드

|

주요내용 : 중요메소드

package Constructor;

//중요메소드!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

public class MethodSample11 {

	public static void main(String[] args) {
		//1. startsWith : 문자열이 지정한 문자로 시작하는지 판단 -> 같으면 true 반환, 틀리면 false 반환
		String str="apple";
		boolean stw = str.startsWith("p");
		System.out.println(stw); // false
		
		//2. endWith : 문자열 마지막에 지정한 문자가 있는지 판단합니다.
		String str2="test";
		boolean endw = str2.endsWith("t");
		System.out.println(endw); // true
		
		//3. indexOf : 지정한 문자가 문자열에 몇번째에 있는지를 반환합니다.
		String str3="abcdefg";
		int idx = str3.indexOf("f");
		System.out.println(idx); // 5
		
		//4. equals : 두개의 문자열의 내용(값)을 비교 -> 같으면 true 반환, 다르면 false 반환
		String str4="java";
		String str5="java script";
		String str6="javaScript";
		boolean eq = str4.equals(str5);
		str4=str6; // str6값을 str4에 대입한다.
		boolean eq2 = str4.equals(str6);		
		System.out.println(eq); // false
		System.out.println(eq2); // true
		
		//5. lastIndexOf : 지정한 문자열이 마지막으로 몇번째에 존재하는가?
		String str7="abcedgf";
		int idx2 = str7.lastIndexOf("f");
		System.out.println(idx2); // 6
		
		//6. length : 문자열의 길이
		
		//7. replace : 지정한 문자열에 지정한 문자가 있으면, 새로운 문자로 대체하라.
		String change = str5.replace("s", "*");
		System.out.println(change); // java *cript
		
		//8. replaceAll : 지정한 문자로 변경합니다.
		String change2 = str5.replaceAll("\\p{Space}", "*"); //정규화 표현식. \\p{Space} -> 빈칸은 뜻하는데, 해킹하기 어렵게 만든 문장임.
		
		System.out.println(change2); // java*script
		
		//9. split : 문자 구분
		String str8 = "A:B:C:D:abcd"; // A B C D abcd
		String[] sp = str8.split(":");
		System.out.println(sp[3]); // D
		
		//10. subString : 문자열에 지정한 범위에 속하는 문자열을 반환합니다. 시작범위는 포함하지만, 끝나는 범위는 제외합니다.
		String str9 ="abcdefg";
		String sub = str9.substring(0, 2);
		System.out.println(sub); // ab
		
		//11. toLowerCase : 대문자를 소문자로 변경
		//12. toUpperCase : 소문자를 대문자로 변경
		//13. trim : 문자열에 공백을 제거합니다.(양쪽 사이드에 있는 공백만제거 / 가운데 있는 공백은 제거못함)
		String str10 = " java java   ";
		String v = str10.trim();
		System.out.println(v); // java java
		
		//14. toString : 문자열을 있는 그대로 출력한다.
		String x = str10.toString();
		System.out.println(x); //  java java   
		
		//15. contains : 두 개의 문자열을 비교하여 비교대상 문자열을 포함하고 있으면 true, 아니면 false.
		String str11 = "c";
		boolean cont = str10.contains(str11);
		System.out.println(cont); // false
		
		//16. charAt : 지정한 index에 해당하는 문자 한 글자를 반환한다.
		//17. concat : 문자와 문자를 결합합니다.
		String str12 = "hong";
		String str13 = "jun park";
		String conn = str12.concat(str13);
		System.out.println(conn); // hongjun park
		
		//18. format
		int i = 1234567890 ;
		String str14 = String.format("%,d", i); // "%,d" => 3자리씩 쉼표
		System.out.println(str14); // 1,234,567,890
		
		//19. replaceFirst : 문자열에 지정한 문자 " "가 있으면, 첫번째만 새로 지정한 문자 " "로 변경합니다.
		String str15 = "Bman";
		String rf = str15.replaceFirst("B", "Super");
		System.out.println(rf); // Superman
		
	}

}

'Bitcamp > BITCAMP - Java' 카테고리의 다른 글

8일차 - 배열(1차원)  (0) 2019.07.03
7일차 - 과제  (0) 2019.07.02
7일차 - 생성자  (0) 2019.07.02
6일차 - 과제  (0) 2019.07.02
6일차 - 생성자  (0) 2019.07.01
And

7일차 - 생성자

|
package Constructor;

import java.util.Scanner;

/*
 * 문제] 자동차 클래스가 있습니다.
 * 이 클래스에 색상과 가격을 입력하여 출력하세요. (임의적으로).
 * 단, 생성자 이용하여. 
 */

public class constSample2 {
//Field area : class variable, constructor, class method...
	
	static String col; //class variable
	static int pri;

	public void constSample2(String col, int pri) { // constructor
		this.col = col;
		this.pri = pri;
	}
	
	public static String Display() { //class method
		return "색상은 " + col + "이고, 가격은" + pri + "입니다.";
	}
	
	public static void main(String[] args) {
		System.out.println("원하는 자동차의 색상과 가격을 입력하세요.");
		Scanner sc = new Scanner(System.in);
		col = sc.next();
		pri = sc.nextInt();
		constSample2 col = new constSample2(); 
		constSample2 pri = new constSample2();
		System.out.println(col.Display()); //객체명, 클래스 메소드
		System.out.println(pri.Display());
		System.out.println(constSample2.Display()); //클래스명.클래스메소드

	}

}

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

package Constructor;

import java.util.Scanner;

//문제] 책제목, 저자, 출판사, 가격 -> 입력을 생성자로 받아서 출력.
public class constSample3 {
	//class variable
	static String title;
	static String aut;
	static String pub;
	static int pri;
	
	//constructor
	public void constSample3(String title, String aut, String pub, int pri){
		this.title = title;
		this.aut = aut;
		this.pub = pub;
		this.pri = pri;
	}
	
	//method
	public static void output() {
		System.out.println("책제목은 " + title + "이고, 저자는 " + aut + " 이고, 출판사는 " + pub + " 이고, 가격은 " + pri + " 원 입니다.");
	}
	
	private int operation() {
		int sum = pri * 10;
		return sum;
	}


	public static void main(String[] args) {
	//data input
		System.out.println("원하는 책의 제목, 저자, 출판사, 가격을 입력하세요.");
		Scanner sc = new Scanner(System.in);
		title = sc.next();
		aut = sc.next();
		pub = sc.next();
		pri = sc.nextInt();
		
		constSample3 cs3 = new constSample3();
		cs3.output();
		cs3.operation();

	}


}
--------------------------------------------------------------------

package Constructor;

import java.util.Scanner;

//문제] 저축은행이 있습니다. 이 은행에 계좌 개설하고, 저금을 합니다.
// 1. 계좌생성
// 2. 저축 : 1000 + 2000 + 3000
// 3. 출금 : 500
// 4. 잔액 : 5500
// 5. 입금액에 대한 체크, 출금액도 체크 합니다.
// 생성자 이용하여 코딩.
// 

class Account{
	
	int money;
	int amount;
	
	public Account(int money) { //초기 계좌 개설
		this.money = money;
	}
	
	public void deposit(int money) { // 저축입금
		if(amount>0)
			money+=amount;
	}
	
	public void withdraw(int amount) { //출금
		if(amount > 0 && money - amount >= 0)
		money-=amount;
	}
	
	public double getMoney() { // 잔액반환
		return money;
	}
	
}

public class constSample4 {

	public static void main(String[] args) {
		
		Account ac = new Account(1000);
		ac.deposit(2000); //입금
		ac.deposit(3000); //입금
		ac.withdraw(500); //출금
		System.out.println(ac.money); //잔액
		System.out.println(ac.getMoney()); //잔액

	}

}

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

package Constructor;

import java.util.Scanner;

/* 생성자 오버로딩
 * 인자형과 갯수에 따라서 구분합니다.
 */

class OverLoad {
	
	static int kor, math, age; //private : 클래스 변수의 접근에 대한 해제.
	static double eng;
	static String hakjum, name, addr;
	
	public OverLoad() {
		//default
	}
	
	public OverLoad(int kor) {
		this.kor = kor;
	}
	
	public OverLoad(double eng) {
		this.eng = eng;
	}
	
	public OverLoad(int kor, double eng) {
		this.kor = kor;
		this.eng = eng;
	}
	
	public OverLoad(int kor, int math) {
		this.kor = kor;
		this.math = math;
	}
	
	public OverLoad(int kor, double eng, int math) {
		this.kor = kor;
		this.eng = eng;
		this.math = math;
	}
	
	public OverLoad(int kor, double eng, int math, String hakjum) {
		this.kor = kor;
		this.eng = eng;
		this.math = math;
		this.hakjum = hakjum;
	}
	
	public OverLoad(String name, int age, String addr) {
		this.name = name;
		this.age = age;
		this.addr = addr;
	}
}

public class constSample5 { //main class

	public static void main(String[] args) {
		
		//문제] 국어, 영어, 수학 점수, 학점을 입력받아서 처리하되, 오버로딩으로 구현해 보세요.
		
		Scanner sungjuk = new Scanner(System.in);
		int kor = sungjuk.nextInt();
		double eng = sungjuk.nextDouble();
		int math = sungjuk.nextInt();
		String hakjum = sungjuk.next();
		
		OverLoad over1 = new OverLoad(); //sub class
		OverLoad over2 = new OverLoad(kor);
		OverLoad over3 = new OverLoad(eng);
		OverLoad over4 = new OverLoad(kor, eng);
		OverLoad over5 = new OverLoad(kor, math);
		OverLoad over6 = new OverLoad(kor, eng, math);
		OverLoad over7 = new OverLoad(kor, eng, math, hakjum);
		
		System.out.println("===생성자 오버로딩 출력===");
		System.out.println("1. 오브젝트를 이용한 출력");
		System.out.println("Over7에 대한 국어 출력 : " + over7.kor);
		System.out.println("Over7에 대한 영어 출력 : " + over7.eng);
		System.out.println("Over7에 대한 수학 출력 : " + over7.math);
		System.out.println("Over7에 대한 학점 출력 : " + over7.hakjum);
		System.out.println("2. 클래스 이름를 이용한 출력");
		System.out.println("국어: " +OverLoad.kor);
		System.out.println("영어: " +OverLoad.eng);
		System.out.println("수학: " +OverLoad.math);
		System.out.println("학점: " +OverLoad.hakjum);
		
		//문제] 이름과 나이, 주소를 입력받아서, 생성자 오버로딩 로 저장하고, 출력해 보세요.
		
		System.out.println("이름, 나이, 주소를 입력하세요.");
		Scanner sc = new Scanner(System.in);
		String name = sc.next();
		int age = sc.nextInt();
		String addr = sc.next();
		
		OverLoad ol = new OverLoad(name, age, addr);
		
		System.out.println("===생성자 오버로딩 출력===");
		System.out.println("1. 오브젝트를 이용한 출력");
		System.out.println("이름 : " + ol.name);
		System.out.println("나이 : " + ol.age);
		System.out.println("주소 : " + ol.addr);
		System.out.println("2. 클래스 이름를 이용한 출력");
		System.out.println("이름 : " + OverLoad.name);
		System.out.println("나이 : " + OverLoad.age);
		System.out.println("주소 : " + OverLoad.addr);
		
	}

}

'Bitcamp > BITCAMP - Java' 카테고리의 다른 글

7일차 - 과제  (0) 2019.07.02
7일차 - 중요메소드  (0) 2019.07.02
6일차 - 과제  (0) 2019.07.02
6일차 - 생성자  (0) 2019.07.01
6일차 - 메소드 연습6  (0) 2019.07.01
And

6일차 - 과제

|
import java.util.Scanner;

public class 과제0701 {
	
	//과제1]
	private static int Facto(int num) {
		int fac = 1;
		int sum = 0;
		for(int i=1;i<=num;i++) {
			fac = fac*i; //반복횟수 10번
			sum+=fac; // 누적변수
			System.out.println(sum); //4037913
		}
		return sum;
	}
	
	//과제2]
	public void Absol(int x, int y) {
		Scanner sc = new Scanner(System.in);
		System.out.println("첫번째 수를 입력하세요.");
		int su = sc.nextInt();
		System.out.println("두번째 수를 입력하세요.");
		int su2 = sc.nextInt();
		if(su>0 && su2>0) {
			System.out.println("입력하신 수의 절대값은 = " + su + "입니다.");
			System.out.println("입력하신 수의 절대값은 = " + su2 + "입니다.");
		}else if(su>0 && su2<0) {
			System.out.println("입력하신 수의 절대값은 = " + su + "입니다.");
			System.out.println("입력하신 수의 절대값은 = " + su2*(-1) + "입니다.");
		}else if(su<0 && su2>0) {
			System.out.println("입력하신 수의 절대값은 = " + su*(-1) + "입니다.");
			System.out.println("입력하신 수의 절대값은 = " + su2 + "입니다.");
		}else if(su<0 && su2<0) {
			System.out.println("입력하신 수의 절대값은 = " + su*(-1) + "입니다.");
			System.out.println("입력하신 수의 절대값은 = " + su2*(-1) + "입니다.");
		}else if(su==0 && su2==0){ 
			System.out.println("입력하신 수의 절대값은 = 0입니다.");
		}
	}
	
	//강사님 풀이
	public static int abs(int num1, int num2) { //가인수
		if(num1>num2) return num1-num2;
		else return num2-num1;
	}
	
	//과제4]
	public static int GongAk(int x, int y) {
		Scanner sc = new Scanner(System.in);
		System.out.println("첫번째 수를 입력하세요.");
		int ga = sc.nextInt();
		System.out.println("두번째 수를 입력하세요.");
		int gb = sc.nextInt();
		int r = 1;
		while(r>0) {
			r = ga%gb;
			ga = gb;
			gb = r;
		}
		return ga;
	}
		
	//강사님 풀이(GCM공식사용)
	public static int GongAk(int x, int y) {
	int num1 = x, num2=y;
	int total = 0;
	int max = num1;
	int min = num2;
	if(num1<num2) {
		max=num2;
		min=num1;
	}
	for(int i=1; i<=min;i++) {
		if(num1%1==0 && num2%i==0) {
			total+=i;
		}
	}
	return total;
	}
	
	//과제5]
	public static void Star(int x, int y, int z) {
		int i, j, k;//지역변수, 메인 메소드 안에 들어있음.
		
		for(i=1; i<=5; i++) {
			 for(j=0; j<=4-i; j++) {
				 System.out.print(" ");
			 }for(k=1; k<=2*i-1; k++) {
				 System.out.print("*");
			 }System.out.println();
		 
		}for(i=4; i>=1; i--) {
			 for(j=0; j<=4-i; j++) {
				 System.out.print(" ");
			 }for(k=1; k<=2*i-1; k++) {
				 System.out.print("*");
			 }System.out.println();
		 }
	}
	
	//강사님풀이
	public static void Diamond(int n) {
		printStarIncrement(5);
		printStarDecrement(5);
	}
	
	public static void printStarIncrement(int n) {
		for(int i=n-1; i>=0; i--) { // 4>=0, 3>=0, 2>=0, 1>=0, 0>=0
			for(int j=0; j<i; j++) { // 0<4, 1<0, 2<0, 3<0, 4<0
				System.out.print(" "); //바깥쪽 blank(공백 = null) 출력
			}
			for(int k=1; k<2*(n-i); k++) { // 1<2*(5-4) = 1 <2 => * 1번 찍는다.
				System.out.print("*");
			}
			System.out.println();
		}
	}

	public static void printStarDecrement(int n) {
		for(int i = 1; i<n; i++) {   //1 <5, 2<5, 3<5, 4<5
			for(int j=0; j<i; j++) { // 0<1
				System.out.print(" ");
			}
			for(int k=1; k<2*(n-i); k++) { // 1<2*(5-1) => * 7번 찍는다.
				System.out.print("*");
			}
			System.out.println();
		}
	}





	@SuppressWarnings("static-access")
	public static void main(String[] args) {

//과제1] 10! 팩토리얼을 구하여 합계를 출력하세요. 단, 메소드이용하여.
		
	Facto(10);
		
		
//과제2] 두 수를 입력하여 절대값을 구하는 프로그램 작성. 단, 메소드 이용하여.
		
	int x=0, y = 0;		
	과제0701 gj = new 과제0701();
	gj.Absol(x, y);
	
	//강사님 풀이
		System.out.println(abs(10, 5)); //실인수, 5
		System.out.println(abs(5, 10));
		System.out.println(abs(-10, -5));
		System.out.println(abs(-5, -10));
		System.out.println(abs(10, -5));
	

//과제3] 클래스와 객체와 메소드의 관계를 설명하세요.
		
//		클래스는 필드(데이터)와 메소드(처리동작)가 합쳐진 객체의 집합이다.
		
/* class : 객체를 생성하여 만들기 위한 기준(틀)
 * object : 클래스에 생성한 인스턴스(= 참조변수, 객체, reference)
 * method : 기능, 동작, 행위
 * 
 * 1. 접근 제어자 : 해당 메소드에 접근할 수 있는 범위를 명시합니다.
 * - 종류 : public, protected, default(접근제어지시자가 없는경우:생략), private 
 * - public : 공개적인, 누구나 접근이 가능합니다. => 정보의 은닉성을 해칩니다.
 * - protected : 상속관계에 있는 객체는 접근이 가능합니다.
 * - default : 같은 패키지로 된 프로그램에서 사용할때 접근이 가능합니다. ex) void Hello() -> void 앞에 아무것도 없는경우.
 * - private : 가장 좁은 범위의 접근을 허용합니다. 
 * 2. 반환 타입(return type) : 메소드가 모든 작업을 마치고 반환하는 데이터의 타입을 명시합니다.
 * - String, int, void, float, double, <T>...
 * 3. 메소드 이름 : 메소드를 호출하기 위한 이름을 명시합니다.
 * 4. 매개변수 목록(parameters) : 메소드 호출 시에 전달되는 인수의 값을 저장할 변수들을 명시합니다.
 * 5. 구현부(Impl) : 메소드의 고유 기능을 수행하는 명령문의 집합입니다.
 */
		

//과제4] 두 수의 최대 공약수를 구하여 출력하세요.(내부처리, 외부처리 각각 할것)
		
		과제0701 mg = new 과제0701(); // 클래스 객체명 = new 클래스
		int x = 0, y=0;
		System.out.println("두 수의 최대 공약수 내부처리의 합계는 = " + mg.GongAk(x, y)); // 객체명.메소드명(인자값)
		
		과제0701ms ms = new 과제0701ms(); // 클래스 객체명 = new 클래스
		int x = 0, y=0;
		System.out.println("두 수의 최대 공약수 외부처리의 합계는 = " + ms.과제0701ms(x, y)); // 객체명.메소드명(인자값)
		
		//강사님 풀이(GCM공식사용)
		과제0701 t = new 과제0701();
		Scanner sc = new Scanner(System.in);
		System.out.println("첫번째 수를 입력하세요.");
		int n1 = sc.nextInt();
		System.out.println("두번째 수를 입력하세요.");
		int n2 = sc.nextInt();
		int total = t.GongAk(n1,n2);
		System.out.println(n1 + "과" + n2 +"의 공약수들의 합은 = " + total);
		System.out.println("최대공약수들의 합은" + t.GongAk(n1,n2));
		
			

//과제5] 메소드를 이용하여 다이아몬드 테이블을 만들어 출력합니다. (반복문 활용)
//     *
//    ***
//   *****
//  *******
// *********
//  *******		
//   *****
//    ***
//     *
		
// 오른편 공백은 찍을 필요가 없다!
		
		int x = 0, y=0, z=0;
		Star(1, 0, 1);
		
		
		//강사님풀이
		Diamond(5);
		
		
		
	}


}

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

import java.util.Scanner;

public class 과제0701ms {

	public static int 과제0701ms(int n1, int n2) {
		
		Scanner sc = new Scanner(System.in);
		System.out.println("첫번째 수를 입력하세요.");
		int ga = sc.nextInt();
		System.out.println("두번째 수를 입력하세요.");
		int gb = sc.nextInt();
		int r = 1;
		while(r>0) {
			r = ga%gb;
			ga = gb;
			gb = r;
		}
		return ga;

	}

}

'Bitcamp > BITCAMP - Java' 카테고리의 다른 글

7일차 - 중요메소드  (0) 2019.07.02
7일차 - 생성자  (0) 2019.07.02
6일차 - 생성자  (0) 2019.07.01
6일차 - 메소드 연습6  (0) 2019.07.01
6일차 - 메소드 연습5  (0) 2019.07.01
And

은행계좌시스템

|
import java.util.Calendar;
import java.util.Scanner;

class Account{
	String account_num;
	String depositor;
	String date;
	int balance;
}

public class BankSystem {

	public static void main(String[] args) {

		Account acc_arr[] = new Account[100];
		int acc_idx = 0;
		boolean flag = true;
		
		Scanner sc = new Scanner(System.in);
		
		while(flag) {
			System.out.println("원하는 서비스의 번호를 입력하세요. 1)계좌계설 2)현재 개설된 계좌 정보보기 3)시스템 종료");
			
			int service_num = sc.nextInt();
			switch(service_num) {
			case 1:
				System.out.println("예금주:");
				Account acc = new Account();
				acc.depositor = sc.next();
				System.out.println("예금할 금액 :");
				acc.balance = sc.nextInt();
				Calendar cal = Calendar.getInstance();
				acc.date = cal.get(Calendar.YEAR) +"-"+ (cal.get(Calendar.MONTH) + 1) + "-"+cal.get(Calendar.DATE);
				acc.account_num = "1002-" + (int)((Math.random()*99)+1) +"-"+(int)((Math.random()*9999999)+1);
				System.out.println("예금주 "+ acc.depositor + "님 앞으로 생성된 계좌번호는 " + acc.account_num +" 입니다.");
				System.out.println();
				acc_arr[acc_idx++] = acc;
				
				break;
			case 2:
				System.out.println("-----------개설된 계좌 정보-----------");
				for(int i = 0; i<acc_idx; i++)
					System.out.println("계좌번호:" +acc_arr[i].account_num+", 예금주 :" + acc_arr[i].depositor+", 잔액 :" + acc_arr[i].balance);
				System.out.println("----------------------------------");
				System.out.println();
				break;
			case 3:
				flag = false;
				break;
			default:
				break;
				}
			}
		}
	}


'Java' 카테고리의 다른 글

기본 알고리즘  (0) 2019.07.08
Java - Overloading, 가변인자, 배열, 메소드  (0) 2019.07.08
문자열  (0) 2019.06.27
Collections Framework  (0) 2019.06.15
제네릭  (0) 2019.06.15
And