KH9일차

2022. 6. 30. 18:12코딩/Java

getter,setter를 이용한 프로그래밍

 

studentMgr1

package kr.or.iei.student.controller;

import java.util.Scanner;

public class StudentController {
	// 학생정보를 관리하는 프로그램(10명)
	// 학생정보 이름,나이,주소
	// 동명이인없음,데이터는 정상적으로 입력된다.
	private String[] name;
	private int[] age;
	private String[] addr;
	private Scanner sc;
	// 배열 관리번호(학생 정보 추가시 학생정보가 들어갈 배열위치를 저장할 변수)
	private int index;

	public StudentController() {
		name = new String[10];
		age = new int[10];
		addr = new String[10];
		sc = new Scanner(System.in);
		index = 0;
	}

	// 최초 실행 메소드(메뉴를 제공)
	public void main() {
		while (true) {
			System.out.println("\n=====학생관리프로그램V1====="); // C.R.U.D 라고한다
			System.out.println("1. 학생 정보 등록"); // Create :데이터를 만들어서 저장하는 기능
			System.out.println("2. 학생 정보 출력(전체학생정보)"); // Read : 저장되어 있는 데이터를 읽어오는 기능
			System.out.println("3. 학생 정보 출력(1명:이름으로검색)"); // Read
			System.out.println("4. 학생 정보 수정"); // Update: 저장되어 있는 데이터를 수정
			System.out.println("5. 학생 정보 삭제"); // Delete: 저장되어 있는 데이터를 삭제
			System.out.println("0. 프로그램 종료");
			System.out.print("선택 >");
			int sel = sc.nextInt();
			switch (sel) {
			case 1:
				insertStudent();
				break;
			case 2:
				printAllStudent();
				break;
			case 3:
				printOneStudent();
				break;
			case 4:
				updateStudent();
				break;
			case 5:
				deleteStudent();
				break;		
			case 0:
				System.out.println("시스템을 종료합니다.");
				return;
			default:
				System.out.println("잘못입력하셨습니다.");
				break;
			}// switch종료
		} // while종료
	}// main 종료
		// 학생정보를 입력받아서 배열에 저장하는 메소드

	public void insertStudent() {
		System.out.println("\n=====학생 정보 등록=====\n");
		System.out.print("학생 이름 입력 : ");
		String studentName = sc.next();
		System.out.print("학생 나이 입력 : ");
		int studentAge = sc.nextInt();
		System.out.print("학생 주소 입력 : ");
		sc.nextLine();// 버퍼의 엔터 제거용
		String studentAddr = sc.nextLine();
		name[index] = studentName;
		age[index] = studentAge;
		addr[index] = studentAddr;
		index++;
		System.out.println("학생정보 등록 완료!");
	}// insertStudent() 종료
		// 배열에 저장되어 있는 모든 학생 정보를 출력하는 메소드

	public void printAllStudent() {
		System.out.println("\n=====전체 학생 정보 출력=====");
		System.out.println("이름\t나이\t주소");
		System.out.println("============================");
		for (int i = 0; i < index; i++) {
			System.out.println(name[i] + "\t" + age[i] + "\t" + addr[i]);

		}
	}// printAllStudent()종료

	// 학생 이름을 입력받아 호회 후 해당 학생 정보를 출력하는 메소드
	public void printOneStudent() {
		System.out.println("\n-----학생 1명 정보 출력-----");
		System.out.print("조회 할 학생 이름 입력 : ");
		String searchName = sc.next();
		int searchIndex = searchStudent(searchName);

		if (searchIndex == -1) {
			System.out.println("학생정보를 조회 할 수 없습니다.");
		} else {
			System.out.println("이름 : " + name[searchIndex]);
			System.out.println("나이 : " + age[searchIndex]);
			System.out.println("주소 : " + addr[searchIndex]);
		}
	}// printOneStudent()종료
		// 학생이름을 입력받아 해당 학생의 정보를 수정하는 메소드

