// '''
// 人
// 类名:Person
// 属性: 姓名 身份证号 电话号 卡
// 卡
// 类名:Card
// 属性:卡号 密码 余额
// 行为:
// 银行
// 类名:bank
// 属性:用户列表 提款机
// 提款机
// 类名:ATM
// 属性:用户字典
// 行为: 开户 查询 取款 存储 转账 改密 锁定 解锁 补卡 销户
// 管理员
// 类名:admin
// 属性:
// 行为:管理员界面 管理员登录 系统功能界面 退出
// '''
1 // '''
2 // 人
3 // 类名:Person
4 // 属性: 姓名 身份证号 电话号 卡
5
6 // 卡
7 // 类名:Card
8 // 属性:卡号 密码 余额
9 // 行为:
10
11 // 银行
12 // 类名:bank
13 // 属性:用户列表 提款机
14
15 // 提款机
16 // 类名:ATM
17 // 属性:用户字典
18 // 行为: 开户 查询 取款 存储 转账 改密 锁定 解锁 补卡 销户
19
20 // 管理员
21 // 类名:admin
22 // 属性:
23 // 行为:管理员界面 管理员登录 系统功能界面 退出
24 // '''
25
26
27 //
28 // var admin="1"
29 // var password="1"
30 var userAdmin={
31 "admin":"1",
32 "password":"1"
33 }
34 var all_users={
35 "123456":{
36 //测试
37 "name":"jadsaf",
38 "apss":"dadffasf"
39 },
40 "859011":{
41 "card": {card_id: "859011", card_passwd: "asd", card_money: 200, card_lock: false},
42 "id_card": "123",
43 "name": "rico",
44 "phone": "321"
45 }
46
47 }
48 // var userAdmin2={
49 // "admin":"2",
50 // "password":"2"
51 // }
52 function printAdminView() {
53 console.log("**************************************************************************\n"+
54 "**************************************************************************\n"+
55 " 欢迎登录中国银行 \n"+
56 "**************************************************************************\n"+
57 "**************************************************************************\n");
58 };
59 function printSysFunctionView(){
60 console.log("**************************************************************************\n"+
61 "* 开户(1) 查询( 2) *\n"+
62 " * 取款(3) 存款( 4) *\n"+
63 "* 转账(5) 改密(6) *\n"+
64 "* 锁定(7) 解锁(8) *\n"+
65 "* 补卡(9) 销户(0) *\n"+
66 "* 退出(t) *"
67 );
68 }
69 function admin_option(userobj){
70 let input_admin=window.prompt("请输入管理员账号:").trim();
71 if(userobj.admin!=input_admin){
72 console.log("输入账号有误");
73 return true
74 }
75 let input_passwd=window.prompt("请输入管理员密码:").trim();
76 if(userobj.password!=input_passwd){
77 console.log("秘密输入有误。");
78 return true
79 }
80 console.log("操作成功!请稍后。。。。。。。。。");
81 return false
82
83 }
84
85 //卡的信息函数
86 function card(card_id,card_passwd,card_money,card_lock=false){
87 return {"card_id":card_id,"card_passwd":card_passwd,
88 "card_money":card_money,"card_lock":card_lock}
89 }
90 //人的信息函数
91 function user(name,id_card,phone,card){
92 return {
93 "name":name,"id_card":id_card,"phone":phone,"card":card
94 }
95 }
96
97
98 // #atm
99 //检查密码
100 function check_password(real_passwd){
101 for(let i=0;i<3;i++){
102 let temp_passwd=window.prompt("请输入密码:").trim();
103 if(temp_passwd == real_passwd){
104 return true;
105 }
106 else{
107 console.log("密码输入错误。");
108 }
109 }
110 return false;
111
112 }
113 // 随机生成一个卡号
114 function random_card_id(){
115 while (true){
116 let str_id=""
117 for(let j=0;j<9;j++){
118 str_id+=parseInt(Math.random()*10)
119 }
120 if(!all_users.hasOwnProperty("str_id")){
121 return str_id;
122 }
123 }
124 }
125
126
127
128 function create_user(){
129 //开户
130 let name=window.prompt("请输入您的姓名::").trim();
131 let id_card=window.prompt("输入您的身份证号码::").trim();
132 let phone=window.prompt("请输入您的电话号码:").trim();
133 let pre_store_money=parseInt(window.prompt("请输入预存款金额::").trim());
134
135 if (pre_store_money<0){
136 console.log("预存款输入有误,开户失败");
137 return false;
138 }
139 let one_passwd=window.prompt("请输入密码:").trim();
140 if(!check_password(one_passwd)){
141 console.log("秘密输入错误,开户失败。");
142 return false;
143 }
144 let card_id_str=random_card_id();
145 let card_info=card(card_id_str,one_passwd,pre_store_money);
146 let user_info=user(name,id_card,phone,card_info);
147 all_users[card_id_str]=user_info;
148 console.log("开户成功,请牢记卡号:"+"卡号是:"+card_id_str+", 密码是:"+one_passwd);
149 return true;
150 }
151
152 function search_user_info(){
153 let car_num=window.prompt("请输入您的卡号:").trim();
154 let user_info=null;
155
156 if(!(car_num in all_users)){
157 console.log("该卡号不存在!查询失败。。。。。");
158 return false;
159 }
160 user_info=all_users[car_num];
161 if(user_info.card.card_lock){
162 console.log("该卡已经被锁定!!请解锁后再使用其他功能。。。。");
163 return false;
164 }
165 if(!check_password(user_info["card"]["card_passwd"])){
166 user_info.card.card_lock=true;
167 console.log("秘密错误。该卡已经被锁定!!请解锁后再使用其他功能。。。。");
168 return false;
169 }
170 console.log("账号:"+user_info.card.card_id+" 余额:"+user_info.card.card_money);
171 return true;
172
173 }
174
175 function get_money(){
176 let car_num=window.prompt("请输入您的卡号:").trim();
177 let user_info=null;
178
179 if(!(car_num in all_users)){
180 console.log("该卡号不存在!查询失败。。。。。");
181 return false;
182 }
183 user_info=all_users[car_num];
184 if(user_info.card.card_lock){
185 console.log("该卡已经被锁定!!请解锁后再使用其他功能。。。。");
186 return false;
187 }
188 if(!check_password(user_info["card"]["card_passwd"])){
189 user_info.card.card_lock=true;
190 console.log("秘密错误。该卡已经被锁定!!请解锁后再使用其他功能。。。。");
191 return false;
192 }
193 let money=parseInt(window.prompt("请输入要取款金额:").trim());
194 if(money>user_info.card.card_money){
195 console.log("余额不足,取款失败。");
196 return false;
197 }
198 if(money<0){
199 console.log("金额错误,不能低于零,取款失败。");
200 return false;
201 }
202 user_info.card.card_money-=money;
203 console.log("取款成功!!!账号:"+user_info.card.card_id+" 余额:"+user_info.card.card_money);
204 return true;
205 }
206
207 function save_money(){
208 //存钱
209 continue;
210 }
211
212 function transfer_money(){
213 //转账
214 continue;
215 }
216
217 function change_passwd(){
218 //改密码
219 continue;
220 }
221
222
223 function lock_user(){
224 //锁卡 冻结卡
225 let car_num=window.prompt("请输入您的卡号:").trim();
226 let user_info=null;
227
228 if(!(car_num in all_users)){
229 console.log("该卡号不存在!锁卡失败。。。。。");
230 return false;
231 }
232 user_info=all_users[car_num];
233 if(user_info.card.card_lock){
234 console.log("该卡已经被锁定!!请解锁后再使用其他功能。。。。");
235 return false;
236 }
237 if(!check_password(user_info["card"]["card_passwd"])){
238 user_info.card.card_lock=true;
239 console.log("秘密错误。该卡已经被锁定!!请解锁后再使用其他功能。。。。");
240 return false;
241 }
242 let temp_id_card=window.prompt("请输入 您的身份证号码:").trim();
243 if(temp_id_card != user_info.id_card){
244 console.log("身份证号码验证错误。锁卡失败。。。。。。。");
245 return false;
246 }
247 user_info.card.card_lock=true;
248 console.log("锁卡成功");
249 return true
250
251 }
252
253 function unlock_user(){
254 //解卡 解冻
255 let car_num=window.prompt("请输入您的卡号:").trim();
256 let user_info=null;
257
258 if(!(car_num in all_users)){
259 console.log("该卡号不存在!解锁失败。。。。。");
260 return false;
261 }
262 user_info=all_users[car_num];
263 if(!user_info.card.card_lock){
264 console.log("该卡没有被锁定!!无需解锁。。。。");
265 return false;
266 }
267 if(!check_password(user_info["card"]["card_passwd"])){
268 console.log("秘密错误。解卡失败。。。。。。。");
269 return false;
270 }
271 let temp_id_card=window.prompt("请输入 您的身份证号码:").trim();
272 if(temp_id_card != user_info.id_card){
273 console.log("身份证号码验证错误。解卡失败。。。。。。。");
274 return false;
275 }
276 user_info.card.card_lock=false;
277 console.log("解卡成功");
278 return true
279
280 }
281
282
283 function new_card(){
284 //补卡 身份证号码 查到你的卡号 直接了你的卡中有多少钱
285 // 新建一个开户 把旧卡里面的钱,转到新卡中 同时把旧卡注销掉
286 continue;
287 }
288
289 function kill_user(){
290 //注销账户 身份证号码 查到你的卡号 直接了你的卡中有多少钱
291 // 把钱全部取出来 让用户输入 是 或者不是 从数据库中把账户信息全部删掉
292 continue;
293 }
294
295
296
297 // get_money();
298 //测试函数
299 // printAdminView();
300 // printSysFunctionView();
301 // admin_option(userAdmin);
302 // create_user();
303 // console.log(all_users);
304 // search_user_info();
305
306
307 function main(){
308 // 打印用户界面
309 printAdminView();
310 if(admin_option(userAdmin)){
311 return true
312 }
313 // #提款机对象
314 while (true){
315 // # 管理员开机界面
316 printSysFunctionView();
317 // #等待用户操作
318 let option=window.prompt("请输入您的操作选项:").trim();
319
320 switch(option){
321 case "1":{
322 console.log("欢迎进入开户界面");
323 create_user();
324 }
325 break;
326 case "2":{
327 console.log("进入查找账户信息界面");
328 search_user_info();
329 }
330 break;
331 case "3":{
332 console.log("取款");
333 get_money();
334 }
335 break;
336 case "4":{
337 console.log("存款");
338 }
339 break;
340 case "5":{
341 console.log("转账");
342 }
343 break;
344 case "6":{
345 console.log("改密");
346 }
347 break;
348 case "7":{
349 console.log("锁定");
350 lock_user();
351 }
352 break;
353 case "8":{
354 console.log("欢迎进入解锁界面");
355 unlock_user();
356
357 }
358 break;
359 case "9":{
360 console.log("补卡");
361 }
362 break;
363 case "0":{
364 console.log("销户");
365 }
366 break;
367 case "t":{
368
369 if(!admin_option(userAdmin)){
370 console.log("已经退出系统");
371 return true
372 }
373 }
374 break;
375 default:{
376 console.log("命令输入有误。请重新输入。");
377 }
378
379 }
380
381
382
383
384 }
385
386
387 }
388
389 main();
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <meta http-equiv="X-UA-Compatible" content="ie=edge">
7 <title>Document</title>
8 </head>
9 <body>
10
11 <script src="./Pos机.js"></script>
12 </body>
13 </html>
1 // var num=parseInt(Math.random()*10)
2 // console.log(num)
3 // console.log(2+9+"")
4 // console.log(typeof(2+9+""))
5
6 // console.log(2+""+9)
7 // console.log(""+2+9)
8
9
10
11 // var obj={
12 // "name":"Jack",
13 // "age":24,
14 // "gender":"male"
15 // }
16
17 // // console.log("weqweqwe" in obj)
18 // console.log(obj)
19 // delete obj.age;
20 // delete obj["gender"];
21 // console.log(obj)
22
23 // var all_users={
24 // "123456":{
25 // //测试
26 // "name":"jadsaf",
27 // "apss":"dadffasf"
28 // },
29 // "859011":{
30 // "card": {card_id: "859011", card_passwd: "asd", card_money: 200, card_lock: false},
31 // "id_card": "123",
32 // "name": "rico",
33 // "phone": "321"
34 // }
35
36 // }
37
38
39 // delete all_users[123456];
40 // console.log(all_users);
41 var num="dfadsfdasdfdasfas";
42
43 switch(num){
44 case "t":
45 {
46 console.log("21313213");
47 }
48 break;
49 case "1":
50 {
51 console.log("dsfsfsf");
52 }
53 break;
54 default:{
55 console.log("dsfsasdasdqweqweqweqwefsf");
56 }
57 break;
58 }
来源:oschina
链接:https://my.oschina.net/u/4413909/blog/3659297