收藏 分享(赏)

(经典版)C语言版ATM银行取款机系统完整源代码程序设计基础实训II文档.doc

上传人:微传9988 文档编号:2447794 上传时间:2018-09-17 格式:DOC 页数:46 大小:355KB
下载 相关 举报
(经典版)C语言版ATM银行取款机系统完整源代码程序设计基础实训II文档.doc_第1页
第1页 / 共46页
(经典版)C语言版ATM银行取款机系统完整源代码程序设计基础实训II文档.doc_第2页
第2页 / 共46页
(经典版)C语言版ATM银行取款机系统完整源代码程序设计基础实训II文档.doc_第3页
第3页 / 共46页
(经典版)C语言版ATM银行取款机系统完整源代码程序设计基础实训II文档.doc_第4页
第4页 / 共46页
(经典版)C语言版ATM银行取款机系统完整源代码程序设计基础实训II文档.doc_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、实 训 题 目: ATM存取款系统的改进与完善 系 部: 计算机科学与技术系 专 业 /年 级: 软件工程专业 XX级 学 生 姓 名: 班 级: X班 学号 XX 指导教师姓名: 职称 最终评定成绩 2012 年 6 月项目实训任务书课程名称:程序设计基础实训 II课程编码:JX课程类别:专业基础必修课学分数:2学时数:32开课学期:2实训题目:ATM 存取款系统的改进与完善一、已知技术参数和设计要求:银行 ATM存取款系统业务描述如下:银行 ATM 存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。为了模拟真实的 ATM 业务环境,本系统必须实现存款、取款、查询、转账、修改密码

2、以及开户的功能。用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆 ATM 系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。本系统各个业务有如下注意点:(1) 登陆系统用户登陆之前,必须在登陆界面输入其银行账户,通过其正确输入的银行账户登陆系统。(2) 开户业务要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存储于文件当中。同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能开立一次银行账户。(3) 存款业务客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账户。(4) 取款业务客户登陆系统后,选择取款业务,即可以将输入的取款

3、金额从相应的银行账户取出,但是取款金额必须大于目前的账户余额。(5) 查询业务客户登陆系统后,可以选择查询业务,查询账户余额。- 2 -(6) 转账业务客户登陆系统后,可以选择转账业务,进行转账。注意的是转账的目的账户必须是本系统已经存在的银行账户。(7) 修改密码客户登陆系统后,可以选择修改密码业务,进行密码修改。二、各阶段具体要求:1、系统总体设计阶段(1)根据需求分析划分功能模块(2)分析并设计各个功能模块之间的关系(3)对于各个功能模块,设计相应的数据结构(必须使用链表完成全部功能)(4)设计相应的算法(必须包括排序和检索功能,且基于链表进行排序和检索)2、详细设计阶段(1)对于每个功

4、能模块,应划分成操作层和数据层(2)对于每个操作层,应尽量考虑用户操作的简单,便捷(3)对于每个数据层,必须使用链表进行管理(4)在用链表进行管理时,必须用到链表检索和排序(5)对于数据层的操作完的数据必须保存到文件中(包括文件读、写操作)3、编码实现阶段(1)完成代码编写 (2)要求代码编写规范(不得使用全局变量、所有功能模块必须使用函数封装主函数 main()的行数不得超过代码总长度的 25%)(3)代码必须有相应的注释(注释行数不得少于代码的 10%,函数功能、变量名、算法、重要的循环、分支都必须用注释说明)4、系统测试阶段(1)完成功能调试(2)要求完成必要的测试工作5、交付实施阶段(

5、1)提交可正常执行的系统,程序代码(2)撰写项目实训报告书(3)要求按照文档书写规范,严格地书写文档(4)注意:不允许使用代码、图片和表格填充报告空间。代码、图片和表格在报告中的空间比重不得超过 1/3。要求使用文字清晰描述代码思想和逻辑,文字描述不得少于 3000字(不包含注释文字) 。三、设计工作量:(1)软件设计:严格按照具体设计要求,完成问题陈述中所提到的所有需求功能。(未使用链表实现的、代码少于 300行的不及格,未使用链表排序的成绩不可以为优)(2)设计报告:要求撰写不少于 3000个文字的文档,详细说明各阶段具体要求。四、工作计划:安排 16 周时间进行实训(每周 2 课时) ,