	public void updateStudent() {
		System.out.println("\n=====학생 정보 수정=====");
		System.out.print("정보 수정할 학생 이름 입력 :");
		String searchName = sc.next();
		int searchIndex = searchStudent(searchName);
		if (searchIndex == -1) {
			System.out.println("학생 정보를 조회 할 수 없습니다.");
		} else {
			System.out.print("수정할 이름 입력 : ");
			name[searchIndex] = sc.next();
			System.out.print("수정할 나이 입력 : ");
			age[searchIndex] = sc.nextInt();
			System.out.print("수정할 주소 입력 : ");
			sc.nextLine();
			addr[searchIndex] = sc.nextLine();
			System.out.println("정보 수정 완료!");
		}

	}// updateStudent()종료

	public void deleteStudent() {
		System.out.println("\n=====학생정보삭제=====");
		System.out.print("삭제할 학생 이름 입력 :");
		String searchName = sc.next();
		int searchIndex = searchStudent(searchName);
		if (searchIndex == -1) {
			System.out.println("학생 정보를 조회 할 수 없습니다.");
		} else {
			// 회원5
			// 배열0~4 index:5
			// 3번회원 삭제 2번인덱스 데이터 삭제
			// 2 : 3번데이터 입력
			for (int i = searchIndex; i < index - 1; i++) {
				name[i] = name[i + 1];
				age[i] = age[i + 1];
				addr[i] = addr[i + 1];
			}
			index--;
			System.out.println("삭제완료!");
		}
	}

	// 매개변수로 받은 이름이 name 배열 몇번에 존재하는지 되돌려주는 메소드 (조회 실패시 -1 리턴)
	public int searchStudent(String searchName) {
		for (int i = 0; i < index; i++) {
			if (searchName.equals(name[i])) {
				return i;
			}
		}
		return -1;
	}// searchStudent 종료
}// 클래스 종료

studentMgr2

controller

package kr.or.iei.student.controller;

import java.util.Scanner;

import kr.or.iei.student.vo.Student;

public class StudentController {
	private Student[] students;
	private Scanner sc;
	private int index;
	public StudentController() {
		students = new Student[10];
		sc = new Scanner(System.in);
		index = 0;
	}
	public void main() {
		while(true) {
			System.out.println("\n=====학생 관리 프로그램V2=====");
			System.out.println("1. 학생 정보 등록");
			System.out.println("2. 학생 정보 출력(전체)");
			System.out.println("3. 학생 정보 출력(1명)");
			System.out.println("4. 학생 정보 수정");
			System.out.println("5. 학생 정보 삭제");
			System.out.println("0. 프로그램 종료");
			System.out.print(" 선택 > ");
			int sel = sc.nextInt();
			switch(sel) {
			case 1:
				insertStudent();
				break;
			case 2:
				printAllStudent();
				break;
			case 3:
				printOneStudent();
				break;
			case 4:
				updateStudent();
				break;
			case 5:
				deleteStudent();
				break;
			case 0:
				System.out.println("시스템을 종료합니다.");
				return;
			default:
				System.out.println("잘못 입력 하셨습니다.");
				break;
			}
		}
	}//main 종료
	
	public void insertStudent()	{
		System.out.println("\n=====학생 정보 등록=====\n");
		System.out.print("등록 할 학생 이름 입력 : ");
		String name = sc.next();
		System.out.print("등록 할 학생 나이 입력 : ");
		int age = sc.nextInt();
		System.out.print("등록 할 학생 주소 입력 : ");
		sc.nextLine();
		String addr = sc.nextLine();
		//1)기본생성자 이용
//		Student s = new Student();
//		s.setName(name);
//		s.setAge(age);
//		s.setAddr(addr);
		//2) 매개변수 있는 생성자 이용
		Student s = new Student(name,age,addr);
		students[index++] = s;
		System.out.println("학생 정보 등록 완료!");
		
	}//insertStudent()종료
	
	public void printAllStudent() {
		System.out.println("\n=====전체 학생 정보 출력=====\n");
		System.out.println("이름\t나이\t주소");
		System.out.println("============================");
		//students -> 배열 타입
		//students[인덱스번호] -> 우리가 저장해둔 Student 타입
		//students[인덱스번호].getter -> getter호출 타입
		for(int i=0;i<index;i++) {
//			System.out.println(students[0].getName());
//			System.out.println(students[0].getAge());
			System.out.println(students[i].getName()+"\t"+students[i].getAge()+"\t"+students[i].getAddr());
			
		}
		
	}//printAllStudent()종료
	
