银行储蓄管理系统实验报告

合集下载

银行储蓄系统

银行储蓄系统

软件工程实验报告实验名称:银行计算机储蓄系统专业:计算机科学与技术班级:13级4班学号:1376807439姓名:赵杉杉指导老师:任国印目录一、项目背景 (3)二、项目进度 (4)三、项目资源管理 (5)四、风险管理分析 (6)五、项目后期管理 (7)一、项目背景随着社会经济的发展,银行的业务不断增长,传统的依靠手工的存取款业务办理方式已经不能满足不断增长的业务需求。

计算机及网络技术飞速发展,计算机应用在全球范围内日益普及,而社会也正快速向信息化社会前进,信息系统的作用也越来越大。

因此,纸质作为存储数据的介质已经不能适应时代大道发展。

加上现如今,纯人工操作银行存取款业务已经不太现实,其一,业务需求的增加需要消耗大量人力物力资源;其二,业务精确度要求极高,复杂化导致人工处理方式出错率增加,甚至会造成不可挽回的损失。

从而引起储户不满。

一方面可以减轻银行业务员的工作量,另一方面可以减少工作的出错率,从而提高工作效率。

计算机银行储蓄管理软件的确要作用是针对于各类银行中的储蓄业务进行有效管理。

银行储蓄是我们现实生活中的常见活动。

就储蓄业务而言,无论是国外还是国内,也无论是哪家银行,虽然所开展的业务种类稍有不同,利息的计算也存在差异,但储蓄的本质是完全相同的。

现在的银行储蓄系统工作效率低,不能满足广大人发群众的需要,人们希望能更方便省时地办理储蓄业务。

现在计算机网络的告诉发现使越来越多的人更喜欢在网购物、在家存款取款。

在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的算机储蓄系统。

为解决此问题,拟为其开发计算机储蓄系统。

所以一款精确度高、出错率低的银行管理统软件显得尤为重要。

二、项目进度规划项目进度首先要估算工作量,然后估算开发时间,Gantt图,工程网络,估算工程进度,关键路径,机动时间。

编制人员:民主制程序员组、主程序员组、现代程序员组。

然后做出规划,分派任务。

银行管理系统实习报告

银行管理系统实习报告

一、实习背景随着金融科技的快速发展,银行业务管理逐渐向数字化、智能化转变。

为了更好地了解银行管理系统的运作,提高自身业务能力,我在2023年7月至8月期间,在XX银行进行了一次为期一个月的实习。

通过这次实习,我对银行管理系统的操作流程、风险控制、客户服务等有了更加深入的了解。

二、实习目的1. 了解银行管理系统的基本功能,熟悉银行业务操作流程;2. 掌握银行风险控制措施,提高风险防范意识;3. 体验银行客户服务,提升沟通与协调能力;4. 增强团队协作精神,培养实际工作能力。

三、实习单位简介XX银行成立于1986年,是一家全国性股份制商业银行。

银行总部位于我国东部沿海地区,分支机构遍布全国各大城市。

近年来,银行积极推进数字化转型,不断提升服务水平,为广大客户提供便捷、高效的金融服务。

四、实习内容及过程1. 了解银行管理系统在实习期间,我首先对银行管理系统的基本功能进行了学习。

该系统主要包括以下模块:(1)账户管理:实现客户账户的开设、变更、查询、销户等功能;(2)交易管理:处理各类银行交易,如存款、取款、转账、汇款等;(3)风险管理:对银行风险进行识别、评估、预警和处置;(4)客户服务:为客户提供咨询、投诉、建议等服务;(5)报表管理:生成各类业务报表,为管理层提供决策依据。

2. 熟悉银行业务操作流程在实习过程中,我跟随导师学习了银行业务操作流程。

主要包括以下步骤:(1)客户咨询:了解客户需求,提供相应的金融产品和服务;(2)账户开设:为客户办理开户手续,录入客户信息;(3)交易处理:为客户办理各类交易,如存款、取款、转账等;(4)风险控制:对交易进行风险评估,确保交易安全;(5)客户服务:为客户提供咨询、投诉、建议等服务。