6、软件开发步骤如下,在第 16 周必须完成所有任务,实训与报告撰写同步进行;序号 实践项目名称 内容提要 实践时数 实践类型 实践要求 每组人数1实训项目 1:程序架构的描述1、数据与逻辑分离2、程序架构的描述 4 验证 必开 12实训项目 2:链表在工程中的应用1、使用链表来构造 ATM机的后台数据管理2、实现常见的链表操作插入、删除、修改、遍历以及创建链表8 验证 必开 13实训项目 3:排序在项目中的应用1、在使用链表的基础上引导学生完成 23种主要排序冒泡、选择和插入2、将这些算法结合到学生的工程应用题中8 验证 必开 14实训项目 4:查找在项目中的应用1、在使用链表的基础上引导学生完

7、成 12种主要查找如顺序查找2、将这些算法结合到学4 验证 必开 1- 4 -生的工程应用题中5实训项目 5:结构在文件中的应用1、讨论不同结构的设计技巧,考虑在同一项目中使用自定义结构的必要性2、考虑将复杂结构双向链表、循环链表作为解决问题的一种途径与手段4 验证 必开 16实训项目 6:文件操作技巧1、加强学生对文件操作的认识2、考虑将复杂结构中的相关数据通过写入文件的方法作为长期记录保存的工具3、并将此作为改进项目的手段4 验证 必开 1五、注意事项1)提交文档课程实训任务书 (每学生 1份)课程实训报告 (每学生 1份)2)成绩评定学生成绩由指导老师负责考察评定,分为:优、良、中、及格

8、和不及格五档。 以下情况可以判断成绩为不及格:a、 抄袭b、 代码量少于 300行c、 未使用链表d、 报告不符合规范 以下情况不可以判断成绩为优:a、 未使用链表排序b、 使用全局变量c、 大量代码集中在主函数 main()中,而不是使用函数进行合理封装d、 功能不完善,有残缺e、 代码缺乏必要的注释f、 缺课 其他情况由指导老师综合考虑给予成绩评定 主要考察知识点与要求:a、 链表组织数据b、 排序(基于链表)c、 链表检索d、 文件保存和读取数据e、 函数封装及调用f、 代码缩进和注释等软件工程原则基本要求g、 文档程 序 设 计 基 础 实 训 III摘 要银行 ATM取款机系统能为用

9、户提供存款、取款、查询、转账与修改密码的功能。在客户操作该取款机时,若是新客户,则必须先注册,设定好账号与密码,然后在登录界面进行登录。登录系统将对客户的账号与密码进行逐一的核对,账号输入三次不正确,系统将自动退出。若账号正确,密码输入三次有误,系统同样会自动退出。二者都核对无误将进入银行菜单选择界面。客户可根据自己的需求进行选择。若客户选择取款业务,进入取款界面,先显示客户的余额,然后再提示客户按指定的要求进行操作。客户存入多少金额,就会在客户原有的余额上加上存入的金额。最后显示客户现有余额,自动返回选择功能界面。取款与存款基本相同。若客户需要修改密码,进入修改密码界面时,系统将提醒客户输入

10、原密码,若输入的原密码错误,系统将提示密码输入错误后自动返回选择功能界面。核对密码无误将提示客户设定新的密码。系统会自动保存客户设定的新密码,客户下次登录时只能运用新密码才能成功登录。II目 录摘 要 I第 1 章 银行 ATM 取款机功能 .11.1银行开户界面 .11.1.1录入客户信息操作提示 11.1.2 客户输入项 .11.1.3 操作流程 .11.1.4开户界面示意图 21.2银行登录界面 .21.2.1客户登录操作提示 21.2.2操作流程 21.2.3客户登录界面示意图 21.3银行业务功能选择界面 .31.3.1业务功能选择操作提示 31.3.2操作流程 31.3.3业务功能

11、选择界面示意图 31.4银行取款界面 .31.4.1银行取款操作提示 31.4.2操作流程 31.4.3银行取款界面示意图 41.5银行余额查询界面 .41.5.1银行余额操作提示 41.5.2操作流程 41.5.3银行余额查询界面示意图 41.6银行转账界面 .51.6.1银行转账操作提示 51.6.2操作流程 51.6.3银行转账界面示意图 51.7修改密码界面 .51.7.1修改密码操作提示 51.7.2操作流程 51.7.3修改密码界面示意图 61.8银行存款界面 .61.8.1银行存款操作提示 61.8.2操作流程 61.8.3银行存款界面示意图 7第 2 章 银行取款机后台操作 .

