atm取款机实训文档

合集下载

ATM模拟机测试文档

ATM模拟机测试文档

七、测试计划1.引言 (1)1.1编写目的 (1)1.2项目背景 (2)1.3定义 (2)1.4参考资料 (2)2.任务概述 (2)2.1目标 (2)2.2运行环境 (2)2.3需求概述 (2)2.4条件与限制 (3)3.计划 (3)3.1测试方案 (3)3.2测试准备 (3)3.3测试机构及人员 (3)4.测试过程 (3)普通用户模块测试....................................................................... 错误!未定义书签。

管理员用户模块测试 (3)超级管理员用户测试模块 ............................................................ 错误!未定义书签。

5.评价 (6)5.1范围 (6)5.2准则 (6)1.引言1.1编写目的本测试计划的目的是:ATM模拟机系统是否达到设计要求。

能够完成普通用户模块、管理员模块和超级管理员模块功能。

本测试计划的读者为:参加单元测试和系统测试的测试人员。

1.2项目背景待开发项目名称:ATM自动取款机系统的分析与设计委托人:郭玉柱老师开发小组:第十小组开发人员:程廷华彭淑敏欧阳航1.3定义详细请参照《ATM模拟机用户手册》以及《第10组-ATM需求分析说明书》1.4参考资料1.李龙澍、郑诚《软件工程课程设计》机械工业出版社出版时间2011年2.任务概述2.1目标通过编写测试计划我们要尽量达到测试成本最小化、测试流程和测试内容完备化、测试手段可行化和测试结果实用化的理想目标。

测试计划要针对测试目的来规定测试的任务、所需的各种资源和投入、人员角色的安排、预见可能出现的问题和风险 以指导测试的执行 最终实现测试的目标 保证软件产品的质量。

2.2运行环境拥有JDK和Myeclipse开发环境的计算机即可运行本软件。

2.3需求概述人员需求:3个人硬件需求:一台电脑软件需求:jdk mySQL eclipse2.4条件与限制测试环境包括硬件环境和软件环境 硬件环境指测试必需的服务器、客户端、网络连接设备以及打印机/扫描仪等辅助硬件设备所构成的环境 软件环境指被测软件运行时的操作系统、数据库及其他应用软件构成的环境。

UML实验1ATM自动取款机用例图

UML实验1ATM自动取款机用例图
(2)进行绘制用户用例图
么是一个类?
因为uml的参与者要做为用户,进行管理。它对系统由参与操作。
2.如何命名一个用例?
(3)查询余额
(4)转帐
(5)修改密码
(6)打印收据
2.绘图步骤:
下面介绍在Rose中创建用例图的过程:
(1)在“Use Case View“中双击Main图,或者右击“Use Case View“,弹出在快捷菜单中选择“New”->“UseCase Diagram”,双击图标,出现图1,为编辑用例图做好准备。
实验1 用例图
实验目的:
1.学会分析系统中的参与者和用例
2.掌握用例图的绘制方法
实验学时
4学时,必做。
实验内容:
画出ATM系统的用例图
实验步骤:
1.分析
ATM自动取款机:客户可以取钱,存钱,查询余额,转帐,修改密码。
通过分析可找出如下几个参与者:
1.ATM
2.客户
通过分析得到如下用例:
(1)存款
(2)取款

ATM自动取款机

ATM自动取款机

Java课程设计报告项目:ATM自动取款机姓名:学号:10592235班级:10级网络二班分数:项目说明目录第一部分、项目整体概述………………………………………………页第二部分、数据库信息描述……………………………………………页第三部分、自己承担部分的实验报告………………………………页第四部分、心得体会……………………………………………………页一、项目整体概述我们的ATN机系统设计的实现根据结构程序设计原理,将每个模块的功能用相应的标准语句表示出来。

包括代码设计、数据库设计、用户界面设计、处理过程设计。

代码设计是指把系统管理对象数字化或字符化,便于计算机的处理。

遵照代码设计的原则:合理性、简明性、系统性、稳定性、可扩充性、标准化、便于识别和记忆。

数据库设计指对系统所采用的数据模式、子模式、应用程序、数据库等根据用户的具体要求进行分析和设计。

它也是管理信息系统设计的重要组成部分。

数据库设计的基本原则是尽可能提高数据组织的相对独立性,简化其结构,即用规范化方法设施数据存储的结构,提高数据的可维护性、完整性、一致性。

通过收集和分析用户需求,确定了数据库要保存的信息。

我们这次实训课设计的ATM机,主要应用java图形用户界面开发的知识,主要界面有欢迎界面,登陆界面,选择业务界面和退出,其中选择业务界面又包括修改密码,取款服务和查询余额。

能让人们通过我们的设计完成想要的操作。

为人们带来方面。

(1)模拟ATM柜员机程序;(2)欢迎界面点击Login(登录)跳到登陆界面,点击quit(退出)则退出。

(3)登陆界面包括输入卡号和密码,不正确时则不能进入提示没有该用户名称或密码错误,请核对后重新输入。

当密码和用户名都正确时则进入选择服务界面。

(4)选择页面可以选择修改密码,查询余额,和取款3个服务。

(2)修改密码。

当用户需要修改密码时,可以用这个功能,新密码不能为空,确定密码时不能为空,旧密码必须正确,且新密码和确定密码两次输入相同的情况下才可以成功修改密码。

XX银行ATM取款机项目文档

XX银行ATM取款机项目文档

xx信息技术有限公司项目实施规范项目名称:XX银行ATM取款机版本:1.01 系统叙述为了提高银行信息化水平,促进银行的规范化、制度化、流程化,XX银行决定实施ATM 取款机系统。

希望通过这个系统的实施方便快捷存取款业务,对开户、取款、存款、查询余额、转帐等加以规范。

1.1 目的本文档是XX某信息技术有限公司在XX单位的人力资源管理系统合同基础上编制的。

本文档的编写为下阶段的设计、开发提供依据,为项目组成员对需求的详尽理解,以及在开发开发过程中的协同工作提供强有力的保证。

同时本文档也作为项目评审验收的依据之一。

2 系统说明2.1 概要设计设计数据库模型的E-R 图,确认需求信息的正确性和完整性。

2.2 数据库字典数据库名称:BankATM用户信息表(BankUserInfo )字段名作用数据类型约束备注UserId 用户编号 Int 主键 自动增长(1,1)UserName 用户名 Varchar(20) 必填IDCard 身份证号 Varchar(20) 唯一 只能是18或15位Telphone 联系电话 Varchar(20) 必填 Address居住地址Varchar(100)可选输入银行卡信息表(BankCardInfo)用户名身份证号 联系居住交易日期 卡号 交易类型 交易金额用户信息表交易信息表卡号顾客编货币种类开交银行卡信息表存款开户日期 开户金额 余额密码 是否挂失I MM I用户 编号备注交易信息表(TransactionInfo)3 系统说明3.1常规业务●修改密码。