3. 掌握银行风险控制措施在实习过程中,我了解到银行风险控制措施主要包括以下几个方面:(1)内部控制:建立健全内部控制制度,确保业务合规;(2)外部审计:定期接受外部审计,提高风险防范能力;(3)信息系统安全:加强信息系统安全防护,防止黑客攻击;(4)合规经营:严格遵守国家法律法规,确保业务合规。

sql实训银行储蓄系统实训总结

sql实训银行储蓄系统实训总结

sql实训银行储蓄系统实训总结银行储蓄系统实训总结本次实习的单位是XX市邮政储汇局,为期一个多月,我先后到邮政储汇营业处和邮政储汇局综合部两个不同的部门,亲身体验了柜台营业员、事后监督员、实时监控员的工作实况。

将本次实习分为前后两个阶段进行概述,进而针对储蓄业务实行“实名制”方面的思考。

(一)实习前阶段的情况实习的前半阶段,所在的部门是储汇营业处。

通过营业员指导和讲授相关业务知识及业务操作技能,同时在营业员的教导下,进行实际业务的操作,逐渐熟悉邮政储蓄系统,基本上能够独立完成日常的储蓄业务。

尤其在点钞、捆钞技能的掌握方面取得了明显的进步。

1。

了解熟悉邮政储蓄系统在进行营业前台工作的操作之前,首先必须熟悉整个邮政储汇的操作系统,目前使用的是统一版本。

刚开始实习时,熟记主交易菜单的交易码,特别是日常的交易代码,如:活期存取款代码是010102、010103;卡存取款的代码是020101、020104;现金转帐代码是010701;帐户到帐户转帐代码是010702等等。

2。

营业窗口的实际操作在熟悉了操作系统之后,我就开始进行实际操作了。

起初在营业员的随身指导中,慢慢地进行操作。

我所在营业处采用的是柜员制交易操作,即每一笔交易都是由营业员单人单独完成的,操作过程必须十分谨慎,注意操作流程的规范。

当收到来自客户的现金时,必须将钞票“正反”两面过机鉴别并计数,确认无误后方可入柜,在相应的凭单上加盖“现金讫”,接着再进行数据的录入、打印单据等。

而支付客户现金时,必须手工点钞与机器点钞两项步骤相结合,缺一不可。

手工点钞的作用在于防止钞票粘合过机时无法完全分开。

对于整捆的钞票拆封过机清点后方可支付。

另外,在支付前必须询问一下客户“请问您支取多少”,再次核对金额。

(二)实习后阶段的情况实习的后半阶段,所在的部门是储汇局综合部,实习的岗位有:事后监督和实时监控。

事后监督是对营业处及个网点的交易进行严格把关,是一项繁琐的“校对”工作,它意义重大——尤其体现在对潜在风险(如大额支付、可疑支付等)进行全面地、系统地监督。

个人银行储蓄系统报告

个人银行储蓄系统报告

生产实习报告专业:软件工程班级:软件101学号:学生:指导教师:2013 年春季学期个人银行储蓄系统1.实习目的随着当今社会随着计算机应用的迅速发展,以及计算机给人们带来的方便,再加上社会经济的不断提高,人们的生活水平也逐渐提高,对社会的需求也逐渐扩大,从而使人们对计算机的依赖也日趋加大,随之计算机技术进行的各种管理也成为人们生活中不可或缺的一部分。

随着市场经济的不断发展,人民的生活也越来越富裕,人们的生活脚步也不断加快,这就要求各行业提供更多功能,以方便用户。

为此银行也不例外,C/S模式的应用系统已不能满足人们的需求。

2.设计方案论证2.1 背景随着计算机技术飞速发展及其应用领域的扩大,特别是计算机网络和电子商务的发展,极大地改变了商业银行传统的经营和管理模式。

能够为客户提供方便、快捷、安全的服务,也能有效降低银行的运营成本,这是银行管理系统追求的目标。

目前,对于现代化银行运营的要求是客户可以实现随时随地的业务交易,银行职员可以进行高效合理的工作管理,实现银行业务电子化。

2.2 需求分析2.2.1 功能需求通过银行管理系统一方面加快了客户的服务,提高的服务质量,另一方面减轻了员工的工作复杂度,提高了工作效益,实现银行帐户管理的系统化、规范化、自动化和智能化。

系统具体实现的目标如下:(1)键盘操作,快速响应。

(2)对用户输入的数据,系统会进行严格的数据检验,尽量避免了人为的错误。