12、8程 序 设 计 基 础 实 训 IIIII2.1 建立客户信息 82.1.1 操作流程 .82.1.2建立客户信息示意图 82.2卡号查询客户信息 .82.2.1 操作流程 .92.3姓名查询客户信息 .92.3.1 操作流程 .92.4余额查询客户信息 .92.4.1 操作流程 .92.5删除客户信息 .102.5.1 操作流程 .102.6增加客户信息 .102.6.1 操作流程 .102.7排序输出客户信息 .102.7.1 操作流程 .11第 3 章 银行取款机系统制作流程 .123.1程序框架的描述 .123.1.1 数据域逻辑的分离 .123.1.2 程序架构的描述 .123.2

13、 链表在工程中的应用 123.2.1链表作用于后台 123.2.2 实现常见的链表操作 .123.3 排序在项目中的应用 133.3.1 链表排序 .133.3.2 链表排序的应用 .133.4 排序查找在项目中的应用 133.4.1 运用链表查找 .133.4.2运用链表查找的应用 133.5 结构在文件中的应用 133.5.1 不同结构的设计技巧 .133.5.2运用复杂结构解决问题 143.6 文件的操作技巧 143.6.1 文件操作的认识 .143.6.2运用文件对 ATM进行改进 14结 论 .15附 录 .17致 谢 .36程 序 设 计 基 础 实 训 II1第 1 章 银行 A

14、TM 取款机功能 1.1 银行开户界面 新客户使用银行取款机系统时,必须先进行开户。客户在进行开户业务时,提示客户输入姓名,身份证号码即新客户的银行卡号,并设定好银行卡密码。新客户的默认余额为 0.0元。当客户注册成功后,系统将自动保存客户信息,然后显示客户的姓名,卡号,以及客户的默认余额。以便客户识记。1.1.1 录入客户信息操作提示客户进入开户界面时,提示客户输入姓名,身份证号码即新客户的银行卡号,并设定好银行卡密码。1.1.2 客户输入项表 1.1 客户输入值输入项名称 标志 i 数据类型 有效范围用户姓名 name 数组 20 位用户卡号 ID 数组 20 位用户密码 key 数组 6

15、 位1.1.3 操作流程客户进入开户界面时,按下面指定要求进行操作。第一步:显示欢迎客户来到建设银行开户,提示客户输入客户姓名,身份证号(卡号) ,以及设定银行卡密码。第二步:当用户正确输入完信息后,提示注册成功,保存客户信息。第三步:显示客户输入的姓名与卡号与默认余额,方便客户识记.第四步:进入用户选择登录界面。21.1.4 开户界面示意图图 1.1 开户界面示意图1.2 银行登录界面1.2.1 客户登录操作提示 客户进入银行取款机登录界面时,按照指定的要求进行操作,若输入有误,系统将自动提醒用户重新输入。1.2.2 操作流程客户进入登录界面时,按下面指定要求进行操作。第一步:提示客户输入身

16、份证号(卡号) ,若客户输入的银行卡号与注册的卡号不相同,则提示客户输入有误,让客户重新输入。三次输入银行卡号有误,系统将自动退出。若输入卡号正确,则进入下一个流程。第二步:提示客户输入银行卡密码,若客户输入的银行卡密码与注册的银行卡密码不相同,则提示客户输入有误,让客户重新输入。三次输入银行卡密码有误,系统将自动退出。若输入密码正确,提示客户登录成功,进入银行取款机业务功能选择界面1.2.3 客户登录界面示意图图 1.2 登录界面示意图程 序 设 计 基 础 实 训 II31.3 银行业务功能选择界面1.3.1 业务功能选择操作提示客户进入银行业务功能选择界面时,按照指定的要求进行操作,若输

17、入有误,系统将自动提醒用户重新输入。1.3.2 操作流程客户进入银行业务功能选择界面时,按下面指定要求进行操作。第一步:功能选择界面中,为客户提供存款、取款、查询、转账、修改密码与退出的功能。客户可从中选择自己需要的业务。第二步:客户输入与功能业务对应的阿拉伯数字,即可进入相应的业务流程中,以便满足客户的需求。第三步:客户完成自己的业务后,系统将自动返回业务功能选择界面,客户可重新选择,也可选择退出,退出取款机系统。1.3.3 业务功能选择界面示意图图 1.3 业务功能选择界面示意图1.4 银行取款界面1.4.1 银行取款操作提示客户进入银行取款界面时,按照指定的要求进行操作。若输入有误,系统

