※우선 이 글은 자바가 설치되어 있다는 가정하에 이클립스를 기반으로 작성합니다.
아 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ진짜 오늘 이거 하는데 정신이 혼미해졌어요. 부족하고 부족하고 또 부족하다는 걸 새로운 코드를 짤 때마다 느낍니다.. 요즘 정신이 홈짐에 팔려있기도 하고..
이번에 만들어온 프로그램은 사용자 등록, 삭제, 조회, 입금, 출금, 계좌이체가 가능한 프로그램입니다. 아직 기능적인 완성도가 60퍼인것 같아요. 사소한 오류가 많더라고요.. 아직 많이 많이 부족한가 봅니다.. 그래도 이번에 공부하면서 Iterator라는 것도 알게 되었어요. 이후에 잠시 설명하겠습니다. 이 코드는 천천히 보수해가면서 나중에 좀 더 완성도가 높아지면 새로이 포스팅하겠습니다.
Iterator(반복자)
1. Java에서 제공하는 Collection객체는 보관하고 있는 자료들을 순차적으로 접근하면서 처리할 때 사용하는 형식
2. Collection 종류에 관계없이 같은 방법으로 프로그래밍 할 수 있게 해 준다.
※사용 가능한 객체 : ArrayList, Vector, LinkedList, Set...
Iterator method | 설명 |
hasNext() | 다음 요소에 읽어 올 요소가 있는지 확인하는 메소드 |
next() | 다음 요소를 가져온다. |
remove() | next()로 읽어온 요소를 삭제한다. |
이제 제가 만든 허접한 은행 프로그램을 보겠습니다... (클래스 이름도 신경 안 쓰고 만들었지만, 그래도 오늘 하루 정리하는 의미로 포스팅하겠습니다..........)
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
|
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Iterator;;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
boolean flag = true;
boolean flag2 = true;
boolean notFind = true;
String name;
String bankName;
String company;
String name2;
int password;
int balance;
int deposit;
int withdraw;
int transfer;
ArrayList<User> users = new ArrayList<User>();
Iterator<User> iter;
while(flag) {
System.out.println("=================");
System.out.println("메인 메뉴");
System.out.println("=================");
System.out.println("1. 사용자 등록");
System.out.println("2. 잔고 조회");
System.out.println("3. 입금");
System.out.println("4. 출금");
System.out.println("5. 계좌 이체");
System.out.println("6. 사용자 삭제");
System.out.println("7. 종료");
System.out.println("=================");
System.out.print("실행할 번호를 입력하세요. : ");
int insert1 = s.nextInt();
System.out.println("=================");
switch(insert1) {
case 1 :
while(flag2) {
System.out.println("사용자 등록 메뉴");
System.out.println("=================");
System.out.println("1. 일반 사용자 등록");
System.out.println("2. 사업자 등록");
System.out.println("3. 메인 메뉴로 돌아가기");
System.out.println("=================");
System.out.print("실행할 번호를 입력하세요. : ");
int insert2 = s.nextInt();
System.out.println("=================");
switch(insert2) {
case 1 :
System.out.println("일반 사용자 등록을 시작합니다.");
System.out.print("이름을 입력하세요. : ");
name = s.next();
System.out.print("가입하실 은행 이름을 입력하세요. : ");
bankName = s.next();
System.out.print("계좌번호의 비밀번호로 설정할 숫자 4자리를 입력하세요. : ");
password = s.nextInt();
System.out.print("초기 입금액을 입력하세요. : ");
balance = s.nextInt();
NormalUser n = new NormalUser(name);
n.setBankName(bankName);
n.setPassword(password);
n.setBalance(balance);
users.add(n);
break;
case 2 :
System.out.println("=================");
System.out.println("사업자 등록을 시작합니다.");
System.out.print("이름을 입력하세요. : ");
name = s.next();
System.out.print("가입하실 은행 이름을 입력하세요. : ");
bankName = s.next();
System.out.print("계좌번호의 비밀번호로 설정할 숫자 4자리를 입력하세요. : ");
password = s.nextInt();
System.out.print("초기 입금액을 입력하세요. : ");
balance = s.nextInt();
System.out.print("사업장의 이름을 입력해주세요. : ");
company = s.next();
BusinessUser b = new BusinessUser(name);
b.setBankName(bankName);
b.setPassword(password);
b.setBalance(balance);
b.setCompany(company);
users.add(b);
break;
case 3 :
System.out.println("=================");
System.out.println("메인 메뉴로 돌아갑니다.");
flag2 = false;
break;
}
}
break;
case 2 :
System.out.println("잔고 조회");
System.out.println("=================");
System.out.print("검색할 사용자의 이름을 입력하세요. : ");
name = s.next();
iter = users.iterator();
while(iter.hasNext()) {
User u = iter.next();
if(name.equals(u.getName())){
System.out.println("=================");
System.out.println("검색 완료.");
System.out.println("=================");
u.show();
notFind = false;
break;
} else {
notFind = true;
break;
}
}
if(notFind) {
System.out.println("입력한 이름으로 가입된 사용자가 없습니다.");
}
break;
case 3 :
System.out.println("입금");
System.out.println("=================");
System.out.print("입금할 사용자의 이름을 입력하세요. :");
name = s.next();
System.out.print("입금하실 금액을 입력하세요. : ");
deposit = s.nextInt();
iter = users.iterator();
while(iter.hasNext()) {
User u = iter.next();
if(!name.equals(u.getName())) {
u.deposit(deposit);
u.show();
notFind = false;
break;
}
else {
notFind = true;
break;
}
}
if(notFind) {
System.out.println("입력한 이름으로 가입된 사용자가 없습니다.");
}
break;
case 4 :
System.out.println("출금");
System.out.println("=================");
System.out.print("출금할 사용자의 이름을 입력하세요. :");
name = s.next();
System.out.print("출금하실 금액을 입력하세요.");
withdraw = s.nextInt();
iter = users.iterator();
while(iter.hasNext()) {
User u = iter.next();
if(!name.equals(u.getName())) {
u.withdraw(withdraw);
u.show();
notFind = false;
break;
}
else {
notFind = true;
break;
}
}
if(notFind) {
System.out.println("입력한 이름으로 가입된 사용자가 없습니다.");
}
break;
case 5 :
System.out.println("계좌 이체");
System.out.println("=================");
System.out.print("송금할 사용자의 이름을 입력하세요. :");
name = s.next();
System.out.print("비밀번호를 입력하세요. :");
password = s.nextInt();
System.out.print("송금 금액을 입력하세요. :"); //만약 잔고보다 송금액이 크면 if로 오류도출
transfer = s.nextInt();
System.out.print("송금받을 사용자의 이름을 입력하세요. :"); //만약 송금받을 사용자가없으면 오류도출
name2 = s.next();
iter = users.iterator();
while(iter.hasNext()) {
User give = iter.next();
User take = iter.next();
if(name.equals(give.getName()) && (password == give.getPassword()) && name2.equals(take.getName())) {
give.withdraw(transfer);
take.deposit(transfer);
notFind = false;
break;
}
else {
notFind = true;
break;
}
}
if(notFind) {
System.out.println("입력한 이름으로 가입된 사용자가 없습니다.");
}
break;
case 6 :
System.out.println("사용자 삭제");
System.out.println("=================");
System.out.print("삭제할 사용자의 이름을 입력하세요. : ");
name = s.next();
System.out.print("삭제할 사용자의 비밀번호를 입력하세요. : ");
password = s.nextInt();
iter = users.iterator();
while(iter.hasNext()) {
User u = iter.next();
if(name.equals(u.getName()) && password == u.getPassword()){
System.out.println("=================");
System.out.println("삭제 완료.");
iter.remove();
notFind = false;
break;
}
else {
notFind = true;
break;
}
}
if (notFind) {
System.out.println("사용자 이름과 비밀번호를 다시 확인하고 입력해주세요.");
}
break;
case 7 :
System.out.println("시스템을 종료합니다.");
flag = false;
}
}
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
public class User {
String name;
String bankName;
int password;
int balance = 0;
public String getName() {
return name;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public String getBankName() {
return bankName;
}
public void setPassword(int password) {
this.password = password;
}
public int getPassword() {
return password;
}
public void setBalance(int balance) {
this.balance = balance;
}
public int getBalance() {
return balance;
}
public User(String name) {
this.name = name;
}
public void deposit(int deposit) {
if(deposit < 1) {
System.out.println("금액을 다시 입력하세요.");
return;
}
balance += deposit;
}
public void withdraw(int withdraw) {
if(withdraw > balance) {
System.out.println("잔액이 부족합니다.");
return;
}
balance -= withdraw;
}
public void show() {
System.out.println("이름 : " + name);
System.out.println("은행명 : " + bankName);
System.out.println("잔고 : " + balance);
}
}
|
cs |
1 2 3 4 5 6 7 | public class NormalUser extends User { public NormalUser(String name) { super(name); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class BusinessUser extends User { String company; public void setCompany(String company) { this.company = company; } @Override public void show() { super.show(); System.out.println("사업장 이름 : " + company); } public BusinessUser(String name) { super(name); } } | cs |
출력은 오류 뜨는 경우가 많아서 차차 수정한 후 나중에 최종본 포스팅에서 올리도록 할게요!
오늘 포스팅도 봐주셔서 감사하고 좋은 하루 보내세요!
'자바 공부' 카테고리의 다른 글
유튜브 영상보면서 알아둘 것들 필기! (객체지향프로그래밍 - 자바) (0) | 2021.01.27 |
---|---|
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 7일차 (ArrayList) (0) | 2021.01.20 |
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 6일차 (전화번호부) (0) | 2021.01.19 |
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 5일차 (0) | 2021.01.18 |
[JAVA]초보 개발자 김주호와 기초부터 시작하는 자바공부 4일차 예제 풀이 (0) | 2021.01.16 |