import java.util.Scanner;
enum Week {
MON, TUE, WED, THU, FRI, SAT, SUN
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Week[] values = Week.values();
boolean flag;
while (true) {
System.out.print("요일을 입력하세요: ");
String input = sc.nextLine();
flag = false;
// case 1. 'XXX'를 입력하면, 종료시킨다.
if (input.equals("XXX")) {
System.out.println("프로그램을 종료합니다.");
break;
}
// case 2. 'XXX'가 아니면, 값들을 Week Enum과 비교해본다.
for (Week week : values) {
if (week.name().equals(input)) {
DisplayInfo(week);
flag = true;
}
}
// default, 위 과정이 모두 아닌경우엔 예외 입력이다.
if (flag) {
System.out.println("");
} else {
System.out.println("잘못 입력하셨습니다.\n");
}
}
}
public static void DisplayInfo(Week week) {
switch (week) {
case MON:
System.out.println("주간회의가 있습니다.");
break;
case TUE:
System.out.println("프로젝트 기획 회의가 있습니다.");
break;
case WED:
System.out.println("진행사항 보고하는 날입니다.");
break;
case THU:
System.out.println("사내 축구시합이 있는 날입니다.");
break;
case FRI:
System.out.println("프로젝트 마감일입니다.");
break;
case SAT:
System.out.println("가족과 함께 즐거운 시간을 보내세요.");
break;
case SUN:
System.out.println("오늘은 휴일입니다.");
break;
}
}
}
|
cs |
import java.lang.Math;
public class JavaTest {
public static void main(String[] args) {
Shape shape[] = new Shape[3];
shape[0] = new Square(4);
shape[1] = new Circle(2);
shape[2] = new Square(5);
for (Shape s : shape) {
printShape(s);
}
}
public static void printShape(Shape shape) {
System.out.print("Area: " + shape.getArea());
System.out.println(" , Perimeter: " + shape.getPerimeter());
}
}
abstract class Shape {
protected abstract double getArea();
protected abstract double getPerimeter();
}
class Square extends Shape {
private double side;
public Square(int side) {
this.side = side;
}
@Override
public double getArea() {
return side * side;
}
@Override
public double getPerimeter() { // 둘레
return 4 * side;
}
}
class Circle extends Shape {
private double rad;
public Circle(int rad) {
this.rad = rad;
}
@Override
public double getArea() {
return Math.floor(Math.PI * rad * rad * 100) / 100;
}
@Override
public double getPerimeter() {
return Math.floor(Math.PI * 2 * rad * 100) / 100;
}
}
|
cs |
interface PersonalNumberStorage {
void addPersonalInfo(String name, int age);
String searchName(int age);
}
class Test {
public static void main(String[] args) {
PersonalNumberStorage storage = new PersonalNumberStorageImpl(100);
storage.addPersonalInfo("Jack", 22);
storage.addPersonalInfo("King", 33);
System.out.println(storage.searchName(22));
System.out.println(storage.searchName(33));
System.out.println(storage.searchName(44));
}
}
class PersonalNumberStorageImpl implements PersonalNumberStorage {
PersonalNumInfo[] perArr;
int numOfPerInfo;
PersonalNumberStorageImpl(int sz) {
perArr = new PersonalNumInfo[sz];
numOfPerInfo = 0;
}
public void addPersonalInfo(String name, int perNum) {
perArr[numOfPerInfo] = new PersonalNumInfo(name, perNum);
numOfPerInfo++;
}
public String searchName(int perNum) {
for (int i = 0; i < numOfPerInfo; i++) {
if (perNum == perArr[i].getNumber()) // 숫자끼리 비교!
return perArr[i].getName();
}
return "no one";
}
}
class PersonalNumInfo {
String name;
int number;
PersonalNumInfo(String name, int number) {
this.name = name;
this.number = number;
}
String getName() {
return name;
}
int getNumber() {
return number;
}
}
|
cs |
package _1006_D;
/*
* 전화번호 관리 프로그램 구현 프로젝트
* Version 0.5
*/
import java.util.Scanner;
interface INIT_MENU
{
int INPUT=1, SEARCH=2, DELETE=3, EXIT=4;
}
interface INPUT_SELECT
{
int NORMAL=1, UNIV=2, COMPANY=3;
}
class PhoneInfo
{
String name;
String phoneNumber;
public PhoneInfo(String name, String num)
{
this.name=name;
phoneNumber=num;
}
public void showPhoneInfo()
{
System.out.println("name: "+name);
System.out.println("phone: "+phoneNumber);
}
}
class PhoneUnivInfo extends PhoneInfo
{
String major;
int year;
public PhoneUnivInfo(String name, String num, String major, int year)
{
super(name, num);
this.major=major;
this.year=year;
}
public void showPhoneInfo()
{
super.showPhoneInfo();
System.out.println("major: "+major);
System.out.println("year: "+year);
}
}
class PhoneCompanyInfo extends PhoneInfo
{
String company;
public PhoneCompanyInfo(String name, String num, String company)
{
super(name, num);
this.company=company;
}
public void showPhoneInfo()
{
super.showPhoneInfo();
System.out.println("company: "+company);
}
}
class PhoneBookManager
{
final int MAX_CNT=100;
PhoneInfo[] infoStorage=new PhoneInfo[MAX_CNT];
int curCnt=0;
static PhoneBookManager inst=null;
public static PhoneBookManager createManagerInst()
{
if(inst==null)
inst=new PhoneBookManager();
return inst;
}
private PhoneBookManager(){}
private PhoneInfo readFriendInfo()
{
System.out.print("이름: ");
String name=MenuViewer.keyboard.nextLine();
System.out.print("전화번호: ");
String phone=MenuViewer.keyboard.nextLine();
return new PhoneInfo(name, phone);
}
private PhoneInfo readUnivFriendInfo()
{
System.out.print("이름: ");
String name=MenuViewer.keyboard.nextLine();
System.out.print("전화번호: ");
String phone=MenuViewer.keyboard.nextLine();
System.out.print("전공: ");
String major=MenuViewer.keyboard.nextLine();
System.out.print("학년: ");
int year=MenuViewer.keyboard.nextInt();
MenuViewer.keyboard.nextLine();
return new PhoneUnivInfo(name, phone, major, year);
}
private PhoneInfo readCompanyFriendInfo()
{
System.out.print("이름: ");
String name=MenuViewer.keyboard.nextLine();
System.out.print("전화번호: ");
String phone=MenuViewer.keyboard.nextLine();
System.out.print("회사: ");
String company=MenuViewer.keyboard.nextLine();
return new PhoneCompanyInfo(name, phone, company);
}
public void inputData()
{
System.out.println("데이터 입력을 시작합니다..");
System.out.println("1. 일반, 2. 대학, 3. 회사");
System.out.print("선택>> ");
int choice=MenuViewer.keyboard.nextInt();
MenuViewer.keyboard.nextLine();
PhoneInfo info=null;
switch(choice)
{
case INPUT_SELECT.NORMAL:
info=readFriendInfo();
break;
case INPUT_SELECT.UNIV:
info=readUnivFriendInfo();
break;
case INPUT_SELECT.COMPANY:
info=readCompanyFriendInfo();
break;
}
infoStorage[curCnt++]=info;
System.out.println("데이터 입력이 완료되었습니다. \n");
}
public void searchData()
{
System.out.println("데이터 검색을 시작합니다..");
System.out.print("이름: ");
String name=MenuViewer.keyboard.nextLine();
int dataIdx=search(name);
if(dataIdx<0)
{
System.out.println("해당하는 데이터가 존재하지 않습니다. \n");
}
else
{
infoStorage[dataIdx].showPhoneInfo();
System.out.println("데이터 검색이 완료되었습니다. \n");
}
}
public void deleteData()
{
System.out.println("데이터 삭제를 시작합니다..");
System.out.print("이름: ");
String name=MenuViewer.keyboard.nextLine();
int dataIdx=search(name);
if(dataIdx<0)
{
System.out.println("해당하는 데이터가 존재하지 않습니다. \n");
}
else
{
for(int idx=dataIdx; idx<(curCnt-1); idx++)
infoStorage[idx]=infoStorage[idx+1];
curCnt--;
System.out.println("데이터 삭제가 완료되었습니다. \n");
}
}
private int search(String name)
{
for(int idx=0; idx<curCnt; idx++)
{
PhoneInfo curInfo=infoStorage[idx];
if(name.compareTo(curInfo.name)==0)
return idx;
}
return -1;
}
}
class MenuViewer
{
public static Scanner keyboard=new Scanner(System.in);
public static void showMenu()
{
System.out.println("선택하세요...");
System.out.println("1. 데이터 입력");
System.out.println("2. 데이터 검색");
System.out.println("3. 데이터 삭제");
System.out.println("4. 프로그램 종료");
System.out.print("선택: ");
}
}
class Test
{
public static void main(String[] args)
{
//Untitled From Jackdclee
//https://pastebin.com/DXgRBJG4
//PhoneBookManager은 createManagerInst()함수를 통한 인스턴스 생성만 가능하게 구현(싱글톤 패턴을 이용하기 위해)
//PhoneBookManager manager=PhoneBookManager.createManagerInst();
//PhoneBookManager를 담는 변수를 3개 만들고, 변수(레퍼런스)는 3개이지만 PhoneBookManager.createManagerInst();
//싱글톤 패턴을 적용한 클래스이기에 실제로는 하나의 인스턴스에 대한 레퍼런스는 동일하다.
PhoneBookManager manager1=PhoneBookManager.createManagerInst();
PhoneBookManager manager2=PhoneBookManager.createManagerInst();
PhoneBookManager manager3=PhoneBookManager.createManagerInst();
//생성자가 Private로 되어있어 생성자를 통한 인스턴스 생성이 불가
//PhoneBookManager managerInst2 = new PhoneBookManager();
int choice;
while(true)
{
MenuViewer.showMenu();
choice=MenuViewer.keyboard.nextInt();
MenuViewer.keyboard.nextLine();
switch(choice)
{
case INIT_MENU.INPUT:
manager1.inputData();
break;
case INIT_MENU.SEARCH:
manager2.searchData();
break;
case INIT_MENU.DELETE:
manager3.deleteData();
break;
case INIT_MENU.EXIT:
System.out.println("프로그램을 종료합니다.");
return;
}
}
}
}
|
cs |
'기타 > univ. projects' 카테고리의 다른 글
[자바] 멀티미디어자바프로젝트II ch.06 연습문제 (0) | 2022.10.22 |
---|---|
[유니티] 게임엔진응용실습 Unit4 프로젝트 - Airplane Shooting (Space Invader) (0) | 2022.10.22 |
[자바] 멀티미디어자바프로젝트II ch.04 연습문제 (1) | 2022.09.20 |
[유니티] 게임엔진응용실습 Unit3 프로젝트 - Space Flight (1) | 2022.09.20 |
[유니티] 게임엔진응용실습 Unit2 프로젝트 - 장애물 코스 피하기 게임 (0) | 2022.09.13 |