	public void printOneStudent() {
		System.out.println("\n=====학생 정보 출력=====\n");
		System.out.print("조회할 학생 이름 입력 :");
		String name = sc.next();
		int searchIndex = searchStudent(name);
		if (searchIndex == -1) {
			System.out.println("학생 정보를 조회 할 수 없습니다.");
		}else {
			System.out.println("이름 : "+students[searchIndex].getName());
			System.out.println("나이 : "+students[searchIndex].getAge());
			System.out.println("주소 : "+students[searchIndex].getAddr());
		}
	}//printOneStudent()종료
	
	public void updateStudent() {
		System.out.println("\n=====회원 정보 수정=====");
		System.out.print("수정할 회원 이름 입력 : ");
		String name = sc.next();
		int searchIndex = searchStudent(name);
		if(searchIndex==-1) {
			System.out.println("회원 정보를 조회할 수 없습니다");
		}else {
			System.out.print("수정 할 이름 입력 : ");
			sc.nextLine();
			String updateName = sc.nextLine();
			System.out.print("수정 할 나이 입력 : ");
			int updateAge = sc.nextInt();
			System.out.print("수정 할 주소 입력 : ");
			sc.nextLine();
			String updateaddr = sc.nextLine();
			Student s = students[searchIndex];
			s.setName(updateName);
			s.setAge(updateAge);
			s.setAddr(updateaddr);
			
		}		
	}//updateStudent()종료
	public void deleteStudent() {
		System.out.println("\n=====회원 정보 삭제=====\n");
		System.out.println("삭제 할 회원 이름 입력 : ");
		String name = sc.next();
		int searchIndex = searchStudent(name);
		if(searchIndex == -1) {
			System.out.println("회원정보를 조회할 수 없습니다.");
		}else {
			for(int i = searchIndex;i<index-1;i++) {
				students[i] = students[i+1];
			}
			index--;
			System.out.println("정보 삭제 완료!");
		}
	}
	public int searchStudent(String searchName) {
		for (int i = 0; i<index; i++) {
			Student s = students[i];
			if (searchName.equals(students[i].getName())) {
				return i;
			}
		}
		return -1;
	}
}//클래스 종료

VO(기능관련)

package kr.or.iei.student.vo;

public class Student {
	private String name;
	private int age;
	private String addr;

	// 데이터가 되는 클래스 (VO)
	// 기본생성자,모든변수값을 저장할수있는 매개변수,
	// getter,setter
	// 기본생성자
	public Student() {

	}

	// 매개 변수가 있는 생성자
	public Student(String name, int age, String addr) {
		this.name = name;
		this.age = age;
		this.addr = addr;
	}

	public String getName() {
		return name;
	}

	public int getAge() {
		return age;
	}

	public String getAddr() {
		return addr;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public void setAddr(String addr) {
		this.addr = addr;
	}
}

pointMgr1

controller

package kr.or.iei.point.controller;

import java.util.Scanner;
import java.util.logging.Level;

import kr.or.iei.point.vo.Silver;

public class PointController {
	private Silver[] silver;
	private Scanner sc;
	private int index;

	public PointController() {
		silver = new Silver[10];
		sc = new Scanner(System.in);
		index = 0;
	}

	public void main() {
		while (true) {
			System.out.println("\n=====포인트 관리 프로그램=====\n");
			System.out.println("1. 회원 정보 등록");
			System.out.println("2. 전체 회원 조회");
			System.out.println("3. 회원 1명 조회");
			System.out.println("4. 회원 정보 수정");
			System.out.println("5. 회원 정보 삭제");
			System.out.println("0. 프로그램 종료");
			System.out.print(" 선택 > ");
			int sel = sc.nextInt();
			switch (sel) {
			case 1:
				insertMember();
				break;
			case 2:
				printAllMember();
				break;
			case 3:
				printOneMember();
				break;
			case 4:
				updateMember();
				break;
			case 5:
				deleteMember();
				break;
			case 0:
				System.out.println("시스템을 종료합니다.");
				return;
			default:
				System.out.println("잘못 입력 하셨습니다.");
				break;
			}
		}
	}// main종료

