반응형
학생정보입력 프로그램
학생정보 입력프로그램을 만들어 봤습니다.
input,output,search,driver 총 4개의 클래스로 분리했습니다.
조건
1. 학생 정보 입력 가능하게 만들기
2. 출력 가능하게 만들기
3. 20~100살 까지만 입력 가능
4. 학생정보를 찾을 수 있는 검색기능 만들기
코드
Driver class
package TEST03;
import java.util.ArrayList;
import java.util.Scanner;
public class Driver { //전체 코드 운영 클래스
String name; //이름
int age; //나이
Driver(){
}
Driver(String name,int age){
this.name=name;
this.age=age;
}
void run() {
Scanner scan=new Scanner(System.in);
ArrayList <Driver> lst=new ArrayList<>();
//학생 정보를 담을ArrayList 선언
Driver d=new Driver("코드짜는 문과녀",25); //초기 데이터 집어 넣기
lst.add(d);
for(;;) {
menu();
int menu_select=scan.nextInt();
if(menu_select==1) {
Input in=new Input();
in.input(lst);
for(;;) {
System.out.println("계속 입력하시겠습니까?(Y/N)");
char answer=scan.next().charAt(0);
if(answer=='Y' || answer=='y') {
in.input(lst);
}
else if(answer=='N' || answer=='n') {
break;
}
else {
System.out.println("Y와 N 중에만 선택해주세요.");
continue;
}
}
}//if(menu_select==1)
if(menu_select==2) {
Output out=new Output();
out.output(lst);
}//if(menu_select==2)
if(menu_select==3) {
Search sc=new Search();
sc.search(lst);
}
if(menu_select==4) {
System.out.println("프로그램을 종료합니다.");
break;
}
}
}
void menu() {
System.out.println("<<메뉴>>");
System.out.println("1. 학생 정보 입력");
System.out.println("2. 학생 정보 전체 출력");
System.out.println("3. 검색");
System.out.println("4. 종료");
System.out.print("메뉴 선택>>>>");
System.out.println();
}
public static void main(String[] args) {
Driver driver=new Driver();
driver.run();
}
}
Input class
package TEST03;
import java.util.ArrayList;
import java.util.Scanner;
public class Input { //학생정보 입력하는 클래스
int tmp;
Input(){
}
void input(ArrayList <Driver> lst) {
Driver d=new Driver();
Scanner scan=new Scanner(System.in);
System.out.println("<<학생 정보 입력>>");
Back_main: for(;;) {
System.out.print("이름:");
d.name=scan.next();
System.out.println();
for(;;) {
System.out.print("나이:");
d.age=scan.nextInt();
if(!(d.age>=20&&d.age<=100)){ //20~100살까지만 입력
System.out.println("나이는 20~100살 까지만 입력 가능합니다.");
continue;
}
break;
}
lst.add(d);
break;
}
}
}
Output class
package TEST03;
import java.util.ArrayList;
import java.util.Scanner;
public class Output { //학생정보 출력 클래스
Output() {
}
void output(ArrayList<Driver> lst) {
Scanner scan = new Scanner(System.in);
Driver d = new Driver();
for (;;) {
menu();
int select = scan.nextInt();
if (select == 1) {
System.out.println("<<학생 정보 전체 출력>>");
System.out.println("-------------------------");
for (int i = 0; i < lst.size(); i++) {
System.out.println(i + 1 + ". 이름:" + lst.get(i).name +
", 나이:" + lst.get(i).age);
System.out.println("-------------------------");
}
System.out.println();
} // if(select==1)
if (select == 2) {
System.out.println("<<나이대별 전체 출력>>");
System.out.println("-------------------------");
System.out.println("20대");
for (int i = 0; i < lst.size(); i++) {
if (lst.get(i).age >= 20 && lst.get(i).age < 30) {
System.out.println("이름:" + lst.get(i).name +
", 나이:" + lst.get(i).age);
}
}
System.out.println("-------------------------");
System.out.println("30대");
for (int i = 0; i < lst.size(); i++) {
if (lst.get(i).age >= 30 && lst.get(i).age < 40) {
System.out.println("이름:" + lst.get(i).name +
", 나이:" + lst.get(i).age);
}
}
System.out.println("-------------------------");
System.out.println("40대");
for (int i = 0; i < lst.size(); i++) {
if (lst.get(i).age >= 40 && lst.get(i).age < 50) {
System.out.println("이름:" + lst.get(i).name +
", 나이:" + lst.get(i).age);
}
}
System.out.println("-------------------------");
System.out.println("50대");
for (int i = 0; i < lst.size(); i++) {
if (lst.get(i).age >= 50 && lst.get(i).age < 60) {
System.out.println("이름:" + lst.get(i).name +
", 나이:" + lst.get(i).age);
}
}
System.out.println("-------------------------");
System.out.println("60대");
for (int i = 0; i < lst.size(); i++) {
if (lst.get(i).age >= 60 && lst.get(i).age < 70) {
System.out.println("이름:" + lst.get(i).name +
", 나이:" + lst.get(i).age);
}
}
System.out.println("-------------------------");
System.out.println("70대");
for (int i = 0; i < lst.size(); i++) {
if (lst.get(i).age >= 70 && lst.get(i).age < 80) {
System.out.println("이름:" + lst.get(i).name +
", 나이:" + lst.get(i).age);
}
}
System.out.println("-------------------------");
System.out.println("80대");
for (int i = 0; i < lst.size(); i++) {
if (lst.get(i).age >= 80 && lst.get(i).age < 90) {
System.out.println("이름:" + lst.get(i).name +
", 나이:" + lst.get(i).age);
}
}
System.out.println("-------------------------");
System.out.println("90대,100");
for (int i = 0; i < lst.size(); i++) {
if (lst.get(i).age >= 90 && lst.get(i).age <= 100) {
System.out.println("이름:" + lst.get(i).name +
", 나이:" + lst.get(i).age);
}
}
System.out.println("-------------------------");
} // if(select==2)
System.out.println();
if (select == 3) {
break;
}
}
}
void menu() {
System.out.println("-------------------------");
System.out.println("1.전체출력");
System.out.println("2.나이대별 출력");
System.out.println("3.돌아가기");
System.out.print("선택>>>>");
System.out.println();
System.out.println("-------------------------");
}
}
Search class
package TEST03;
import java.util.ArrayList;
import java.util.Scanner;
public class Search {
Search(){
}
void search(ArrayList<Driver> lst) {
Scanner scan=new Scanner(System.in);
Driver d = new Driver();
int tmp=0;
System.out.println("<<학생 정보 검색>>");
for(;;) {
menu();
int select=scan.nextInt();
if(select==1) {
tmp=0;
System.out.println("-이름으로 검색-");
System.out.println("이름:");
String name=scan.next();
for(int i=0;i<lst.size();i++) {
if(lst.get(i).name.equals(name)) {
if(tmp==0) System.out.println(lst.get(i).name+"의 정보");
System.out.println("이름:"+lst.get(i).name+", 나이:"+lst.get(i).age);
System.out.println("-----------------------------");
tmp++;
}
else {
System.out.println("해당 정보를 찾을 수 없습니다.");
System.out.println("메뉴로 돌아갑니다.");
System.out.println();
continue;
}
}
}//if(select==1)
if(select==2) {
tmp=0;
System.out.println("-나이로 검색-");
System.out.println("나이:");
while (!scan.hasNextInt()) {
scan.next();
System.err.println("숫자만 입력가능");
System.out.println("나이:");
}
int age=scan.nextInt();
for(int i=0;i<lst.size();i++) {
if(lst.get(i).age==age) {
if(tmp==0) System.out.println(lst.get(i).age+"살인 학생들의 정보");
System.out.println("이름:"+lst.get(i).name+", 나이:"+lst.get(i).age);
System.out.println("-----------------------------");
tmp++;
}
else {
System.out.println("검색하신 나이의 학생은 찾을 수 없습니다.");
}
}
}
if(select==3) {
break;
}
}//for(;;)
}//void search(ArrayList<Driver> lst)
void menu() {
System.out.println("-------------------------");
System.out.println("메뉴");
System.out.println("1.이름으로 검색");
System.out.println("2.나이로 검색");
System.out.println("3.돌아가기");
System.out.print("메뉴선택>>>");
System.out.println("-------------------------");
}
}
반응형
'(JAVA)자바 > (JAVA)자바 실습' 카테고리의 다른 글
(JAVA)자바 가위바위보 게임 프로그램- random함수를 활용한 자바 실습 (0) | 2021.01.28 |
---|---|
(JAVA)자바 계산기 프로그램 만들기 - 실습 (0) | 2021.01.27 |
댓글