18、将自动提醒用户。1.4.2 操作流程客户进入银行取款界面时,按下面指定要求进行操作。4第一步:在银行取款界面中显示客户可取金额数目项目,客户按照指定金额对应的阿拉伯数字输入即可。第二步:当客户按照指定的要求输入时,将对客户输入的金额与用户里面的余额进行比较,若客户输入的金额大于现有余额,则提示客余额不足,返回功能选择界面。第三步:若客户输入的金额小于客户原有余额,则从客户原有余额中减去当下所取金额,然后提示取款成功,并显示客户现有余额。第四步:客户完成取款业务后,系统将自动返回业务功能选择界面,客户可重新选择,也可选择退出,退出取款机系统。1.4.3 银行取款界面示意图图 1.4 银行取款界面

19、示意图1.5 银行余额查询界面1.5.1 银行余额操作提示客户进入银行取款界面时,系统将自动显示您卡上的余额。1.5.2 操作流程客户进入银行取款界面时,按下面指定要求进行操作。第一步:在进入银行查询界面时,系统自动显示客户余额。第二步:客户完成查询业务后,系统将自动返回业务功能选择界面,客户可重新选择,也可选择退出,退出取款机系统。1.5.3 银行余额查询界面示意图图 1.5 银行余额查询界面示意图程 序 设 计 基 础 实 训 II51.6 银行转账界面1.6.1 银行转账操作提示客户进入银行转账界面时,按照指定的要求进行操作。若输入有误,系统将自动提醒用户。1.6.2 操作流程客户进入银

20、行转账界面时,按下面指定要求进行操作。第一步:客户两次输入需要转账的卡号,若两次输入不相同,则返回选择功能界面。第二步:若客户两次输入相同,则从客户原有余额中减去当下所取金额,然后提示转账成功,并显示客户现有余额。第三步:客户完成取款业务后,系统将自动返回业务功能选择界面,客户可重新选择,也可选择退出,退出取款机系统。1.6.3 银行转账界面示意图图 1.6 银行转账界面示意图1.7 修改密码界面1.7.1 修改密码操作提示 客户进入银行取款机修改密码界面时,按照指定的要求进行操作,若输入有误,系统将自动提醒用户重新输入。1.7.2 操作流程客户进入登录界面时,按下面指定要求进行操作。6第一步

21、:提示客户输入银行卡原密码,对客户输入的密码进行核对,若客户输入的银行卡原密码与注册的银行卡密码不相同,则提示客户输入有误,系统将自动返回功能选择界面。若输入密码正确,则进入下一个流程。第二步:提示客户输入新密码,并保存好客户修改的新密码。下次登录只能用新密码才能成功登录。第三步:客户完成修改密码业务后,系统将自动返回业务功能选择界面,客户可重新选择,也可选择退出,退出取款机系统。1.7.3 修改密码界面示意图图 1.7 修改密码界面示意图1.8 银行存款界面1.8.1 银行存款操作提示客户进入银行存款界面时,按照指定的要求进行操作。若输入有误,系统将自动提醒用户。1.8.2 操作流程客户进入

22、银行存款界面时,按下面指定要求进行操作。第一步:在银行存款界面中显示客户可取金额数目项目,客户按照指定金额对应的阿拉伯数字输入即可。第二步:系统将在客户原有余额中加上当下所存金额,然后提示存款成功,并显示客户现有余额。第四步:客户完成取款业务后,系统将自动返回业务功能选择界面,客户可重新选择,也可选择退出,退出取款机系统。程 序 设 计 基 础 实 训 II71.8.3 银行存款界面示意图图 1.8 银行存款界面示意图8第 2 章 银行取款机后台操作2.1 建立客户信息在后台运用链表建立多个客户信息,其中包括客户的姓名、卡号、余额。当连续输入三个零时,将停止建立客户信息,然后按余额的降序讲所有

23、的客户信息输出。以便余额的查找。2.1.1 操作流程操作人员按指定的要求进行操作第一步,操作人员可以任意输入输入几个客户信息,连续按三个零则结束客户信息的输入。输入完成后,将所有的客户信息按余额的降序输出。第二步:操作者完成客户信息输入后,系统将自动返回后台功能选择界面,操作者可重新选择,也可选择退出,退出后台操作系统。2.1.2 建立客户信息示意图图 2.1 建立客户信息示意图2.2 卡号查询客户信息 在客户信息查询界面中,能够对建立的所有客户的信息按照卡号进行查询,当找到链表中的卡号与输入的客户的卡号相同时,则显示出客户的信息,包括客户的姓名,卡号,以及余额。若没有找到与之相同的客户卡号,