●银行卡挂失。

●统计银行的资金流通余额即总存入-总支出。

●查询本月开户的卡号,显示该卡相关信息。

●查询本月交易金额最高的卡号。

●查询挂失帐号的客户信息。

●催款提醒业务,查询账上余额小于200的客户姓名、电话、卡余额。

3.2视图●创建视图(view_BankUserInfo),显示用户编号、用户名、身份证号、电话号码、居住地址。

自动取款机实践报告

自动取款机实践报告

实验一ATM机自动取款机业务系统数据流图与原型实验报告姓名:学号:班级:编写:目录1 数据流图和原型界面统计 (1)2 ATM自动柜员机业务系统需求模式 (2)3 ATM自动柜员机系统数据流图 (3)3.1顶层数据流图3.2一层数据流图3.3二层数据流图3.4三层数据流图3.5四层数据流图3.6五层数据流图4自动取款机原型徐彤 (4)4.1等待界面4.2登录界面4.3吞卡界面4.4功能选择界面4.5操作界面4.6取款界面4.7存款界面4.8查询界面4.9打印凭条界面4.10转账界面4.11改密码界面4.12交易成功界面4.13取卡界面5实验体会 (23)2 ATM自动取款机系统需求分析需求分析:由于科技迅速发展,安全问题越来越重要,几乎所有银行都配置了简单的人工操作的ATM的自动取款机,人们可以随时随地的进行交易,不再受银行的服务时间所约束,但是一张银行卡,一串密码已经很难满足安全问题,新兴自动取款机会保证更高的安全问题。

ATM机系统的主要功能: 16中条件判断识别取款修改密码凭条打印转账余额查询交易明细查询等1:16种情况识别判断保证财务安全问题,余额不足时不能取款所需的现金。

ATM机可以提供指定金额的快速的取款界面,ATM机取款成功后要向银联系统写入操作,并且对客户的余额进行相应处理。

2:存款ATM机要能自动清点现金,将相应的操作信息写入银联系统,并且对相应的客户的余额进行相应的修改,之后上银联系统。

3;修改密码若新密码1和新密码相同则修改密码,要修改客户的密码表,并且将操作信息写入银联系统,否则修改密码不成功。

4 转账完成不同的银行卡之间的签约条例进行间接转账,若客户余额不足时则转账识别进行相应提示,转账成功,对客户和收账人的余额进行相应的修改,写入账户余额表,并并且向银联系统进行相应的写入操作。

ATM机工作流程插入卡->16种身份识别->选择操作类型交易流程->确定交易->写入账户信息和银联系统3 ATM自动取款机的数据流图3.1顶层数据流图客户插入银行卡后开始识别所属的银行和账户信息,并且启动摄像系统,识别后开始校验客户输入的密码,还有人脸识别信息,眼球识别信息,指纹识别信息,进行16种情况判断,若全部正确则进行ATM机自检,去掉暂时不能输入的操作,让用户选择操作,若情况不全不正确,进行15种情况判断,进行相关操作。

Java实习报告材料(ATM自动柜员机)

Java实习报告材料(ATM自动柜员机)

JA V A实习报告一、实习目的1、将所学知识进行一个系统的联系。

2、培养学生分析问题和解决问题的能力,为学生提供了独立实践的机会。

3、理论联系实际,巩固所学知识,提高学生处理处理实际问题的能力。

4、进一步培养学生面向对象程序设计的思想。

5、将所学知识与社会实际现象相联系,使学生更清楚java的用途。

二、实习地点安康学院经济与管理系7405实验室三、实习内容1、题目ATM自动柜员机模拟程序2、功能介绍ATM自动柜员机包括以下操作内容:修改账号密码、余额查询、A TM取款、ATM存款四、实习过程1、选题阶段根据自己的学习情况和个人爱好选择要设计的内容,经过反复判断抉择我最后的实习项目选择是:A TM自动柜员机模拟程序2、分析题目要求的功能阶段针对题目和现实情况列出程序的功能,然后对每一个功能进行分析,画出草图,并列出每一个功能能的要求。

