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();
js
 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>
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 }
测试

 

posted @ 2019-01-30 15:05  巨兽~墨菲特  阅读(404)  评论(0编辑  收藏  举报