(3)实现银行开户、取款、存款、查询、转账、修改密码等功能。

(4)系统运行稳定,可靠。

(5)系统应人性化,符合用户操作习惯。

(6)使用控制台进行操作2.2.2性能需求软件环境:Window 7/8/Xp2.3 总体设计由客户端程序和服务器端程序构成,客户端运行在面向个人业务的银行柜台的电脑上,通过网络通讯向服务器发送请求并接受服务器端程序的应达显示处理的结果。

服务器端处理客户端的各种业务请求。

主要实现银行开户、取款、存款、查询、转账、修改密码等功能。

银行实验报告实验过程

银行实验报告实验过程

一、实验目的1. 熟悉银行ATM系统的基本功能;2. 掌握ATM系统各个模块的工作原理;3. 了解ATM系统的安全性能;4. 提高实际操作能力。

二、实验环境1. 实验设备:一台装有ATM系统的电脑、一台ATM机、一张银行卡;2. 实验软件:银行ATM系统;3. 实验数据:用户名、密码、卡号、交易金额等。

三、实验内容1. ATM系统登录;2. 查询余额;3. 取款操作;4. 存款操作;5. 转账操作;6. 查询交易记录;7. 修改密码;8. 安全退出。

四、实验过程1. ATM系统登录(1)打开ATM系统,输入用户名和密码;(2)系统验证用户名和密码,验证成功后进入主界面。

2. 查询余额(1)在主界面选择“查询余额”功能;(2)输入卡号,系统验证卡号,验证成功后显示余额。

3. 取款操作(1)在主界面选择“取款”功能;(2)输入取款金额,系统验证取款金额,验证成功后提示插入银行卡;(3)插入银行卡,系统读取卡信息,验证成功后进行取款操作;(4)取款成功后,提示用户取款金额,并打印取款凭证。

4. 存款操作(1)在主界面选择“存款”功能;(2)输入存款金额,系统验证存款金额,验证成功后提示插入银行卡;(3)插入银行卡,系统读取卡信息,验证成功后进行存款操作;(4)存款成功后,提示用户存款金额,并打印存款凭证。

5. 转账操作(1)在主界面选择“转账”功能;(2)输入转账金额,系统验证转账金额,验证成功后提示输入对方卡号;(3)输入对方卡号,系统验证卡号,验证成功后进行转账操作;(4)转账成功后,提示用户转账金额和对方卡号。

6. 查询交易记录(1)在主界面选择“查询交易记录”功能;(2)输入查询时间范围,系统显示对应时间范围内的交易记录。

7. 修改密码(1)在主界面选择“修改密码”功能;(2)输入旧密码,系统验证旧密码,验证成功后提示输入新密码;(3)输入新密码,系统验证新密码,验证成功后修改成功。

8. 安全退出(1)在主界面选择“安全退出”功能;(2)系统提示用户退出ATM系统。

银行储蓄系统分析报告

银行储蓄系统分析报告

摘要随着金融业的发展,手工操作和旧的管理模式已经严重制约了质量和效率的问题,用计算机管理来代替手工管理是非常必要的。

本文主要介绍了银行管理系统的方案论证、结构特性设计及行为特性设计的实现过程,详细论述了总体设计思想、数据库设计和功能模块设计。

实现了系统初置、系统初值录入、定期储蓄、外部消费与结算模拟、综合统计查询等功能。

整个系统的设计过程中,充分考虑了数据库的安全性、一致性、稳定性和可靠性的问题,并具有较强的向导作用,为操作人员提供了丰富的决策功能,而且操作简单方便。

用此系统代替手工操作后,能大大减少在时间和空间上的浪费,为银行节省了大量的人力和物力。

关键字:银行储蓄,管理系统,结构特性设计,行为特性设计AbstractAs the development of financial trade, handwork operating and old man agement pattern already have seriously restricted the issue of quality and efficiency. It is very necessary to replace handwork management with com puter management system. This paper primarily introduces the project arg ument, the structural characteristic design and the behavioral characteristic design of the bank management system. The total design idea, the datab ase design and the functional module design are discussed in detail. The f unctions of this system mainly include the system initialization, code input, fixed deposit, and synthesize statistical inquiry etc.In the course of entire system design, the system has fully considerated about the safety, consist ency, stability and reliability of the database, and also has a strong guidan ance function. This system can satisfy the customer’s operation easily and offer a friendly user interface. By using this system, we believe that wastn ess of the time and space will be greatly reduced and plenty of manpower and material resources for bank will be saved.Keywords:Bank deposit, Management System, Structural characteristic Design, Behavioral characteristic Design第1章引言1.1题目背景银行储蓄管理软件的主要作用是针对于各类银行中的储蓄业务进行有效管理。

