自动取款机毕业论文
学号:2009110317
河南警察学院
毕业论文(设计)
系 别 信息安全系 专 业 信息网络安全监察 年 级 2009级 姓 名 郭永攀 论文(设计)
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
目 ATM虚拟自动取款机
指导教师 刘琦 职称 副教授
2012 年 5 月 4 日
自动取款机
------------虚拟ATM
学生姓名:郭永攀 学号:2009110317
系别:信息安全系 专业:信息网络安全监察
指导教师:刘琦 职称:副教授
2012-5-4
目录
1(引言 ................................................................................................................................................ 5 1.1编写目的 ....................................................................................................................................... 5 1.2项目背景 ............................................................................................................................... 5 1.3定义 ....................................................................................................................................... 5 2(任务概述 ........................................................................................................................................ 6 2.1目标 ....................................................................................................................................... 6 2.2运行环境 ............................................................................................................................... 6 2.3需求概述 ............................................................................................................................... 6 2.4条件与限制 ........................................................................................................................... 6 3(总体设计 ........................................................................................................................................ 7 3.1处理流程 ............................................................................................................................... 7 3.2总体结构和模块外部设计,打印凭条没实现, ............................................................. 10 4(对现有系统的分析 ...................................................................................................................... 11 4.1处理流程和数据流程,打印凭条和转账没实现, ......................................................... 11 4.2工作负荷 ............................................................................................................................. 11 4.3费用支出 ............................................................................................................................. 11 4.4人员 ..................................................................................................................................... 11 4.5设备 ..................................................................................................................................... 12 4.6局限性 ................................................................................................................................. 12 5(所建议技术可行性分析 .............................................................................................................. 12 5.1对系统的简要描述 ............................................................................................................. 12 5.2处理流程和数据流程,打印凭条和转账没实现, ......................................................... 13 5.3与现有系统比较的优越性 ................................................................................................. 13 5.4采用建议系统可能带来的影响 ......................................................................................... 14
5.4.1对设备的影响 ......................................................................................................... 14
5.4.2对现有软件的影响 ................................................................................................. 14
5.2.3对用户的影响 ......................................................................................................... 14
5.2.4对系统运行的影响 ................................................................................................. 14
5.2.5对开发环境的影响 ................................................................................................. 14
5.2.6对运行环境的影响 ................................................................................................. 14
5.2.7对经费支出的影响 ................................................................................................. 14 5.5技术可行性评价 ................................................................................................................. 15 6.1存款子系统 ......................................................................................................................... 15
6.1.1功能 ......................................................................................................................... 15
6.1.2性能 ......................................................................................................................... 15
6.1.3输入项目 ................................................................................................................. 15
6.1.4输出项目 ................................................................................................................. 15
6.1.5算法 ......................................................................................................................... 16
6.1.6程序逻辑 ................................................................................................................. 17
6.1.7接口 ......................................................................................................................... 17
6.1.8存储分配 ................................................................................................................. 18
6.1.9限制条件 ................................................................................................................. 18
6.1.10测试要点 ............................................................................................................... 18 6.2 查询余额子系统 ................................................................................................................ 18
6.2.1功能 ......................................................................................................................... 18
6.2.2性能 ......................................................................................................................... 18
6.2.3输入项目 ................................................................................................................. 19
6.2.4输出项目 ................................................................................................................. 19
6.2.5算法 ......................................................................................................................... 19
6.2.6程序逻辑 ................................................................................................................. 20
6.2.7接口 ......................................................................................................................... 20
6.2.8存储分配 ................................................................................................................. 21
6.2.9限制条件 ................................................................................................................. 21
6.2.10测试要点 ............................................................................................................... 21 6.3 修改密码子系统 ................................................................................................................ 21
6.3.1功能 ......................................................................................................................... 21
6.3.2性能 ......................................................................................................................... 21
6.3.3输入项目 ................................................................................................................. 21
6.3.4输出项目 ................................................................................................................. 22
6.3.5算法 ......................................................................................................................... 22
6.3.6程序逻辑 ................................................................................................................. 23
6.3.7接口 ......................................................................................................................... 23
6.3.8存储分配 ................................................................................................................. 24
6.3.9限制条件 ................................................................................................................. 24
6.3.10测试要点 ............................................................................................................... 24
6.3.8存储分配 ................................................................................................................. 24
6.3.9限制条件 ................................................................................................................. 24
6.3.10测试要点 ............................................................................................................... 24
7(所建议系统经济可行性分析 ...................................................................................................... 24 7.1支出 ..................................................................................................................................... 24
7.1.1基建投资 ................................................................................................................. 25
7.1.2其他一次性支出 ..................................................................................................... 25
7.1.3经常性支出 ............................................................................................................. 25 7.2效益 ..................................................................................................................................... 25
7.2.1一次性收益 ............................................................................................................. 25
7.2.2经常性收益 ............................................................................................................. 25
7.2.3不可定量收益 ......................................................................................................... 25 7.3收益/投资比 ....................................................................................................................... 26 7.4投资回收周期 ..................................................................................................................... 26 7.5敏感性分析 ......................................................................................................................... 26
8 系统的
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
.................................................................................................................................... 26 8.1 登录界面,差磁卡界面, ................................................................................................ 27 8.2开户界面 ............................................................................................................................. 28
8.3取款界面 ..................................................................................................................... 29 8.4 查询余额界面 .................................................................................................................... 30 8.4 存款界面 .......................................................................................................................... 31
8.5 程序代码 ............................................................................................................................ 31 9参考资料 ......................................................................................................................................... 40
1(引言
1.1编写目的
从此阶段正式进入ATM系统的软件设计阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构,在软件设计阶段主要是把软件需求转化为软件表示过程,这种表示只是描述软件总的概貌,把它加工成程序细节上非常接近于源程序的表示,使软件开发人员在编码阶段以此文档供为标准。 1.2项目背景
应呼和浩特建设银行网络建设和改造需要,为客户提供方便、迅速、便捷的自动存取款业务提出了ATM机自动取款系统设计与实现的项目,并由软件工程08-2班第七小组完成设计与开发,上级主管部门计算机系。要求此系统能够实现所提出的基本功能要求并且兼容现在使用的软件。
1.3定义
客户:拥有银行的一个或多个帐号的人。可以是一个人或多个人,或者是公司。相同的人,拥有不同的银行帐号被认为是不同的落户。
ATM:ATM是Automatic Teller Machine 的缩写,意为自动柜员机。是一种高度精密的机电一体化设备,利用磁卡或智能IC卡储存用户信息并通过加密键盘EPP)输入密码然后通过银行内部网络验证并进行各种交易的金融自助设备。 (
事务:对单个客户帐号的单个完整的操作请求,一般是指要做的或所做的事情。
储蓄卡:储蓄卡是银行为储户提供金融服务而发行的一种金融交易卡。它的主要功能是能在联网ATM和储蓄所存、取款及在联网的POS上进行消费,但不具备透支功能。
2(任务概述
2.1目标
明确系统的数据结构与软件结构,此外总体设计还将给出内部软件与外部系统部件之间的接口定义,各个软件的模块的功能说明,数据结构的细节以及具体的装配要求,通过阅读此文档可以对ATM系统的设计有了初步的构想,程序开发人员能够快速进入代码实现,在ATM系统的基本功能实现的基础上,提高性能指标。
2.2运行环境
硬件环境:CPU:1GHZ 以上
RAM:256兆以上
HARD DISK:2G以上
软件环境:应用服务器的操作系统环境为windowsXP以上的
数据库为Oracle或SQL server2005
此系统运行在ATM机上
2.3需求概述
针对银行业务种类繁多、客户需求量大等现象,为了减少银行人员的工作任务,方便客户,进行ATM系统的设计与开发,使用户自己就可以在ATM机上存款、取款、查询余额、、修改密码、、退卡等基础功能。同时要求满足基本的性能需求:快速性:处理业务的时间不得超过30秒否则取消事务退卡;准确性:吐钞、存抄的数目正确; 稳定性:频繁的进行多项业务系统仍能正常运行,外部环境发生小范围内变动系统不受影响;安全性:系统中所有涉及敏感信息如登录口令等,服务器端应设置严格安全访问控制策略,从而保证系统安全性和操作责任的可追溯性。
2.4条件与限制
整个项目的条件与限制:
1、建议开发软件运行的最短寿命:十年。
2、经费来源和使用限制:中国建设银行投资。
3、法律和政策方面的限制:涉及法律法规应向律师进行详细咨询以免侵害客户和其他人的利益。
4、硬件、软件、运行环境和开发环境的条件和限制:ATM柜员机终端设备,地区服务器、中央服务器、数据库服务器(多个分散的)。
5、可利用的信息和资源:现有简易ATM机的实现原理 银行工作人员手工操作的业务流程。
6、建议开发软件投入使用的最迟时间:测试一个月后。
软件设计时的条件与限制:软件设计应当表现层次结构,巧妙地利用各个软件之间的控制关系,设计应当是模块化。小组成员应对软件开发的流程基本了解并且充分调研后开始编辑文档,同时要掌握JAVA语言及数据库相关知识以备后续实现。项目进行中注意时间的控制和资金的合理分配。
3(总体设计
3.1处理流程
图1-1取款的活动图
图1-2 款的活动图
图1-3修改密码活动图
图1-4查询余额的活动图
3.2总体结构和模块外部设计,打印凭条没实现,
ATM机系统
键数IC读吐盘据打显认卡钱输存印示证机机入储
图1-5 总体结构图
4(对现有系统的分析
4.1处理流程和数据流程,打印凭条和转账没实现,
客户到银行柜员机
业务主界面
取款存款转账查询余额打印凭条退卡修改密码
账户
图1-6现有系统处理流程
举例说明:客户到银行根据事务不同进行排队,若进行取钱要将存折交给业务人员并告之取款的金额,业务人员在柜员终端识别账户后扣除相应金额,取出钱交给客户。
4.2工作负荷
业务人员要进行大量客户的不同事务操作,在一段时间内可能重复同样的操作多次,很容易产生厌烦心理,客户需要长时间的等待使用户体验不友好。 4.3费用支出
业务人员的工资按每月4000元、购买柜员机及内部软件开发费用。 4.4人员
银行业务人员:若干
客户
4.5设备
现有系统设备主要有柜员终端机并且需要大量的业务人员。 4.6局限性
原有银行终端操作,银行业务种类繁多、业务人员工作量大,业务进度缓慢,客户受到地点、时间因素的限制不能随时进行业务。
5(所建议技术可行性分析
5.1对系统的简要描述
ATM终端可以接受一张可识别的银行储蓄卡,通过储户身份验证后,同储户进行各种交互,处理储户要求,执行各类操作,为储户服务。系统要求保持一定时间内的交易记录,可以处理多个ATM终端并发访问。同时,系统应每天自动汇总各种交易数据,生成报表。系统24小时工作,无操作时播放本行的动画广告。系统具有设备自检提示报错功能,可以提示输入错误,ATM终端钱柜缺钱。
5.2处理流程和数据流程,打印凭条和转账没实现,
ATM终端
插卡/退卡出钱凭条
输入验证账户
读卡机键盘显示界面IC认证吐钱机打印模块
选择事务
取款
存款
转账
账户
查询余额
打印凭条
退卡
修改密码
图1-7本系统处理流图
举例说明:取钱的流程:在读卡机中插入银行卡,识别后提示输入密码,用键盘输入密码后,验证密码正确后进入主界面选择取钱,提示输入金额,输入金额后系统到账户中验证是否在允许值范围内,金额正确则吐钱机吐钞,吐钞后提示取走钱,系统自动跳转到主界面客户可以进行其他事务的选择。 5.3与现有系统比较的优越性
与银行终端相比较无需到银行领号排队,减轻银行业务人员的工作量,同时使客户可以在就近的ATM机上24小时进行事务交易。
5.4采用建议系统可能带来的影响
5.4.1对设备的影响
由于所建议系统是基于WINDOWS操作系统和互联网的,所以需要配备足够符合以上列出的各种软硬件条件的计算机和通信线路。系统失效后,服务器端需要利用备份的数据库恢复数据信息,要求要有足够的数据备份空间。
5.4.2对现有软件的影响
需要落实是否有符合本报告所列出的正版的软件环境,如果没有则需要购买,要和现有系统兼容。
5.2.3对用户的影响
投入使用前还需改进现有的管理模式。
5.2.4对系统运行的影响
无影响。
5.2.5对开发环境的影响
开发过程需要用户进行密切的配合,准确阐明需求。
5.2.6对运行环境的影响
无影响。
5.2.7对经费支出的影响
除了需要支付开发单位的有关费用外,每年还需要一定的运行维护费用(见经济可行性分析)。
5.5技术可行性评价
系统是一个基于局域网、互联网和WINDOWS操作的系统,现有技术已较为成熟,利用现有技术完全可以实现系统开发目标。同时具有优秀的软件需求人员、软件设计人员、和具有丰富经验的软件测试人员。开发期限较为宽裕,预计可以在规定期限内完成开发任务。
6功能的分析和设计
6.1存款子系统
6.1.1功能
用户可以通过和ATM自动取款机交互,完成存款的操作。 6.1.2性能
系统的反应时间是不能超过2秒,完成取款操作的时间不能超过30秒。 6.1.3输入项目
表1-8存款子系统的输入项目
名称 类型
银行卡 磁卡
密码 int(6位整数)
金额 int(100的整数倍)
账号 19位整数
6.1.4输出项目
表1-9存款子系统的输出项目
名称 类型
凭条 文本
6.1.5算法
图2-1存款的活动图
6.1.6程序逻辑
InsertCardVerifyloginDepositFundDataBaseUser : sNewClass1: 插卡
2: 核实信息
3: 验证信息
4: 返回信息
5: 登录
6: 存款
7: 存入数据库
8: 返回信息
图2-2 存款的时序图
6.1.7接口
系统程序内部在功能模块下设置的程序接口见表3-6 ,图3.13
表3-6 存款子系统的软件接口 函数 输入 输出 Open() 卡号 密码 提示信息 DepositFunds() 金额 无 AddFunds() 无 无 VerifyFunds() 无 无
图2-3存款的类图
6.1.8存储分配
账户表 储蓄卡表 ATM表 清单表
6.1.9限制条件
ATM自动取款机中的纸币以满,不能再放入纸币。
6.1.10测试要点
好的产品才能得到用户的认可和肯定,只有得到用户的肯定才会有市场,为此要对系统的反应速度、准确性(能准确读取放入的纸币数目)和安全性,以及系统的稳定应有非常高的要求。
6.2 查询余额子系统
6.2.1功能
用户可以通过和ATM自动取款机交互,完成查询余额的操作。 6.2.2性能
系统的反应时间是不能超过2秒,完成查询余额操作的时间不能超过30秒。
6.2.3输入项目
表2-4 余额查询子系统的输入项目 名称 类型 银行卡 磁卡 密码 int(6为整数)
6.2.4输出项目
表2-5余额查询子系统的输出项目 名称 类型 凭条 文本
6.2.5算法
图2-6余额查询的活动图
6.2.6程序逻辑
InsertCardVerifyloginQueryFundsDataBaseUser :
NewClass1: 插卡
2: 核实信息
3: 验证信息
4: 返回信息
5: 登录
6: 查询余额
7: 存入数据库
8: 返回信息
图 2-7 余额查询的时序图
6.2.7接口
系统程序内部在功能模块下设置的程序接口见表3-12,图3.19
表2-8 查询余额子系统的软件接口 函数 输入 输出 Open() 卡号 密码 无 Query() 无 无
图2-9余额查询的类图
6.2.8存储分配
账户表 储蓄卡表 清单表
6.2.9限制条件
硬件故障
6.2.10测试要点
好的产品才能得到用户的认可和肯定,只有得到用户的肯定才会有市场,为此要对系统的反应速度有非常高的要求,这也是最基本的要求。 6.3 修改密码子系统
6.3.1功能
用户可以通过和ATM自动取款机交互,完成修改密码的操作。 6.3.2性能
系统的反应时间是不能超过2秒,完成修改密码操作的时间不能超过30秒。
6.3.3输入项目
表3-1修改密码子系统的输入项目 名称 类型 银行卡 磁卡 旧密码 int(6为整数) 新密码 int(6为整数)
6.3.4输出项目
-2 修改密码子系统的输出项目 表3
名称 类型 凭条 文本
6.3.5算法
图3-3 修改密码的活动图
6.3.6程序逻辑
InsertCardVerifyloginAlterPasswoDataBaseUser : rdNewClass1: 插卡
2: 核实信息
3: 验证信息
4: 返回信息
5: 登录
6: 修改密码
7: 存入数据库
8: 返回信息
图3-4 修改密码的时序图
6.3.7接口
系统程序内部在功能模块下设置的程序接口见表3-15,图3.22
表 3-15修改密码子系统的软件接口 函数 输入 输出 Open() 卡号 密码 无 AlterPassword() 旧密码 新密码 无
图3-5 修改密码的类图
6.3.8存储分配
账户表 储蓄卡表 清单表
6.3.9限制条件
忘记了旧密码
6.3.10测试要点
好的产品才能得到用户的认可和肯定,为此要对系统的反应速度、 安全性,以及系统的稳定有非常高的要求。
6.3.8存储分配
账户表 储蓄卡表 清单表 ATM表
6.3.9限制条件
ATM自动取款机里的凭条纸用完了、纸币没有了或是硬件出项了故障。 6.3.10测试要点
对系统的反应速度,稳定性有非常高的要求,以达到用户的满意度。
7(所建议系统经济可行性分析
7.1支出
(1)系统开发、建立费用共23万元。其中:
本系统开发期为一年,需开发人员6人(不一定都是参加满整个开发周期)。根据软件系统的规模估算,开发工作量约为30人月,每人月的人工费按5000元
计算,开发费用为15万元。
(2)硬件设备费共29万元,其中:ATM机约19万元;服务器3台及网络等设备费10万元。
(3)外购开发工具、软件环境费用共9万元。
7.1.1基建投资
基础建设投资约52万
7.1.2其他一次性支出
暂无
7.1.3经常性支出
加班费用、
培训
焊锡培训资料ppt免费下载焊接培训教程 ppt 下载特设培训下载班长管理培训下载培训时间表下载
费用约10万。
7.2效益
7.2.1一次性收益
以前手工操作完成的事务可能需要十个业务员,现在只需要一个业务员就能满足需求,小额取款客户可以到ATM机自主完成,相当于一个月节省九个人工资费用约36000元。
7.2.2经常性收益
跨行转账收取手续费。
7.2.3不可定量收益
服务的改进和组织机构给外界形象会使潜在用户增加,银行收益不可估量的。
7.3收益/投资比
后期收益无法估量
7.4投资回收周期
约三至四年
7.5敏感性分析
系统生存周期十年、自身工作量较大但可以承受,处理速度可以满足现有用户的需求,系较所使用的硬件如无特殊重大事故生存周期内不会有破坏性损害,因此,十年内可以得到较为可观收益。
8 系统的总结
自动取款机的虚拟系统主要是模仿银行真的自动取款机的功能而设计的,其功能和真正的自动取款机是有很多的差别的,但对我们来说,此 虚拟的自动取款机也是很大的激励 对大家的认识自动取款机也有一定的帮助 虽然 在功能和界面上和其他的自动取款机系统和很大的差别但是 我们的系统 也是很实用的 可以用在一定的地方的 我们的系统简介方便容易学习 适应用于广大的用户
一下是我们系统的各个界面的显示
8.1 登录界面,差磁卡界面,
图 3-5 登陆界面
8.2开户界面
图 3-6 开户界面
8.3取款界面
图 3-7 取款界面
8.4 查询余额界面
图3-8 查询余额界面
8.4 存款界面
图 3-9 存款界面
8.5 程序代码
以上功能的实现的所用的代码,有我们的研究人员的精心设计以及我们的程序人员的奋斗我们,设计到了最好的代码来实现我的程序的正常使用的。我们的代码是安全的,严谨的,当然我们会时常的检测我们的程序的运行,以保证用户的安全使用,和用户对我们公司的满意,代码是一下:
程序代码:
using System;
using System.Collections.Generic; using System.Text;
//download by namespace ATM
{
class Account
{
protected string name;
protected string password;
protected decimal balance;
public decimal Balance
{
get
{
return balance;
}
}
public string Name
{
get
{
return name;
}
}
public Account(string name, string password)
{
this.balance = 0;
this.name = name;
this.password = password;
}
public bool Deposit(decimal amount)
{
if (amount <= 0)
return false;
balance += amount;
return true;
}
public bool Deposit(double amount)
{
return Deposit((decimal)amount);
}
public bool Deposit(int amount)
{
return Deposit((decimal)amount);
}
public bool Deposit(decimal amount, out decimal balance)
{
bool succeed = Deposit(amount);
balance = this.balance;
return succeed;
}
public bool Withdraw(decimal amount)
{
if (amount > balance || amount <= 0)
return false;
balance -= amount;
return true;
}
public bool Withdraw(double amount)
{
return Withdraw((decimal)amount);
}
public bool Withdraw(int amount)
{
return Withdraw((decimal)amount);
}
public bool Withdraw(decimal amount, out decimal balance)
{
bool succeed = Withdraw(amount);
balance = this.balance;
return succeed;
}
public bool ChangePassword(string oldpassword, string
newpassword)
{
if (oldpassword != password)
return false;
password = newpassword;
return true;
}
public bool Login(string name, string password)
{
return (this.name == name && this.password == password);
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
//download by namespace ATM
{
class ATM
{
private const string quitCode = "20060824";
private Bank bank;
public ATM(Bank bank)
{
this.bank = bank;
}
public void Start()
{
while (true)
{
// 主界面
printLogo();
Console.WriteLine(" 1. 开户 ");
Console.WriteLine(" 2. 登录 ");
Console.WriteLine("______________________");
Console.WriteLine("");
Console.Write("你的选择(回车结束):");
string code = Console.ReadLine();
//quit system
if (code == quitCode)
return;
if (code == "1") //开户
OpenAccount();
else if (code == "2") //登录
LoginAccount();
}
}
private void LoginAccount()
{
printLogo();
Console.WriteLine(" 请输入你的账号的用户名和密码 ");
Console.WriteLine("____________________________________________");
Console.WriteLine("");
string name = Input("用户名(回车结束): ");
string password = Input("密码(回车结束): ");
//登录账号
Account account;
if (!bank.LoginAccount(name, password, out account))
{
Console.Write("登录错误,请检查用户名和密码是否正确。按Enter键继续...");
Console.Read();
}
else
{
ManageAccount(ref account);
}
}
private void OpenAccount()
{
printLogo();
Console.WriteLine(" 请输入你的账号的用户名和密码 ");
Console.WriteLine("____________________________________________");
Console.WriteLine("");
string name = Input("用户名(回车结束): ");
string password = Input("密码(回车结束): ");
//开户
Account account;
if (!bank.OpenAccount(name, password, out account))
{
Console.Write("开户错误,用户名可能已经存在。按Enter键继续...");
Console.Read();
}
else
{
print("开户", 0, account);
pause();
ManageAccount(ref account);
}
}
private void ManageAccount(ref Account account)
{
while (true)
{
//管理账户界面
printLogo();
Console.WriteLine(" 1.存款 ");
Console.WriteLine(" 2.取款 ");
Console.WriteLine(" 3.查询余额 ");
Console.WriteLine(" 4.修改密码 ");
"); Console.WriteLine(" 5.退出
Console.WriteLine("___________________________");
Console.WriteLine("");
Console.WriteLine("你的选择(回车结束):");
string code = Console.ReadLine();
string s;
decimal amount;
bool succeed;
switch (code)
{
case"1":
amount = InputNumber("\n输入存款数目: ");
succeed = account.Deposit(amount);
if (succeed)
{
", amount, account); print("存入
}
else
{
Console.WriteLine("存款失败~");
}
pause();
break;
case"2":
amount = InputNumber("\n输入取款数目: ");
succeed = account.Withdraw(amount);
if (succeed)
{
print("取出", amount, account);
}
else
{
Console.WriteLine("取款失败~");
}
pause();
break;
case"3":
print(account);
pause();
break;
case"4":
string oldpassword=Input("当前密码(回车结束): ");
回车结束): "); string newpassword=Input("新密码(
succeed=account.ChangePassword(oldpassword,newpassword);
if(succeed)
Console.WriteLine("密码修改成功~");
else
Console.WriteLine("密码修改失败~");
pause();
break;
case"5":
return;
default:
break;
}
}
}
private void printLogo()
{
Console.WriteLine("\n____________________________");
Console.WriteLine("{0}自动取款机 用户第一 服务至上", bank.Name);
Console.WriteLine("\n____________________________");
}
private string Input(string prompt)
{
Console.Write(prompt);
string str = Console.ReadLine();
while (str == "")
{
Console.Write("不能为空,{0}", prompt);
str = Console.ReadLine();
}
return str;
}
private decimal InputNumber(string prompt)
{
Console.Write(prompt);
string s = Console.ReadLine();
decimal amount = 0;
try
{
amount = decimal.Parse(s);
}
catch (Exception)
{
Console.Write("输入的数值格式不正确,请重新输入~");
amount = InputNumber(prompt);
}
return amount;
}
private void pause()
{
Console.Write("按Enter键继续...");
Console.Read();
}
private void print(string operation,decimal amount,Account
account)
{
Console.WriteLine("________________________________");
Console.WriteLine("姓名: {0}",account.Name);
Console.WriteLine("{0}:{1}",operation,amount);
Console.WriteLine("余额: {0}",account.Balance);
Console.WriteLine("________________________________");
Console.WriteLine("{0}成功",operation);
}
public void print(Account account)
{
Console.WriteLine("________________________________");
Console.WriteLine("姓名: {0}",account.Name);
Console.WriteLine("余额: {0}",account.Balance);
Console.WriteLine("________________________________");
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace ATM
{
class Bank
{
protected const int MaxAccountNum = 2048;
protected string name;
protected List
accounts; //用List来定义账号集
public string Name
{
get
{
return name;
}
}
public Bank(string name)
{
this.name = name;
accounts = new List(); //创建集合对象
}
public bool LoginAccount(string name,string password,out Account
account)
{
account=null;
foreach (Account acc in accounts) //检查每一个账号
{
if(acc.Login(name,password))
{
account=acc;
return true;
}
}
return false;
}
public bool OpenAccount(string name,string password,out Account
account)
{
account=null;
foreach (Account acc in accounts)
{
if(acc.Name==name)
return false;
}
account=new Account(name,password);
accounts.Add(account); //增加新的账号
return true;
}
}
}
sing System;
using System.Collections.Generic;
using System.Text;
namespace ATM
{
class Program
{
static void Main(string[] args)
{
Bank bank = new Bank("XYZ银行");
ATM atm = new ATM(bank);
atm.Start();
}
}
}
9参考资料
[1] 项目经核准的计划任务书、合同及上级机关的批文
[2] 项目开发计划
[3] 需求规格说明书
[4] 文档所引用的资料、采用的标准或规范
[5] 作者:张海藩 书名:软件工程导论(第五版)出版社:清华大学出版
社 出版时间:2008-2
[6] 作者:王珊 萨师煊 书名:数据库概论 出版社:高等教育出版社 出版
时间:2006-5
[7] 作者:吴健 郑潮 汪杰 书名:UML基础与ROSE建模案例 出版社:人民
邮电出版社 出版时间:2008-7