Skip to content

Commit 40d5286

Browse files
authored
기차표 금액계산 예제 (폼, 배열, 계산)
1 parent 4c25838 commit 40d5286

File tree

1 file changed

+140
-0
lines changed

1 file changed

+140
-0
lines changed

train_fee.php

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
<?php
2+
$fee_info_txt = "행신-서울 8,400 13,200
3+
행신-광명 8,400 13,200
4+
행신-천안아산 15,600 21,800
5+
행신-오송 20,100 28,100
6+
행신-대전 25,200 35,300
7+
행신-김천구미 36,400 51,000
8+
행신-동대구 44,900 62,900
9+
행신-신경주 50,600 70,800
10+
행신-울산 54,800 76,700
11+
행신-부산 61,100 85,500
12+
서울-광명 8,400 13,200
13+
서울-천안아산 14,100 19,700
14+
서울-오송 18,500 25,900
15+
서울-대전 23,700 33,200
16+
서울-김천구미 35,100 49,100
17+
서울-동대구 43,500 60,900
18+
서울-신경주 49,300 69,000
19+
서울-울산 53,500 74,900
20+
서울-부산 59,800 83,700
21+
광명-천안아산 11,600 16,400
22+
광명-오송 16,100 22,500
23+
광명-대전 21,200 29,700
24+
광명-김천구미 32,900 46,100
25+
광명-동대구 41,300 57,800
26+
광명-신경주 47,100 65,900
27+
광명-울산 51,300 71,800
28+
광명-부산 57,700 80,800
29+
천안아산-오송 8,400 13,200
30+
천안아산-대전 9,600 14,400
31+
천안아산-김천구미 21,500 30,100
32+
천안아산-동대구 29,300 41,000
33+
천안아산-신경주 34,900 48,900
34+
천안아산-울산 40,200 56,300
35+
천안아산-부산 46,500 65,100
36+
오송-대전 8,400 13,200
37+
오송-김천구미 17,000 23,800
38+
오송-동대구 24,800 34,700
39+
오송-신경주 30,700 43,000
40+
오송-울산 34,800 48,700
41+
오송-부산 42,200 59,100
42+
대전-김천구미 11,900 16,700
43+
대전-동대구 19,700 27,600
44+
대전-신경주 25,800 36,100
45+
대전-울산 30,100 42,100
46+
대전-부산 36,200 50,700
47+
김천구미-동대구 8,400 13,200
48+
김천구미-신경주 13,800 19,300
49+
김천구미-울산 18,200 25,500
50+
김천구미-부산 24,900 34,900
51+
동대구-신경주 8,400 13,200
52+
동대구-울산 10,500 15,300
53+
동대구-부산 17,100 23,900
54+
신경주-울산 8,400 13,200
55+
신경주-부산 11,000 15,800
56+
울산-부산 8,400 13,200";
57+
58+
$fee_normal = array(); //일반실요금 배열
59+
$fee_special = array();//특실요금 배열
60+
$departure = array();//출발역 배열
61+
$arrival = array();//도착역 배열
62+
63+
//역, 요금 정보 텍스트를 배열로 저장
64+
$fee_info = explode("\r\n", $fee_info_txt);
65+
// print_r($fee_info);
66+
67+
$fee_info_cnt = count($fee_info);
68+
for($i=0;$i<$fee_info_cnt;$i++) {
69+
// 탭으로 구분하여 값 분리
70+
$tmp = explode("\t", $fee_info[$i]);
71+
// 일반실 요금 저장
72+
$fee_normal[$tmp[0]] = str_replace(",","", $tmp[1]);
73+
// 특실 요금 저장
74+
$fee_special[$tmp[0]] = str_replace(",","", $tmp[2]);
75+
// 역 정보 저장, - 으로 구분하여 값 분리
76+
$tmp2 = explode("-", $tmp[0]);
77+
$departure[] = $tmp2[0];
78+
$arrival[] = $tmp2[1];
79+
}
80+
81+
function sel_station($name, $arr) {
82+
$arr = array_unique($arr);
83+
sort($arr);
84+
$cnt = count($arr);
85+
$str = "<select name='$name' required>\n<option value=''>역 선택</option>\n";
86+
foreach ($arr as &$value) {
87+
$str .= "<option value='$value'>$value</option>\n";
88+
}
89+
$str .= "</select>";
90+
return $str;
91+
}
92+
93+
?>
94+
<style>
95+
th, td {height:40px;}
96+
</style>
97+
<h2>Train Ticketing System Ver 0.1</h2>
98+
<form method="post">
99+
<input type="hidden" name="mode" value="send">
100+
<table border="0">
101+
<tr>
102+
<th align="left">Name</th><td><input type="text" name="name" size="20" required><td>
103+
</tr>
104+
<tr>
105+
<th align="left">Phone</th><td><input type="text" name="phone" size="20" required><td>
106+
</tr>
107+
<tr>
108+
<th align="left">Departure Station</th><td><?=sel_station("d", $departure)?><td>
109+
</tr>
110+
<tr>
111+
<th align="left">Arrival Station</th><td><?=sel_station("a", $arrival)?><td>
112+
</tr>
113+
<tr>
114+
<th align="left">Seat Type</th><td><input type="radio" name="seat" value="n" required>일반실 <input type="radio" name="seat" value="s" required>특실 <td>
115+
</tr>
116+
<tr>
117+
<th align="left">Seats to buy</th><td><input type="text" name="cnt" size="20" maxlength="3" required><td>
118+
</tr>
119+
<tr>
120+
<th colspan="2" align="left"><input type="submit" value="요금확인"> <input type="button" value="입력취소" onclick="location.href='train_fee.php'"></th>
121+
</tr>
122+
</table>
123+
</form>
124+
125+
<?php
126+
$mode = $_POST['mode'];
127+
128+
if($mode == "send") {
129+
extract($_POST);
130+
if($seat == "n") $fee = $fee_normal[$d."-".$a];
131+
else if($seat == "s") $fee = $fee_special[$d."-".$a];
132+
$result = $fee * $cnt;
133+
134+
if($seat == "n") $seat = "일반실";
135+
else if($seat == "s") $seat = "특실";
136+
137+
echo "<meta charset=\"euc-kr\">\n";
138+
echo "<font color='red'>Train fee($seat, $d - $a) is ".number_format($result)."</font>\n";
139+
}
140+
?>

0 commit comments

Comments
 (0)