1. 문자열을 입력 받아 한 글자씩 회전시켜 모두 출력하는 프로그램을 작성하라.
(클래스로 작성할 필요없이 메인에서 직접 할것)
[Hint] Scanner.nextLine()을 이용하면 빈칸을 포함하여 한 번에 한 줄을 읽을 수 있다.
문자열을 입력하세요. 빈칸이나 있어도 되고 영어 한글 모두 됩니다.
I Love you
Love youI
Love youI
ove youI L
ve youI Lo
e youI Lov
youI Love
youI Love
ouI Love y
uI Love yo
I Love you
StringBuilder print = new StringBuilder();
try (Scanner scanner = new Scanner(System.in);) {
String strInput = scanner.nextLine();
int strLength = strInput.length();
char[] strChars = new char[strLength];
for (int i = 1; i <= strLength; i++) {
print.append("\n");
System.out.print(print);
print.setLength(0);
for (int j = 0; j < strLength; j++) {
int n = (i + j) % strLength;
strChars[j] = strInput.charAt(n);
print.append(strChars[j]);
System.out.print(print);
print.setLength(0);
};
print.append("\n");
System.out.print(print);
print.setLength(0);
};
} catch(Exception e) {
e.printStackTrace();
} finally {
};
1. 아래를 프로그래밍 하시오.
- 클래스 Person
* 필드 : 이름, 나이, 주소 선언
- 클래스 Student
* 필드 : 학교명, 학과, 학번, 8개 평균평점을 저장할 배열로 선언
* 생성자 : 학교명, 학과, 학번 지정
* 메소드 average() : 8개 학기 평균평점의 평균을 반환
- 클래스 Person과 Student
- 프로그램 테스트 프로그램의 결과 : 8개 학기의 평균평점은 표준입력으로 받도록한다.
이름 : 김다정
나이 : 20
주소 : 서울시 관악구
학교 : 동양서울대학교
학과 : 전산정보학과
학번 : 20132222
----------------------------------------
8학기 학점을 순서대로 입력하세요
1학기 학점 → 3.37
2학기 학점 → 3.89
3학기 학점 → 4.35
4학기 학점 → 3.76
5학기 학점 → 3.89
6학기 학점 → 4.26
7학기 학점 → 4.89
8학기 학점 → 3.89
----------------------------------------
import java.util.*;
class Const {
static final int CREDITS_HOW_MANY = 8;
static final double CREDIT_MAX = 5.;
static final double CREDIT_MIN = 0.;
}
class Print {
private static StringBuilder print = new StringBuilder();
private static void printAndReset() {
System.out.print(print);
print.setLength(0);
}
private static void name(String name) {
print.append("이름 : ");
print.append(name);
print.append("\n\n");
printAndReset();
}
private static void age(int age) {
print.append("나이 : ");
print.append(age);
print.append("\n\n\n\n");
printAndReset();
}
private static void address(String address) {
print.append("주소 : ");
print.append(address);
print.append("\n\n");
printAndReset();
}
static void person(Person person) {
name(person.getName());
age(person.getAge());
address(person.getAddress());
}
private static void academy(String academy) {
print.append("학교 : ");
print.append(academy);
print.append("\n\n");
printAndReset();
}
private static void department(String department) {
print.append("학과 : ");
print.append(department);
print.append("\n\n");
printAndReset();
}
private static void idNumber(int idNumber) {
print.append("학번 : ");
print.append(idNumber);
print.append("\n\n");
printAndReset();
}
static void studentWithoutCredits(Student student) {
person(student.getPerson());
academy(student.getAcademy());
department(student.getDepartment());
idNumber(student.getIdNumber());
}
static void creditIntro() {
print.append("----------------------------------------\n\n\n\n");
print.append(Const.CREDITS_HOW_MANY);
print.append("학기 학점을 순서대로 입력하세요\n\n\n\n");
printAndReset();
}
static void credit(int index) {
print.append(index + 1);
print.append("학기 학점 → ");
printAndReset();
}
static void br() {
print.append("\n");
printAndReset();
}
static void creditOutro() {
print.append("\n\n\n----------------------------------------");
printAndReset();
}
}
class Person {
private String name;
private int age;
private String address;
public Person() {
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setAddress(String address) {
this.address = address;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
public String getAddress() {
return this.address;
}
}
class Student extends Person {
private String academy;
private String department;
private int idNumber;
private double[] credits = new double[Const.CREDITS_HOW_MANY];
public Student(String academy, String department, int idNumber) {
super();
this.academy = academy;
this.department = department;
this.idNumber = idNumber;
}
public double average() {
double sum = 0.;
for (double credit : this.credits) {
sum += credit;
};
double average = sum / (double)Const.CREDITS_HOW_MANY;
return average;
}
public Person getPerson() {
return (Person)this;
}
public String getAcademy() {
return this.academy;
}
public String getDepartment() {
return this.department;
}
public int getIdNumber() {
return this.idNumber;
}
public void setCredit(int index, double credit) {
this.credits[index] = credit;
}
}
class CourseCredit {
public static void main(String[] args) {
Student studentKDJ = new Student("동양서울대학교", "전산정보학과", 20132222);
studentKDJ.setName("김다정");
studentKDJ.setAge(20);
studentKDJ.setAddress("서울시 관악구");
Print.studentWithoutCredits(studentKDJ);
Scanner scanner;
gettingCredits:
while(true) {
scanner = new Scanner(System.in);
try {
Print.creditIntro();
for (int i = 0; i < Const.CREDITS_HOW_MANY; i++) {
Print.credit(i);
double credit = scanner.nextDouble();
if (credit < Const.CREDIT_MIN || credit > Const.CREDIT_MAX) {
continue gettingCredits;
};
studentKDJ.setCredit(i, credit);
Print.br();
};
break;
} catch(Exception e) {
e.printStackTrace();
continue;
} finally {
}
};
scanner.close();
Print.creditOutro();
}
}
//
//print
//
이름 : 김다정
나이 : 20
주소 : 서울시 관악구
학교 : 동양서울대학교
학과 : 전산정보학과
학번 : 20132222
----------------------------------------
8학기 학점을 순서대로 입력하세요
1학기 학점 → 3.37
2학기 학점 → 3.89
3학기 학점 → 4.35
4학기 학점 → 3.76
5학기 학점 → 3.89
6학기 학점 → 4.26
7학기 학점 → 4.89
8학기 학점 → 3.89
----------------------------------------