1、天津科技大学 2010 届本科生毕业设计1第一章 前言第一节 介绍本课题的目的和意义随着时代的进步,生活节奏的加快,越来越多的人进入银行。在银行业务量爆炸式增长的时候,ATM 已经开始悄悄的走入人们的生活。ATM 机作为银行服务的扩展终端,大大的提高了银行离柜业务办理能力,24 小时为客户提供最基础的银行服务,使得银行客户在面对长长的队伍时有更加主动的选择。ATM 设备已经成为我们日常生活中不可或缺的重要设备。因此我决定学习了解 ATM 设备的工作愿意,探究 ATM 机的工作机制,并自行模拟 ATM 系统能。第二节 国内外发展概况及存在问题随着银行业务的扩展,业务量的增长,人们的生活和银行连接
2、的越来越紧密,这个时候银行的长龙开始出现,银行方面不得不投入巨大的来那个人难以想象的人力和物力来解决个人储户的存取款的问题,在 1969 年汉华银行(Chemical Bank)的一个广告拉开了这场革命的序幕: “我行将在 9 月 2 日早晨九点开门后永不关门!”汉华银行在纽约长岛北村街 10 号的洛克维尔中心(Rockville Centre)设有一家分行。从那天起,凡持该行带磁条塑料卡的客户再也不用排队等候银行出纳员为他们兑现支票。银行在大街的一面墙上安装了一台机器,客户可以通过它随时取款。这个时候第一台真正意义上的 ATM机投入使用,一直到现在,在我国在大街小巷也能看到各个银行的 ATM
3、 柜员机在工作。相比国外国内的 ATM 机起步较晚,ATM(Auto Teller Machine)称自动取款机,实质是一种集光、机、电技术的银行业自动化设备。我国的 ATM 是伴随着银行卡业务的成长而逐步发展起来的,为了满足持卡人在银行营业时间外也能够用卡存、取款,银行投资并安装了 ATM,以此提供 24 小时的自助服务。1987 年 2 月,我国第一台 ATM 在广东珠海投入使用。1993 年我国“金卡工程”启动后,国内银行对 ATM 需求激增。1998 年,全国 ATM 突破 2 万台。进入 21世纪后,ATM 数量速度迅猛。到 2007 年底,中国联网 ATM 机已经达到 12.3 万
4、台,近 5 年国内 ATM 设备保有量实现了年均 20.22%的复合增长,整体 ATM 机市场保有量已经达到 13.8 万台,预计 2011 年会达到 20 万台。ATM 是社会发展过程中电子技术与银行业务完美结合的产物之一,信息技术的创新推动着 ATM 向更加智能化和人性化的方向发展。现在的 ATM 机使用方便、界面更加友好,为广大客户提供了一种便捷的自助服务方式,不但增强了银行服务的灵活性,而天津科技大学 2010 届本科生毕业设计2且提升了银行的整体形象。现在国内主要生产厂家有:广电运通、深圳怡化;广州御银、广州广利、深圳新达通等。虽然起步较晚,但是发展势头良好,在短短的几年之内实现了年
5、均 20%多的增长率。随着 ATM 机功能的复杂化,界面越来越良好。相信会有更加良好的发展前景当然在飞速发展的同时也存在很多的问题(1)没有树立正确的 ATM 经营发展理念大部分商业银行是将 ATM 作为形象宣传或者营业网点的补充,没有树立起一种新的经营理念,对 ATM 缺乏科学管理和经济效益的考核,导致银行在确定ATM 安装选点时没有考虑经济效益,更多地考虑银行形象和减轻网点人员的工作压力。(二)各商业银行对 ATM 管理不规范首先是银行间管理差距较大,有些商业银行的形象设计不够人性化。有的银行功能齐全、形象统一,设备维护保养好;但也有的银行功能单一、外观五花八门,各类操作标识和提示牌随意张
6、贴。其次,对于因 ATM 的设备问题导致客户遇到错账、出钞故障等的解决处理也没有统一的服务承诺。(3)ATM 布局不合理从 ATM 交易量分析,业务量较大的地区主要集中在经济发展热点地区、繁华商业区、大型居民社区、大型批发市场周边,经常出现排队取款的现象。而偏远地区和城填的交易量较小。应该实际状况进行调整,交易量多的地区可以多装,少的地区可以少装或不装,以讲究实效、降低交易成本。(4)目前 ATM 功能单一、技术安全还待进一步提高大多数的 ATM 仅有修改密码、查询、取现等功能。随着中间业务的发展,ATM 应开发多种业务,既方便客户也减轻柜台压力。此外,各地 ATM 技术故障事件屡见报端,如重
7、庆观音桥步行街邮政储蓄 ATM 机取出 48 张同号百元假钞事件、 “许霆案”等第三节 相关技术一 C#3.0 技术简介C#3.0 在原有的基础上改变了很多,再加上和 VS2008 一起推出,绝对有理由进入到一般编程爱好者的视野之中第一个特性:隐式类型化本地变量这个特性非常简单,有些 JavaScript 的影子,我们可以统一使用使用天津科技大学 2010 届本科生毕业设计3“var“关键字来声明局部变量,而不再需要指明变量的确切类型了,变量的确切类型可通过声明变量时的初始值推断出来。这样一来,可以大大简化我们声明局部变量的工作量了。第二个特性:匿名类型有些时候我们需要临时保存一些运算的中间结
8、果,特别是当这些中间结果是由多个部份组成时,我们常常会去声明一个新的类型,以方便保存这些中间结果。表面上看起来这很正常,而细想之后就会发现,这个新类型只服务于这个函数,其它地方都不会再使用它了,就为这一个函数而去定义一个新的类型,确实有些麻烦。第三个特性:隐式类型化数组这个特性是对隐式类型化本地变量的扩展,有了这个特性,将使我们创建数组的工作变得简单。我们可以直接使用“new“ 关键字来声明数组,后面跟上数组的初始值列表。在这里,我们并没有直接指定数组的类型,数组的类型是由初始化列表推断出来的。 第四个特性:对象构造者我们在声明数组时,可以同时对其进行初始化,这样就省去了很多麻烦,但是在创建类
9、的对象时,这招可就不灵了,我们要么调用该类的构造函数完成对象的初始化,要么就手工进行初始化。这两种方法都不太方便,使用构造函数来对对象进行初始化时,我们为了某种灵活性,可能需要编写构造函数的多个重载版本,实在是麻烦。C#3.0 中加入的对象构造者特性,使得对象的初始化工作变得格外简单,我们可以采用类似于数组初始化的方式来初始化类的对象,方法就是直接在创建类对象的表达式后面跟上类成员的初始化代码。第五个特性:集合构造者我们可以在声明数组的同时,为其指定初始值,方法是直接在数组声明的后面跟上初始值列表。这样就使数组的初始化工作变得简单,而对于我们自己创建的集合类型,就无法享受到与普通数组一样的待遇
10、了,我们无法在创建自定义集合对象的同时,使用数组的初始化语法为其指定初始值。 C# 3.0中加入的集合构造者特性,可使我们享受到与普通数组一样的待遇,从而在创建集合对象的同时为其指定初始值。为了做到这一点,我们需要让我们的集合实现 ICollection接口,在这个接口中,完成初始化操作的关键在于 Add函数,当我使用初始化语法为集合指定初始值时,C#编译器将自动调用ICollection中的 Add 函数将初始列表中的所有元素加入到集合中,以完成集合的初始化操作。第六个特性:Lambda 表达式C# 2.0 中加入的匿名代理,简化了我们编写事件处理函数的工作,使我天津科技大学 2010 届本
11、科生毕业设计4们不再需要单独声明一个函数来与事件绑定,只需要使用 delegate 关键字在线编写事件处理代码。而 C# 3.0 则更进一步,通过 Lambda 表达式,我们可以一种更为简洁方式编写事件处理代码,新的 Lambda 事件处理代码看上去就像一个计算表达式,它使用“=“符号来连接事件参数和事件处理代码。我可以这样写:SomeEvent += 事件参数 = 事件处理代码 ;第七个特性:扩展方法当我们需要对已有类的功能进行扩展时,我们通常会想到继承,继承已有类,然后为其加入新的行为。而 C# 3.0 中加入的扩展方法特性,则提供了另一种实现功能扩展的方式,我们可以在不使用继承的前提下实
12、现对已有类本身的扩展,这种方法并不会产生新的类型,而是采用向已有类中加入新方法的方式来完成功能扩展。在对已有类进行扩展时,我们需将所有扩展方法都写在一个静态类中,这个静态类就相当于存放扩展方法的容器,所有的扩展方法都可以写在这里面。而且扩展方法采用一种全新的声明方式:public static 返回类型 扩展方法名 (this 要扩展的类型 sourceObj ,扩展方法参数列表) ,与普通方法声明方式不同,扩展方法的第一个参数以 this 关键字开始,后跟被扩展的类型名,然后才是真正的参数列表。第八个特性:Linq 查询表达式C# 3.0 中加入的最为复杂的特性就是 Linq 查询表达式了,
13、这使我们可直接采用类似于 SQL 的语法对集合进行查询,这就使我们可以享受到关系数据查询的强大功能。Linq 查询表达式是建立在多种 C# 3.0 的新特性之上的二 ADO.NET 连接数据库技术1、 Dataset许多 的工作都是围绕一个对象 dataset 来展开工作的,dataset是从数据库查询得来的缓存信息。dataset 最革命性的特点是它是无连接的并且同时可以存储多个表并且可以定义他们之间的关系。2、 无连接特性无连接特性是 最重要的特点,在先前的连接都是在代码工作的时候保持数据库连接,可以保持即时的更新但是它限制了连接的数目。无连接就不会出现这样的问题。但是无连接也会带一些
14、新的问题,它很容易造成不一致的更新。但是 提供了一套特性来解决这些问题。3、 XML 集成A 很好的支持 XML,当你用 dataset 对象时这个事实可能不是很明显,那是因为 dataset 的内置方法和属性可以很好的完成你需要管理的数据。但是如果你深入研究,你将会发现你接触 dataset 中的信息是作为一个 xml 文天津科技大学 2010 届本科生毕业设计5档。你甚至可以通过修改 XML 来修改值和删除行和增加记录,这个 dataset会立马更新。A 的功能主要依赖于一小部分核心对象的集合。可以将这些对象分成两部分:1、容纳和管理数据的对象(比如 dataset,datatable,d
15、atarow,datareleation)2、用来连接某些数据源(比如 connection,command,datareader 数据容器对象是完全通用的,无论你使用什么数据源,一旦你提取了数据,都是用同一个 dataset 类来存储。第二组对象存在很多不同的形式。数据连接对象的每一个集合都被称为 data provider. Data providers 都是自定义的,所以每一个都用自己最好的表现方式来连接它形相应的数据源。比如说 SQL Server data provider 是为 SQL SERVER 7 或以后版本而设计的。在内部,它用 SQL ServersTDS(tabular
16、 data stream)协议来进行通信,这样就能保证他最好的表现形式常用的编程语言有 C,C+,JAVA 等。(一) CC 语 言 的 特 点 1. 简 洁 紧 凑 、 灵 活 方 便 C 语 言 一 共 只 有 32 个 关 键 字 ,9 种 控 制 语 句 , 程 序 书 写 自 由 , 主 要 用 小写 字 母 表 示 。 它 把 高 级 语 言 的 基 本 结 构 和 语 句 与 低 级 语 言 的 实 用 性 结 合 起 来 。C 语 言 可 以 象 汇 编 语 言 一 样 对 位 、 字 节 和 地 址 进 行 操 作 , 而 这 三 者 是 计 算机 最 基 本 的 工 作 单
17、 元 。 2. 运 算 符 丰 富 C 的 运 算 符 包 含 的 范 围 很 广 泛 , 共 有 种 34 个 运 算 符 。 C 语 言 把 括 号 、赋 值 、 强 制 类 型 转 换 等 都 作 为 运 算 符 处 理 。 从 而 使 C 的 运 算 类 型 极 其 丰 富表 达 式 类 型 多 样 化 , 灵 活 使 用 各 种 运 算 符 可 以 实 现 在 其 它 高 级 语 言 中 难 以 实现 的 运 算 。3. 数 据 结 构 丰 富C 的 数 据 类 型 有 : 整 型 、 实 型 、 字 符 型 、 数 组 类 型 、 指 针 类 型 、 结 构 体类 型 、 共 用
18、体 类 型 等 。 能 用 来 实 现 各 种 复 杂 的 数 据 类 型 的 运 算 。 并 引 入 了 指针 概 念 ,使 程 序 效 率 更 高 。 另 外 C 语 言 具 有 强 大 的 图 形 功 能 , 支 持 多 种 显 示器 和 驱 动 器 。 且 计 算 功 能 、 逻 辑 判 断 功 能 强 大 。4. C 是 结 构 式 语 言 结 构 式 语 言 的 显 著 特 点 是 代 码 及 数 据 的 分 隔 化 ,即 程 序 的 各 个 部 分 除 了天津科技大学 2010 届本科生毕业设计6必 要 的 信 息 交 流 外 彼 此 独 立 。 这 种 结 构 化 方 式 可
19、使 程 序 层 次 清 晰 , 便 于 使用 、 维 护 以 及 调 试 。 C 语 言 是 以 函 数 形 式 提 供 给 用 户 的 ,这 些 函 数 可 方 便 的调 用 ,并 具 有 多 种 循 环 、 条 件 语 句 控 制 程 序 流 向 ,从 而 使 程 序 完 全 结 构 化 。 5. C 语 法 限 制 不 太 严 格 、 程 序 设 计 自 由 度 大 一 般 的 高 级 语 言 语 法 检 查 比 较 严 , 能 够 检 查 出 几 乎 所 有 的 语 法 错 误 。 而C 语 言 允 许 程 序 编 写 者 有 较 大 的 自 由 度 。 6. C 语 言 允 许 直
20、接 访 问 物 理 地 址 , 可 以 直 接 对 硬 件 进 行 操 作 因 此 既 具 有 高 级 语 言 的 功 能 , 又 具 有 低 级 语 言 的 许 多 功 能 , 能 够 象 汇 编语 言 一 样 对 位 、 字 节 和 地 址 进 行 操 作 ,而 这 三 者 是 计 算 机 最 基 本 的 工 作 单 元 ,可 以 用 来 写 系 统 软 件 。7. C 语 言 程 序 生 成 代 码 质 量 高 , 程 序 执 行 效 率 高 一 般 只 比 汇 编 程 序 生 成 的 目 标 代 码 效 率 低 10 20%。 8. C 语 言 适 用 范 围 大 , 可 移 植 性
21、好 C 语 言 有 一 个 突 出 的 优 点 就 是 适 合 于 多 种 操 作 系 统 , 如 DOS、 UNIX,也适 用 于 多 种 机 型 。 用 法 补 充 : C 语 言 对 操 作 系 统 和 系 统 使 用 程 序 以 及 需 要 对硬 件 进 行 操 作 的 场 合 , 用 C 语 言 明 显 优 于 其 它 高 级 语 言 , 许 多 大 型 应 用 软 件都 是 用 C 语 言 编 写 的 。 C 语 言 具 有 绘 图 能 力 强 , 可 移 植 性 , 并 具 备 很 强 的 数据 处 理 能 力 , 因 此 适 于 编 写 系 统 软 件 , 三 维 , 二 维
22、图 形 和 动 画 它 是 数 值 计 算的 高 级 语 言( 二 ) JAVA1 面 向 对 象 : 其 实 是 现 实 世 界 模 型 的 自 然 延 伸 。 现 实 世 界 中 任 何 实 体 都可 以 看 作 是 对 象 。 对 象 之 间 通 过 消 息 相 互 作 用 。 另 外 , 现 实 世 界 中 任 何 实 体都 可 归 属 于 某 类 事 物 , 任 何 对 象 都 是 某 一 类 事 物 的 实 例 。 如 果 说 传 统 的 过 程式 编 程 语 言 是 以 过 程 为 中 心 以 算 法 为 驱 动 的 话 , 面 向 对 象 的 编 程 语 言 则 是 以对 象
23、为 中 心 以 消 息 为 驱 动 。 用 公 式 表 示 , 过 程 式 编 程 语 言 为 : 程 序 =算 法 +数 据 ; 面 向 对 象 编 程 语 言 为 : 程 序 =对 象 +消 息 。 所 有 面 向 对 象 编 程 语 言 都支 持 三 个 概 念 : 封 装 、 多 态 性 和 继 承 , Java 也 不 例 外 。 现 实 世 界 中 的 对 象均 有 属 性 和 行 为 , 映 射 到 计 算 机 程 序 上 , 属 性 则 表 示 对 象 的 数 据 , 行 为 表 示对 象 的 方 法 ( 其 作 用 是 处 理 数 据 或 同 外 界 交 互 ) 。 所 谓
24、封 装 , 就 是 用 一 个 自主 式 框 架 把 对 象 的 数 据 和 方 法 联 在 一 起 形 成 一 个 整 体 。 可 以 说 , 对 象 是 支 持封 装 的 手 段 , 是 封 装 的 基 本 单 位 。 Java 语 言 的 封 装 性 较 强 , 因 为 Java 无全 程 变 量 , 无 主 函 数 , 在 Java 中 绝 大 部 分 成 员 是 对 象 , 只 有 简 单 的 数 字 类型 、 字 符 类 型 和 布 尔 类 型 除 外 。 而 对 于 这 些 类 型 , Java 也 提 供 了 相 应 的 对象 类 型 以 便 与 其 他 对 象 交 互 操 作
25、 。 2 可 移 植 性 : 就 是 在 这 个 系 统 上 作 的 程 序 经 过 一 次 编 译 后 可 以 移 植 到 别天津科技大学 2010 届本科生毕业设计7的 系 统 上 解 释 执 行 , 只 要 经 过 简 单 的 粘 贴 和 复 制 就 行 了 , 不 影 响 程 序 的 效 果 3 安 全 性 : 在 iSeries 服 务 器 上 运 行 的 大 多 数 Java(TM) 程 序 是 应用 程 序 , 而 不 是 applet, 所 以 “砂 箱 ”安 全 性 模 型 对 它 们 不 起 限 制 作 用 。从 安 全 性 的 观 点 看 , Java 应 用 程 序 所
26、 受 的 安 全 性 限 制 与 iSeries 服 务 器上 的 任 何 其 它 程 序 相 同 。 要 在 iSeries 服 务 器 上 运 行 Java 程 序 , 您 必 须对 集 成 文 件 系 统 中 的 类 文 件 具 有 权 限 。 程 序 一 旦 启 动 , 它 就 在 该 用 户 权 限 控制 下 运 行 。 您 可 以 使 用 沿 用 权 限 来 访 问 具 有 运 行 程 序 的 用 户 的 权 限 和 程 序拥 有 者 权 限 的 对 象 。 沿 用 权 限 临 时 地 将 用 户 原 先 无 权 访 问 的 对 象 的 权 限 授 予用 户 。 4 并 发 性 :
27、 JAVA 支 持 多 线 程 技 术 , 就 是 多 个 线 程 并 行 机 制 , 多 线 程 是Java 的 一 个 重 要 方 法 ,特 别 有 利 于 在 程 序 中 实 现 并 发 任 务 .Java 提 供Thread 线 程 类 ,实 现 了 多 线 程 的 并 发 机 制 .然 而 ,程 序 的 并 发 执 行 必 定 会 出 现多 个 线 程 互 斥 访 问 临 界 资 源 的 局 面 ,因 而 并 发 系 统 解 决 的 关 键 就 是 对 临 界 资源 的 管 理 和 分 配 问 题 ,而 在 进 行 临 界 资 源 分 配 时 有 两 方 面 需 要 考 虑 ,即 安
28、 全性 和 公 平 性 .文 中 首 先 讨 论 了 多 线 程 并 发 系 统 中 的 安 全 性 与 公 平 性 问 题 ,指出 安 全 性 与 公 平 性 在 并 发 系 统 中 访 问 临 界 资 源 时 的 重 要 性 .并 通 过 火 车 行 驶单 行 隧 道 的 实 例 ,演 示 各 种 条 件 下 的 行 驶 情 况 来 进 一 步 说 明 该 问 题 。( 三 ) RubyRuby 语 言 的 主 要 特 点 如 下 。 1 纯 的 面 向 对 象 语 言 在 Ruby 中 , 一 切 皆 是 对 象 。 下 面 举 一 个 例 子 来更 直 观 地 说 明 Ruby 语 言
29、 的 这 一 特 点 。 在 Java 中 , 求 一 个 数 的 绝 对 值 的代 码 如 下 。 int c = Math.abs(-20); 而 在 Ruby 语 言 中 , 一 切 皆 是 对 象 ,也 就 是 说 “-20”这 个 数 也 是 一 个 对 象 , 因 此 , 求 一 个 数 绝 对 值 的 Ruby 代码 形 式 如 下 。 c = -20.abs 这 样 的 代 码 编 写 方 式 是 不 是 更 形 象 一 些 呢 ? 2 解 释 型 脚 本 语 言 Ruby 语 言 是 解 释 型 脚 本 语 言 , 它 既 有 脚 本 语 言 强 大 的字 符 串 处 理 能
30、 力 和 正 则 表 达 式 , 又 不 失 解 释 型 语 言 的 动 态 性 。 一 方 面 , 在 最初 设 计 Ruby 语 言 时 , Ruby 的 研 发 者 松 本 行 弘 考 虑 到 文 字 处 理 方 面 的 需 要 ,他 借 鉴 了 Perl 语 言 在 文 字 处 理 方 面 的 成 功 经 验 。 另 一 方 面 , 松 本 行 弘 将Ruby 语 言 设 定 为 一 种 解 释 型 语 言 , Ruby 的 动 态 性 使 得 由 Ruby 语 言 编 写 的程 序 不 需 要 事 先 编 译 即 可 直 接 运 行 , 这 为 程 序 的 调 试 带 来 了 方 便
31、 。 同 时 , 这一 特 点 可 以 实 现 开 发 过 程 中 的 快 速 反 馈 。 3 其 他 特 点 ( 1) 动 态 载 入 。 可 以 在 运 行 时 候 重 定 义 自 己 , 类 也 可 以 在运 行 时 继 承 或 取 消 继 承 。 ( 2) 自 动 内 存 管 理 机 制 。 (3) 多 精 度 整 数 。 ( 4) 迭 代 器 和 闭 包 。 ( 5) 开 源 项 目 。 有 大 量 活 跃 的 社 区 支 持 Ruby 语 言( 四 ) C+天津科技大学 2010 届本科生毕业设计8C+语 言 既 保 留 了 C 语 言 的 有 效 性 、 灵 活 性 、 便 于
32、移 植 等 全 部 精 华和 特 点 , 又 添 加 了 面 向 对 象 编 程 的 支 持 , 具 有 强 大 的 编 程 功 能 , 可 方 便 地 构造 出 模 拟 现 实 问 题 的 实 体 和 操 作 ; 编 写 出 的 程 序 具 有 结 构 清 晰 、 易 于 扩 充 等优 良 特 性 , 适 合 于 各 种 应 用 软 件 、 系 统 软 件 的 程 序 设 计 。 用 C+编 写 的 程序 可 读 性 好 , 生 成 的 代 码 质 量 高 , 运 行 效 率 仅 比 汇 编 语 言 慢 10% 20%。C+语 言 具 有 以 下 特 点 :(1) C+是 C 语 言 的 超
33、 集 。 它 既 保 持 了 C 语 言 的 简 洁 、 高 效 和 接 近 汇 编语 言 等 特 点 , 又 克 服 了 C 语 言 的 缺 点 , 其 编 译 系 统 能 检 查 更 多 的 语 法 错 误 ,因 此 , C+比 C 语 言 更 安 全 。(2) C+保 持 了 与 C 语 言 的 兼 容 。 绝 大 多 数 C 语 言 程 序 可 以 不 经 修 改 直接 在 C+环 境 中 运 行 , 用 C 语 言 编 写 的 众 多 库 函 数 可 以 用 于 C+程 序 中 。(3) 支 持 面 向 对 象 程 序 设 计 的 特 征 。 C+既 支 持 面 向 过 程 的 程
34、序 设 计 ,又 支 持 面 向 对 象 的 程 序 设 计 。(4) C+程 序 在 可 重 用 性 、 可 扩 充 性 、 可 维 护 性 和 可 靠 性 等 方 面 都 较C 语 言 得 到 了 提 高 , 使 其 更 适 合 开 发 大 中 型 的 系 统 软 件 和 应 用 程 序 。第二章 系统概述本 ATM 机模拟管理系统主要实现 ATM 机的取现、查询、转账、修改密码功能。第一节 系统及需求分析一 系统需求:通过调查,要求系统要有以下功能:(1) 由于操作人员的计算机知识水平参差不齐,要求有良好的人机交互界面。(2) 信息显示格式清晰,达到一目了然的效果。(3) 按钮的位置尽量
35、在醒目位置。(4) 方便数据查询,支持多条件查询和模糊查询。二 可行性分析:经过调查、研究、分析、计算,在 ATM 机模拟系统中的应用已经条件成熟,我将从以下几个方面总结系统开发的可行性,就具体情况如下:1技术可行性以 Windows 为操作系统,运用 SQL SERVER2000 的数据库技术,开发以天津科技大学 2010 届本科生毕业设计9Windows XP 为用户的操作平台,界面友善、功能齐全的ATM 机模拟系统 。新系统的运行硬件环境 PC 机,当用户使用系统时,通过正确的用户名及密码进入系统,进行数据库的维护操作和运用。2经济可行性一方面,新系统中有好的人机界面和更强劲的功能支持,
36、会使管理人员的工作进一步提高,从而节省人力、物力,进而提高经济效益;另一方面,系统开发成本低,现有 PC 机即可提供该系统开发工作需要的所有硬件设备环境。3操作可行性主要使用简单的几个按钮,还有数字键来进行操作,方便简洁。能做到一目了然。第二节 系统设计的背景随着时代的进步,社会生产力高速发展,新技术层出不穷,信息量急剧膨胀,整个人类社会已成为金融化信 息化的社会,并开始朝着自动化智能化发展。以往人们去银行存款取款进行各种财务处理都必须通过柜台,随着越来越多的人们进入银行,使用银行的服务,使银行出现了工作效率低,顾客等待时间过长等等问题,既加大了银行工作人员的工作量,又使得人们享受银行服务的质
37、量大幅度降低,所以银行交易的自动化智能化已经成为了一个不可逆转的趋势,而且必将成为各个银行今后发展的重点。ATM 机作为银行服务的扩展终端,大大的提高了银行离柜业务办理能力,24 小时为客户提供最基础的银行服务,使得银行客户在面对长长的队伍时有更加主动的选择。ATM 设备已经成为我们日常生活中不可或缺的重要设备。因此我决定学习了解 ATM 设备的工作愿意,探究 ATM 机的工作机制,并自行模拟ATM 系统能。第三节 系统的功能简介经过对比真实的银行提款机系统,同时方便系统程序的使用者,在经过分析后,本系统需要实现以下的几种任务:1.两种语言选择:可以选择中文和英文两种语言服务。2.数据库管理功
38、能:提供一个可直接在前台管理用户信息的界面。3.身份认证:每个用户对应自己的登录口令。不能修改和查看他人帐号的内容。4.密码修改:用户可以对自己的账户口令进行修改。5.取款:辨认用户输入的取款金额是否正确。6.存款:辨认用户存入的金额是否正确。天津科技大学 2010 届本科生毕业设计107.转帐:与系统中其他用户进行转账,需要对象用户同样存在于数据库中。8.查询余额:查询自己的余额。9.查询交易明细:用户可以查询自己账户的过往操作记录,并打印。以上是本系统在功能呢方面的需求,根据这些需求设计了各个功能模块,各功能模块的详细设计及实现将在以后章节中进行详细的分析和介绍。第四节 系统开发的目标在对
39、现有系统和现状认真调查分析的基础上,明确了 ATM 机模拟系统工作本身存在的问题和建立管理信息系统的初步要求,进一步研究确定新系统的开发目标如下:1 按照管理信息系统的原理和方法,采用成熟的信息技术和手段,支持 ATM 工作的全过程,提高了银行处理业务的能力,提高管理效率。2 针对现代计算机广泛应用的情况以及数据的封闭性,ATM 机模拟系统基于Windows 系统研制、设计和开发。3 考虑经费等原因,新系统使用 PC 机和现有其他打印设备以节省资金,降低成本。4 由于这是一个模拟系统所以对安全性方面的考虑较差,数据库为了方便并没有采取加密方式,实际应用的时候应当注意安全性方面。天津科技大学 2
40、010 届本科生毕业设计11第三章 系统分析第一节 业务流程分析WINDOWS XP 是时下最流行的电脑操作系统稳定性安全性都非常不错,而随着 ATM 提款机逐步采用个人电脑,以及性能的升级,WINXP 也有了可能成为这些提款机的操作系统,所以本次系统也在 WINXP 下进行开发。由于需要开发出前台客户友好界面及后台数据库系统,而对于前台只要能满足其界面开发需要即可,所以我采用了相对简单易用并且功能强大的 VB6.0,后台数据库则采用了与之相连方便且功能同样强大的 SQLSERVER2000。采用以上两个开发软件完全能够满足 ATM 模拟系统的开发需要。系统主要是由前台(客户操作界面)与后台(
41、数据库)两个部分组成:业务流程图:天津科技大学 2010 届本科生毕业设计12用户登陆身份验证选择服务查询余额 取款 转账 修改密码 查询明细退出存款选择语言 管理登陆管理界面图 3.1 影院管理系统业务流程图第二节 数据流程分析数据流图是在对系统分析调查的基础上,以系统的科学性、管理的合理性、技术的可行性角度出发,将信息处理功能和彼此之间的联系,自顶向下、逐层分解,从逻辑上精确的描述具有的数据加工功能、数据输入、数据输出、数据存储及数据的来源和去向。影院管理系统经划分出各子系统及其各自的功能,以及相互联系,绘制出的数据流图如下:影院管理系统数据流图:天津科技大学 2010 届本科生毕业设计1
42、3用户 ATM 机模拟系统 用户数据密码正确 修改图 3.2 ATM 机模拟系统顶层数据流图第四章 系统设计第一节 网站结构模块设计1)系统前台设计前台部分整个代码程序采用一个主模块,在里面定义程序全局变量,把各种功能函数写入其中,每个界面制作一个独立窗体,在各个窗体代码中来调用主模块中的各个函数来,来实现相应功能。具有类似功能的界面之间采用了窗口的复用,如返回错误窗口的Form3能够根据各个功能返回的不同错误来显示相应的错误信息。同时前台提供两种语言界面的选择。 在控制界面语言的选择时用到两种方式,一种是已经写好中文界面,当选定语言种类为英文时,通过变量控制界面语言天津科技大学 2010 届
43、本科生毕业设计14换为英文。另一种是只有界面的框架,没有已经写好的内容,一开始登陆的时候选择哪种语言,就给界面赋值为哪种语言。2)后台数据库设计经过充分考虑,认为系统并不需要非常复杂的数据库系统就能够达到模拟ATM系统的效果,所以建立了一个名为AYUATM的SQL服务器,创建了名为USER的数据库,用户登陆名为sa密码为空,并在ODBC数据源中将USER数据库添加进去。其中实际上只运用到两个表,一个用户信息表和一个用户操作表。图2-2-1用户信息表用户信息表(如图2-2-1 )用以存放用户的卡号,密码,存款金额等信息,由于该系统只是为了模拟运用,故对安全性的要求并不高,所以密码采用了明文方式存
44、放,便于使用与查看。本次模拟系统同时还具有创建新用户的功能,可以通过管理界面对后台的数据库进行简单的管理,如添加和删除用户。当然现实中的ATM机的这项功能肯定是不对普通用户开放的,银行的数据全部存在于分行的计算机中,ATM只是与银行数据库的一个交互式作用。 天津科技大学 2010 届本科生毕业设计15图2-2-2用户操作表用户操作表(如图2-2-2)则用来记录用户在 ATM机上所使用的服务,它包括了所有用户对自己账户的操作信息,包括时间,操作类型,金额,转帐卡号,成功与否等等。用户查询明细与打印清单的功能就是通过搜集检索这张表来实现。同时管理人员也可以从这张表上很方便的查阅用户使用情况。当然,
45、真实的银行ATM系统,其后台的数据库系统肯定是十分庞大的一个系统,对保密性的要求也非常的高,在这次的模拟中当然不可能达到那样的要求。天津科技大学 2010 届本科生毕业设计16系统功能的实现系统功能的实现包括18个窗口文件和一个模块文件,每个窗口分别实现各个实际功能,以及主要功能函数的调用。模块里定义窗口中使用的各种自定义函数,包括身份验证函数Checkuser、修改密码函数Changewd、操作写入数据库函数InsertDatabase、取款函数TakeMoney、存款函数Save、余额查询函数Qurey、转账函数trans和 trans2。具体函数实现方式在各个窗口中会具体来说明。重要全局
46、变量在程序设计时,一些全局变量发挥了重要的作用。下面介绍其中起到关键作用的部分变量。整型变量i是本系统实现中英文界面的重要变量,i=2代表中文、i=1代表英文,欢迎界面(图3-2-1 )选择语言时,会将i赋予相应的值,以实现中英文的功能。若不设置这个变量,每个界面的功能都要有两个窗口来实现,代码重复,功能相同。i的存在不仅代表中英文界面的基本成型,更重要的是简化了程序代码,将窗口数量缩减了一倍,代码更加简洁优化。字符串型变量j的每个值代表着系统中的每个操作, j=1代表取款操作,j=2代表修改密码操作,j=3代表转账操作、 j=4代表查询余额操作、 j=5代表查看交易清单操作、j=6代表存款操
47、作。 j的值具体应用于用户操作表的插入中,每次操作将插入代表其操作内容的信息,是变量文字的很好的相互转化媒介。字符串型变量u,这是登陆验证、信息查询等各种操作安全行的重要变量。通过登陆时输入的卡号值赋给u,之后的操作都将围绕这个卡号来运行,保证每个用户只能对自己相应的卡号来进行操作,不能进入到其他人的页面,也不能对其他用户的信息查询和修改。欢迎界面实现 在欢迎界面(图3-2-1)我们可以自由的选择两种语言,分别为我们最常用的中文和英语,语言种类选择后,通过上述变量i对接下来的操作区分中英文。任意点击一种服务都将进入登陆界面。由于中英文仅是提示语言不同,功能实现完全相同,以后功能介绍时仅以中文界
48、面为例。点击中文按钮i值赋予2,点击English按钮i将被赋予1并进入相应语言的登陆界面进行操作。管理系统也是由此窗口进入,具体功能将在后面进行介绍。退出系统将结束程序运行。天津科技大学 2010 届本科生毕业设计17图3-2-1欢迎界面登陆的实现下面请看登陆界面:天津科技大学 2010 届本科生毕业设计18图3-3-1登陆界面(中文)图3-3-1所示的就是登陆界面的窗口,用户应在相应的TextBox中输入自己的卡号和密码。密码和卡号的格式是受限的,卡号为8位,密码为6位,点击确认按钮时,将实现对其的检测,若不符合条件则进入错误输出界面form3,显示相应的错误信息。重输按钮将TextBox
49、内容清空,语句为 text1.text=”。本窗口要重点说明的是模块中验证身份函数Checkuser函数Checkuser函数的代码如下:Public Sub Checkuser() Dim strr As StringSet CON = New ADODB.Connection /设置CON为新的ADO连接对象strr = “Provider=SQLOLEDB.1;Password= ;Persist Security Info=True;User ID=sa;Initial Catalog=user;Data Source=(local)“ /这里采用的是SQL OLEDB应用接口CON.Open strru = Form2.Text1.Textstr = “select 密码 from 用户信息 where 卡号=“ & u & “ /只打开密码列Set RS = New ADODB.RecordsetRS.Open str, CON, adOpenDynamic, adLockPe