소스코드 작성
Student.java ( static )
package static0601;
public class Student {
// 필드
//총점, 평균 Getter/Setter
private String name;
private int kor;
private int math;
private int eng;
private int tot;
private int avg;
//사용 안함
// private int kmax;
// private int mmax;
// private int emax;
//
// String kMaxName;
// String eMaxName;
// String mMaxName;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getKor() {
return kor;
}
public void setKor(int kor) {
this.kor = kor;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
public int getEng() {
return eng;
}
public void setEng(int eng) {
this.eng = eng;
}
public int getTot() {
return tot;
}
public void setTot(int kor, int math, int eng) {
this.tot = kor + eng + math;
}
public int getAvg() {
return avg;
}
public void setAvg(int kor, int math, int eng) {
this.avg = (kor + eng + math) / 3;
}
//사용 안함
// public int getKmax() {
// return kmax;
// }
// public void setKmax(int kmax, int kor, String kMaxName) {
// this.kmax = kmax;
// this.kor = kor;
// this.kMaxName = kMaxName;
// }
// public int getMmax() {
// return mmax;
// }
// public void setMmax(int mmax, int math, String mMaxName) {
// this.mmax = mmax;
// this.math = math;
// this.mMaxName = mMaxName;
// }
// public int getEmax() {
// return emax;
// }
// public void setEmax(int emax, int eng, String eMaxName) {
// this.emax = emax;
// this.eng = eng;
// this.eMaxName = eMaxName;
// }
}
Singleton.java (static)
package static0601;
public class Singleton {
public Student[] stu = new Student[3];
private int index;
public int getIndex() {
System.out.println(index);
return index++ % stu.length;
}
public void setIndex(int index) {
this.index = index;
}
private static Singleton st = new Singleton();
// 과목별 최고 점수, 학생 필드값 지정
private int kmax;
private String kMaxName;
private int emax;
private String eMaxName;
private int mmax;
private String mMaxName;
private Singleton() {
for (int i=0; i < stu.length; i++) {
stu[i] = new Student();
}
}
public static Singleton getInstance() {
return st;
}
// 과목별 최고 점수. 학생 Getter/Setter
public int getKmax() {
return kmax;
}
public void setKmax(int kmax) {
this.kmax = kmax;
}
public String getKMaxName() {
return kMaxName;
}
public void setKMaxName(String kMaxName) {
this.kMaxName = kMaxName;
}
public int getEmax() {
return emax;
}
public void setEmax(int emax) {
this.emax = emax;
}
public String geteMaxName() {
return eMaxName;
}
public void seteMaxName(String eMaxName) {
this.eMaxName = eMaxName;
}
public int getMmax() {
return mmax;
}
public void setMmax(int mmax) {
this.mmax = mmax;
}
public String getmMaxName() {
return mMaxName;
}
public void setmMaxName(String mMaxName) {
this.mMaxName = mMaxName;
}
}
// 기본 싱글톤
// private static Singleton st = new Singleton();
// private Singleton() {}
// public static Singleton getInstance() {
// return st;
// }
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="static0601.*" %>
<%
Singleton st = Singleton.getInstance();
String nm = request.getParameter("name");
String kor = request.getParameter("kor");
String math = request.getParameter("math");
String eng = request.getParameter("eng");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="">
이름<input type="text" name="name" /><br/>
국어<input type="text" name="kor" /><br/>
수학<input type="text" name="math" /><br/>
영어<input type="text" name="eng" /><br/>
<input type="submit" />
</form>
<%
if (kor != null) {
int index = st.getIndex();
st.stu[index].setName(nm);
st.stu[index].setKor(Integer.parseInt(kor));
st.stu[index].setEng(Integer.parseInt(eng));
st.stu[index].setMath(Integer.parseInt(math));
/*총점*/st.stu[index].setTot(Integer.parseInt(kor), Integer.parseInt(math) , Integer.parseInt(eng));
/*평균*/st.stu[index].setAvg(Integer.parseInt(kor), Integer.parseInt(math) , Integer.parseInt(eng));
// 최고점수,사람
if (Integer.parseInt(kor) > st.getKmax()) {
st.setKmax(Integer.parseInt(kor));
st.setKMaxName(nm);
}
if (Integer.parseInt(math) > st.getMmax()) {
st.setMmax(Integer.parseInt(math));
st.setmMaxName(nm);
}
if (Integer.parseInt(eng) > st.getEmax()) {
st.setEmax(Integer.parseInt(eng));
st.seteMaxName(nm);
}
}
%>
<table border="1">
<%
for (int i = 0; i < st.stu.length; i++) {
%>
<tr><th>이름</th>
<td><%= st.stu[i].getName() %></td>
<th>국어</th>
<td><%= st.stu[i].getKor() %></td>
<th>수학</th>
<td><%= st.stu[i].getMath() %></td>
<th>영어</th>
<td><%= st.stu[i].getEng() %></td>
<th>총점</th>
<td><%= st.stu[i].getTot() %></td>
<th>평균</th>
<td><%= st.stu[i].getAvg() %></td>
</tr>
<%
}
%>
</table>
</table>
<table border="1">
<tr>
<th>과목</th>
<th>최고 점수</th>
<th>최고 점수를 받은 학생</th>
</tr>
<tr>
<td>국어</td>
<td><%= st.getKmax() %></td>
<td><%= st.getKMaxName() %></td>
</tr>
<tr>
<td>수학</td>
<td><%= st.getMmax() %></td>
<td><%= st.getmMaxName() %></td>
</tr>
<tr>
<td>영어</td>
<td><%= st.getEmax() %></td>
<td><%= st.geteMaxName() %></td>
</tr>
</table>
</body>
</html>
결과
각 칸에 이름과 국영수 점수 입력
입력한 값 table에 저장됨
학생 국영수 총점과 평균 출력
국영수 각 각 최고점수 최고 점수 학생 나오게 출력
'프로젝트 기반 자바(JAVA) 응용 SW개발자 취업과정 > 추가 복습' 카테고리의 다른 글
DB_JDBC (0) | 2023.07.02 |
---|---|
필드, 생성자, 메소드 정리 (2) | 2023.06.06 |
싱글톤 3 ( java ) 이름, 국영수 점수 입력=>총점, 평균, 최고점수 (0) | 2023.06.02 |
싱글톤 활용 ( JSP 환경 ) (0) | 2023.05.31 |
생성자, 메서드1 (0) | 2023.05.29 |