소스코드 작성

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에 저장됨

학생 국영수 총점과 평균 출력

국영수 각 각 최고점수 최고 점수 학생 나오게 출력

 

+ Recent posts