c 银行管理系统实验报告

c 银行管理系统实验报告

c 银行管理系统实验报告C 银行管理系统实验报告摘要:本实验报告介绍了使用C语言开发的银行管理系统。

该系统包括客户信息管理、账户管理、存取款操作、转账操作等功能。

通过本次实验,我们深入了解了C语言的应用,掌握了银行管理系统的开发流程和技术要点。

1. 系统设计银行管理系统主要包括客户信息管理、账户管理、存取款操作、转账操作等功能模块。

在系统设计阶段,我们首先确定了系统的功能需求和流程,然后进行了数据结构的设计和数据库的建立。

在C语言中,我们使用结构体来定义客户信息和账户信息,使用文件来存储数据。

2. 系统实现在系统实现阶段,我们使用C语言编写了客户信息管理、账户管理、存取款操作、转账操作等功能的代码。

在代码编写过程中,我们充分考虑了系统的健壮性和安全性,对用户输入进行了合法性检查,对数据进行了有效性验证。

3. 系统测试在系统测试阶段,我们对银行管理系统进行了功能测试、性能测试和安全测试。

通过测试,我们发现系统在客户信息管理、账户管理、存取款操作、转账操作等方面表现良好,能够满足实际应用需求。

4. 实验总结通过本次实验,我们深入了解了C语言的应用,掌握了银行管理系统的开发流程和技术要点。

在实验中,我们遇到了一些问题,如数据结构的设计和文件操作的实现,但通过不懈努力和团队合作,最终成功完成了银行管理系统的开发和测试。

总之,本次实验为我们提供了宝贵的实践经验,增强了我们的编程能力和团队合作能力。

希望通过今后的学习和实践,能够进一步提升自己的技术水平,为银行管理系统的实际应用做出更大的贡献。

储蓄业务管理实验报告

储蓄业务管理实验报告

一、实验目的通过本次储蓄业务管理实验,使学生对储蓄业务管理的基本原理、操作流程和风险管理等方面有更深入的了解,提高学生的实际操作能力和分析问题的能力。

二、实验内容1. 实验背景储蓄业务是银行的一项基本业务,它涉及存款、取款、转账等操作。

随着金融市场的不断发展,储蓄业务管理越来越复杂,对银行工作人员的要求也越来越高。

2. 实验内容(1)储蓄账户的开户与销户1)开户:根据客户需求,为客户开设储蓄账户,包括填写开户申请书、审核客户身份证明、录入客户信息等。

2)销户:根据客户要求,为客户办理销户手续,包括审核销户原因、注销账户、退还存款等。

(2)存款业务的办理1)定期存款:为客户办理定期存款业务,包括填写存款申请书、确定存款期限、计算利息等。

2)活期存款:为客户办理活期存款业务,包括填写存款申请书、办理存款手续等。

(3)取款业务的办理1)定期存款取款:为客户办理定期存款到期取款业务,包括审核客户身份证明、计算利息、办理取款手续等。

2)活期存款取款:为客户办理活期存款取款业务,包括审核客户身份证明、办理取款手续等。

(4)转账业务的办理1)内部转账:为客户办理银行内部账户间的转账业务,包括填写转账申请书、录入转账信息、审核转账等。

2)跨行转账:为客户办理跨行转账业务,包括填写转账申请书、录入转账信息、审核转账等。

3. 实验结果与分析(1)实验结果通过本次实验,学生掌握了储蓄业务管理的基本原理和操作流程,提高了实际操作能力。

(2)实验分析1)开户与销户业务:在开户过程中,学生学会了如何审核客户身份证明,确保账户安全;在销户过程中,学生学会了如何处理客户的销户需求,提高客户满意度。

2)存款业务:在办理定期存款业务时,学生学会了如何计算利息,提高业务水平;在办理活期存款业务时,学生学会了如何处理客户的存款需求,提高服务质量。