账号登陆:银行账号和初始密码为“123456”修改密码:旧密码等于原密码,新密码必须不小于6位,并且新密码两次输入的一致查询余额:初始余额为10000元ATM取款:取款的金额必须为100的倍数,不大于5000元,并且不能大于余额ATM存款:存款的金额不能为负数3、制定方案阶段画出每一个功能模块的草图(1(3)略(4)略(5)略画完草图后分析如何实现各个功能,并想出如何将各个功能块组合4、编写程序和调试阶段按照第三步和第四步的分析编写程序代码,每完成一个模块运行一次,不断的更改完善直到与分析的结果一直为止,然后完成后面的模块代码,每编写一都和前面的相联系,最后完成一个完整的程序。

(程序代码见附录1)5、编写实习报告阶段根据学院规定的实习报告格式和实际完成的内容编写实习报告。

五、完成的内容1、编写了一个ATM自动柜员机系统,可以进行密码修改、余额查询、取款和存款业务操作。

2、完成了一份实习报告六、实习心得经过短短两天的实习,我第一次体会到了java的用途和乐趣。

学了一学期的java,一直都是做小小的程序实现一个小小的功能,经过这次的实习,我将java中学到的好多部分融合到了一起完成一个完整的程序,实现了很多的功能,找到了很多的乐趣。

ATM业务操作培训

ATM业务操作培训

A TM业务操作培训一、定义及系统结构1.1 定义【ATM】:自动提款机(Automatic Teller Machine)。

【ATMC】:运行在ATM中的控制软件(ATM Control)。

ATM 所作的一切动作都是由它向硬件发送指令完成的。

【ATMP】:ATM前置系统(ATM Preconsole)是一种通信前置系统,它界于主机业务系统和ATM之间,主要用于实现ATM设备管理、通信方式规范化、交易报文格式转换与转发等功能。

【网络设备】:MODEN(调制解调器),ROUTER(路由器,网关),HUB(集线器),SWITCH(交换机)。

1.2系统结构概述简要了解ATM的系统结构。

见下图:系统结构图以太网“统一版本”省中心主机系统省区域性中间业务平台系统以太网省中心业务控制台技术控制台省监控台硬件加密机A T M /C D MP O SM O B I L E自助查询机补登折机D D N /F R /P S T N市、县监控台以太网“统一版本”全国中心主机系统开放式基金、保险系统全国监控控制台全国中心D D N /F R /P S T N区域银联中心A T M /P O S /银联前置系统电子汇兑全国中心系统电子汇兑前置系统二、后台加钞操作和维护菜单概述我局的ATM有四种机型:迪堡、广电运通、御银、晓星。

这四种机型在国家局统版后,用户界面相同;加钞的流程相同;在后台对ATM机具体操作上大致相同因机型不同有很小的区别。

2.1、加钞流程(具体加钞见下发的规定程序)在柜台储蓄综合柜员里确保留有足够加钞的资金;取出钞箱、废钞箱,清点好剩钞并加装好要数的钞票;进入后台维护菜单,按中文提示做扎账、清机加钞、清卡、清除故障等步骤;退出系统,恢复正常用户界面。

2.2、后台维护菜单ATM维护菜单根据登录的操作员身份不同区分为业务管理菜单和技术管理菜单。

每个菜单都需要输入密码才能进入。

业务管理员的初始密码为:000000。

自动柜员机业务培训

自动柜员机业务培训

自动柜员机业务培训一、引言自动柜员机(ATM)作为现代银行业务的重要组成部分,已经成为人们生活中不可或缺的一部分。

为了提供更好的服务质量和用户体验,银行机构需要对其员工进行专业的自动柜员机业务培训。

本文将从ATM的基本功能、操作流程和常见问题解答等方面进行介绍。

二、ATM的基本功能1. 存款:用户可以通过ATM将现金存入银行账户。

操作流程包括选择存款选项、输入存款金额、放入现金等。

2. 取款:用户可以通过ATM提取账户中的现金。

操作流程包括选择取款选项、输入取款金额、确认身份等。

3. 转账:用户可以通过ATM将资金从一个账户转移到另一个账户。

操作流程包括选择转账选项、输入转账金额、输入收款人账号等。

4. 查询余额:用户可以通过ATM查询账户的余额。

操作流程包括选择查询选项、输入查询密码等。

5. 修改密码:用户可以通过ATM修改登录密码。

操作流程包括选择修改密码选项、输入原始密码、输入新密码等。

三、ATM的操作流程1. 验证身份:用户需要通过ATM卡插槽插入自己的银行卡,并输入相应的密码或使用指纹、人脸识别等身份验证方式。

2. 选择业务:用户可以根据需要选择相应的业务,如存款、取款、转账、查询余额等。

3. 输入金额:根据所选业务,用户需要输入相应的金额,如存款金额、取款金额、转账金额等。

4. 操作确认:用户需要确认输入的金额和相关信息是否正确。

5. 完成业务:ATM机会根据用户选择的业务,在系统中进行相应的处理,并打印交易凭证。

四、ATM常见问题解答1. 如何保护ATM机和个人账户的安全?答:用户需要谨慎保管自己的银行卡和密码,不要将密码泄露给其他人,并定期更换密码。

在使用ATM机时,应确保周围环境安全,避免被窃听或被他人偷窥密码。

如果发现有可疑人员在附近或ATM机有异常情况,应及时报告银行工作人员。

2. 如果ATM机出现故障,该如何处理?答:如果ATM机出现故障或无法正常操作,用户可以寻找附近的银行工作人员协助解决问题。

ATM培训教材

ATM培训教材

答:opteva取款机和1000系列取款机钞箱一 般建议新钞放2300张,旧钞放2000张。放太 多钞容易造成吐钞机和钞箱故障。
常用客户技术问答-2

问:diebold取款机,一次可以吐多少张钞? 答:diebold取款机,设计上一次最多可以吐50 张纸币,但一般建议一次最多吐30张纸币
问:diebold ATM产品是否符合国家“3C”标准? 答:diebold 所有ATM产品,全部符合国家“3C” 标准。(如果银行需要相关证明,可以让 DIEBOLD市场销售提供,市场销售可以向 diebold北京市场部庞希坚索取)
345
345 355 345 345 369 375 410 550
/
/ / 750 850 / 755 / /
/
/ / 845 945 / 875 / /
型号 500 510 512 520
ATM重量表
重量(千克) 391 397 397 525
480① 510② 431① 454②
560
562 720 760 3030



更改保险箱密码锁-1
------------更改出厂预设密码50-25-50至新密码

将保险门打开,并保持保险门的打开状态,锁上密码锁。 逆时针转动密码锁转盘,第一密码(50)的位置必须经 过密码更改指示三次及在第四次时准确地对准密码更改 指示 顺时针转动密码锁转盘,第二密码(25)的位置必须经 过密码更改指示二次及在第三次时准确地对准密码更改 指示。 逆时针转动密码锁转盘,第三密码(50)的位置必须经 过密码更改指示一次及在第二次时准确地对准密码更改 指示。
系列号
1500FDCXXXXX 1510FDCXXXXX 1512RDCXXXXX 1520FDCXXXXX 1560RDCXXXXX 1562RDCXXXXX 1720FDCXXXXX 1760RDCXXXXX

银行ATM自动取款机模拟系统实验报告

银行ATM自动取款机模拟系统实验报告

西安科技大学《VC++语言程序设计》实验报告题目 __科学计算器的实现______ 院、系(部)计算机科学与技术学院专业及班级软件工程1102班姓名赵文杰日期 2012/11/91.题目:科学计算器2.功能需求:这是计算器,在满足用户需求方面应有以下功能:1)进行简单的加、减、乘、除;2)进行函数运算如sin、cos、tan函数;3)可进行进制转换、及弧度运算;3.总体设计4.详细设计以下是详细的分部:1>基于MFC创建一个基本对话框Calculator2>实现基本运算的代码:void CCalculatorDlg::OnNumberKey(UINT nID) {CString n;switch(nID){case IDC_NUMBER1:n="1";break;case IDC_NUMBER2:n="2";break;case IDC_NUMBER3:n="3";break;case IDC_NUMBER4:n="4";break;case IDC_NUMBER5:n="5";break;case IDC_NUMBER6:n="6";break;case IDC_NUMBER7:n="7";break;case IDC_NUMBER8:n="8";break;case IDC_NUMBER9:n="9";break;case IDC_NUMBER0:n="0";break;case IDC_NUMBER_Point:n=".";if(Point==TRUE){m_Point.ShowWindow(SW_HIDE);Point=FALSE;}break;}if(NumberState==1){m_Cnumber=m_Cnumber+n;number1=atof(m_Cnumber);UpdateData(FALSE);}else{m_Cnumber=m_Cnumber+n;number2=atof(m_Cnumber);UpdateData(FALSE);}if(Zero=FALSE){Zero=TRUE;m_Zero.ShowWindow(SW_SHOW);}}void CCalculatorDlg::OnOperationKey(UINT nID) {m_number=atof(m_Cnumber);switch(nID){case IDC_NUMBER_PlusMinus:m_number=m_number;if(NumberState==1)number1=m_number;elsenumber2=m_number;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_BackSpace:int n;n=m_Cnumber.GetLength();m_Cnumber=m_Cnumber.Left(n-1);UpdateData(FALSE);break;case IDC_NUMBER_Divide:cal();if(Zero==TRUE){m_Zero.ShowWindow(SW_HIDE);Zero=FALSE;}OperationState=1;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Multiply:cal();OperationState=2;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Add:cal();OperationState=3;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Subtract:cal();OperationState=4;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Clear:number1=number2=m_number=0;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);m_Cnumber="";NumberState=1;break;case IDC_NUMBER_Sqrt:number1=m_number=sqrt(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Sin:number1=m_number=sin(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Cos:number1=m_number=cos(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Tan:number1=m_number=tan(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Log:number1=m_number=log(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Log10:number1=m_number=log10(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Exp:number1=m_number=exp(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Derivative:number1=m_number=(double)1/number1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Equal:cal();break;}if(Point==FALSE){Point=TRUE;m_Point.ShowWindow(SW_SHOW);}}3>函数的实现代码:void CCalculatorDlg::OnOperationKey(UINT nID) {m_number=atof(m_Cnumber);switch(nID){case IDC_NUMBER_PlusMinus:m_number=m_number;if(NumberState==1)number1=m_number;elsenumber2=m_number;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_BackSpace:int n;n=m_Cnumber.GetLength();m_Cnumber=m_Cnumber.Left(n-1);UpdateData(FALSE);break;case IDC_NUMBER_Divide:cal();if(Zero==TRUE){m_Zero.ShowWindow(SW_HIDE);Zero=FALSE;}OperationState=1;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Multiply:cal();OperationState=2;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Add:cal();OperationState=3;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Subtract:cal();OperationState=4;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Clear:number1=number2=m_number=0;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);m_Cnumber="";NumberState=1;break;case IDC_NUMBER_Sqrt:number1=m_number=sqrt(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Sin:number1=m_number=sin(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Cos:number1=m_number=cos(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Tan:number1=m_number=tan(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Log:number1=m_number=log(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Log10:number1=m_number=log10(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);case IDC_NUMBER_Exp:number1=m_number=exp(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Derivative:number1=m_number=(double)1/number1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Equal:cal();break;}if(Point==FALSE){Point=TRUE;m_Point.ShowWindow(SW_SHOW);}}CCalculatorDlg::cal(){m_number=atof(m_Cnumber);switch(OperationState){case 1:m_number=(double)number1/number2;NumberState=1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case 2:m_number=(double)number1*number2;NumberState=1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case 3:m_number=(double)number1+number2;NumberState=1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);case 4:m_number=(double)number1-number2;NumberState=1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;}number1=m_number;OperationState=0;}4>进制转换,弧度:实现时有问题5.测试及实现6.总结这是一个科学计算器,只能实现基本运算和函数运算。

ATM实验报告范文

ATM实验报告范文

ATM实验报告范文一、实验目的本实验主要目的是设计并实现一个简单的自动取款机(ATM)系统,通过该系统,用户可以进行账户查询、存款、取款等基本操作。

通过实验,熟悉面向对象设计的基本思想和方法,进一步理解面向对象的封装、继承和多态等特性。

二、实验设计1.类的设计本实验中设计了如下几个类:ATM、Account、SavingsAccount、CheckingAccount。

其中,ATM类代表自动取款机,Account类是表示银行账户的基类,SavingsAccount类是Account类的派生类,表示储蓄账户,CheckingAccount类也是Account类的派生类,表示支票账户。

2.类的属性和方法Account类具有属性:账户号(accountNumber)、账户余额(balance)和利率(rate),具有方法:构造方法Account(、获取账户号方法getAccountNumber(、存款方法deposit(、取款方法withdrawal(。

SavingsAccount类继承Account类,新增加了属性:利率(rate)和最低余额(minBalance),新增加了方法:构造方法SavingsAccount(、计算利息的方法calculateInterest(。

CheckingAccount类继承Account类,新增加了属性:透支额度(overdraft),新增加了方法:构造方法CheckingAccount(、透支方法overdraft(。

3.系统交互过程用户进入ATM系统后,首先输入账户号码以及密码进行验证。

验证通过后,用户可以进行以下操作:(1) 查询账户余额:调用Account类的getBalance(方法进行查询。

(2) 存款:调用Account类的deposit(方法进行存款操作。

(3) 取款:调用Account类的withdrawal(方法进行取款操作,该方法根据账户类型的不同进行判断,如果是储蓄账户则需满足最低余额要求,如果是支票账户则需满足透支额度。

培智学校实训班社会实践教案《自动取款机的使用方法》

培智学校实训班社会实践教案《自动取款机的使用方法》
3、ATM机的基本功能操作(观看视频资料)
⑴取款
⑵查询余额
(3)转账
⑶修改密码
⑷打印凭条
⑸取卡
3、由学生情景表演取款存款转账,师生评价
三、实际操作ATM机
(1)、取款
1.要将银行卡的磁条向下、有磁条的一边向右插入ATM机
2.如果屏幕上有一些提示的文字要按一下"确认"才可以那个"确认"。
3.之后输入卡密码输入之后按确认键。
2、学会用ATM机取钱
教学重点
学会用ATM机取钱
教学难点
学会用ATM机取钱
使用教具
自动取款机操作流程视频,课件,银行卡
教学过程
教学意图
教师活动
学生活动
激发学生学习兴趣
认识ATM机激发学生求知欲
一、导入
银行自动取款机,是个新生事物,有了它我们的生活就方便多了。就拿取款来说吧,我们再也不用花费很长时间到银行排队,也不用担心银行下班取不到钱了,拿着银行卡就可以轻松办到,因为ATM机是24小时全天候为你提供服务的。下面我们就一起来与ATM机来一次亲密的接触吧。
启智学校2015学年(一)社区实践学科教案
授课教师
授课班级
实训班
授课时款机的使用方法
使用教材
自编
课时安排
三个课时
学情分析
本班只有一个学生,该生是智障生,并伴有多重残疾(听力残疾一级),口头表达能力不好,无法清晰表达。该生的动手能力一般,还需要不断练习。
目标
1、认识ATM机的外部结构及功能
四、ATM机存在的注意事项
使用ATM机应该注意哪些事项?保护密码安全、提高警惕性、保护银行卡信息、记住银行客服号码……
学生了解ATM机认识他的外部结构和功能

实验报告--模拟ATM

实验报告--模拟ATM

面向对象实训报告题目:模拟ATM机组长:杨新萍成员:郑苗成员:韩勇成员:齐雨霏成员:贾然成员:高凡指导教师:张燕2014 年 5 月20 日一、课程设计题目:模拟ATM1)程序允许建立10个账户。

2)弹出要建立帐户还是查询账户信息的界面。

用户选择自己所需的服务。

3)如果要建立帐户,弹出一个界面要求用户输入用户名和密码以及确认密码(两次输入密码均不可以显示在屏幕中)。

两次输入密码如果不相同,返回错误信息,再次要求输入用户名密码,直到用户选择该界面的退出键或者成功建立帐户为止,返回到2)的界面。

4)如果查询用户信息,弹出输入帐户名和密码界面。

如果该账户名和密码都注册成功过,进入个人账户的菜单,该菜单有存钱、取钱、查余额、退出等项目。

要求存钱、取钱弹出输入金额的菜单,并能判断是否有足够余额可以取。

如果查询余额,弹出显示余额的菜单。

如果退出,返回2)界面。

二、问题定义设计ATM取款机主要包括登陆页面,选择服务,存款,取款,查询余额,修改密码和退出等功能。

三、需求分析1、功能需求分析(1)模拟ATM机程序主界面(2)建立帐户用户输入自己的用户名及密码,再输入一次密码以确认密码,直至成功建立帐户。

(3)取钱用户根据自己需要取多少钱,输入要取的金额,系统判断是否有足够金额可以取出。

每次取款金额为系统界面显示的数字,或者用户自定义输入要取出的数目。

金额要求为100的倍数。

总额不超过5000元,支取金额不允许透支。

(4)存钱用户可以存款,金额要求为100的倍数。

查询余额。

(5)查余额用户需要查询账户内余额时,可以查询自己帐户的余额。

(6)修改密码用户可以根据自己的意愿修改密码(7)退出用户无需再进行任何业务时,选择退出系统即退出系统。

2、设计需求分析A.界面设计简洁。

B.操作简单。

C.信息分类简单明了,准确。

3、ATM功能模块图4、Java类和自定义类的层次关系MF类、denlu类、qukuan类、cunkuan类、chaxun类和gaimi类都继承了Java 类的JFrame类5、流程图四、算法设计1、概要设计(1) Class Account 主类(2) Class MF 主界面类(3) Class ZC 注册类(4)Class denlu 登录类(5)Class qukuan 取款类(6)Class cunkuan 存款类(7)Class chaxun 查余额类(8)Class gaimi 改密码类2、详细设计(1) Class Account创建客户,初始化客户信息功能以及保存客户信息,例如:用户名、密码、原有余额、取款后卡里的余额以及存款后卡里的余额。

atm的实习报告

atm的实习报告

关于atm的实习报告模拟atm程序设计实习报告一、需求分析1.1相关背景ATM自动提款机系统。

ATM自动取款机是由计算机控制的持卡人自我服务型的金融专用设备。

ATM是英文Automatic Teller Machine的缩写。

ATM是最普遍的自助银行设备,可以提供最基本的银行服务之一,即出钞交易,有些全功能的产品还可以提供信封存款业务。

在ATM自动取款机上也可以进行账户查询、修改密码和转账的业务。

作为自助式金融服务终端,除了提供金融业务功能之外,ATM自动取款机还具有维护、测试、事件报告、监控和管理等多种功能。

ATM自动取款机系统,是一个有终端机,ATM系统,数据库组成的应用系统。

系统功能有用户在ATM上提取现金、查询账户余额、修改密码及转账功能。

ATM自动取款机系统向用户提供一个方便、简单、及时、随时随地可以随心所欲存取款的互联的现代计算机化的网络系统。

可以大大减少工作人员,节约人力资源的开销,同时由于手续程序减少也可以减轻业务员的工作负担,有效地提高了整体的工作效率和精确度。

减少了用户办理业务的等待时间;用户可以随时随地可以随心所欲存取款,并且操作简单易懂;用户还可以选择在柜台办理业务或自己在自动提款机和自动取款机办理业务。

1.2功能(1)验证用户信息:只有当用户把用户名和密码都输入正确的时候,才能进入用户操作界面(2)取款:按用户要求,输入想钞的数量,从余额从取出所需钱;(3)余额查询:显示用户当前余额数量;(4)修改密码:要求用户输入原密码,在原密码正确的情况下才允许修改密码,否则修改无效,且新密码要经过用户两次确认,以确保无误;(5)退卡:退出ATM机程序。

二、相关程序2.1验证用户信息该功能设计主要生成一个class Person类,从主函数开始验证用户信息(帐号和密码),再进入用户界面“取款”,“余额查询”,“修改密码”,“退卡”。

class Welcome,是实现一个友好的欢迎界面。

ATM提款机数据库实训

ATM提款机数据库实训

八、事物设计 23 8.1 事物的创建 23
总结 25
一、引言
1.1编写目的
通过数据库ATM实训,进一步掌握数据库系统的理论和方 法。培养和锻炼开发管理信息系统的能力。为今后信息系统开 发打下良好的基础。
本文档是ATM系统设计文档的组成部分,数据库是一门应 用性很强的专业课,在学习时必须注意理论与实践相结合。本 次课程环节旨在培养学生在本课程范围内,初步掌握解决实际 应用问题时所应具备的查阅资料、综合运用所学知识的能力, 为毕业设计及今后从事专业工作打下基础。
数据库语法的能力。 1) 了解SQL的简史和功能特性。 2) 掌握E-R图的绘制和数据库的设计。 3) 掌握T-SQL的语法知识,并能够熟练运用它。
4) 掌握事务与存储过程的使用。
2. 问题描述(功能要求): 本次案例将完成一个ATM银行取款机系统的数据库。 (1) 创建BankDB数据库。并保存在D:\ATM文件 夹下。 (2) 创建用户信息表(userinfo) (3) 创建银行卡信息表(cardinfo) (4) 创建交易信息表(transinfo)
3 P_ID
varchar(18)N Y 无 无 check(len(P_ID)=15 or
len(P_ID)=18)身份证
号码
4 customer_phone varchar(11)Y N 无 无 check(customer_phone
like '[0-9][0-9][0-9][0-
9][0-9][0-9][0-9][0-9]
[0-9][0-9][0-9]' )联系
电话
5 customer_addressvarchar(50)Y N 无 无 居住地址
sql脚本

现金取款实训报告

现金取款实训报告

现金取款实训报告一、引言现金取款是金融服务的重要环节之一,也是人们生活中经常会用到的一项功能。

随着科技的发展,现金取款方式也不断创新,给人们带来了更加便捷和高效的体验。

本报告将对现金取款的实训过程进行详细介绍,并分析其中的流程和注意事项。

二、实训目的通过本次实训,我们的目的是掌握现金取款的基本流程和操作方法,了解取款自助设备的使用规则和注意事项,提高我们的金融服务能力和客户满意度。

三、实训步骤1.选择合适的自助设备在进行现金取款之前,我们需要选择一个合适的自助设备。

通常,银行和其他金融机构会在不同的地点设置取款机,我们可以根据自己的需求选择离自己最近或者最方便的一台设备。

2.插入银行卡选择好自助设备后,我们需要将自己的银行卡插入到设备的相应卡槽中。

请注意,插卡时需要确保卡片的正反面朝向正确,以免卡片被卡住或者读取失败。

3.输入密码在插入银行卡后,设备会要求我们输入密码。

请确保密码的输入过程不被他人观察到,以保证账户安全。

如果密码输入错误,设备会提示我们重新输入。

4.选择取款金额密码输入正确后,我们需要选择取款金额。

设备会显示一些常用的取款选项,例如100元、500元等。

如果我们需要取款金额超出了这些选项,可以选择“其他金额”,然后输入具体的数值。

5.确认取款选择好取款金额后,设备会要求我们确认取款。

请仔细检查金额是否正确,以免错误取款或者取款超出需要。

6.取款完成确认取款无误后,设备会开始处理取款请求,并在取款口处输出相应金额的现金。

我们可以取走现金,并注意确认是否所有的现金都已取出。

四、注意事项1.保护个人隐私在使用自助取款设备时,我们应该注意保护个人隐私。

在输入密码和其他个人信息时,要避免被他人偷窥。

另外,在取款完成后,要确保没有遗留个人信息或者现金。

2.谨慎操作在使用自助设备时,要认真阅读设备上的指引和提示,并按照步骤进行操作。

避免操作失误导致现金丢失或者卡片损坏。

3.注意设备安全在选择自助设备时,要选择可信赖的机构提供的设备,避免使用看起来不正常或者有破损的设备。

atm实习报告

atm实习报告

atm实习报告ATM实习报告本人于xx年xx月至xx年xx月,在某国有银行实习,岗位为自助设备(ATM)运维维护。

以下是本次实习的总结及体会。

一、实习过程我在实习期间主要负责ATM设备的日常维护和故障排除。

具体来说,主要包括以下几个方面:1. 日常巡检:每天一早,我都要检查ATM各部件的工作状态,如键盘、屏幕、吞卡器、钞箱等等。

如果发现异常情况,需要及时处理,否则可能会导致客户无法正常使用ATM。

2. 清机保养:ATM设备中有很多部件需要定期清洁和保养,以确保设备的正常运行。

例如,钞箱需要定期清理钞票塞纸、钞票脏污等等,清洗指纹识别仪等等。

3. 故障排除:尽管ATM设备通常会经过充分的测试和维护,但是它们仍然可能出现各种类型的故障。

我在实习期间经常遇到ATM硬件故障、软件故障等问题,例如卡片读取失败、密码错误等问题,我需要及时诊断并解决问题,确保设备能够正常运行。

4. 技术支持:当客户遇到ATM故障或难以操作时,我需要及时给他们提供技术支持,解决问题。

这是一个非常重要的任务,因为它直接涉及到客户体验和满意度。

二、实习体会通过这次实习,我学到了很多ATM设备运维的知识和技能,包括硬件维护、软件故障解决、技术支持等等。

同时,我也深刻领悟到ATM设备在金融服务中的重要性。

其次,在实习中我意识到自己在某些方面还需要提高。

例如,我在处理ATM故障时有时候会感到手足无措,需要更加熟练掌握技能和知识。

另外,技术支持方面我也需要进一步提高,更好地为客户提供服务。

另外,通过这次实习我也深刻认识到ATM行业对人才的需求。

随着金融业和电子支付的普及,ATM设备数量将会继续增加,ATM设备的维护和运维人员也将面临极大的市场需求。

三、实习心得在这次实习中,我感觉自己不仅获得了相关技能和知识,还学会了如何团队协作、如何沟通。

比如,当我处理一个比较复杂的ATM故障时,需要与同事和上级一同研究解决方案。

这个过程需要高效的沟通和协作,这也是我在实习中不断学习和提高的方面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

长沙学院课程设计说明书题目程序设计基础课程设计系(部) 计算机科学与技术系专业(班级) 2012级计科1班姓名刘江惠学号 **********指导教师黄娟起止日期2013.9.2-2013.9.6课程设计任务书课程名称:程序设计基础课程设计课程编码:JX020139课程类别:集中性实践教学环节学分数:1学时数:1周开课学期:3设计题目:银行ATM存取款系统、个人通信录系统(任选一题)已知技术参数和设计要求:需求说明及要求题目一:银行ATM存取款系统银行ATM存取款系统业务描述如下:银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。

为了模拟真实的ATM业务环境,本系统必须实现存款、取款、查询、转账、修改密码以及开户的功能。

用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。

本系统各个业务有如下注意点:(1)登陆系统用户登陆之前,必须在登陆界面输入其银行账户,通过其正确输入的银行账户登陆系统。

(2)开户业务要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存储于文件当中。

同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能开立一次银行账户。

(3)存款业务客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账户。

(4)取款业务客户登陆系统后,选择取款业务,即可以将输入的取款金额从相应的银行账户取出,但是取款金额必须大于目前的账户余额。

(5)查询业务客户登陆系统后,可以选择查询业务,查询账户余额。

(6)转账业务客户登陆系统后,可以选择转账业务,进行转账。

注意的是转账的目的账户必须是本系统已经存在的银行账户。

(7)修改密码客户登陆系统后,可以选择修改密码业务,进行密码修改。

各阶段具体要求:1、需求分析阶段熟悉系统业务,从业务中抽取出系统的需求,形成完善的需求说明书。

2、系统设计阶段根据需求,进行程序设计,包括定义系统的界面、定义系统数据的存储方式等,形成完善的设计说明书。

3、编码实现阶段(1)完成代码编写(2)要求代码编写规范4、系统测试阶段(1)完成功能调试(2)要求完成必要的测试工作5、交付实施阶段(1)提交可正常执行的系统(2)提交系统需求说明书、设计说明书、程序代码(3)撰写课程设计报告书(4)要求规范地书写文档设计工作量:(1)软件设计:完成问题陈述中所提到的所有需求功能。

(2)论文:要求撰写不少于3000个文字的文档,详细说明各阶段具体要求。

工作计划:软件开发进度如下,论文同步进行;1. 选定题目(2课时)2. 需求分析(2课时)3. 概要设计(2课时)4. 详细设计(2课时)5. 编码实现(8课时)6. 系统测试(1课时)7. 模拟实施(1课时)8. 答辩(2课时)注意事项⏹提交文档➢长沙学院课程设计任务书(每学生1份)➢长沙学院课程设计论文(每学生1份)➢长沙学院课程设计鉴定表(每学生1份)指导教师签名:日期:教研室主任签名:日期:系主任签名:日期:长沙学院课程设计鉴定表目录第1章问题描述 (2)1.1 设计内容 (2)1.2 设计要求 (2)1.2.1 功能要求 (2)1.2.2 界面要求 (3)1.2.3 技术要求 (3)第2章系统设计与实现 (4)2.1 系统总体设计 (4)2.1.1 数据结构设计 (4)2.1.2 各功能模块间的关系 (5)2.2 系统详细设计与实现 (5)2.2.1 主函数 (7)2.2.2 注册函数 (7)2.2.3 登陆函数 (9)2.2.4 存款函数 (11)2.2.5 取款函数 (12)2.2.6 转账函数 (15)2.2.7查询函数 (17)2.2.8 修改密码 (18)第3章系统测试 (22)3.1 主菜单界面 (22)3.2 开户界面 (22)3.3 登陆界面 (23)3.3.1 存款 (23)3.3.2 取款 (24)3.3.3 转账 (24)3.3.4 修改密码 (25)3.3.5 查询 (26)总结 (27)第一章问题描述1.1设计内容本次实训设计了一个银行ATM存取款模拟管理系统,具有注册、登陆功能。

用户登陆该系统后能为用户提供存款、取款、查询、转账和修改密码的功能。

在这个过程中,利用到了文件等技术。

1.1.1设计要求1.菜单设计:要有两个菜单,登陆之前有一个登陆和注册菜单,然后登陆进去后要有一个可以进入各个功能的菜单。

2.注册设计:要求输入用户的一些个人信息。

能够自己设置密码。

并且给予客户账号。

3.登陆设计:要求要验证用户的账号和密码。

4.存款设计:要能输入金额并且能够与余额累加。

5.取款设计:要能验证余额并且能够与余额相减。

6转账设计:要能验证转入账号并且能够验证转出金额不大于余额。

7账户查询设计:要能打印出账户的余额。

1.2.1 功能要求➢开户功能客户需要提供姓名、身份证号等信息,经过系统处理后,将产生的用户账号及客户信息写入账户文件中。

2. 登录功能用户登陆时,必须在登陆界面输入其银行账户和密码,通过其正确输入的银行账户登陆系统,进入登陆界面后即可进行以下操作:(8)取款要求客户输入取款金额,经过系统处理后,更新该账户所对应的账户余额。

(9)存款要求客户输入存款金额,经过系统处理后,更新该账户所对应的账户余额。

(10)转账要求客户输入目标账号,再经过确认其账号输入是否有误来判断转账是否继续,在余额充足的条件下进行转账程序,否则提示余额不足。

(11)查询系统根据该客户的账户信息查询其信息文件,将查询结果显示出来。

(12)修改密码客户登陆系统后,可以选择密码修改业务,进行修改。

1.2.2 界面要求①界面设计要清晰合理;②排版要整洁易于看懂;③给出相关的注释。

1.2.3 技术要求①函数的定义和调用;②循环语句的应用③Switch语句的多分支选择;④If 条件语句使用:包括if 语句类型的选择,及嵌套使用;⑤熟悉结构体的应用及如何定义;⑥函数跳转需求的实现;⑦熟悉对文件的使用;第2章 系统设计与实现2.1 系统总体设计2.1.1 数据结构设计在整个程序中,有结构体类型的数据构成了一个链表,这里所用到的数据,有账户、姓名、密码、账户余额。

具体类型定义如表2.1所示。

注:1) 账户号码、客户名称、客户密码通常是一行字符串,所以将其设计成字符数组,再规定其字符串的长度。

2)账户余额通常是带小数的,在C 语言中可以用float 、double 等数据类型定义。

在这里将账户余额定义为double 类型的变量。

2.1.2 各功能模块间的关系该ATM 银行管理系统的主界面由七个主要功能构成,在登陆界面中又由五个功能构成,其大致结构图如图所示。

2.2 系统详细设计与实现2.2.1 主函数在打开的主界面中,通过switch语句来选择各项操作,在进入各函数的算法过程。

其流程图如2.1所示。

图2.1主函数流程图主要代码:int main() // 1 主函数{int flog=0;char a[4]; //登录的初始页面printf("==============欢迎使用ATM系统================\n");printf(" || ★1 开户\n");printf(" || ★2 登陆\n");printf("=============================================\n");while (flog==0){printf("请输入您的选项:");scanf("%s",a); //或者用gets(a);也可以switch(a[0]){case '1':kh();flog=1;break; //跳转致开户函数case '2':dl(),flog=1;break; //跳转致登陆函数default:printf("输入错误,请从新输入!\n"); flog=0;break;}}system("pause");return 0;}2.2.2功能模块:注册对应函数:zc()输入:姓名,账号,密码,存款金额函数跳转:跳转到main;实现功能:为客户注册开户流程图:图2.2注册函数流程图主要代码:void kh() // 2 新用户注册{FILE *fp;int i,s,flog=1;double money;char name[20],password[7],count[20];printf("请输入你的姓名,账号,密码及存款数目\n"); //新用户信息输入scanf("%s %s %s %lf",name,count,password,&money);i=strlen(password); //计算字符串数组长度函数if(i>6){printf("密码应小于六位!请重新输入!\n");kh(); //跳转致开户函数界面}fp=fopen("text.txt","r"); //打开一个文本文件text(只读)for(i=0;i<number;i++){fscanf(fp,"%s %s %s %lf",user[i].name,user[i].password,user[i].password,&user[i].money); //磁盘文件输入函数if(strcmp(count,user[i].count)==0)flog=0; //标记为已经注册用户}fclose(fp);if(flog!=0){fp=fopen("text.txt","a+"); //打开一个文件文本text(读写)fprintf(fp,"%s %s %s %.2lf\n",name,count,password,money); //新用户信息收集fclose(fp);number+=1; //标记已经注册的用户数量printf("恭喜您注册成功\n");printf ("返回按1\n");scanf("%d",&s);if(s==1){system("cls");main();//清屏并且跳转致主函数界面}}else{ printf("该用户已存在,您不能使用!\n");kh();}}2.2.3功能模块:登录对应函数:dl()输入:账号,密码函数跳转:跳转到存款、取款、转账、查询修改密码相应功能项的函数;实现功能:登录进入功能选项;流程图:主要代码:void dl() // 已注册用户{FILE *fp;printf("请输入您的账号及密码!\n");int flog=0,i,a=100;char temp_name[20],temp_password[7],temp_count[20],k[2]; // 用户登录while(flog==0){scanf("%s %s",temp_count,temp_password); //调试时空格分别输入fp=fopen("text.txt","r"); //打开一个文本文件text(只读)for(i=0;i<number;i++) //检索已经注册用户的信息{fscanf(fp,"%s %s %s %lf",user[i].name,user[i].count,user[i].password,&user[i].money);if(strcmp(temp_password,user[i].password)==0&&strcmp(temp_count,user[i].count)==0) a=i;}fclose(fp);if(a<number) //当已经注册的用户大于100人时清屏{system("cls");menu(user[a].count); //跳转至选择函数界面flog=1; //标记为已经登陆用户}elseprintf("输入错误,请重新输入!\n");dl();break; //跳转至登陆函数界面,结束循环break;}system("pause");}2.2.4功能模块:存款对应函数:ck()输入:金额;函数跳转:存款后返回到登录函数;实现功能:向账户存入一定金额;流程图:图2.4存款函数流程图主要代码:void ck(char x[20]) // 1 存款功能{FILE *fp;int i,a=0;double t;printf("请输入存储金额:\n");scanf("%lf",&t); //记录存款金额fp=fopen("text.txt","r");for(i=0;i<number;i++){fscanf(fp,"%s %s %s %lf",user[i].name,user[i].count,user[i].password,&user[i].money);if(strcmp(x,user[i].count)==0)a=i; //找到存款者}fclose(fp);user[a].money+=t; //资金累加fp=fopen("text.txt","w"); //打开一个文本文件(只写)for(i=0;i<number;i++){fprintf(fp,"%s %s %s %lf\n",user[i].name,user[i].count,user[i].password,user[i].money);}fclose(fp);printf("存储成功!\n");printf("返回请按1\n"); //返回主函数scanf("%d",&i);if(i==1){system("cls");menu(user[a].count); //清屏并且跳转至选择函数界面}2.2.5功能模块:取款对应函数:qc()输入:账户,密码;函数跳转:取款成功后返回登陆函数,不成功则返回主函数;实现功能:从账户中取出一定金额,并保存剩余金额数;流程图:图2.5取款函数流程图主要代码:void qk(char x[20]) // 2 取款功能{FILE *fp;int i,a=0;double t; //定义一个提取资金变量printf("请输入提取金额:\n");scanf("%lf",&t);fp=fopen("text.txt","r"); //打开一个文件文本text(只读)for(i=0;i<number;i++){fscanf(fp,"%s %s %s %lf",user[i].name,user[i].count,user[i].password,&user[i].money);if(strcmp(x,user[i].count)==0)a=i; // 找到取款者}fclose(fp);if(user[a].money>=t) //判断提取资金是否超出用户资金{user[a].money-=t;fp=fopen("text.txt","w"); //打开一个文件文本text(只写)for(i=0;i<number;i++){fprintf(fp,"%s %s %s %lf\n",user[i].name,user[i].count,user[i].password,user[i].money);} //储存用户账户金额fclose(fp);printf("取款成功!\n"); //返回主函数}else printf("取款失败!\n");printf("返回请按1\n");scanf("%d",&i);if(i==1){system("cls");menu(user[a].count);} //清屏并且跳转至选择函数界面}2.2.6功能模块:转账对应函数:zhuanz()输入:账户,密码;函数跳转:转账成功跳转到登录函数,否则回到主函数main;实现功能:实现用户间的转账;流程图:图2.6转账函数流程图主要代码:void zhuanz(char x[20]) // 3 转账功能{FILE *fp;double t;int a=100,i,b=100;char z[20]; //定义一个被转账用户名字符数组printf("请输入对方账号!\n");scanf("%s",z); //或者用gets(z);也可printf("请输入转账金额\n");scanf("%lf",&t);fp=fopen("text.txt","r"); //打开一个文件文本text(只读)for(i=0;i<number;i++){fscanf(fp,"%s %s %s %lf",user[i].name,user[i].count,user[i].password,&user[i].money); // 查询转账者if(strcmp(z,user[i].count)==0)b=i;}fclose(fp);fp=fopen("text.txt","r");for(i=0;i<number;i++){fscanf(fp,"%s %s %s %lf",user[i].name,user[i].count,user[i].password,&user[i].money); // 查询转账者if(strcmp(x,user[i].count)==0)a=i;}if(b<number&&user[a].money>=t) //判断转账资金是否大于底金和转账用户人数是否大于被转账用户人数{fclose(fp);user[a].money-=t;user[b].money+=t;fp=fopen("text.txt","w");for(i=0;i<number;i++){fprintf(fp,"%s %s %s %lf\n",user[i].name,user[i].count,user[i].password,user[i].money); // 记录转账后的信息}fclose(fp);printf("转账成功!\n");}else printf("账号或金额错误,转账失败\n");printf("返回请按1\n"); // 返回主函数scanf("%d",&i);if(i==1){system("cls");menu(user[a].count);}}2.2.7功能模块:查询对应函数:cx()输入:账户,密码;输出:账户余额;函数跳转;查询完毕后返回登录函数;实现功能:输出账户余额;流程图:图2.7查询函数流程图主要代码:void cx(char x[20]) // 4 查询功能{FILE *fp;printf("您的信息如下:\n");int i,a=0;fp=fopen("text.txt","r");for(i=0;i<number;i++){fscanf(fp,"%s %s %s %lf",user[i].name,user[i].count,user[i].password,&user[i].money);if(strcmp(x,user[i].count)==0)a=i; // 记录要查询的人}printf("姓名:%s 账号:%s 密码:%s 余额%.2lf\n",user[a].name,user[a].count,user[a].password,user[a].money);fclose(fp);printf("返回请按1\n");scanf("%d",&i);if(i==1){system("cls");menu(user[a].count);}}2.2.8功能模块:修改密码对应函数:xg()输入:账户,密码;函数跳转:改密成功后返回到登录函数;实现功能:输出账户余额;流程图:图2.8修改密码函数流程图主要代码:void xg(char x[20]) // 5 修改密码{FILE *fp;int i,a;char password_1[7],password_2[7];printf("请输入密码\n");fp=fopen("text.txt","r");for(i=0;i<number;i++){fscanf(fp,"%s %s %s %lf",user[i].name,user[i].count,user[i].password,&user[i].money); //记录下要修改密码的人if(strcmp(x,user[i].password)==0)a=i;}fclose(fp);scanf("%s",password_1);printf("请再输入密码\n"); //两次输入密码scanf("%s",password_2);if(strcmp(password_1,password_2)==0){strcpy(user[a].password,password_1); //把改过后的密码复制到原来密码函数fp=fopen("text.txt","w");for(i=0;i<number;i++)fprintf(fp,"%s %s %s %.2lf\n",user[i].name,user[i].count,user[i].password,user[i].money); //写入磁盘文件printf("修改成功\n");}fclose(fp);printf("返回请按1\n");scanf("%d",&i); // 返回主函数if(i==1){system("cls");menu(user[a].count);}//清屏并且跳转至选择函数界面}第3章系统测试3.1 主菜单界面进入该银行管理系统时,弹出主菜单如图3.1所示,在主菜单上选择相应操作。

相关文档
最新文档