js 写一个ATM
// '''
// 人
// 类名: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 }