3)取款业务:在办理定期存款取款业务时,学生学会了如何审核客户身份证明,确保资金安全;在办理活期存款取款业务时,学生学会了如何处理客户的取款需求,提高客户满意度。

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

C++面向对象程序设计课程设计报告设计题目:银行储蓄管理系统学生姓名:___ __________学号:_______________班级:___指导教师:______________2014年 6 月 19日目录一、课设目的 (1)二、需求分析 (1)三、程序的主要功能 (1)一、系统总体框架 (1)二、模块设计与分析 (2)三、类的设计与分析 (3)七、存在的不足与解决方法 (5)八、功能测试 (5)九、课设总结 (11)一、课设目的课程设计的目的是总结及运用一学期来所学的知识,训练我们灵活应用所学C++知识,独立完成问题分析、总结设计、详细设计和编程实现等软件开发全过程的综合实践能力。

巩固、深化理论知识,提高编程水平,并在此过程中培养我们严谨的科学态度和良好的工作作风。

二、需求分析:随着社会经济的发展,信息化程度的不断深入,银行的传统业务已不能满足客户的需求。

现今,人们的科技意识已经有了很大的提高,在紧张忙碌的生活中已越来不习惯每天奔波于银行营业柜台去办理各种业务,利用电子化的手段构建一个高效统一的、通用灵活的系统来管理各种各样的业务,是当前每个商业银行都要研究的课题。

因此如何应用计算机技术加强银行账户管理是当前迫切需要解决的一个问题。

所以本次课程设计是模拟银行账户的管理,开发一个银行个人账户管理系统。

设计思想是一切为使用者着想,操作尽量简单明了,努力做到每一个用户都可以使用这个系统来办理自己的业务。

并且通过该银行账户管理系统地运行,可以使办公人员轻松快捷的完成对账户管理的任务,提高招募管理效率,是银行的账目管理工作系统化、规范化、自动化。

三、程序的主要功能:主要用于银行的储蓄卡管理系统,它可以帮组我们有效、准确、并且高效实现的完成存取事件。

系统操作方便效率、安全性高、只要开户并设定好密码就可以轻松的实现存取款。

系统实现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、注销等功能。

储蓄卡开户管理模块:卡号、姓名、开户金额、身份证号、地址、电话、密码、确认密码和保存组成。

(开户金额必须是数字,密码和确认密码必须一样是六位数字)注销模块:一旦注销卡号就不存在且余额提醒你取出。

四、系统总体框架:五、模块设计与分析:储蓄卡开户管理模块登录页面:输入卡号和密码,根据用户输入的卡号和密码,到后台文件查询,若正确则登录成功,并保存卡好信息已备后用。

若卡号存在和密码不匹配或无该卡号已经注销,提示该卡号已存在或已注销,保持界面三次不变等待用户的重新输入。

主界面页面:主要导航栏有[欢迎使用储蓄卡管理(存款、取款、修改密码、转账功能、注销退出)]储蓄卡开户页面:提供开户界面,由用户输入新储蓄卡的所有信息,将该信息保存到文件中,并将开户金额作为该卡的第一次存款记录存人文件。

存钱页面:从登录界面得到卡号,并提供数据输入界面,等待用户的输入存款金额。

从后台数据库中找到该用户余额记录,修改余额,并将该存款事件的相应信息写人数据库,同时将存钱的金额显示在页面上。

取款页面:从登录界面得到卡号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上,。

注销页面:从关闭文件,状态为注销,最后关闭整个系统。

