728x90
반응형
■ 주민등록번호 분석 프로그램
□ 조건
프로그램 시작하면
이름과 주민등록번호 13자리를 입력받는다.
<맞는 경우>
홍길동님의 주민등록번호 분석결과
생년월일 : XXXX년 XX월 XX일
나이 : XX세
성별 : 남(여)
출생지역 : XX지역
<틀리는 경우>
잘못된 주민등록번호입니다.
□ 주민등록번호 코드
package jun.java.exam04;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Calendar;
public class JuminQuiz {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.print("이름 : ");
String name = br.readLine();
int[] jumin = new int[13];
System.out.print("주민등록번호 : ");
for(int i=0; i<jumin.length; i++) {
jumin[i] = System.in.read() - 48;
}
System.in.read();System.in.read(); // 엔터값 처리
float hap = 0.f; float temp = 0.f; float total = 0,f;
float cre = 2.f;
for(int i=0; i<jumin.length-1; i++) {
if(cre == 10.f) cre = 2.f;
hap += jumin[i] * cre;
cre++;
}
temp = 11.f * (int)(hap/11.f) + 11.f -hap;
total = temp - 10.f * (int)(temp/10.f);
if(jumin[jumin.length-1] != total) {
System.out.println("잘못된 주민등록번호입니다");
return;
}
System.out.println();
System.out.println(name + "님의 주민등록번호 분석결과");
System.out.println();
int year = 1900;
switch(jumin[6]) {
case 3:
case 4:year = 2000;
case 9:
case 0: year = 1800;
default : year = 1900;
}
year = year + jumin[0]*10 + jumin[1];
int month = jumin[2]*10 + jumin[3];
int day = jumin[4]*10 + jumin[5];
System.out.println("생년월일 : " + year + "년 " + month + "월 " + day + "일생");
System.out.println("나이 : " + (Calendar.getInstance().get(Calendar.YEAR) - year) + "세");
System.out.println("성별 : " + (jumin[6] % 2 == 0? "여성" : "남성"));
String area = "";
switch(jumin[7]) {
case 0: area = "서울지역"; break;
case 1: area = "경기지역"; break;
case 2: area = "강원지역"; break;
case 3: area = "충북지역"; break;
case 4: area = "충남지역"; break;
case 5: area = "전북지역"; break;
case 6: area = "전남지역"; break;
case 7: area = "경북지역"; break;
case 8: area = "경남지역"; break;
case 9: area = "제주지역"; break;
}
System.out.println("출생지역 : " + area);
} // end main
}
■ 홀짝게임 1
// money = 1000;
// 홀짝 맞추기
// 1. 홀수
// 2. 짝수
// 0. 프로그램 종료
// 메뉴선택 : (커서) 1 + enter
// 번호 입력시
// 베팅금액 : (커서) 200 + enter
// 주사위를 던지려면 enter를 입력하세요 -> enter를 치면
// 주사위 값
// YOU WIN(LOSE)
// 잔액 : 1200원
//---------------------------------------------
// 0번 누르면 "정말로 종료하시겠습니까(Y/N)? :
// y면 종료
// n면 다시 메뉴로
※ 랜덤 값 만들기
// Math.random(); 0<= 값 <1 에 해당하는 double 값이 나온다.
// 6을 곱하면 0<= 값 < 6
// int로 형변환 하면 0<= 값 <=5
// _1을 하면
// 다른 대안
// Random r = new Random();
// r.nextInt() 를 x라고 부르면 -21.......<= x < 21.............
// x >>> 1 하면 무조건 양수가 됨.
// x % 6 + 1
package jun.java.exam09;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class DiceQuizEx {
public static void main(String[] ar) throws IOException {
int money = 1000; int holjjak; int menu; double dap;
while(true) {
System.out.println("<홀짝 맞추기>");
System.out.println("1. 홀수");
System.out.println("2. 짝수");
System.out.println("0. 프로그램 종료");
System.out.print("메뉴선택 : ");
menu = System.in.read() - 48;
System.in.read();
System.in.read();
if(menu == 1 || menu == 2) {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.print("베팅 금액 : ");
holjjak = Integer.parseInt(br.readLine());
dap = (Math.random())*6;
if(menu%2 == ((int)dap+1)%2) {
System.out.println("YOU WIN!!!");
money += holjjak;
System.out.println("당신의 남은 금액은 "+money+"입니다");
}else {
System.out.println("YOU LOSE!!!");
money -= holjjak;
System.out.println("당신의 남은 금액은 "+money+"입니다");
}
}
else if(menu == 0) {
System.out.print("정말로 종료하시겠습니까?(Y/N) ");
char ch = (char)System.in.read();
if(ch == 'Y')
break;
}
}
}
}
■ 홀짝게임 2
package jun.java.exam01;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class DiceGame {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int money = 1000; // 게임머니
int menu = -1; // 선택한 메뉴
boolean isStop = false;
// 낮은 결합도, 높은 응집도
while(!isStop) {
System.out.println("1. 홀수");
System.out.println("2. 짝수");
System.out.println("0. 게임종료");
System.out.print("메뉴선택 : ");
try {
menu = Integer.parseInt(br.readLine());
}catch(NumberFormatException nfe) {
menu = -1; // 대체값 기법
}
if(menu == 0) {
System.out.println();
System.out.print("정말로 종료하시겠습니까? (y.n) : ");
char result = (char)System.in.read();
System.in.read();System.in.read();
if(result =='Y'||result == 'y') {
// System.exit(0); 종료
isStop = true;
}
System.out.println();
continue;
}
if(menu != 1 && menu != 2) {
System.err.println("\n메뉴 입력 오류 : 메뉴를 확인하시고 다시 입력해 주세요 ");
continue;
}
System.out.println();
System.out.print("베팅금액 = ");
int batMoney = Integer.parseInt(br.readLine());
if(batMoney > money) {
System.out.println();
System.out.println("현재 보유금액보다 많은 금액을 배팅하셨습니다");
System.out.println("ALL IN으로 처리하겠습니다.");
batMoney = money;
}
System.out.println();
System.out.println("주사위를 던지려면 Enter를 치세요");
System.in.read();System.in.read(); // Enter 값 처리
int dice = (int)(Math.random()*6)+1;
/* 참고 Random 객체를 이용하면
* Random r = new Random();
* int dice = r.nextInt; -2147483648 ~ 2147483647
* dice = (dice >>> 1) % 6 +1;
*/
System.out.println("주사위 값 : " + dice);
if((menu + dice) % 2 == 0) { // 내가 이기는 경우
System.out.println("YOU WIN!!");
money += batMoney;
}else {// 내가 지는 경우
System.out.println("YOU WIN!!");
money -= batMoney;
}
System.out.println("잔액 : " +money);
if(money<=0) {
System.out.println();
System.out.println("가진 돈을 다 잃으셨습니다. 돈 벌어서 다시 오세요");
isStop = true;
}
if(money >= 5000) {
System.out.println();
System.out.println("지나친 도박은 몸에 해롭습니다. 게임을 강제적으로 종료합니다");
isStop = true;
}
System.out.println();
}// end while
}
}
■ 가위바위보 게임
// money = 1000;
// 1. 주먹
// 2. 가위
// 3. 보자기
// 0. 게임종료
// 메뉴선택 : 1
// 배팅금액 : 200
// 결과를 보려면 엔터를 치세요 - Enter
// Computer : 주먹
// YOU : 주먹
// 결과 : Draw
// 잔액 : 1000원
package jun.java.exam05;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class RCPGameEx {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int money = 1000;
boolean isStop = false;
int menu = -1;
int[][] result = { {0, 1, -1}, {-1, 0, 1}, {1, -1, 1} };
String[] str = {"주먹", "가위", "보자기"};
while(!isStop) {
System.out.println("1. 주먹");
System.out.println("2. 가위");
System.out.println("3. 보자기");
System.out.println("0. 게임종료");
System.out.print("메뉴선택 : ");
try {
menu = Integer.parseInt(br.readLine());
}catch(NumberFormatException nfe) {
menu = -1; // 대체값 기법
}
if(menu == 0) {
System.out.println();
System.out.print("정말로 종료하시겠습니까? (y.n) : ");
char response = (char)System.in.read();
System.in.read();System.in.read();
if(response =='Y'||response == 'y') {
// System.exit(0); 종료
isStop = true;
}
System.out.println();
continue;
}
if(menu != 1 && menu != 2 && menu != 3) {
System.err.println("\n메뉴 입력 오류 : 메뉴를 확인하시고 다시 입력해 주세요 ");
continue;
}
System.out.println();
System.out.print("베팅금액 = ");
int batMoney = Integer.parseInt(br.readLine());
if(batMoney > money) {
System.out.println();
System.out.println("현재 보유금액보다 많은 금액을 배팅하셨습니다");
System.out.println("ALL IN으로 처리하겠습니다.");
batMoney = money;
}
System.out.println();
System.out.println("결과를 보려면 Enter를 치세요");
System.in.read();System.in.read(); // Enter 값 처리
int com = (int)(Math.random()*3)+1;
System.out.println("Cimput" + str[com-1] + ", YOU : " + str[menu-1]);
if(result[menu-1][com-1] == 1) {//내가 이긴 거
money += batMoney;
System.out.println("you win!!");
}else if(result[menu-1][com-1] == -1) {// 내가 진거
money -= batMoney;
System.out.println("you lose!!");
}else if(result[menu-1][com-1] == 0) {// 비긴 거
System.out.println("draw!!");
}
System.out.println("잔액 : " +money);
if(money<=0) {
System.out.println();
System.out.println("가진 돈을 다 잃으셨습니다. 돈 벌어서 다시 오세요");
isStop = true;
}
if(money >= 5000) {
System.out.println();
System.out.println("지나친 도박은 몸에 해롭습니다. 게임을 강제적으로 종료합니다");
isStop = true;
}
}
}
}
■ 야구게임
// 게임을 진행하려면 ENTER를 치세요! ENTER
// COMPUTER가 숫자를 생성했습니다
// COMPUTER 세자리 000 (각 자리 0~9까지) 대신 중복되면 안 됨
// ex) 7 1 4 단자리로 끊어서 입력받아야 한다.
// 이중 FOR문으로
// 0 1 2 만약 이전 생성수랑 겹치면 다시 만들어
// 당신이 생각하는 숫자 : 1 2 4
// 숫자가 있지만 자릿수가 다르면 BALL
// 숫자가 있고 자릿수도 같으면 STRIKE
// 없으면 아웃
// 10회 안에 성공해야 함
package jun.java.exam06;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BaseballGameEx {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("게임을 진행하시겠습니까?(y/n)");
String res = br.readLine();
if(res.equals("N") || res.equals("Y"))
return;
System.out.println("숫자를 생성했습니다.");
int[] computer = new int[3];
for(int i=0; i<computer.length; i++) {
computer[i] = (int)(Math.random()*10);
for(int j=0; j<i; j++) {
if(computer[j] == computer[i]) {
i--;
return;
}
}
}
for(int i=0; i<computer.length; i++) // 컴퓨터가 생성한 숫자 확인
System.out.println("computer[" + i + "] = " + computer[i]);
System.out.println();
int[] myNum = new int[3];
for(int i=0; i<10; i++) {
System.out.print("당신이 생각하는 숫자는? : ");
String imsiNum = br.readLine(); // 지금 방식 charAt으로 한 글자 뽑아서
for(int j=0; j<myNum.length; j++)
myNum[j] = imsiNum.charAt(j) - 48;
int strike = 0; int ball = 0;
for(int j=0; j<computer.length; j++) {
for(int k=0; k<myNum.length; k++) {
if(computer[j] == myNum[k]) {
if(j==k)strike++;
else ball++;
break;
}
}
}
System.out.println(i + 1 + "구 : " + strike + "스트라이크, " + ball + "볼" );
if(strike == 3) {
System.out.println("정답입니다.");
break;
}
if(i==9) {
System.out.println();
System.out.print("실패입니다.\n정답은 : ");
for(int j=0; j<computer.length; j++) // 컴퓨터가 생성한 숫자확인
System.out.print(computer[j]);
}
System.out.println();
} // end for i
}
}
■ 마방진 게임
package jun.java.exam01;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Mabangjin {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.print("숫자(홀수만) : ");
int num = Integer.parseInt(br.readLine());
int[][] mabang = new int[num][num];
int row=0; int col = num / 2;
for(int su=1; su<=num*num; su++) {
mabang[row][col] = su;
if(su % num == 0) {
row++; continue;
}
row--; col++;
if(row < 0) row = mabang.length - 1; // num - 1과 똑같은 것이다.
if(col > mabang.length - 1) col = 0;
}
System.out.println();
for(int i=0; i<mabang.length; i++) {
for(int j=0; j<mabang[i].length; j++) {
System.out.print(mabang[i][j] + "\t");
}
System.out.println();
}
}
}
728x90
반응형
'IT&코딩 > Java' 카테고리의 다른 글
Java - 9일차 (객체지향 프로그래밍(클래스)2) (0) | 2022.10.24 |
---|---|
Java - 8일차 (객체지향 프로그래밍(클래스)) (0) | 2022.10.23 |
Java - 6일차 (배열) (0) | 2022.10.20 |
Java - 5일차 (제어문) (0) | 2022.10.20 |
Java - 4일차 (표준입출력) (0) | 2022.10.20 |