	public void insertMember() {
		System.out.println("\n=====회원 정보 등록=====\n");
		System.out.print("회원 등급 입력[silver] : ");
		String level = sc.next();
		System.out.print("회원 이름 입력 : ");
		sc.nextLine();
		String name = sc.next();
		System.out.print("회원 포인트 입력 : ");
		int point = sc.nextInt();
		Silver s = new Silver();
		s.setLevel(level);
		s.setName(name);
		s.setPoint(point);
		silver[index++] = s;
		System.out.println("회원 정보 등록 완료!");

	}// insertMember()종료

	public void printAllMember() {
		System.out.println("\n=====전체 회원 정보 출력=====\n");
		System.out.println("등급\t이름\t포인트\t보너스");
		System.out.println("=============================");
		for (int i = 0; i < index; i++) {
			System.out.println(silver[i].getLevel() + "\t" + silver[i].getName() + "\t" + silver[i].getPoint()+"\t"+silver[i].getBonus());
		}
	}// printAllMember()종료

	public void printOneMember() {
		System.out.println("\n=====회원 정보 출력=====\n");
		System.out.print("조회할 회원 이름 입력 :");
		String name = sc.next();
		int searchIndex = searchMember(name);
		if (searchIndex == -1) {
			System.out.println("회원 정보를 조회 할 수 없습니다.");
		} else {
			System.out.println("등급 : " + silver[searchIndex].getLevel());
			System.out.println("이름 : " + silver[searchIndex].getName());
			System.out.println("포인트 : " + silver[searchIndex].getPoint());
			System.out.println("보너스 : " + silver[searchIndex].getBonus());
		}

	}// printOneMember()종료

	public void updateMember() {
		System.out.println("\n=====회원 정보 수정=====\n");
		System.out.print("수정할 회원 이름 입력 : ");
		String name = sc.next();
		int searchIndex = searchMember(name);
		if (searchIndex == -1) {
			System.out.println("회원 정보를 조회할 수 없습니다.");
		} else {
			System.out.print("수정할 회원 등급 입력[silver] : ");
			sc.nextLine();
			String updateLevel = sc.nextLine();
			System.out.print("수정할 이름 입력 : ");
			//sc.nextLine();
			String updateName = sc.nextLine();
			System.out.print("수정할 회원 포인트 입력 : ");
			int updatePoint = sc.nextInt();
			Silver s = silver[searchIndex];
			s.setLevel(updateLevel);
			s.setName(updateName);
			s.setPoint(updatePoint);
		}
	}// updateMember()종료

	public void deleteMember() {
		System.out.println("\n=====회원 정보 삭제=====\n");
		System.out.print("삭제 할 회원 이름 입력 : ");
		String name = sc.next();
		int searchIndex = searchMember(name);
		if(searchIndex == -1) {
			System.out.println("회원정보를 조회할 수 없습니다.");
		}else {
			for(int i = searchIndex;i<index-1;i++) {
				silver[i] = silver[i+1];
			}
			index--;
			System.out.println("정보 삭제 완료!");
		}
	}// deleteMember()종료

	public int searchMember(String searchName) {
		for (int i = 0; i < index; i++) {
			Silver s = silver[i];
			if (searchName.equals(silver[i].getName())) {
				return i;
			}
		}
		return -1;
	}// 멤버 찾는 메소드
}

VO

package kr.or.iei.point.vo;

public class Silver {
	private String name;
	private int point;
	private String level;
	private double bonus;
	public Silver() {

	}

	public Silver(String name, int point, String level,double bouns) {
		this.name = name;
		this.point = point;
		this.level = level;
	}

	public String getName() {
		return name;
	}

	public int getPoint() {
		return point;
	}

	public String getLevel() {
		return level;
	}
	public double getBonus() {
		return point*0.02;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	public void setPoint(int point) {
		this.point = point;
	}
	public void setLevel(String level) {
		this.level = level;
	}
}

'코딩 > Java' 카테고리의 다른 글

KH11일차  (0) 2022.07.04
KH10일차  (0) 2022.07.01
KH8일차  (0) 2022.06.29
KH7일차  (0) 2022.06.29
kh6일차(배열)  (0) 2022.06.27