列举取款模块进行分析:void consumer::fetchmoney(){float m;char ch;do{cout<<endl<<"输入取款金额:"<<"¥>"<<endl ;cin>>m;while(m<=0){cout<<"请输入正确的数字!"<<endl;cout<<"→";cin>>m;}if(money<m){cout<<"对不起,你的余额不足!"<<endl;}else{money=money-m;cout<<endl<<"操作成功,请收好钱!"<<endl;}cout<<"是否要继续该项操作:(Y/N)"<<endl;cout<<"→";cin>>ch;while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y')//选择错误时判定{cout<<"→";cin>>ch;}}while(ch=='y'||ch=='Y');}在取款页面中,输入取款金额并对取款金额与存款余额进行比较,如果取款金额小于零,请输入正确的数字;如果取款金额大于存款金额,对不起,您的余额不足;如果取款金额小于存款余额的话就执行,并保存记录。

六、类的设计与分析1.comsumer类class comsumer主要制定用户的成员数据,并进行登录与保存功能:相关代码:class consumer:public YH//用户类,继承银行类的属性{public:friend class YH;consumer(int id,string Name,int Number,double IN,string Company,string Address,string PassWord,float m){ID=id;name=Name;number=Number;in=IN;company=Company;address=Addres s;money=m;passwd=PassWord;}consumer(){ID=0;name='0';number=0;in=0;company='0';address='0';money=0;p asswd='0';}int get_id(){return ID;}void savemoney();//取钱string get_passwd(){return passwd;}//取得密码void display();void fetchmoney();//取钱void change_passwd();void add_money(float);//计算余额void dec_money(float);//计算余额float get_money();//卡卡转帐private:int ID;//开户帐号string passwd;// 用户密码string name;//用户姓名float money; //开户金额int number;string company;string address;doublecomsumer类说明表2.YH 类YH 类主要实现用户的各种功能:class YH//银行类{public:void set_account();//银行开户功能void del_account();//注销账户功能void transfer(int);//转账功能void enter_account();//进入用户个人信息功能void addmoney(int,float);//存款功能void exitYH();//退出系统void functionshow();void save();void load();//功能界面protected:consumer*account[20];static int acnum;//账户数YH类说明表七、存在的不足与解决方法在这设计的过程里,我们遇到了大大小小各个问题,例如:(1)问题:规划设计做的不够好,没有把类和类的数据成员、成员函数给搞清楚,就急着下手编程,结果把程序搞的乱七八糟的。

解决:重新认真细心规划设计好所需要的类,弄清楚各个类的作用,在进行编程。

(2)问题:由于不够细心,程序总是出些较低级的错误,例如漏写分号,忘括号等。

解决:做任何事,都需认真细心,注意好每一步骤(3)问题:当我们的程序的框架基本搭好,准备填写内容时,却迟迟未能下手,不知道从何写起。

解决:重温课本,请教同学和老师。

这才知道自己的不足之处,以后定要好好学习,要有坚持不懈和锲而不舍的精神。

八:源代码:#include<iostream>#include<string>#include<fstream>using namespace std;class consumer;class YH//银行类{public:void set_account();//银行开户功能void del_account(); //注销账户功能void transfer(int);//转账功能void enter_account();//进入用户个人信息功能void addmoney(int,float);//存款功能void exitYH();//退出系统void functionshow();void save();void load();// 功能界面protected:consumer*account[20];static int acnum;//账户数};class consumer:public YH//用户类,继承银行类的属性{public:friend class YH;consumer(int id,string Name,int Number,double IN,string Company,string Address,string PassWord,float m){ID=id;name=Name;number=Number;in=IN;company=Company;address=Address;money=m;pass wd=PassWord;}consumer(){ID=0;name='0';number=0;in=0;company='0';address='0';money=0;passwd='0';}int get_id(){return ID;}void savemoney();//取钱string get_passwd(){return passwd;}// 取得密码void display();void fetchmoney(); //取钱void change_passwd();void add_money(float);//计算余额void dec_money(float);//计算余额float get_money();//卡卡转帐private:int ID;//开户帐号string passwd;// 用户密码string name;//用户姓名float money;//开户金额int number;string company;string address;double in;};void YH::save(){ofstream ofile("bankdat.dat",ios::out);//以输出方式打开文件ofstream outfile("bankdat.dat",ios::out);//以输出方式打开文件bankdat.dat接收从内存输出的数据int n=0;outfile<<acnum<<" ";for(n=0;n<acnum;n++){outfile<<account[n]->ID<<" ";//把信息写入磁盘文件bankdat.datoutfile<<account[n]->money<<" ";outfile<<account[n]->name<<" ";outfile<<account[n]->passwd<<" ";outfile<<account[n]->number<<" ";outfile<<account[n]->company<<" ";outfile<<account[n]->address<<" ";outfile<<account[n]->in<<" ";}outfile.close();}/*读入用户信息功能实现*/void YH::load(){ifstream infile("bankdat.dat",ios::in);//以输入方式打开文件if(!infile){cerr<<"读取错误,无资料中!"<<endl;return;}int n=0;int id,m;string nam,passw;int number;string company;string address;double in;infile>>acnum;for(n=0;n<acnum;n++)//全部读入{infile>>id;//从磁盘文件bankdat.dat 读入信息infile>>m;infile>>nam;infile>>passw;infile>>company;infile>>number;infile>>address;infile>>in;account[n]->passwd;consumer * acc = new consumer(id,nam,number,in,company,address,passw,m); //每读入一个n 开辟一段内存account[n]= acc;//赋值首地址}infile.close();cout<<"读取资料正常!"<<endl;}/*转账功能实现*/void YH::transfer(int x){int id;cout<<"请输入帐号:";cin>>id;int flag = 1;int i= 0;while((i<acnum)&&(flag))//查找要转入的账号{if(id==account[i]->get_id())flag =0; else i++;}if(flag){cout<<"帐号不存在!"<<endl<<endl;return;}float b;cout<<endl<<"请输入你要转帐的金额:";cin>>b;while(b<=0){cout<<"请输入正确的数字!"<<endl;cout<<"→";cin>>b;}if(account[x]->get_money()<b)//调用友元类consumer的公有成员函数cout<<"对不起,金额不够!!"<<endl;else {account[x]->dec_money(b);account[i]->add_money(b);}cout<<"转账成功!!"<<endl;return;}/*账户金额计算*/void consumer::add_money(float x){money=x+money;}void consumer::dec_money(float x){money=money-x;}void YH::addmoney(int x,float y){account[x]->money=account[x]->money-y;}float consumer::get_money(){return money;}void main(){YH yh;yh.functionshow();}/*主界面显示*/void YH::functionshow(){int n;do{system("cls");load();cout<<endl<<"请输入相应的操作序号进行操作:"<<endl;cout<<"㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣"<<endl; cout<<"㊣cout<<"㊣cout<<"㊣cout<<"㊣cout<<"㊣cout<<"㊣cout<<"㊣cout<<"㊣cout<<"㊣1.开户1.账户登录2.账户注销3.退出系统㊣"<<endl;㊣"<<endl;㊣"<<endl;㊣"<<endl;㊣"<<endl;㊣"<<endl;㊣"<<endl;㊣"<<endl;㊣"<<endl;cout<<"㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣"<<endl; cout<<"→";cin>>n;while(n<1||n>4){cout<<"操作错误,请输入正确的操作序号!"<<endl;cout<<"→";cin>>n;}switch(n){case1:set_account();//开户break;case2:enter_account();//登录break;case3:del_account();//注销break;case4:exitYH();//退出break;}cin.get();//输入流类istream 的成员函数}while(true);}void YH::enter_account(){int id;cout<<"请输入帐号:";cin>>id;int flag = 1;int i= 0;//__page_break__while((i<acnum)&&(flag))//循环查找{if(id==account[i]->get_id())flag =0; else i++;}if(flag){cout<<"帐号不存在!"<<endl;return;}cout<<"请输入密码:";string passw;cin>>passw;if(passw!=account[i]->get_passwd())return;//返回到登录界面account[i]->display();cin.get();cin.get();int n;do{system("cls");cout<<"请选择下列操作:"<<endl;cout<<"◎☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆◎"<<endl;cout<<"◎◎"<<endl;cout<<"◎ 1.查看账户信息◎"<<endl;cout<<"◎◎"<<endl;cout<<"◎ 2.取款◎"<<endl;cout<<"◎◎"<<endl;cout<<"◎ 3.存款◎"<<endl;cout<<"◎◎"<<endl;cout<<"◎ 4.修改密码◎"<<endl;cout<<"◎◎"<<endl;cout<<"◎ 5.转账◎"<<endl;cout<<"◎◎"<<endl;cout<<"◎ 6.返回上一菜单◎"<<endl;cout<<"◎◎"<<endl;cout<<"◎☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆◎"<<endl;cout<<"→";cin>>n;switch(n){case 1: account[i]->display();break;case 2: account[i]->fetchmoney();save();break;//从2-5功能,每执行一次调用一次save函数,重新写入数据case3:account[i]->savemoney();save();break;case4:account[i]->change_passwd();save();break;case5:transfer(i);save();break;case6:return;}cin.get();cin.get();}while(1);}void YH::set_account(){int id;string nam;string passw;float m;string company;string address;int number;double in;cout<<"请输入开户号:"<<endl;cin>>id;cout<<"请输入开户人姓名:"<<endl;cin>>nam;cout<<"请输入开户密码:"<<endl;cin>>passw;cout<<"请输入存入金额:"<<endl;cin>>m;cout<<"请输入开户人电话:"<<endl;cin>>number;cout<<"请输入开户人公司:"<<endl;cin>>company;cout<<"请输入开户人地址:"<<endl;cin>>address;cout<<"请输入开户人身份证号码:"<<endl;cin>>in;while(m<=0){cout<<"请输入正确的数字!"<<endl;cin>>m;}consumer* acc = new consumer(id,nam,number,in,company,address,passw,m); account[acnum]= acc;cout<<"开户成功!!"<<endl<<endl;acnum++;save();cin.get();return;}void YH::del_account(){int id;cout<<endl<<"请输入你要注销的帐户号:";cin>>id;int flag = 1;int i= 0;while((i<acnum)&&(flag))//循环查找{if(id==account[i]->get_id()){flag=0;}else{i++;}}if(flag){cout<<"该帐号不存在,请重新输入!"<<endl;return; //返回到登陆界面}for(int j=i;j<acnum;j++)//所有被删号后的数据重新存储{account[j]=account[j+1];}account[acnum-1]=NULL;acnum--;//账号总数自减一次cout<<"你的账号已注销!!"<<endl<<endl;save();cin.get();return;}void consumer::change_passwd(){string pwd,repwd;cout<<"请输入新密码:";cin>>pwd;cout<<"请再输入一次新密码:";cin>>repwd;if(pwd!=repwd)cout<<"你输入的两次密码不一样,按输入键返回上一层菜单!"<<endl; elsecout<<"密码修改成功,请牢记!"<<endl;cin.get();}void consumer::fetchmoney(){float m;char ch;do{cout<<endl<<"输入取款金额:"<<"¥>"<<endl;cin>>m;while(m<=0){cout<<"请输入正确的数字!"<<endl;cout<<"→";cin>>m;}if(money<m){cout<<"对不起,你的余额不足!"<<endl;}else{money=money-m;cout<<endl<<"操作成功,请收好钱!"<<endl;}cout<<"是否要继续该项操作:(Y/N)"<<endl;cout<<"→";cin>>ch;while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y')//选择错误时判定{cout<<"→";cin>>ch;}}while(ch=='y'||ch=='Y');}void consumer::savemoney()//存钱函数功能实现{float c;char ch;do{cout<<endl<<"请输入要存入的金额:"<<"¥>"<<endl; cin>>c;while(c<=0){cout<<"输入错误,请重新输入!"<<endl;cout<<"→";cin>>c;}money=money+c;cout<<"操作已成功!"<<endl;cout<<"是否要继续该项操作:(Y/N)"<<endl;cout<<"→";cin>>ch;while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y'){cout<<"→";cin>>ch;}}while(ch=='y'||ch=='Y');}int YH::acnum=0;void consumer::display()//用户信息界面{system("cls");cout<<"#####################################"<<endl; cout<<"#"<<endl;cout<<"#用户姓名:"<<name<<endl;cout<<"#"<<endl;cout<<"#帐号:"<<ID<<endl;cout<<"#"<<endl;cout<<"#余额:"<<money<<endl;cout<<"#"<<endl;cout<<"#按输入键回到上一菜单"<<endl;cout<<"#"<<endl;cout<<"#####################################"<<endl; cout<<"→";}void YH::exitYH()//退出系统{cout<<endl<<"感谢您对本银行的支持,欢迎下次光临!"<<endl; exit(0);}九、功能测试(1)首页:(2)储蓄卡开户页面(3)主界面页面主要导航栏有:欢迎使用储蓄卡管理(查看帐户信息、存款、取款、修改密码、转账、返回上一菜单)(4)存钱页面(5)取款页面从登录界面得到卡号,并提供数据输入界面,等待用户输入取款金额,如果取款金额大于该用户卡上的余额则不能取款,或者将新的余额写人文件,并将本次取款事件写入文件同时将取钱的金额显示在页面上。

相关文档
最新文档