1-1. Student1은 학생에 대한 정보가 들어 있는 클래스이다. 해당 클래스는 학생 이름, 국어 점수, 영어 점수, 총점 데이터를 가지고 있다. 각 필드를 선언하고 getter와 setter를 만들어 보자. 추가적으로 모든 정보를 출력하는 기능을 toString() 메소드를 오버라이딩하여 작성한다.
public class Student1 {
private String name;
private int korScore;
private int engScore;
private int tot;
//생성자
public Student1(String name, int korScore, int engScore) {
this.name = name;
this.korScore = korScore;
this.engScore = engScore;
tot = korScore + engScore;
}
//getter & setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getKorScore() {
return korScore;
}
public void setKorScore(int korScore) {
this.korScore = korScore;
}
public int getEngScore() {
return engScore;
}
public void setEngScore(int engScore) {
this.engScore = engScore;
}
public int getTot() {
return tot;
}
//toString 메소드
@Override
public String toString() {
return "Student1{" +
"name='" + name + '\'' +
", korScore=" + korScore +
", engScore=" + engScore +
", tot=" + tot +
'}';
}
}
1-2. TestStudent1이라는 클래스를 만든다. 위에서 만든 Student 클래스의 객체가 저장되는 리스트를 만들어 3명의 학생 정보를 추가한 다음, 아래의 문제를 풀어보시오.
1) 리스트에 저장된 모든 정보를 출력하시오.
2) 총점이 150점 이상인 학생의 모든 정보를 출력하시오.
3) 모든 학생에 대한 평균 점수를 출력하시오.
import java.util.ArrayList;
import java.util.List;
public class TestStudent1 {
public static void main(String[] args) {
Student1 st1 = new Student1("김", 94,85);
Student1 st2 = new Student1("이", 57,86);
Student1 st3 = new Student1("박", 71,63);
List<Student1> stuList = new ArrayList<>();
stuList.add(st1);
stuList.add(st2);
stuList.add(st3);
//리스트에 저장된 모든 정보 출력
for (Student1 stu : stuList) {
System.out.println(stu);
}
System.out.println("=========================");
//총점이 150점 이상인 학생의 모든 정보 출력
for (Student1 stu : stuList) {
if (stu.getTot() >= 150) {
System.out.println(stu);
}
}
System.out.println("=========================");
//모든 학생에 대한 평균 점수 출력
int sum = 0;
double avg;
for (Student1 stu : stuList) {
sum += stu.getTot();
}
avg = sum / (double) stuList.size();
System.out.println(avg);
System.out.println("=========================");
//총점이 1등인 학생의 모든 정보 출력
int max = 0;
for (int i = 1; i < stuList.size(); i++) {
if (stuList.get(max).getTot() < stuList.get(i).getTot()) {
max = i;
}
}
System.out.println(stuList.get(max));
}
}
2. 회원 관리 프로그램을 만드려고 한다. 아이디, 이름, 비밀번호를 갖는 Member 클래스, 프로그램의 메소드를 포함하는 MemberManage 클래스, main 메소드를 가진 TestMember 클래스를 만들어 완성해보시오. (프로그램은 회원 등록, 회원 정보 조회, 모든 회원 정보 조회, 회원 삭제, 회원 비밀번호 변경의 기능을 포함하고 있어야 한다.)
public class Member {
//멤버변수
private String id;
private String name;
private String pw;
//생성자
public Member(String id, String name, String pw) {
this.id = id;
this.name = name;
this.pw = pw;
}
//getter & setter
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
//toString 메소드
@Override
public String toString() {
return "회원 이름 : " + name + "\n" +
"아이디 : " + id + "\n" +
"비밀번호 : " + pw;
}
}
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class MemberManage {
private List<Member> memList;
Scanner sc = new Scanner(System.in);
public MemberManage() {
memList = new ArrayList<>();
}
//키보드로 입력받은 정보를 갖는 회원을 리턴
private Member getMem() {
System.out.print("회원 이름 : ");
String name = sc.next();
System.out.print("아이디 : ");
String id = sc.next();
System.out.print("비밀번호 : ");
String pw = sc.next();
return new Member(id, name, pw);
}
//회원 등록
public void regMem() {
memList.add(getMem());
}
//회원 정보 조회
public void checkMem() {
boolean isRun = true;
while (isRun) {
System.out.print("정보를 조회할 이름 : ");
String name = sc.next();
boolean isFind = false;
for (int i = 0; i < memList.size(); i++) {
if (memList.get(i).getName().equals(name)) {
System.out.println(name + "님의 정보는 아래와 같습니다.");
System.out.println(memList.get(i));
isFind = true;
isRun = false;
break;
}
}
if (!isFind) {
System.out.println("정보가 일치하는 회원이 없습니다.");
}
}
}
//모든 회원 정보 조회
public void checkAllMem() {
System.out.println("회원 수는 " + memList.size() + "명이며, 정보는 아래와 같습니다.");
for (Member member : memList) {
System.out.println(member);
System.out.println();
}
}
//회원 삭제
public void remMem() {
boolean isRun = true;
while (isRun) {
System.out.print("삭제할 회원의 이름 : ");
String name = sc.next();
boolean isFind = false;
for (int i = 0; i < memList.size(); i++) {
if (memList.get(i).getName().equals(name)) {
memList.remove(i);
System.out.println("삭제되었습니다.");
isFind = true;
isRun = false;
break;
}
}
if (!isFind) {
System.out.println("정보가 일치하는 회원이 없습니다.");
}
}
}
//회원 비밀번호 변경
public void changePw() {
boolean isRun = true;
while (isRun) {
System.out.print("비밀번호를 변경할 이름 : ");
String name = sc.next();
boolean isFind = false;
for (int i = 0; i < memList.size(); i++) {
if (memList.get(i).getName().equals(name)) {
System.out.print("비밀번호 : ");
memList.get(i).setPw(sc.next());
System.out.println("정보가 변경되었습니다.");
isFind = true;
isRun = false;
break;
}
}
if (!isFind) {
System.out.println("정보가 일치하는 회원이 없습니다.");
}
}
}
}
import java.util.Scanner;
public class TestMember {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
MemberManage memberManage = new MemberManage();
boolean run = true;
while (run) {
System.out.print("회원등록<1> 회원정보조회<2> 모든회원정보조회<3> 회원삭제<4> 화원비밀번호변경<5> 프로그램종료<6> => ");
int num = sc.nextInt();
switch (num) {
case 1 :
memberManage.regMem();
break;
case 2 :
memberManage.checkMem();
break;
case 3 :
memberManage.checkAllMem();
break;
case 4 :
memberManage.remMem();
break;
case 5 :
memberManage.changePw();
break;
case 6 :
System.out.println("프로그램을 종료합니다.");
run = false;
break;
default :
System.out.println("잘못 입력하셨습니다.");
}
}
}
}
'TIL' 카테고리의 다른 글
| 230208 [Html, CSS] (list / input / 선택자) (0) | 2023.02.08 |
|---|---|
| 230207 [Java, Html] (Set / Map / 태그 / table) (0) | 2023.02.07 |
| 230203 [Java] (예외처리 / 래퍼 클래스 / 컬렉션 프레임워크) (0) | 2023.02.03 |
| 230202 [Java] (String 클래스 / 인터페이스) (0) | 2023.02.02 |
| 230201 [Java] (다형성 / 형 변환 / 메소드 오버라이딩 / Object 클래스) (0) | 2023.02.01 |