24、则提示没有该用户,返回功能界面,重新选择。程 序 设 计 基 础 实 训 II92.2.1 操作流程操作人员按指定的要求进行操作第一步,操作人员输入需要查找的客户的卡号,当找到链表中的卡号与输入的客户的卡号相同时,则显示出客户的信息,包括客户的姓名,卡号,以及余额。若没有找到与之相同的客户卡号,则提示没有该用户,返回功能界面,重新选择。第二步:操作者完成客户信息查询后,显示该客户的姓名、卡号、以及余额。然后系统将自动返回后台功能选择界面,操作者可重新选择,也可选择退出,退出后台操作系统。2.3 姓名查询客户信息 在客户信息查询界面中,能够对建立的所有客户的信息按照姓名进行查询,当找到链表中的客

25、户姓名与输入的客户的姓名相同时,则显示出客户的信息,包括客户的姓名,卡号,以及余额。若没有找到与之相同的客户姓名,则提示没有该用户,返回功能界面,重新选择。2.3.1 操作流程操作人员按指定的要求进行操作第一步,操作人员输入需要查找的客户的姓名,当找到链表中的客户姓名与输入的客户的姓名相同时,则显示出客户的信息,包括客户的姓名,卡号,以及余额。若没有找到与之相同的客户姓名,则提示没有该用户,返回功能界面,重新选择。第二步:操作者完成客户信息查询后,显示该客户的姓名、卡号、以及余额。然后系统将自动返回后台功能选择界面,操作者可重新选择,也可选择退出,退出后台操作系统。2.4 余额查询客户信息 在

26、客户信息查询界面中,能够对建立的所有客户的信息按照余额进行查询,当找到链表中的客户余额与输入的客户的余额相同时,则显示出客户的信息,包括客户的姓名,卡号,以及余额。若没有找到与之相同的客户余额,则提示没有该用户,返回功能界面,重新选择。102.4.1 操作流程操作人员按指定的要求进行操作第一步,操作人员输入需要查找的客户的余额,当找到链表中的客户余额与输入的客户的余额相同时,则显示出客户的信息,包括客户的姓名,卡号,以及余额。若没有找到与之相同的客户余额,则提示没有该用户,返回功能界面,重新选择。第二步:操作者完成客户信息查询后,显示该客户的姓名、卡号、以及余额。然后系统将自动返回后台功能选择

27、界面,操作者可重新选择,也可选择退出,退出后台操作系统。2.5 删除客户信息 在已经建立起了链表的前提下,后台操作者可以对客户的信息进行删减,当操作者输入所要删除的客户的卡号,然后与链表建立中的客户卡号逐一进行比较,若二者相同,则删除该客户的信息。若没有与之相同的,则提示没有该客户。然后返回功能界面。2.5.1 操作流程操作人员按指定的要求进行操作第一步,操作人员输入需要删除的客户的卡号,当找到链表中的客户卡号与输入的客户的卡号相同时,则删除该用户的信息。若没有找到与之相同的客户卡号,则提示没有该用户,返回功能界面,重新选择。第二步:操作者完成删除客户信息后,系统将自动返回后台功能选择界面,操

28、作者可重新选择,也可选择退出,退出后台操作系统。2.6 增加客户信息 后台操作者可以增加客户的信息,操作者按要求输入客户的姓名、卡号、余额即可。建立完成后,自动返回功能界面。2.6.1 操作流程操作人员按指定的要求进行操作第一步,操作人员输入需要增加的客户的卡号、姓名、以及余额。第二步:操作者完成增加客户信息后,系统将自动返回后台功能选择界面,操作者可程 序 设 计 基 础 实 训 II11重新选择,也可选择退出,退出后台操作系统。2.7 排序输出客户信息 后台操作者输入与排序输出对应的阿拉伯数字即可。2.7.1 操作流程操作人员按指定的要求进行操作第一步,操后台操作者输入与排序输出对应的阿拉

