1월, 2023의 게시물 표시

말발굽 스프레드 타로 뽑기

/* 말발굽 스프레드 타로 뽑기 */ package pad; import java.util.ArrayList; import java.util.Collections; import java.util.Random; import java.util.Scanner; public class Pad { Pad() { new HorseShoeSpread(); // 다시하기 호출 } public static void main(String[] args) { new HorseShoeSpread(); // 초기실행 } } /* 주 코딩 영역 */ class HorseShoeSpread { private final String[] MAJOR_ARCANA = { // 전체 카드 배열 "The Fool", "The Magician", "The High Priestess", "The Empress", "The Emperor", "The Hierophant", "The Lovers", "The Chariot", "Strength", "The Hermit", "The Wheel of Fortune", "Justice", "The Hanged Man", "Death", "Temperance", "The Devil", "The Tower", "The Star", "The Moon", "The Sun", "Judgement", "The World" }; // 카드 설명 private final String[] EXPLANATIONS = { &q

문자열을 입력 받아 파일명과 확장자인 java를 분리시키는 프로그램을 짜시오

/* 자바 스캐너 클라스 응용 */ /* 문자열을 입력 받아 파일명과 확장자인 java를 분리시키는 프로그램을 짜시오 */ package grade; import java.util.Scanner; public class Lambda { public static void main(String[] args) { new Byul(); } } class Byul { private Scanner sc; // 스캐너 생성 Byul() { this.sc = new Scanner(System.in); // this.withSplitArray(); // 스플릿, 배열 사용 this.withIndexSubstring(); // 인덱스, 서브스트링 사용 this.sc.close(); } private void withIndexSubstring() { String input = this.input().trim(); // 입력 받은 값 다듬기 int index = -1; for (int i = 0; i < input.length(); i++) { // '.' 찾을 때 까지 반복 if (input.charAt(i) == '.') { index = i; } } System.out.println(input.substring(0, index)); // 파일명 System.out.println(input.substring(index + 1, input.length())); // 확장자명 } private void withSplitArray() { String input = this.input().trim(); // 입력 받은 값 다듬기 String[] split = input.split("\\."); // '.' 기준으로 나누고 배열에 저장 // '.'은 어느 문자 한개를 의미하는 정규표현식이라 \\.로

(수정판) 로또 번호 생성기

/* 배열 응용 */ /* 로또 번호 생성기 */ /* 다른 사람 코드 참고해서 수정한 경우 */ package lambda; public class Lambda { public static void main(String[] args) { new Main(); } } /* 메인 코드 영역 */ class Main { private int[] lotto; Main() { this.lotto = new int[6]; this.main(); } /* 핵심 코드 영역 */ private void main() { System.out.println(this.getTitle()); // 엔터 입력 try { System.in.read(); } catch (Exception e) { } System.out.println(this.getLotto()); } // 타이틀 반환 private String getTitle() { StringBuilder sb = new StringBuilder(); sb.append("***로또번호 생성기***\n"); sb.append("시작하려면 Enter"); return sb.toString(); } // 로또 번호 반환 private String getLotto() { StringBuilder sb = new StringBuilder(); for(int i = 0; i < 6; i++) { // 6개 숫자니가 6바퀴 this.lotto[i] = (int)(Math.random()*45) + 1; // 1 ~ 45의 랜덤 숫자 for(int j = 0; j < i; j++) { // 자기 자신 제외 if(this.lotto[i] == this.lotto[j]) // 중복 비교 i--; // 중복 시 한번 더~ } } for (int i = 0; i <

로또 번호 생성기

/* 배열 응용 */ /* 로또 번호 생성기 */ /* 직접 시도한 경우 */ /* 뻘짓이 심함 */ package lambda; public class Lambda { public static void main(String[] args) { new Main(); } } /* 메인 코드 영역 */ class Main { private int[] lotto; Main() { this.lotto = new int[6]; this.main(); } /* 핵심 코드 영역 */ private void main() { System.out.println(this.getTitle()); // 엔터 입력 try { System.in.read(); } catch (Exception e) { } System.out.println(this.getLotto()); } // 타이틀 반환 private String getTitle() { StringBuilder sb = new StringBuilder(); sb.append("***로또번호 생성기***\n"); sb.append("시작하려면 Enter"); return sb.toString(); } // 로또 번호 반환 private String getLotto() { StringBuilder sb = new StringBuilder(); int[] counts = new int[6]; while (true) { for (int i = 0; i < 6; i++) { // 로또 숫자 초기값 this.lotto[i] = (int) (Math.random() * 45) + 1; // 1 ~ 45 의 랜덤 숫자 } for (int i = 0; i < 6; i++) { // 숫자 6개를... int count = 0; for (int j = 0; j < 6

배열을 이용하여 간단한 극장 예약 시스템을 작성하여 보자

/* 배열 응용 2 */ /* 배열을 이용하여 간단한 극장 예약 시스템을 작성하여 보자 */ //****극장 예약 시스템**** //-------------------- //0 1 2 3 4 5 6 7 8 9 //-------------------- //0 0 0 0 0 0 0 0 0 0 package lambda; import java.util.Scanner; public class Lambda { public static void main(String[] args) { new Byul(); } } /* 메인 코딩 영역 */ class Byul { Scanner sc; int[][] seats; boolean isVacant; int input; Byul() { this.sc = new Scanner(System.in); // 스캐너 생성 this.seats = new int[10][2]; // 배열 할당 isVacant = false; this.input = -1; this.main(); this.sc.close(); // 스캐너 종료 } // 핵심 코딩 영역 private void main() { this.initSeats(); // 배열에 초기값(전좌석 0) 담는 함수 while (true) { System.out.println(this.getSeats()); // 좌석 정보 if (this.isVacant) { // 만석 확인용 boolean this.input = this.input(); // 좌석 선택 // 0 공석이면 예약 허가, 1 예약돼있으면 예약 거부 if (this.seats[this.input][1] == 0) { this.seats[this.input][1] = 1; } else { System.out.println("오류"); } } else { // 만석일 시 프로그램 종료 bre

과목 이름을 입력받아 점수를 출력하는 프로그램

/* 배열 응용 */ /* 과목 이름을 입력받아 점수를 출력하는 프로그램을 작성하라. "그만"을 입력받으면 종료한다. */ package lambda; import java.util.Scanner; public class Lambda { public static void main(String[] args) { new Main(); } } class Main { Scanner sc; String course[] = { "Java", "C++", "HTML5", "컴퓨터구조", "안드로이드" }; int score[] = { 95, 88, 76, 62, 55 }; Main() { this.sc = new Scanner(System.in); this.main(); this.sc.close(); } private void main() { while (true) { System.out.println("과목을 입력해주세요"); String input = this.input().trim(); if (input.equals("그만")) { break; } else if (input.equals(this.course[0])) { System.out.println(this.score[0]); } else if (input.equals(this.course[1])) { System.out.println(this.score[1]); } else if (input.equals(this.course[2])) { System.out.println(this.score[2]); } else if (input.equals(this.course[3])) { System.out.println(this.score[3]); } else

모음 자음 개수 세는 프로그램

/* 자바 스캐너 클라스 응용 2 */ /* 모음 자음 개수 세는 프로그램 */ package pad; import java.util.Scanner; public class Pad { public static void main(String[] args) { new Byul(); } } /* 메인 코딩 영역 */ class Byul { private Scanner sc; private int vowels; private int consonants; Byul() { this.sc = new Scanner(System.in); // 스캐너 생성 this.main(); this.sc.close(); // 스캐너 종료 } // 핵심 코딩 영역 private void main() { System.out.println("입력 ㄱ"); String input = this.input().trim(); // 입력 받은 문자열 앞 뒤 공백 다듬기 for (int i = 0; i < input.length(); i++) { char c = input.charAt(i); if ( // 알파벳 아닌 모든 문자 거르기 (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') ) { if ( //모음 세기 c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U' || c == 'a' || c == 'e' || c == 'i' || c == 'o'

자바 스캐너 클라스 응용 - 국어, 영어, 수학 점수 입력 시 총점, 평균, 등급 출력하는 프로그램

/* 자바 스캐너 클라스 응용 */ /* 국어, 영어, 수학 점수 입력 시 총점, 평균, 등급 출력하는 프로그램 */ package pad; import java.util.Scanner; public class Pad { public static void main(String[] args) { new Byul(); } } /* 메인 코딩 영역 */ class Byul { private Scanner sc; private Grade gr; Byul() { this.sc = new Scanner(System.in); // 스캐너 생성 this.gr = new Grade(); // 점수 객체 생성 this.main(); this.sc.close(); // 스캐너 종료 } // 핵심 코딩 영역 private void main() { System.out.println("국어 점수 입력: "); gr.setKor(this.input()); System.out.println("영어 점수 입력: "); gr.setEng(this.input()); System.out.println("수학 점수 입력: "); gr.setMath(this.input()); System.out.println("총점:\t" + (gr.getKor() + gr.getEng() + gr.getMath())); System.out.println("평균:\t" + (gr.getAvg())); System.out.println("등급:\t" + gr.getGrade()); } // 입력 받는 함수 private int input() { return sc.nextInt(); } } /* 점수 저장용 클라스 */ class Grade { private int kor; private int eng; private

사각형 넓이 비교 문제

이미지
  아래의 프로그램을 작성 하시오 .   다음 멤버를 가지고 직사각형을 표현하는  Rectangle  클래스를 작성하라 .   - int  타입의  x, y, width, height  필드 :  사각형을 구성하는 점과 크기 정보 - x, y, width, height  값을 매개변수로 받아 필드를 초기화하는 생성자 - int square() :  사각형 넓이 리턴 - void show() :  사각형의 좌표와 넓이를 화면에 출력 - boolean contatins(Rectangle r) :  매개변수로 받은  r 이 현 사각형 안에 있으면  true  리턴 - main()  메소드의 코드와 실행 결과는 다음과 같다 public static void main(String[] args) { Rectangle r = new Rectangle(2, 2, 8, 7); Rectangle s = new Rectangle(5, 5, 6, 6); Rectangle t = new Rectangle(1, 1, 10, 10);   r.show(); System.out.println("s 의 면적은  "+s.square()); if(t.contains(r)) System.out.println("t 는  r 을 포함합니다 ."); if(t.contains(s)) System.out.println("t 는  s 를 포함합니다 ."); } (2,2) 에서 크기가  8x7 인 사각형 s 의 면적은  36 t 는  r 을 포함합니다 . Rectangle 클래스 contains 함수에 대하여 한 사각형이 다른 사각형을 포함하는 의미를 코드로 표현한다. 조건1:  현 사각형의 시작 지점 x, y는 상대 사각형의 시작 지점 x, y 보다 작거나 같아야 한다.  조건2:  0부터 사각형의 시작지점까지의 길이와 사각형의 밑변의 합이 상대 사각형의 0부터 시작 지점까지의 길이와 밑변의 합 보다 크거나 같아야 한다. 높이도 같은 원리. 잘못된 조건1

JAVA 1회용 회원가입 로그인 기능 구현

이미지
 데이터베이스 기능은 없어서 프로그램 종료되면 회원 정보 초기화됨 import java.util.ArrayList; import java.util.Scanner; class Pad { public static void main(String[] args) { new Auth(); } } class Auth { Scanner sc; ArrayList<Idpw> users; boolean isFirst = true; Auth() { init(); } void init() { if (isFirst) { sc = new Scanner(System.in); users = new ArrayList<Idpw>(); Idpw admin = new Idpw(); admin.setId("admin"); admin.setPw("admin"); users.add(admin); } System.out.println("1. 로그인\r\n" + "2. 회원가입"); String input = sc.next(); if (input.equals("1")) { login(); } else if (input.equals("2")) { signUp(); } } void login() { System.out.println("ID를 입력하시오"); String id = sc.next(); String pw = new String(); boolean isId = false; for (Idpw idpw : users) { if (idpw.getId().equals(id)) { isId = true; System.out.println("비밀번호를 입력하시오&quo

화폐매수 구하기?

이미지
 126500 의 금액을 한국 화폐로 바꾸었을 때 각각 몇 개의 화폐가 필요한지 계산해서 출력하라. class Pad { public static void main(String[] args) { Counter c = new Counter(); c.enterAmount(126500); c.result(); } } class Counter { public int amount = 0; public int oman = 0; public int man = 0; public int ocheon = 0; public int cheon = 0; public int obaek = 0; public int baek = 0; public int osip = 0; public int sip = 0; void enterAmount(int amount) { this.amount = amount; } String counter(int type, int size) { while (this.amount >= size) { this.amount -= size; type++; } if (String.valueOf(size).length() == 4) { return "  " + size + "원 " + type + "장"; } else if (String.valueOf(size).length() == 3) { return "   " + size + "원 " + type + "개"; } else if (String.valueOf(size).length() == 2) { return "    " + size + "원 " + type + "개"; } else { return " &q

과목 중 가장 점수가 높은 과목과 점수 구하기

이미지
 

스프링 부트에 채팅앱 적용

이미지
페이지 접속 화면 채팅 화면 컨트롤러에 접속 페이지 chat.jsp 연결 chat.jsp 에 stomp, sockjs, chat.js (채팅 기능 프론트엔드 소스코드) ChatMessage.java:      채팅 유저, 메시지 등 저장용 Class ChatConfig.java:     백엔드 소스코드, 별거 없음 필요 dependency: websocket                     <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency>    참고: https://youtu.be/4Hyv4M1kFeM     

스프링 부트 실행법

스프링 부트 실행법:  프로젝트 우클릭, Run as Spring Boot App.  끝. 이걸 몰라서 몇 시간을 뻘짓함. 한 뻘짓:       Deployment Descriptor Stub 생성     servlet dependency 추가      tomcat 9.0 설치하고 tomcat으로 프로젝트 실행 잘한 뻘짓:     lombok 설치     log 오류 해결