
ATM机系统结构化分析及设计+面向对象分析及设计.ppt
62页自动取款机系统〔自动取款机系统〔ATMATM〕〕★结构化分析及设计★面向对象分析及设计 v分析分析ATMATM需求分析需求分析DFDDFD图图加工说明加工说明数据字典数据字典v设计设计SCSC图图结构化分析及设计v背景背景v 信息时代载着我们悄然驶进生活信息时代载着我们悄然驶进生活的快车道面对着每天高度紧张的生活节奏,的快车道面对着每天高度紧张的生活节奏,如果再花上几十分钟甚致几个小时去银行排如果再花上几十分钟甚致几个小时去银行排队等候办理业务,那将是任何人都不愿意做队等候办理业务,那将是任何人都不愿意做的事情为了解决上述问题建设一个可以的事情为了解决上述问题建设一个可以2424小时效劳的自动取款系统无疑是最正确的小时效劳的自动取款系统无疑是最正确的v面向用户:面向用户:v ATM ATM机面向一般合法公民,要求机面向一般合法公民,要求用户用户v 持有有效的银行卡并可以识别操作说明持有有效的银行卡并可以识别操作说明v注:有效的银行卡指属于银联并未挂失的注:有效的银行卡指属于银联并未挂失的银行卡。
银行卡ATM需求分析v系统总体需求系统总体需求vATM机要可以判断磁卡的类别,如果不是有效的磁卡机要可以判断磁卡的类别,如果不是有效的磁卡那么退卡;那么退卡; v可以在较快的时间内响应用户的请求,并针对相应的可以在较快的时间内响应用户的请求,并针对相应的请求执行正确的操作;请求执行正确的操作;v查询自己的账户时应显示余额和可用余额,并显示查询自己的账户时应显示余额和可用余额,并显示ATM机里所拥有的现金面值,让用户可以做出正确的机里所拥有的现金面值,让用户可以做出正确的选择;选择;v提取现金时提示用户输入取款金额并判断输入是否确,提取现金时提示用户输入取款金额并判断输入是否确,如果错误提醒用户并要求重新操作,正确那么提醒用如果错误提醒用户并要求重新操作,正确那么提醒用户收取现金;户收取现金;v转账汇款时让用户选择转账类型,要求用户输入转账转账汇款时让用户选择转账类型,要求用户输入转账账号并要求用户输入两次,以确保没有输入错误,在账号并要求用户输入两次,以确保没有输入错误,在两次输入都正确的情况下,让用户输入转账金额,并两次输入都正确的情况下,让用户输入转账金额,并作最后的认;作最后的认;v进入修改密码界面后提醒用户输入新密码,并要求再进入修改密码界面后提醒用户输入新密码,并要求再次输入以确保密码统一无误,在确认后完成修改操作,次输入以确保密码统一无误,在确认后完成修改操作,并提醒用户新密码生效;并提醒用户新密码生效;v对于错误的操作或者操作延时做出有效的处理。
对于错误的操作或者操作延时做出有效的处理v系统要求系统要求 v系统操作要求:系统操作要求:v要求用户一次取款数额不得大于要求用户一次取款数额不得大于1000元;元;v要求用户一天取款数额不得超过要求用户一天取款数额不得超过5000元;元;v要求用户连续输入错误密码次数不得超过要求用户连续输入错误密码次数不得超过10次v系统性能要求:系统性能要求:v要求反响时间不得大于要求反响时间不得大于10秒钟;秒钟;v系统设计目标系统设计目标vATM自动取款机可以提供自动取款机可以提供24小时不间断效劳,小时不间断效劳,操作简单,可操作简单,可以很方便为用户提供取款、转以很方便为用户提供取款、转账账/汇款、查询账户信息等服汇款、查询账户信息等服 务 交易凭条交易凭条用用户户 ATM 系统系统用用户户银行卡银行卡银行卡银行卡交易凭条交易凭条用用户户 ATM 系统系统用用户户银行卡银行卡银行卡银行卡顶层顶层DFDDFD图图DFDDFD图图有无操作有无操作操作类型操作类型操作类型操作类型操作超时操作超时银银行行卡卡退出类型退出类型银行卡银行卡交易凭条交易凭条账户信息账户信息 用用 户户2 2选选 择择 操操作作 5 5退出退出3 3执行操作执行操作 用用 户户 1 1密码密码确认确认4 4判断超时判断超时0 0层层DFDDFD图图未超时信息未超时信息5.15.1打打 印印 单单据据出出超时信息超时信息银银行行卡卡交交易易凭凭条条银银行行卡卡选择信息选择信息取款操作取款操作更改密码操作更改密码操作查询操作查询操作转账操作转账操作 用用 户户 用用 户户3.13.1取款取款3.23.2查询查询3.33.3转账转账 2 2选选择择交易交易3.43.4更更 改改密密 码码退出类型退出类型1 1密码密码确认确认5.25.2退出退出4 4操作是否超操作是否超 过过1010秒秒1 1层层DFDDFD图图现金现金选择信息选择信息取取款款金金额额选择信息选择信息取款操作取款操作选择选择交易交易3.1.23.1.2选选 择择货货 币币 种种类类F1F1客户存储信息单客户存储信息单3.1.13.1.1调调 用用 取取款款 系统系统3.1.33.1.3提提 取取现现 金金1 1层层DFDDFD图图 取款子系统取款子系统 用用 户户选择信息选择信息查询操作查询操作3.2.13.2.1调调用用查查询询 系统系统选择选择交易交易3.2.23.2.2选选择择货货 币种类币种类F1F1客户存储信息单客户存储信息单3.2.33.2.3查查询询账账 户户选择信息选择信息1 1层层DFDDFD图图 查询子系统查询子系统查查询询信信息息转账金额转账金额转入卡号信息转入卡号信息选择信息选择信息选择信息选择信息查询操作查询操作3.3.13.3.1调调 用用 转转账系统账系统选择选择交易交易3.3.23.3.2卡卡 内内转账转账F1F1客户存储信息单客户存储信息单转转入入卡卡号号信信息息3.3.43.3.4记录记录选择信息选择信息1 1层层DFDDFD图图 转账子系统转账子系统3.3.33.3.3卡卡 卡卡转账转账3.3.53.3.5确认确认3.3.53.3.5转账转账选择选择交易交易新密码新密码更改密码信息更改密码信息3.4.13.4.1调用更改密调用更改密 码系统码系统F1F1客户个人信息单客户个人信息单新新密密码码3.4.23.4.2记录记录选择信息选择信息1 1层层DFDDFD图图 更改密码子系统更改密码子系统3.4.53.4.5确认确认插卡并输入密码插卡并输入密码如果如果 密码正确密码正确那么那么 进入操作界面进入操作界面 〔共有四种根本操作〕〔共有四种根本操作〕1 1、查询帐户、查询帐户2 2、提取现金、提取现金3 3、转账汇款、转账汇款4 4、修改密码、修改密码如果如果 需要进行以上某个操作需要进行以上某个操作 请选择请选择 选择需要的操作选择需要的操作否那么否那么 超过超过1010秒钟没有操作秒钟没有操作 或或 选择退出选择退出 退卡退卡否那么否那么再次输入密码〔如果密码输入的错误次数超过再次输入密码〔如果密码输入的错误次数超过1010次,那么吞卡〕次,那么吞卡〕 加工说明加工说明如果如果 选择第选择第1 1个操作:个操作:1 1、查询帐户、查询帐户那么那么 进入查询帐户的操作界面进入查询帐户的操作界面 〔按币种分类共有四种查询操作〕〔按币种分类共有四种查询操作〕1 1、人民币帐户、人民币帐户 2 2、港币帐户、港币帐户 3 3、美元帐户、美元帐户 4 4、其他帐户、其他帐户 选择你需要的操作就可以查询并显示你的帐户信息选择你需要的操作就可以查询并显示你的帐户信息如果如果 还需要其他操作还需要其他操作 按按““返回〞键返回〞键否那么否那么 〔超过〔超过1010秒钟没有操作秒钟没有操作 或或 选择退出〕选择退出〕 退卡退卡否那么否那么 如果如果 选择其他三个任意一个操作选择其他三个任意一个操作 进入各自的界面进行各自的操作进入各自的界面进行各自的操作 否那么否那么 退卡退卡 如果如果 选择第选择第2 2个操作:个操作:2 2、提取现金、提取现金那么那么 进入提取现金的操作界面进入提取现金的操作界面 〔按币种分类共有四种币种可以取〔按币种分类共有四种币种可以取得〕得〕1 1、人民币帐户、人民币帐户 2 2、港币帐户、港币帐户 3 3、美元帐户、美元帐户 4 4、其他帐户、其他帐户 选择你需要的操作并输入你要取出的金额选择你需要的操作并输入你要取出的金额 等待出钞等待出钞如果如果 还需要其他操作还需要其他操作 按按““返回〞键返回〞键否那么否那么 超过超过1010秒钟没有操作秒钟没有操作 或或 选择退出选择退出 退卡退卡 否那么否那么 如果如果 选择其他三个任意一个操作选择其他三个任意一个操作 进入各自的界面进行各自的操作进入各自的界面进行各自的操作 否那么否那么 退卡退卡如果如果 选择第选择第3 3个操作:个操作:3 3、转账、转账/ /汇款汇款那么那么 进入转账进入转账/ /汇款的操作界面汇款的操作界面 〔共有两种转账汇款方式〕〔共有两种转账汇款方式〕1 1、卡内转账、卡内转账 2 2、卡卡转账、卡卡转账 选择你需要的操作选择你需要的操作 界面提醒你输入两次你要转入的卡号界面提醒你输入两次你要转入的卡号 卡号输入完毕,提醒你输入金额卡号输入完毕,提醒你输入金额 按按““确定〞键,转账完毕确定〞键,转账完毕如果如果 还需要其他操作还需要其他操作 按按““返回〞键返回〞键否那么否那么 超过超过1010秒钟没有操作秒钟没有操作 或或 选择退出选择退出 退卡退卡否那么否那么 如果如果 选择其他三个任意一个操作选择其他三个任意一个操作 进入各自的界面进行各自的操作进入各自的界面进行各自的操作 否那么否那么 退卡退卡文件名:银行卡文件名:银行卡 别名:别名:组成:组成:{ {卡号卡号+ +持卡人姓名持卡人姓名} }组织:按卡号从小到大顺序组织:按卡号从小到大顺序备注:备注:数据字典数据字典文件名:账户信息文件名:账户信息别名:别名:组成:组成:{ {账户账户+ +户名户名+ +账户余额账户余额+ +身份证号码身份证号码+ +开户日期开户日期 + +开户网点开户网点} }组织:按账号从小到大的顺序组织:按账号从小到大的顺序备注:备注:文件名:交易凭条文件名:交易凭条别名:别名:组成:组成:{卡号卡号+户名户名+取款日期取款日期+取款金额取款金额+币种币种}组织:组织:备注:备注:ATMATM机系统机系统SCSC图:图:A T M机机系系统统读读取取银银行行卡卡 信信 息息取取款款银银行行卡卡 信息信息查查 询询帐帐 户户转转账账修修 改改密密 码码取取 款款命命 令令查查 询询命命 令令转转 账账命命 令令修修改改密密码码命令命令取款子系统取款子系统SCSC图图取取款款人人民民币币帐帐户户其其 它它 帐帐 户户美美 元元 帐帐 户户港港 元元 帐帐 户户人人民民币币取取款款命令命令美美元元帐帐户户取款命令取款命令其其 它它 帐帐 户户取款命令取款命令港港元元帐帐户户取款命令取款命令港港元元取取款款出出钞钞机机取款金额取款金额取款金额取款金额修修 改改 账账户户 信信 息息取款金额取款金额查询帐户子系统查询帐户子系统SCSC图图查查 询询 帐帐 户户人人民民币币帐帐户户其其 它它 帐帐户户美美元元帐帐户户港港元元帐帐户户人人民民币币查查询询命令命令美美 元元 帐帐 户户查询命令查询命令其其它它帐帐户户查查询命令询命令港港元元帐帐户户查询命令查询命令转账系统转账系统SCSC图图转转账账卡卡卡卡转转账账卡卡内内转转账账卡卡转账命令卡卡转账命令卡内转账命令卡内转账命令读读取取卡卡号号/ 账账号号卡号卡号/账号账号读读 取取 转转账账 金金 额额转账金额转账金额修修 改改 帐帐户信息户信息转账金额转账金额修改密码子系统修改密码子系统SCSC图图修修 改改 密密 码码读读 入入 新新密密码码新密码新密码再再次次读读入入新新 密密 码码新密码新密码修修改改帐帐户户信息信息新密码新密码v分析分析定义用例定义用例建立类建立类----对象模型对象模型建立对象建立对象----关系模型关系模型建立对象建立对象----行为模型行为模型v设计设计系统设计系统设计对象设计对象设计面向对象分析及设计定义用例定义用例建立类建立类----对象模型对象模型一般一般----特殊结构特殊结构 整体整体 — — 局部结构局部结构 主题引用主题引用 建立对象建立对象----关系模型关系模型查询查询建立对象建立对象----行为模型行为模型提款提款转账转账更改密码更改密码系统设计系统设计一、子系统设计一、子系统设计1、划分子系统、划分子系统人机交互界面子系统人机交互界面子系统选择操作子系统选择操作子系统信息验证子系统信息验证子系统取款子系统取款子系统 查询子系统查询子系统 转账子系统转账子系统更更改改密密码码子子系系统统信息读取子系统信息读取子系统2 2、处理并发操作:、处理并发操作:本系统不存在并发问题,故不需考虑有关并发本系统不存在并发问题,故不需考虑有关并发操作的处理。
操作的处理3 3、描述子系统间通信、描述子系统间通信 调用请求调用请求读取信息错误重新输入请求读取信息错误重新输入请求信息验证请求信息验证请求信信息息验验证证子子系统系统信信息息读读取取子子系统系统选选择择操操作作子子系统系统查询子系统查询子系统取款子系统取款子系统转账子系统转账子系统更更改改密密码码子子系统系统二、人机交互设计:二、人机交互设计:1 1、本系统的界面面向所有认得汉字及英文的用、本系统的界面面向所有认得汉字及英文的用 户,交互界面如下:户,交互界面如下:取取 款款 〔〔 WithdrawWithdraw〕〕查询〔查询〔QueryQuery〕〕 〔〔ChangePasswordChangePassword〕更改密码〕更改密码〔〔TransterTranster〕〕转转 账账返回〔返回〔BackBack〕〕〔〔 QuitQuit〕〕 退退 卡卡输入取消 9 8 7 6 5 4 3 2 1 0 00 取款子系统界面:取款子系统界面:返回(返回(BackBack))(( QuitQuit)) 退退 卡卡请请输输入入你你要要提提取取的的金金额额(本本机机只只提提供供100元、元、50元的面额元的面额)(( ConfirmConfirm)) 确确 定定查询子系统界面:查询子系统界面:返回(返回(BackBack))(( QuitQuit)) 退退 卡卡您的账户余额为:您的账户余额为:(( ConfirmConfirm)) 确确 定定可用余额为:可用余额为:转账子系统界面:转账子系统界面:返回(返回(BackBack))(( QuitQuit)) 退退 卡卡请选择转入卡账户类型请选择转入卡账户类型((ConfirmConfirm)确)确 定定银行卡(银行卡(CreditCardCreditCard))存折(存折(BankBookBankBook))返回(返回(BackBack))(( QuitQuit)) 退退 卡卡请输入转入卡卡号:请输入转入卡卡号:(( ConfirmConfirm)) 确确 定定更改密码子系统界面:更改密码子系统界面:返回(返回(BackBack))(( QuitQuit)) 退退 卡卡请输入新密码:请输入新密码:(( ConfirmConfirm)) 确确 定定三、任务管理设计:三、任务管理设计: 1 1、识别由事件驱动和时间驱动的任务:、识别由事件驱动和时间驱动的任务:取款、查询、转账、更改密码及返回都是事件驱动的任务,取款、查询、转账、更改密码及返回都是事件驱动的任务,只有在用户发出相应的请求是才处理;退卡即是事件驱动也只有在用户发出相应的请求是才处理;退卡即是事件驱动也是时间驱动,用户发出请求时及等待时间超过是时间驱动,用户发出请求时及等待时间超过1010秒钟时系统秒钟时系统都会执行此操作。
都会执行此操作 2 2、识别关键性任务、任务优先级以及任务管理类:、识别关键性任务、任务优先级以及任务管理类: 退卡的优先级最高,其次是返回,再次是取款、退卡的优先级最高,其次是返回,再次是取款、查询、转账、更改密码等操作查询、转账、更改密码等操作 3 3、定义任务:、定义任务:取款任务:在用户发出取款请求时,根据取款任务:在用户发出取款请求时,根据用户输入的取款金额吐出相应数额的钱币用户输入的取款金额吐出相应数额的钱币 查询任务:在用户发出查询请求时,查询任务:在用户发出查询请求时,在在ATMATM显示屏上显示用户账户上的剩余金额显示屏上显示用户账户上的剩余金额转账任务:在用户发出转账请求时,将用户账户上用户要求的转账任务:在用户发出转账请求时,将用户账户上用户要求的数量的金额转到用户指定的卡上数量的金额转到用户指定的卡上更改密码:在用户发出更改密码请求时,提供给用户可以更改更改密码:在用户发出更改密码请求时,提供给用户可以更改当前密码的功能当前密码的功能返回任务:在用户发出返回请求时,系统可以及时回到选择操返回任务:在用户发出返回请求时,系统可以及时回到选择操作界面,方便用户再次选择。
作界面,方便用户再次选择退卡任务:在用户发出退卡任务时,将用户插入退卡任务:在用户发出退卡任务时,将用户插入ATMATM机的银行机的银行卡退出不管用户正在进行何种操作,只要用户发出不管用户正在进行何种操作,只要用户发出退卡请求,系统及时执行退卡操作退卡请求,系统及时执行退卡操作一、协议描述:一、协议描述:MESSAGE〔〔ATM—Withdraw〕〕按下此按钮就进入取款的界面,并提示客户输入取款按下此按钮就进入取款的界面,并提示客户输入取款数额MESSAGE〔〔ATM__ Query〕〕进入帐户查询界面,提示选择币种帐户类型进入帐户查询界面,提示选择币种帐户类型 当你选择其中一个帐户类型时就显示帐户信息当你选择其中一个帐户类型时就显示帐户信息 如果该帐户不存在,提示出错并返回如果该帐户不存在,提示出错并返回 上一层界面上一层界面MESSAGE〔〔ATM__Transfer〕〕进入转帐界面,提示用户选择转帐类型然后进入转帐界面,提示用户选择转帐类型然后 要求两次输入目标帐户的帐号,之后再输入转帐金要求两次输入目标帐户的帐号,之后再输入转帐金额对象设计对象设计MESSAGE〔ATM __ ChangePassword〕进入更改密码子系统界面提示用户输入原密码,然后两次输入新密码。
MESSAGE〔ATM__Back 〕返回上一层界面MESSAGE(ATM__Quit)推出ATM机系统二、实现描述: 对象名:bankCard 类名: BankCard 私有数据结构:Integer:amount;printf(“input the amount of money you want!〞);三、算法设计、三、算法设计、1、取款操作算法描述〔、取款操作算法描述〔withdrawing()〕〕一级抽象描述一级抽象描述Withdarw the money you want 二级抽象描述二级抽象描述Input the amount of money you wantCompare it with your balanceIF you balance is enough THEN DO withdraw moneyELSE show message for no enough balance to withdraw三级抽象描述三级抽象描述Scanf(“%d〞,&amount);If (amount < balance) balance = balance – amount;else printf(“No enough money to withdraw!〞);2、查询操作算法描述〔checkAccount()〕一级抽象描述Check account 。
二级抽象描述Choose the type of account you want to check,Then get you account balance information三级抽象描述三级抽象描述If ( press RMBAccountButton)If ( press RMBAccountButton) Display your RMBAccount information Display your RMBAccount informationIf (press DollarAccountButtuon)If (press DollarAccountButtuon) Display your RMBAccount information Display your RMBAccount informationIf ( press HKaccountButton)If ( press HKaccountButton) Display your HKaccount information Display your HKaccount informationIf (press otherAccountButtuon)If (press otherAccountButtuon) Display your otherAccount information Display your otherAccount information3 3、转帐操作算法描述〔、转帐操作算法描述〔divertBalance()divertBalance()〕〕一级抽象描述一级抽象描述Transfer money among accounts Transfer money among accounts 。
二级抽象描述二级抽象描述Input the account number you want to transferInput the account number you want to transferInput the same account number againInput the same account number againInput the amount of money you want to transferInput the amount of money you want to transferIf (the money you input is more than you balance)If (the money you input is more than you balance) Minus you balance Minus you balance Show message (“ transferring successfully Show message (“ transferring successfully〞〞););Else Else Show error message; Show error message;三级抽象描述三级抽象描述IntegerInteger::transferNum1;transferNum1;IntegerInteger::transferNum2transferNum2IntegerInteger::transferAmount;transferAmount;Integer::time = 0;Printf(“input the account number you want to transfer:〞:〞)Scanf(“%d〞〞, & transferNum1);time++;Printf(“Input the same account number again:〞:〞)Scanf(“%d〞〞, & transferNum2);time++;While (transferNum1 ! = transferNum2){ If (transferNum1 ! = transferNum2){ Printf(“Input again:〞:〞); Scanf(“%d〞〞, & transferNum2);time++if (time > 10) return;}Else If (transferNum1 = = transferNum2){ Printf(“Input the amount of money:〞:〞); Scanf(“%d〞〞, & transferAmount); If (transferAmount < balance) { balance = balance – transferAmount; Show message (“ transferring successfully〞〞);} Else Show error message;}}4、修改密码算法描述〔、修改密码算法描述〔changeAccountCode()〕〕一级抽象描述一级抽象描述Change your AccountCode。
二级抽象描述二级抽象描述Input you initial code;Input the code you want to changeInput change code againIf (your input is correct an ) Show message(“changing successfully!〞〞)Else Show error hint;三级抽象描述三级抽象描述Integer::initialcode1;Integer::changecode1;Integer::changecode2;Integer::time = 0;Printf(“Input you initial code:〞:〞)Scanf(“%d〞〞, & initialcode1);time++;Printf(“Input the code you want to change:〞:〞)Scanf(“%d〞〞, & changecode1);Printf(“Input change code again:〞:〞)Scanf(“%d〞〞, & initialcode2);While(initialcode1 ! = accountCode | | changecode1 ! = changecode2){ If (initialcode1 ! = accountCode | | changecode1 ! = changecode2) { If (time < 10){ Printf(“Input you initial code:〞:〞) Scanf(“%d〞〞, & initialcode1); time++; Printf(“Changing Code Successfully!:〞:〞) } }Printf(“Input the code you want to change:〞:〞) Scanf(“%d〞〞, & changecode1); Printf(“Input change code again:〞:〞) Scanf(“%d〞〞, & initialcode2);}else{error!}}Else if ( initialcode1 = = accountCode | | changecode1 = = changecode2){ Printf(“Changing Code Successfully!:〞:〞)}}通过调整需求,筛选可以复用的组件,我们引入帐户类作为通过调整需求,筛选可以复用的组件,我们引入帐户类作为父类,并由其派生出人民币帐户类,美元帐户类,港元帐户父类,并由其派生出人民币帐户类,美元帐户类,港元帐户类和其它帐户类。
虽然人民币帐户,港元和美元帐户都具有类和其它帐户类虽然人民币帐户,港元和美元帐户都具有利率等属性,但是考虑到模块独立性和以后系统调整维护的利率等属性,但是考虑到模块独立性和以后系统调整维护的方便等问题,我们把它们都单独拿出来作为帐户的子类另方便等问题,我们把它们都单独拿出来作为帐户的子类另外由于我们设计的外由于我们设计的ATMATM机面向的是祖国大陆,所以在港元和机面向的是祖国大陆,所以在港元和人民币以及美元和人民币之间存在转换问题,所人民币以及美元和人民币之间存在转换问题,所以在港元帐户上面添加了港元对人民币的汇以在港元帐户上面添加了港元对人民币的汇率这一属性,在美元帐户上面增加了美元率这一属性,在美元帐户上面增加了美元对人民币的汇率的属性最终得到调整对人民币的汇率的属性最终得到调整后的后的OOAOOA模型如下:模型如下:领域对象设计领域对象设计Dr3uhd3uhd3u の断喉弩好多年课代表卡不都快递吧4坤角儿4进而34就可4蛕?D脙#軟媁?vo滂焜?蔣}り 鳄NP"觞?F 瀢?鷲2SXWJ扱;[$E锴?咼?wb,O?hW芀嚙C八??迎q ???& 锃?.楧D峘?wB賛装 綄?衈]瞹?嘁?尥?b袦〨20?\箻>yF邴?詑[1]攗檢锟袥匏=憌?&丹?鐘w鲽毨G>艟<熋H?&鰢Z?L?&?;.z 刧绗鰀畬拃Szl<4榌m "`Y朗k[1]?
