全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
1493 1
2015-03-06
考虑某银行的存取系统。设open.account()为开户函数,deposit()为存款函数,withdraw()为取款函数,balance()为存取款平衡函数,模拟客户的存取过程如下:
open.account=function(total){
     list(
     deposit=function(amount,total){
     if(amount==0)
     stop('Deposits must be positive!\n')
     total=total+amount
     cat(amount,"deposited. Your balance is",total,"\n\n")
     },
     withdraw=function(amount,total){
     if(amount>total)
     stop("You don't have that much money!\n")
     total=total-amount
     cat(amount,"withdraw. Your balance is",total,"\n\n")

     },
     balance=function(total){
     total=total
     cat("Your balance is",total,"\n\n")
     total}
       )
    }
跪求分析:当运行这段代码时,total参数是怎么传递的?假设如下调用
total=100
ross=open.account(total)
ross$withdraw(30)
ross$balance()##怎么使得这条命令成功运行?
总感觉total函数的调用有问题?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-5-19 03:00:26
open.account=function(d.amount, w.amount){
     list(
     deposit=function(d.amount){
     if(d.amount<0)
     stop('Deposits must be positive!\n')
     total<<-total+d.amount
     cat(d.amount,"deposited. Your balance is",total,"\n\n")
     },
     withdraw=function(w.amount){
     if(w.amount>total)
     stop("You don't have that much money!\n")
     total<<-total-w.amount
     cat(w.amount,"withdraw. Your balance is",total,"\n\n")

     },
     balance=function(){
     cat("Your balance is",total,"\n\n")
     total}
       )
    }


total=100
ross=open.account(0,0)  
ross$balance()   
ross$deposit(20)   

ross$withdraw(30)   
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群