29、伯数字即可。第二步:排序输出所有客户信息后,系统将自动返回后台功能选择界面,操作者可重新选择,也可选择退出,退出后台操作系统。12第 3 章 银行取款机系统制作流程3.1 程序框架的描述在制作 ATM银行取款机系统时,首先明确取款机系统的功能,熟悉掌握各操作之间的关系,了解客户的需求,在脑海中有一个熟练的操作流程。然后对功能与需求进行仔细的分析。构造出一个完整的操作流程的框架。3.1.1 数据域逻辑的分离在制作银行取款机系统时,首先不处理程序的有关数据,比如说不核对客户银行卡卡号与密码即可进入功能选择界面,不处理取款时余额是否不足,客户的输入有误等这些问题,而是将银行取款机系统中的各个功能的函

30、数基本框架构建好,这样银行取款机系统中逻辑这一块就不受数据方面的约束而显得非常清晰了。3.1.2 程序架构的描述在构建的取款机系统的函数中包括注册函数、登录函数、取款函数、查询函数、转账函数、存款函数、修改密码函数、退出函数。每构件一个函数时,先在主函数中调用,能够成功编译运行时再写别的函数,然后逐一进行调用,编译运行无误即可。然后根据到那个模块就调用相应的功能函数,在运行时都有相应的功能界面即可,这样银行取款机系统的基本框架就已经成型了。3.2 链表在工程中的应用3.2.1 链表作用于后台运用链表建立银行 ATM后台管理系统。在银行 ATM后台管理系统中,可以建立若干个客户信息,直到连续输入

31、三个零则停止客户信息的建立。在后台中,可以运用卡号、姓名、以及余额进行客户信息查询。并且可以对客户的信息进行插入、删除等功能。程 序 设 计 基 础 实 训 II133.2.2 实现常见的链表操作在后台链表操作中。能够建立若干个客户的信息,同时也可以对所有的客户信息遍历,进行输出,同时可以对所有的客户信息按余额的降序排序进行输出。在已经建立好了客户信息的前提下,能够对客户的信息进行删减,同时也能够增加客户的信息。同时能够按客户的卡号、姓名、以及余额,对客户的信息进行查询。3.3 排序在项目中的应用3.3.1 链表排序链表排序,包括冒泡排序,选择排序,以及插入排序。运用链表排序与运用数组进行排序

32、的思想很类似。比如说冒泡排序,冒泡排序同样是对所有数据进行逐一的比较。然后将大的数据保存到下面去,直到一轮比较结束,然后再进行第二轮比较。直到所有的比较完成。3.3.2 链表排序的应用将链表排序运用于银行 ATM后台客户信息输出系统中,已经建立好若干个客户信息,当需要让客户的信息按照余额的降序进行排列输出时,则链表的排序则体现出了它的功能。让客户的信息以余额的降序一一排列输出。3.4 排序查找在项目中的应用3.4.1 运用链表查找建立好完整的链表后,并需要在链表中查找相关消息时,首先对整个链表进行遍历,逐一进行核对,找出所需要找的信息。3.4.2 运用链表查找的应用在银行取款机系统以及后台操作

33、系统中,首先运用链表建立完整的客户信息,当需要寻找某个客户的相关信息时,首先对整个链表进行遍历,逐一进行核对,找出所需要找的客户信息,然后将该客户的信息一一输出。143.5 结构在文件中的应用3.5.1 不同结构的设计技巧定义结构体,方便将客户的所有信息以一个小小的模块的形式录入,对其进行查找时,很容易找到该客户的所有信息。3.5.2 运用复杂结构解决问题定义好结构体,将客户的所有信息以一个小小的模块的形式录入,对其进行查找时,能够一起找到该客户的所有信息。这样可以全部输出客户的所有信息,也可以有选择的输出客户的某项信息。方便操作,同时也方便寻找。3.6 文件的操作技巧3.6.1 文件操作的认

34、识文件操作,就是将键盘输入的数据,以写的方式将该信息写入文件夹中进行保存,当需要查找某信息时,又以读的形式将信息从文件中读出来。3.6.2 运用文件对 ATM 进行改进运用文件,将运用链表建立的银行取款机系统进行优化。运用链表建立的数据,只能是一次性的,当一次操作完成以后,当再进行登录操作时,原有数据全部丢失,又需要进行构建数据信息。当运用文件对链表建立的数据,以写的方式将所有信息写入文件夹中进行持久保存,当需要查找某客户的信息时,又以读的形式将信息从文件中读出来。这样,当第一次操作全部结束后,再登录银行取款机系统时,将文件中存有的数据以读的方式读出来,又可以进行连续的操作,这样数据能够多次利

