import java.util.ArrayList;
import java.util.Scanner;
public class CalculMenu {
//Switch Case로 메뉴를 잡아준다
Scores arr[];
ArrayList<Scores> list = new ArrayList<Scores>();
CalculManage cm = new CalculManage();
Scanner sc = new Scanner(System.in);
Scores sco = new Scores();
public void display() {
int selectedNo = 0;
boolean mainFlag = false;
do{
System.out.print("메뉴를 선택하세요. (1. 조회 / 2. 입력 / 3. 1등) : ");
selectedNo = sc.nextInt();
String num = null;
switch(selectedNo) {
case 1:
if(list.size() > 0){
cm.outputNo();
}else{
System.out.println("입력된 점수가 없습니다.");
System.out.println(list.size());
break;
}
case 2:
cm.inputNo();
break;
case 3:
cm.rankingNo();
break;
default:
System.out.println("존재하지않는 메뉴입니다.");
break;
}
}
while(!mainFlag);
sc.close();
}
}
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class CalculManage {
ArrayList<Scores> list = new ArrayList<Scores>();
int i = 0;
Scanner sc = new Scanner(System.in);
Scores sco = new Scores();
public void display() {
int selectedNo = 0;
boolean mainFlag = false;
do{
System.out.print("메뉴를 선택하세요. (1. 조회 / 2. 입력 / 3. 1등) : ");
selectedNo = sc.nextInt();
switch(selectedNo) {
case 1:
if(list.size() > 0){
outputNo();
break;
}else{
System.out.println("입력된 점수가 없습니다.");
break;
}
case 2:
inputNo();
break;
case 3:
rankingNo();
break;
default:
System.out.println("존재하지않는 메뉴입니다.");
break;
}
}
while(!mainFlag);
sc.close();
}
public void outputNo() {
Scores sco = new Scores();
System.out.println("번호"+ '\t' + "국어"+ '\t' + "수학 "+ '\t' + "영어"+ '\t'+ "평균");
for(int i=0;i<list.size();i++) {
// sco = list.get(i);
// System.out.println(sco.getstudentname() + " " + sco.getKscore() + " " + sco.getMscore()+ " " + sco.getEscore()+ " " + sco.getAvg());
System.out.println(list.get(i));
// break;
}
}
public void inputNo () {
Scanner sc = new Scanner(System.in);
Scores sco = new Scores();
// int i = 0;
for(int j =0;j<100;i++) {
System.out.println((i + 1) + "번 학생의 국어 점수 : " );
sco.setKscore(sc.nextInt());
System.out.println((i + 1) + "번 학생의 수학 점수 : " );
sco.setMscore(sc.nextInt());
System.out.println((i + 1) + "번 학생의 영어 점수 : " );
sco.setEscore(sc.nextInt());
sco.setAvg(sco.getKscore()+sco.getEscore()+sco.getMscore());
sco.setstudentname(i + 1);
list.add(sco);
++i;
break;
}
}
public void rankingNo() {
Scores sco = new Scores();
Scores maxSco = new Scores();
// list.add(sco);
double max = 0;
for(i=0;i<list.size();i++) {
sco = list.get(i);
if( max < sco.getAvg()) {
max = sco.getAvg();
maxSco = list.get(i);
// System.out.println("if max : " + max);
// System.out.println("if avg : " + sco.getAvg());
//max = sco.getAvg();
// }
// else {
// System.out.println("else max : " + max);
// System.out.println("else avg : " + sco.getAvg());
}
}
System.out.println("번호"+ '\t' + "국어"+ '\t' + "수학 "+ '\t' + "영어"+ '\t'+ "평균");
System.out.println(maxSco.getstudentname() + " \t " + maxSco.getKscore() + " \t " + maxSco.getMscore()+ " \t " + maxSco.getEscore()+ " \t " + maxSco.getAvg());
}
}
public class CalculMain {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
CalculManage menu = new CalculManage();
menu.display();
}
}
public class Scores {
//field
public int studentname;
public double kscore;
public double mscore;
public double escore;
public int ranking;
public double avg;
public int total;
//setter getter
@Override
public String toString() {
return "" + studentname + " \t " + kscore + " \t " + mscore + " \t " + escore
+ "\t " + avg + " \t ";
}
public int getstudentname() {
return studentname;
}
public void setstudentname(int studentname) {
this.studentname = studentname;
}
public double getKscore() {
return kscore;
}
public void setKscore(double kscore) {
this.kscore = kscore;
}
public double getMscore() {
return mscore;
}
public void setMscore(double mscore) {
this.mscore = mscore;
}
public double getEscore() {
return escore;
}
public void setEscore(double escore) {
this.escore = escore;
}
public int getRanking() {
return ranking;
}
public void setRanking(int ranking) {
ranking = 1 ;
}
public void setRankingplus(int ranking) {
ranking++;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public double getAvg() {
avg = (kscore + mscore + escore) / 3.f;
return avg;
}
public void setAvg(double avg) {
this.avg = (kscore + mscore + escore) / 3;
}
}
만년 달력 작성하기 ※ 연도를 입력 할수 있으며(범위는 1~9999), 입력한 연도의 전체 달력을 출력. 각 달력의 최상단에는 요일 표시(한글로 "일 ~ 토") 주의) Calendar관련 API는 사용하지 않습니다. Tip. 1. 1년 1월 1일은 일요일 2. 윤년은 4의 배수 연도이면서, 100의 배수는 아니며, 400의 배수는 윤년이다.
출력 예시. <<1월>> 일 월 화 수 목 금 토 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
<<2월>> 일 월 화 수 목 금 토 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 . . .
풀이
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Calendar {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int y = 0, m = 0, d = 0, w = 0, i = 0, j = 0; //y년도, m월, d일, i변수
boolean cal = false;
int monthSet[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};//각월마다 총일수
int no = 0;
int user[] = new int[9999];
do {
System.out.print("연도를 입력하세요 : ");
y = sc.nextInt()+1;
// user[i] = y;
if (y < 1 || y > 9999) {
System.out.println("숫자는 1~9999 사이의 숫자만 입력가능합니다.");
continue;
}
for (m = 1; m <13; m++) {//12대신 d
System.out.println(" <<" + m +"월>>");
// 1. 시작 : 윤년 계산
if(y % 4 ==0 && y % 100!=0 || y % 400 ==0)
monthSet[1]=29; //윤년이면 2월은 29일
else
monthSet[1]=28; //윤년이 아니면 2월은 28일
//2. 1월 1일은 일요일
d = (y-1)*365 + (y-1)/4 -(y-1)/100 + (y-1)/400;
//y년 전날까지 날수
for(i=0; i<m-1; i++){
d = d + monthSet[i];
}
w = d % 7; //구하고자 하는 달의 시작일(1일)의 요일을 구함
d = d + 1;
System.out.println(" 일 월 화 수 목 금 토");
// 공백
for(i=0;i<w;i++) {
System.out.print(" ");
}//날짜 출력
for(i=1; i <= monthSet[m-1]; i++) {
System.out.printf("%4d", i);
//한주의 날짜가 출력되면 줄바꿈 처리
w++;
if(w %7 == 0)
System.out.println();
}
if(w % 7 != 0) {
System.out.println();
}
}
}while(y>0);
}
}
import java.util.*;
import java.io.*;
public class hangexample {
int HIDDENCHAR; // 숨기는 글자 개수를 사용자에게서 입력 받음
StringBuffer hiddenWord; // 숨긴 글자를 가진 단어
String newWord; // 게임을 위해 선정된 단어
Scanner scanner; // 키 입력
int failCount; // 틀린 횟수
public hangexample() {
scanner = new Scanner(System.in);
}
public void run() {
System.out.println("행맨(Hang Man) 게임 시작");
Words words = new Words("D:\\workspace\\java\\word.txt"); // 단어 선택하는 객체 생성
while(true) {
while (true) {
newWord = words.getRandomWord(); // 랜덤한 단어 선택
break;
}
if(newWord == null) break; // 단어 선택에 문제가 있는 경우 프로그램 종료
makeHidden(); // 글자를 숨긴 단어 만들기
go(); // 게임 진행
// break;
}
}
void makeHidden()
{
hiddenWord = new StringBuffer(newWord);
Random r = new Random();
for(int k=0; k<100; k++) {
int index = r.nextInt(newWord.length());
char c = newWord.charAt(index);
for(int i=0; i<newWord.length(); i++) {
if(hiddenWord.charAt(i) == c)
hiddenWord.setCharAt(i,'-');
}
}
}
// 5 번 틀리면 실패
void go() {
failCount=0;
char key;
do {
if(failCount == 5) {
System.out.println("실패 하였습니다.");
System.out.println();
break;
}
System.out.println(newWord + "=>");
System.out.println(hiddenWord);
System.out.print(">>");
String text = scanner.next();
key = text.charAt(0);
}while(!complete(key));
if(failCount < 5) {
System.out.println("성공 하였습니다.");
System.out.println();
}
}
// 사용자가 입력한 문자 key가 숨긴 글자와 일치하는지 검사하고 일치하면 true를 리턴한다.
// 그리고 나서 hiddenWord의 '-'문자를 key 문자로 변경
boolean complete(char key) {
boolean hit = false;
for(int i=0; i<newWord.length(); i++) {
if(hiddenWord.charAt(i) == '-' && newWord.charAt(i) == key) {
hiddenWord.setCharAt(i, key);
hit = true;
}
}
if(!hit)
failCount++;
for(int i=0; i<newWord.length(); i++) {
if(hiddenWord.charAt(i) == '-')
return false;
}
return true;
}
public static void main(String[] args) {
hangexample app = new hangexample();
app.run();
}
}
// words.txt 파일을 읽고 파일에서 랜덤하게 단어를 추출하는 클래스
class Words {
final int WORDMAX = 20000; // words.txt파일에 들어 있는 총 단어의 개수
private String fileName; // 단어 파일 이름. 현재는 words.txt
private Random r = new Random(); // 난수 발생기
public Words(String fileName) {
this.fileName = fileName;
}
public String getRandomWord() {
// 파일을 읽기 위한 BufferedReader 객체를 생성한다.
BufferedReader in = null;
try {
// 파일을 열고 파일을 읽기 위한 BufferedReader 객체 생성
in = new BufferedReader(new FileReader(fileName));
}
catch(FileNotFoundException e) {
System.out.println("file not found error");
System.exit(0);
}
int n = r.nextInt(WORDMAX); // 랜덤한 라인 번호 생성. n 번째 단어를 게임에 사용
return readWord(in, n); // in 파일에서 n 번째 라인의 단어를 읽어서 리턴
}
// in 파일에서 n 번째 라인의 단어를 읽어 리턴하는 메소드
private String readWord(BufferedReader in, int n) {
String line=null; // 한 라인을 저장할 문자열 객체. 한 라인에는 하나의 단어만 있음
try {
while (n>0) {
line = in.readLine(); // 파일에서 한 라인(한 단어)를 읽는다.
if(line == null) // eof를 만나면 문제 발생. 루프 종료
break;
n--;
}
} catch (IOException e) {
System.exit(0);
}
return line; // n 번째 라인의 단어 리턴
}
}