my_bank
来源:互联网 发布:php sql错误提示 编辑:程序博客网 时间:2024/04/30 05:04
%% @author ping%% @doc @todo Add description to my_bank.-module(my_bank).-behaviour(gen_server).%%-export([start/0,stop/0,new_account/1,deposit/2,withdraw/2]).-export([start/0]).%%回调模块-export([init/1,handle_call/3,handle_cast/2,handle_info/2,terminate/2,code_change/3]).-compile(export_all).start()->gen_server:start_link({local,?MODULE}, ?MODULE, [], []).stop()->gen_server:call(?MODULE, stop).%%开账户new_account(Who)->gen_server:call(?MODULE, {new,Who}).%%存款deposit(Who,Amount)->gen_server:call(?MODULE, {add,Who,Amount}).%%取款withdraw(Who,Amount)->gen_server:call(?MODULE, {remove,Who,Amount}).%%为新的账户新建一个数据库init([])->{ok,ets:new(?MODULE, [])}.%%回调新建用户handle_call({new,Who},_From,Tab)->Reply = case ets:lookup(Tab, Who) of[] -> ets:insert(Tab, {Who,0}), {welcome,Who};[_]-> {Who,you_already_are_a_customer}end,{reply,Reply,Tab};%%存钱handle_call({add,Who,X},_From,Tab)->Reply = case ets:lookup(Tab, Who) of[] -> not_a_customer;[{Who,Balance}]-> NewBalance = Balance + X,ets:insert(Tab, {Who,NewBalance}),{thanks,Who,your_balance_is,NewBalance}end,{reply,Reply,Tab};%%取钱handle_call({remove,Who,X},_From,Tab)->Reply = case ets:lookup(Tab, Who) of[] -> not_a_customer;[{Who,Balance}] when X =< Balance -> NewBalance = Balance - X,ets:insert(Tab, {Who,NewBalance}),{thanks,Who,your_balance_is,NewBalance};[{Who,Balance}]->{sorry,Who,you_only_have,Balance,in_the_bank}end,{reply,Reply,Tab};handle_call(stop,_From,Tab)->{stop,normal,stopped,Tab}.handle_cast(_Mag,State) -> { noreply,State }.handle_info(_Info,State) -> { noreply,State }.terminate(_Reason,_State) -> ok.%%热代码替换code_change(_OldVsn,State,Extra) -> { ok,State }.
0 0
- my_bank
- NYOJ 27 水池数目
- 直接拿来用!最火的Android开源项目(二)
- [OOP作业]设计一个栈,并用括号匹配检验
- 直接拿来用!最火的Android开源项目(完结篇)
- DragSortListView学习总结
- my_bank
- 多张表struts2导入excel数据 其中一张表是一对多 ,故excel横向cell长度可变
- 12-3-摩托车继承自行车和机动车
- NYOJ 37 回文字符串
- android瀑布流效果(仿蘑菇街)
- java之join/wait/notify/notifyall
- find命令不区分大小写
- failed to install Tomcat7 service解决办法
- JAVA UUID 生成 - jdonson - 博客园 http://www.cnblogs.com/jdonson/archive/2009/07/22/1528466.html