35、用,方便实用。程 序 设 计 基 础 实 训 II1516附 录#include #include#includestruct per /*定义结构体*/char name20; char ID20;int money;char mima6;struct per *next;typedef struct person struct per kehu ; struct person *next; L; void chaxun(struct per *head); /*各个函数的声明*/void kaihu(struct per *head);void denglu(struct per *hea

36、d);void caidan(struct per *head);void qukuan(struct per *head);void xgmm(struct per *head);void cunkuan(struct per *head);void zhuangzhang(struct per *head);void chuangjian(struct person *Phead);void shuchu(struct person *Phead);void shanchu(struct person *Phead);void paixu(struct person *Phead);voi

37、d zengjia(struct person *Phead); void chaxun1(struct person *Phead);void chaxun2(struct person *Phead);void chaxun3(struct person *Phead);void tuichu();void menu();程 序 设 计 基 础 实 训 II17/*主函数*/void main() char x;char choose; /*choose 为定义输入选择的变量*/int flag=1; struct person *Phead=NULL; /*r 为定义二层头指针*/str

38、uct per *head=NULL; /*head 为定义一层头指针*/printf(“ *n“);printf(“ * 欢迎使用 ATM 自动取款机系统 *n“);printf(“ *nnnn“);printf(“-n“);printf(“| 1 开户 |n“);printf(“-n“);printf(“| 2 登录 |n“);printf(“-n“);printf(“| 3 前台客户信息查询中心|n“);printf(“-n“);printf(“| 请选择您的需求 |n“);printf(“-n“);scanf(“%s“,system(“cls“); switch(x)case 1:sy

39、stem(“cls“); kaihu(head); /*调用开户函数*/break;case 2:system(“cls“);denglu(head); /*调用登陆函数*/break;case 3:system(“cls“);menu(); /*调用后台菜单函数*/break; while(flag) system(“cls“); menu(); /*调用后台菜单函数*/choose=getchar(); switch(choose) 18 case 1:chuangjian(shuchu(Phead); /*调用后台输出函数*/ system(“pause“);system(“cls“);

40、break; case 2:chaxun1(Phead); /*调用后台卡号查询函数*/system(“pause“);system(“cls“);break; case 3:chaxun2(Phead); /*调用后台姓名查询函数*/break; case 4:chaxun3(Phead); /*调用后台余额查询函数*/break; case 5:shanchu( /*调用后台删除用户函数函数 */break; case 6:zengjia( /*调用后台增加用户函数*/ break; case 7:paixu( /*调用后台排序函数函数*/shuchu(Phead); /*调用后台输出函数

41、函数*/break;case 8:shuchu(Phead);break; case 0:flag=0; printf(“The end.n“); break; /*开户函数*/void kaihu(struct per *head) head=NULL;FILE *fp; /*定义文件指针 */per *p1=NULL,*p2=NULL; /*p1,p1 为定义链表指针*/p1=(per*)malloc(sizeof(per); /*开辟内存单元*/printf(“请输入您的姓名:n“); /*将数据输入链表中*/scanf(“%s“,p1-name );printf(“请设置您的卡号:n“

42、);程 序 设 计 基 础 实 训 II19scanf(“%s“,p1-ID);printf(“请设置您银行卡密码:n“);scanf(“%s“,p1-mima);p1-money=0;p1-next =NULL; printf(“您的个人信息为n“);printf(“姓名:%s n 卡号:%s n 余额:%4dn“,p1-name ,p1-ID,p1-money );if(NULL=head) /*为新增客户开辟内存单元*/head=(per *)malloc(sizeof(per);head-next =p1;else /*为新增客户开辟内存单元*/for(p2=head;p2-next!

43、=NULL;p2=p2-next); p2-next=p1;if(fp=fopen(“save.txt“,“ab+“)=NULL) /*打开文件*/printf(“cannot open filen“);return;if(fwrite(p1,sizeof(per),1,fp)!=1) /*将链表信息写入文件中*/ printf(“file write errorn“);fclose(fp); printf(“n“);printf(“恭喜您开户成功,请登录n“);system(“pause“);system(“cls“); denglu(head); /*登陆函数*/ /void denglu(struct per *head) char d20;char mima20;int i,j;FILE *fp; /*定义文件指针*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 教育范文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报