반응형
- 01_이차반복문제
- 이차반복문_규칙찾기1_문제.jsp
<%@page import="java.util.Random"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
/*
[문제]
3~6 사이의 랜덤 숫자 하나를 저장하고
그 숫자만큼 아래와 같은 규칙으로 출력하시오.
단, 일차 반복문 과 이차 반복문으로 출력하시오.
[예시]
r = 6
[출력]
18 12 6
17 11 5
16 10 4
15 9 3
14 8 2
13 7 1
[예시]
r = 4
[출력]
12 8 4
11 7 3
10 6 2
9 5 1
*/
%>
<%
Random ran = new Random();
int r = ran.nextInt(4) + 3;
int a = r * 3;
%>
r = <%= a %><br/>
<%
for(int i = 0; i<r; i++){
int b = a;
for(int j = 0; j<3; j++){
%>
<%=b %>
<%
b -= r;
}
a -= 1;
%>
<br/>
<% }%>
</body>
</html>
- 이차반복문_규칙찾기2_문제.jsp
<%@page import="java.util.Random"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
/*
[문제]
3~6 사이의 랜덤 숫자 하나를 저장하고 그 숫자만큼
아래와 같은 규칙으로 출력하시오.
단, 일차 반복문과 이차 반복문으로 출력하시오.
[예시]
r = 6
[출력]
3 2 1
4 3 2
5 4 3
6 5 4
7 6 5
8 7 6
*/
%>
<%
Random ran = new Random();
int r = ran.nextInt(4)+3;
%>
r = <%=r %> <br/>
<%
for(int i = 0; i<r; i++){
int num = i + 3;
for(int j = 0; j<3; j++){
%>
<%= num -j %>
<%} %>
<br/>
<%} %>
</body>
</html>
- 이차반복문_그래프자리수_문제.jsp
<%@page import="java.util.Arrays"%>
<%@page import="java.util.Random"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
/*
[문제]
10~99 사이의 랜덤 숫자를 다섯 번 반복해서 저장하고,
각각의숫자의 자리수로 나눈다. 각각의 자리수의 합만큼 별을출력하시오.
[예시]
53,27,38,41,90
8=********
9=*********
11=***********
5=*****
9=*********
*/
%>
<%
Random ran = new Random();
int[] arr = new int[5];
for(int i = 0; i<5; i++){
int size = ran.nextInt(90)+10;
arr[i] = size;
}
%>
<%= Arrays.toString(arr) %> <br/>
<%
for(int i = 0; i<5; i++){
int value = arr[i];
int a = value / 10;
int b = value % 10;
int c = a + b ;
%>
<%= c %>=
<% for(int j = 0; j<c; j++){ %>
*
<% } %>
<br/>
<% } %>
</body>
</html>
- 이차반복문_나빼고다른값검색_문제.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
/*
[문제]
각각의 배열의 값들이 나머지값들과 비교해서 현재의 배열값보다 다른값만 출력하시오.
단, 값이 같은때에는 #을 출력하시오.
그리고, 내자리는 숫자대신 "*" 을출력하시오.
[정답]
* 20 30 40 30 # 50 60
10 * 30 40 30 10 50 60
10 20 * 40 # 10 50 60
10 20 30 * 30 10 50 60
10 20 # 40 * 10 50 60
# 20 30 40 30 * 50 60
10 20 30 40 30 10 * 60
10 20 30 40 30 10 50 *
*/
int[] arr = {10, 20, 30, 40, 30, 10, 50, 60};
%>
<%
for(int i = 0; i<arr.length; i++){
int a = arr[i];
for(int j = 0; j<arr.length; j++){
int b = arr[j];
if(a != b){
%>
<%= arr[j] %>
<% } else if(i == j){ %>
*
<% } else{ %>
#
<% } %>
<% } %>
<br/>
<%} %>
</body>
</html>
- 이차반복문_내앞에큰값검색_문제.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
/*
[문제]
각각의 배열의 값들이 배열전체의 값들과 비교하면서 현재값의 앞에 위치한 값들만 출력하시오.
단, 내앞의 값둘중 나보다 큰값들만 출력하시오.
[정답]
=10
=20
=30
=40
40 =30
20 30 40 30 =10
=50
=60
*/
int[] arr = {10, 20, 30, 40, 30, 10, 50, 60};
%>
<%
for(int i = 0; i<arr.length; i++){
int a = arr[i];
for(int j = 0; j<i; j++){
int b = arr[j];
if(a<b){
%>
<%= arr[j] %>
<%
}
}
%>
= <%= arr[i] %> <br/>
<%} %>
</body>
</html>
- 이차반복문_상품재고_문제.jsp
<%@page import="java.util.Arrays"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
/*
[문제]
item배열은 상품의 번호이다.
price배열은 상품의 가격이다.
count배열은 상품의 재고 개수이다.
item과 price, count는 한 세트이다.
order배열은 오늘 주문이 들어온 상품의 번호이다.
단, 주문할 때마다 count 재고에서 하나씩 감소하고,
재고가 0이면 주문할 수 없다.
주문할 수 없을 때는 "주문 불가"를 출력하시오.
order의 주문을 토대로 오늘 매출을 구하시오.
count 리스트도 출력하시오.
[정답]
order = 0, count = 2,1,2,1
order = 1, count = 2,0,2,1
order = 3, count = 2,0,2,0
order = 3, 주문불가
order = 2, count = 2,0,1,0
order = 2, count = 2,0,0,0
order = 1, 주문불가
매출 = 12600
*/
int[] item = {1001, 1002, 1003, 1004};
int[] price = {500, 1200, 4300, 2300};
int[] count = {3, 1, 2, 1};
int[] order = {1001, 1002, 1004, 1004, 1003, 1003, 1002};
%>
<%
int total = 0;
for(int i = 0; i<order.length; i++){
int number = order[i];
for(int j = 0; j<item.length; j++){
if(number == item[j]){
%>
order = <%= j %>,
<%
if(count[j]>0){
count[j] -= 1;
total += price[j];
%>
count = <%=Arrays.toString(count) %> <br/>
<%
} else{ %>
주문불가 <br/>
<%
}
}
}
}
%>
<%=total %>
</body>
</html>
- 이차반복문_상품취소_문제.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
/*
[문제]
item배열은 상품의 번호이다.
price배열은 상품의 가격이다.
total 은 오늘 의 매출이다.
단, cancel 은 오늘 주문취소한 주문번호이다.
[1] 주문을 취소한 번호와 가격을 전부 출력하시오.
[2] 오늘의 매출에서 취소한 주문가격을 제외한 매출을 출력하시오.
[정답]
주문취소
1002번1200원
1004번2300원
1003번4300원
오늘의최종매출 = 8300
*/
int[] item = {1001, 1002, 1003, 1004};
int[] price = { 500, 1200, 4300, 2300};
int total = 16100;
int[] cancel = {1002,1004,1003};
%>
<%
for(int i = 0; i<cancel.length; i++){
int number = cancel[i];
for(int j = 0; j<item.length; j++){
if(item[j] == number){
%>
<%= item[j] %> 번 <%=price[j] %> 원 <br/>
<%
total -= price[j];
}
}
}
%>
오늘의최종매출 = <%= total %>
</body>
</html>
- 이차반복문_석차출력_문제.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
/*
[문제]
scoreList는 학생시험점수배열이다.
석차를 출력하시오.
[정답]
2 3 4 1
*/
int[] scoreList = {87, 42, 11, 98};
int size = scoreList.length;
%>
<% for(int i = 0; i<size; i++) {%>
<% int count = 1; %>
<% for(int j = 0; j<size; j++){ %>
<%if(scoreList[i]<scoreList[j]){ %>
<%count += 1; %>
<%} %>
<%} %>
<%=count+" "%>
<%} %>
</body>
</html>
- 이차반복문_약수여러개개수_문제.jsp
<%@page import="java.util.Arrays"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
/*
[문제]
arr배열의 각 값의 약수를 전부 출력하고
각 약수의 개수를 count배열에 추가하시오.
[정답]
1 43
1 5 11 55
1 5 13 65
1 11
count = 2, 4, 4, 2
*/
int[] arr = {43, 55, 65, 11};
int[] count = new int[4];
%>
<%
for(int i = 0; i<arr.length; i++){
int total = 0;
for(int j = 1; j<=arr[i]; j++){
if(arr[i]%j == 0 ){
%>
<%= j %>
<%
total += 1;
}
}
count[i] = total;
%>
<br/>
<%} %>
count = <%=Arrays.toString(count) %>
</body>
</html>
- 02_이차배열문제
- 이차배열_문제_상품목록_추가_문제.jsp
<%@page import="java.util.Arrays"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<pre>
itemData는 이번달 과일판매목록이다.
데이터 순서는 번호,이름,가격,판매개수 이다.
마지막 "0" 은 각 아이템별 총매출가격이다.
[문제]
각 상품별 매출 총합을 각각 배열의 뒤에 추가하시오.
[정답]
[1001, 사과, 3000, 32, 96000]
[1002, 배, 2000, 12, 24000]
[1003, 딸기, 4000, 42, 168000]
[1004, 바나나, 1500, 55, 82500]
</pre>
<%
String[][] itemData = {
{"1001", "사과" , "3000", "32" , "0"},
{"1002", "배" , "2000", "12" , "0"},
{"1003", "딸기" , "4000", "42" , "0"},
{"1004", "바나나", "1500", "55" , "0"},
};
int total = 0;
for(int i = 0; i<itemData.length; i++){
int a = Integer.parseInt(itemData[i][2]);
int b = Integer.parseInt(itemData[i][3]);
int result = a * b ;
itemData[i][4] = result +""; //꼼수
}
for(int i = 0; i<itemData.length; i++){
System.out.println(Arrays.toString(itemData[i]));
}
%>
<div align="center">
<h3>이번 달 과일 판매 목록</h3>
<table border="1">
<tr>
<td>번호</td>
<td>이름</td>
<td>가격</td>
<td>판매 개수</td>
<td>총 매출</td>
</tr>
<%for(int i = 0; i<itemData.length; i++){ %>
<tr>
<td><%= itemData[i][0] %></td>
<td><%= itemData[i][1] %></td>
<td><%= itemData[i][2] %></td>
<td><%= itemData[i][3] %></td>
<td><%= itemData[i][4] %></td>
</tr>
<%} %>
</table>
</div>
</body>
</html>
- 이차배열_문제_상품재고_문제.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<pre>
[문제]
itemData 는상품의 정보이다.
데이터는 순서대로 번호 , 가격 , 재고 수량이다.
order배열은 오늘 주문이 들어온 상품의 번호이다.
단, 주문할 때마다 itemData 재고에서 하나씩 감소하고,
재고가 0이면 주문할 수 없다.
order의 주문을 토대로 오늘 매출을 구하시오.
재고가 변경된 itemData 도 함께 출력하시오.
[정답]
1001,500,2
1002,1200,0
1003,4300,0
1004,2300,0
total=12600
</pre>
<%
int[][] itemData = {
{1001,500,3},
{1002,1200,1},
{1003,4300,2},
{1004,2300,1}
};
int[] order = {1001, 1002, 1004, 1004, 1003, 1003, 1002};
%>
<%
int total = 0;
for(int i = 0; i<order.length; i++){
for(int j = 0; j<itemData.length; j++){
if(order[i] == itemData[j][0]){
if(itemData[j][2] > 0){
total += itemData[j][1];
itemData[j][2] -= 1;
}
}
}
}
%>
<div align="center">
<h3>상품정보</h3>
<table border="1">
<tr>
<td>번호</td>
<td>가격</td>
<td>재고 수량 </td>
</tr>
<%for(int i = 0; i<itemData.length; i++){ %>
<tr>
<td><%=itemData[i][0] %></td>
<td><%=itemData[i][1] %></td>
<td><%=itemData[i][2] %></td>
</tr>
<%} %>
<tr>
<td>종합</td>
<td colspan="2"><%=total %></td>
</tr>
</table>
</div>
</body>
</html>
- 이차배열_문제_시험점수순위_문제.jsp
<%@page import="java.util.Arrays"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<pre>
student배열은 이번 학기 중간고사 성적이다.
가로 한 줄을 기준으로 맨 앞은 번호이고, 뒤에 숫자 3개는
각각 국어, 수학, 영어 점수이다.
나머지 두개는 각가 총점과 등수이다.
[문제]
[1] 각학생별 총점과 등수를 저장하시오.
[2] 등수순으로 오름차순 출력하시오.
[3] 등수가 같으면 번호가 큰순서대로 내림차순하시오.
[정답]
[1004, 76, 54, 55, 185, 1]
[1001, 100, 20, 32, 152, 2]
[1005, 23, 58, 42, 123, 3]
[1003, 60, 21, 42, 123, 3]
[1002, 40, 43, 12, 95, 5]
</pre>
<%
int[][] student = {
{1001, 100, 20, 32, 0, 0},
{1002, 40, 43, 12, 0, 0},
{1003, 60, 21, 42, 0, 0},
{1004, 76, 54, 55, 0, 0},
{1005, 23, 58, 42, 0, 0}
};
%>
<%
for(int i = 0; i<student.length; i++){
int total = student[i][1] + student[i][2] + student[i][3];
student[i][4] = total;
}
for(int i = 0; i<student.length; i++){
int count = 1;
for(int j = 0; j<student.length; j++){
if(student[i][4] < student[j][4]){
count += 1;
}
}
student[i][5] = count;
}
Arrays.sort(student,(a,b)->{
if(a[5]<b[5]){
return -1;
}else if(a[5] > b[5]){
return 1;
}else {
if(a[0] < b[0]){
return 1;
}else if(a[0] > b[0]){
return -1;
}else{
return 0;
}
}
});
%>
<div align="center">
<h3>이번 학기 중간고사 성적</h3>
<table border="1">
<tr>
<td>번호</td>
<td>국어</td>
<td>수학</td>
<td>영어</td>
<td>총점</td>
<td>등수</td>
</tr>
<%for(int i = 0; i<student.length; i++){ %>
<tr>
<td><%=student[i][0] %></td>
<td><%=student[i][1] %></td>
<td><%=student[i][2] %></td>
<td><%=student[i][3] %></td>
<td><%=student[i][4] %></td>
<td><%=student[i][5] %></td>
</tr>
<%} %>
</table>
</div>
</body>
</html>
- 03_폼과히든데이터
- 01_히든
- hiddenForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
속성 type="hidden" 을 사용하여 사용자에게 입력받지않은 데이터를 전달할수있다.
주의 : value값을 설정해야한다.
--%>
<%
int a = 10;
int b = 20;
%>
<form action="hiddenFormPro.jsp">
<input type="hidden" value=<%=a %> name="a">
<input type="hidden" value=<%=b %> name="b">
<input type="text" name="c">
<input type="submit" value="전송">
</form>
</body>
</html>
- hiddenFormPro.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String str = request.getParameter("a");
int a = Integer.parseInt(str);
str = request.getParameter("b");
int b = Integer.parseInt(str);
str = request.getParameter("c");
int c = Integer.parseInt(str);
%>
<%=a %><%=b %><%=c %>
<a href="hiddenForm.jsp">뒤로가기</a>
</body>
</html>
- 02_구구단게임
- gugudanForm.jsp
<%@page import="java.util.Random"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
[구구단 게임]
1. 구구단 문제를 출제하기 위해, 숫자 2개를 랜덤저장한다.
2. 저장한숫자를 토대로 구구단 문제를 출력한다.
예) 3 x 7 = ?
3. 문제에 해당하는 정답을 입력받는다.
4. 정답을 비교 "정답" 또는 "땡"을 출력한다.
--%>
<%
Random ran = new Random();
int num1 = ran.nextInt(8) + 2;
int num2 = ran.nextInt(9) + 1;
%>
<h2>구구단</h2>
<form action="gugudanFormPro.jsp">
<%=num1 %> * <%=num2 %> = <input type="text" name="result"> <br>
<input type="hidden" value=<%=num1 %> name="num1">
<input type="hidden" value=<%=num2 %> name="num2">
<input type="submit" value="입력완료">
</form>
</body>
</html>
- gugudanFormPro.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String strNum = request.getParameter("num1");
int num1 = Integer.parseInt(strNum);
strNum = request.getParameter("num2");
int num2 = Integer.parseInt(strNum);
strNum = request.getParameter("result");
int result = Integer.parseInt(strNum);
%>
<%=num1 %> * <%=num2 %> = <%=result %> <br>
<a href="gugudanForm.jsp">돌아가기</a>
</body>
</html>
반응형
'코딩 > 4-JSP & SERVLET' 카테고리의 다른 글
C12_db_gisatest => 01_골프장 (1) | 2025.06.30 |
---|---|
C02_session_cart (0) | 2025.06.30 |
B23_servlet_board-TEST1 (0) | 2025.05.29 |
B22_servlet_crud-TEST2 (0) | 2025.05.28 |
B22_servlet_crud-TEST1 - 만드는 순서 (0) | 2025.05.28 |