(完整版)银行存取款管理系统设计

合集下载

银行存取款管理系统设计

银行存取款管理系统设计

题目:银行存取款管理设计功能:能够输入和查询客户存款取款记录。

在客户文件中,每个客户是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额;在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。

类别分为取款和存款两种。

本系统能够输入客户存款或取款记录;根据客户姓名查询存款和取款记录。

分步实施:1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;2、建立一个文件,输入客户的必要信息,能对文件进行显示、输入、修订、删除等。

3、进一步要求:完成客户姓名查询存款和取款记录,并能得到每次帐户总金额。

要求:1、用C语言实现系统;2、利用结构体数组实现信息的数据结构设计;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机交互),程序加必要的注释。

课程设计实验报告要求:1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。

2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。

一、系统简介设计一个基于结构体数组的银行存取款管理系统,能实现对客户存取款信息进行录入、修改、删除、查询和输出等基本操作。

二、需求分析银行存取款管理系统应实现以下功能:1、能录入用户存取款的基本信息,包括客户姓名、性别、年龄、住址以及存取款日期、数目等基本信息,保存到结构体数组中。

2、能根据输入客户姓名进行存取款信息的查询以及修改、删除等操作。

3、能根据客户姓名进行查找后,以列表的方式将客户存取款信息显示在屏幕上。

三、概要设计1、系统功能结构图根据项目的开发要求,本系统划分成六个主功能模块:录入客户存取款信息模块、修改客户存取款信息模块、删除客户存取款信息模块、查询客户存取款信息模块、输出客户存取款模块和系统退出模块。

系统功能结构图如下:2、重要数据的数据结构设计客户存取款信息的记录项用结构体Student表示,包括5个属性:name、sex、age、addr、num 分别代表客户姓名、性别、年龄、住址以及客户存取款数目。

(完整word版)简单银行存取管理系统--详细设计说明书

(完整word版)简单银行存取管理系统--详细设计说明书

1引言1.1编写目的概要设计完成了软件系统的总体设计,规定了各个模块的功能及模块之间的联系。

通过详细设计,实现各个模块规定的具体功能。

在详细设计说明书中,对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达,使之成为编码的依据。

主要确定各个模块的算法,用工具表达算法的过程,确定每一模块数据结构,确定模块儿间接口细节。

1.2背景在传统的银行账户管理中,其过程往往是很复杂的,繁琐的,账户管理以入账和出账两项内容为核心,在此过程中又需要经过若干道手续,因为整个过程都需要手工操作,效率十分低下,且由于他们之间关联复杂,统计和查询的方式各不相同,且会出现信息的重复传递问题,因此该过程需要进行信息化,以利用计算机进行账目管理。

本系统的名字是银行储蓄管理系统。

2程序系统的结构用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间的层次结构关系。

<1> 用户模块的分解可将用户操作分解为:存款,取款,查询,开户。

图1 用户模块图<2>管理员操作的分解管理员的操作是将用户的操作传送给系统,代替用户与系统交互,所以,管理员的操作与系统的操作基本类似,也可以近似地将管理员看作用户。

所以操作员操作可分解为:查询、冻结、解冻。

图2 管理员模块图3程序设计说明3.1管理员登陆模块 3.1.1程序描述管理员登陆主要是针对银行系统的管理员管理账户信息时使用,如用户注册,用户登录。

常驻内存,非子程序,无覆盖要求,顺序处理。

3.1.2功能输入 输出 处理3.1.3性能本模块对程序性能要求是在6秒内完成验证。

3.1.4输人项密码:六位0—9数字。

非经法定程序,不得外泄。

管理员ID:七位0—9组成的字符串,非经法定程序,不得外泄。

3.1.5输出项成功进入银行管理系统界面。

或者输出:您输入的管理员用户名或密码错误,请重新输入! 3.1.6算法一个IF … ELSE …的判断语句,TRY CATCH 异常的处理3.1.7流程逻辑3.1.8接口3.1.9存储分配管理员信息存在管理员表中。

银行存取款业务管理信息系统分析与设计

银行存取款业务管理信息系统分析与设计

银行存取款业务管理信息系统分析与设计学生学号:学生姓名:专业名称:管理信息系统教师:一、项目简介(1)开发背景随着科技发展和社会进步,尤其是计算机大范围的普及,计算机应用逐渐由大规模科学计算的海量数据处理转向大规模的事务处理和对工作流的管理,这就产生了以台式计算机为核心的管理信息系统在大规模的事务处理和对工作流的管理等方面的应用,在银行帐目管理之中的应用日益增加。

近年来我国信息产业发展迅速,手工管理方式在银行帐目管理等需要大量事务处理的应用中已显得不相适应,采用IT技术提高服务质量和管理水平势在必行。

目前,对外开放必然趋势使银行业直面外国银行巨头的直接挑战,因此,银行必须提高其工作效率,改善其工作环境。

这样,帐户管理的信息化势在必行。

在传统的银行帐户管理中,其过程往往是很复杂的,繁琐的,帐户管理以入帐和出帐两项内容为核心,在此过程中又需要经过若干道手续,因为整个过程都需要手工操作,效率十分低下,且由于他们之间关联复杂,统计和查询的方式各不相同;且会出现信息的重复传递问题,因此该过程需要进行信息化以利用计算机进行帐目管理。

系统开发的整体任务是实现银行帐户管理的系统化、规范化、自动化和智能化,从而达到提高企业管理效率的目的。

(2)主要功能需求银行存取款系统是针对银行帐目的日常管理而设计。

银行帐目管理系统不仅要求操作方便而且要求界面简洁,它还需要实现帐目管理,用户查询和查询统计功能。

以前的商业银行采用的是以各种票据通过人工操作方式进行的业务以前的每一个流程都通过填写各种票据人为的对这些票据进行管理和统计效率低下而且对这些票据记录的整理需要大量的人力和物力使企业成本很高;在大量的票据整理过程中还易发生各种错误如票据填错、漏填、丢失等使银行因此承受经济损失所以商业银行应该实施信息化管理提高效率进而增加经济效益。

利用计算机信息管理系统,能够更有效的实现银行存取款业务操作。

二、系统分析(1)组织结构图(2)业务流程分析图银行存款业务流程图:银行取款业务流程图:(3)数据流程分析图银行存款业务流程图银行取款业务流程图(4)数据字典1.数据项的定义表5-1 数据字典(一) No :__01_填表人________ 年 月 日2.数据结构的定义表5-2 数据字典(二) No :____02____ 填表人__________ 年 月 日表5-3 数据字典(三) No:____03______填表人____________ 年月日表5-3 数据字典(四) No:____04______填表人____________ 年月日表5-4 数据字典(五) No:____05______填表人__________ 年月日表5-4 数据字典(六) No:___06_______填表人_____________ 年月日表5-5 数据字典(七) No:_____07_____填表人__________ 年月日6.外部实体的定义表5-6 数据字典(八) No:___08_______填表人_________ 年月日三、系统设计(1)代码设计业务记录编号:每一笔业务都对应一个记录,业务记录编号是对应业务而设立的,在账目记录表中使用,要求不重复,从而确保每一个记录只有一个记录编号。

银行储蓄管理系统总体设计

银行储蓄管理系统总体设计
二、各模块结构设计
前面需求分析可以看出,系统功能清晰,银行储蓄管理系统功能部分数据分为3类:账号管理、储存管理、取款管理。从使用和操作的功能上分,为便于整个系统组织管理,把各个相对独立的数据或功能组织到整个大系统中来,我们把各个相对独立的功能完全独立设计,编译成独立的目标(功能)模块,各功能模块最后被集成到一个主模块中。相应地将系统结构分为一个主程序和6个模块。对应于每一个模块,几乎都有录入、查询、修改、删除、查看详细资料这几个功能。整个业务流程就是由这几种基本功能实现的。在这里每个模块都要用到的功能没必要在每个子模块里重复阐述,在每个子模块里只列出区别于其它子模块的功能实现。
18
用于唯一标识用户身份
4
电话号码
Int
11
5
住址
String
30
6
申请账户类型
String
20
3.存款管理设计
数据表如下,用于存储所有存款业务元素
序号
属性名
属性类型
长度
备注
1
存折号
Varchar
15
用于唯一标识用户身份
2
存款额
Money
12.2
本次存款额
3
发生时间
Datetime
8
当前本储户的存款的发生时间
总体设计
一、系统分析
通过对前面需求分析文档的进一步理解,再结合面向数据流的设计方法,我们找到了银行储蓄管理系统的最佳方案。该系统的功能可分解为:
1.登陆
2.申请账号模块
3.存款管理模块
4.取款管理模块
5.查询管理模块
6.退出
银行储蓄系统结构图如下图所示,业务员登陆后进入系统后选择根据客户需求选择性地进入各模块进行数据处理。

ATM机管理系统详细设计说明书

ATM机管理系统详细设计说明书

ATM机管理系统详细设计说明书ATM机管理系统详细设计说明书1:引言1.1 目的1.2 背景1.3 范围1.4 参考资料2:系统概述2.1 功能概述2.2 用户类型2.3 系统界面2.4 系统架构2.5 第三方集成3:数据库设计3.1 数据库架构3.2 数据库表结构3.3 数据库表关系4:模块设计4.1 登录模块4.1.1 用户身份验证 4.1.2 用户权限控制 4.2 交易模块4.2.1 取款功能4.2.2 存款功能4.2.3 转账功能4.2.4 查询余额功能 4.3 管理模块4.3.1 管理员权限验证 4.3.2 用户信息管理 4.3.3 ATM机信息管理5:界面设计5.1 登录界面5.2 交易界面5.3 管理界面6:系统安全设计6.1 数据加密6.2 访问控制6.3 日志记录7:性能优化7.1 高并发处理7.2 缓存使用7.3 数据库索引优化8:测试策略8.1 单元测试8.2 集成测试8.3 系统测试9:部署与维护9.1 部署环境9.2 系统上线流程 9.3 系统维护计划10:附件10:1 数据库表结构图10:2 界面设计图10:3 测试用例本文所涉及的法律名词及注释:1: ATM机:自动取款机(Automated Teller Machine),是一种自动化提供金融服务的机器。

2:系统界面:用户与系统进行交互的界面,包括登录界面、交易界面和管理界面。

3:数据库架构:数据库的组织方式,包括表、索引、关系等。

4:用户身份验证:验证用户身份是否合法,常见方式包括密码验证、指纹验证等。

5:访问控制:限制用户对系统资源的访问权限,确保系统安全。

6:单元测试:对系统中最小的功能单元进行验证的测试方法。

7:集成测试:将各个模块集成起来进行验证的测试方法。

8:系统测试:对整个系统进行验证的测试方法。

银行存取款管理信息系统

银行存取款管理信息系统

某银行存取款管理信息系统设计一、系统设计的目的:在传统的银行帐户管理中,其过程往往是很复杂的,繁琐的,帐户管理以入帐和出帐两项内容为核心,在此过程中又需要经过若干道手续,因为整个过程都需要手工操作,效率十分低下,且由于他们之间关联复杂,统计和查询的方式各不相同;且会出现信息的重复传递问题,因此该过程需要进行信息化,以利用计算机进行帐目管理。

本系统是模拟银行帐户及存取款的管理,开发一个银行存取款的管理系统。

充分运用计算机技术,方便操作人员的使用,提高客户存取款的效率,提高银行的服务质量。

系统开发的整体任务是实现银行帐户管理的系统化、规范化、自动化和智能化,从而达到提高银行存取款管理效率的目的。

二、系统分析:(一)需求分析1、业务需求:该银行存取款管理信息系统主要完成的功能主要有:管理员信息管理用户信息修改、开户、销户存款、取款取款机信息管理报表输出、报表打印2、功能需求:根据用户需求和存取款管理系统的基本功能,本系统的结构图如下3-1所示(1)功能定义:系统管理是便于以后系统升级,对储户的存取款信息的操作在信息管理模块中完成,包括录入、修改、删除等操作。

查询和统计分别在各自的模块中。

(2)模块定义:主模块:输入:操作系统传递的各种信息以及用户输入的各种数据。

输出:系统启动界面显示。

系统登录模块:输入:选择用户并输入口令。

输出:确认后显示主菜单。

系统设置模块:输入:数据并确认输出:弹出对话框显示设置成功与否修改口令模块:输入:两次新口令并确认;输出:口令修改成功与否;储户帐目操作模块:1).录入模块:输入:帐户号码、存款数额等信息;输出:确认并提示录入成功与否;2).修改模块:输入:需要修改的信息;输出:确认并提示修改成功与否;3).删除模块:输入:需要删除的信息;输出:确认并提示删除成功与否;数据查询模块:输入:选择查询方式并确认;输出:显示查询结果;数据统计模块:输入:选择需要统计的数据并确认;输出:显示统计结果。

银行ATM机存取款系统程序设计

银行ATM机存取款系统程序设计

银行ATM机存取款系统程序设计任课教师:蒋安珩小组成员:何慧冬 14212114国际经济与贸易贡怡敏 14Y12114 国际经济与贸易(全英)徐唯一 14512125 金融学2013-09-08银行ATM机存取款系统程序设计一案例描述1. 总体描述银行ATM机存取款系统业务描述如下:银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。

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

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

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

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

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

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

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

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

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

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

二界面设计用户根据需要进行登录和开户的选择。

三模块化设计方案1.系统主要函数及功能1)chaxun函数:用以查询客户个人余额2)kaihu函数:用以开户3)denglu函数:客户登录4)caidan函数:向客户展示银行业务菜单,办理存取款、查询等5)qukuan函数:客户取款6)xgmm函数:进行密码修改7)cunkuan函数:客户存款8)zhuanzhang函数:客户转账9)tuichu函数:退出系统2.主函数调用各功能函数流程四.数据结构描述struct per /*定义结构体*/{char name[20]; /*姓名*/char ID[20]; /*卡号*/int money; /*金额*/char code[6]; /*密码*/struct per *next; /*定义指针*/};typedef struct person{struct per kehu ;struct person *next;}L;该数据结构为链表,是一种动态进行存储分配的结构。

银行储蓄系统详细设计

银行储蓄系统详细设计

银行储蓄系统详细设计一、模块设计系统总体结构方图:银行储蓄系统又大致分为两个模块:存款模块和取款模块。

1.身份验证模块:设置身份验证模块的目的保证储户信息的安全。

功能在于对申请登录的用户进行身份验证,通过者才能进入系统。

银行业务员输入储户用户ID,储户输入密码并确定,系统保存用户输入的用户ID和密码,并在customer表中查找customerid和customername字段值,看是否等于业务员输入的用户ID和密码,如相同则通过验证,否则不通过,并给出“密码错误”的提示,如数据库中不存在这样的记录,则给出“该用户不存在”的提示。

2.存款模块:设置存款模块的目的在于将储户的金额存到系统中并记录信息。

存款模块将储户存款金额录入存储到系统中,并附带显示其他储户信息。

该模块的输出项为存款金额,并且附带显示其他信息:用户名、账号、账户余额、利息金额。

当银行业务员输入存款金额后,系统进行处理,显示出账户余额,并且显示其他固定信息。

3.取款模块:设置取款模块的目的在于将储户的取款金额录入并存储到系统中。

取款模块将储户取款金额录入存储到系统中,并附带显示储户其他信息。

该模块的输出项为取款金额,并且附带显示其他信息:用户名、账号、账户余额、利息金额。

当银行业务员输入取款金额后,点击确定按钮,系统进行处理,显示出账户余额,并且显示其他固定信息。

4.存款单打印模块:设置存款单打印模块的目的在于将储户的存款信息以单据的形式及时反馈给储户。

存款单打印模块将储户存款金额以及储户帐户信息以单据形式反馈给储户。

该模块的输出项为存款人、存款银行、业务员编号、存款金额、存款日期、手续费、帐户余额。

当银行业务员输入存款金额后,系统进行处理,显示出账户余额,并且显示其他固定信息。

5.取款单打印模块:设置取款单打印模块的目的在于将储户的取款信息以单据的形式及时反馈给储户。

取款单打印模块将储户取款金额以及储户帐户信息以单据形式反馈给储户。

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

题目:银行存取款管理设计功能:能够输入和查询客户存款取款记录。

在客户文件中,每个客户是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额;在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。

类别分为取款和存款两种。

本系统能够输入客户存款或取款记录;根据客户姓名查询存款和取款记录。

分步实施:1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;2、建立一个文件,输入客户的必要信息,能对文件进行显示、输入、修订、删除等。

3、进一步要求:完成客户姓名查询存款和取款记录,并能得到每次帐户总金额。

要求:1、用C语言实现系统;2、利用结构体数组实现信息的数据结构设计;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机交互),程序加必要的注释。

课程设计实验报告要求:1、预习报告:题目、课程设计任务、数据结构、程序的总体设计(算法)、模块划分。

2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。

一、系统简介设计一个基于结构体数组的银行存取款管理系统,能实现对客户存取款信息进行录入、修改、删除、查询和输出等基本操作。

二、需求分析银行存取款管理系统应实现以下功能:1、能录入用户存取款的基本信息,包括客户姓名、性别、年龄、住址以及存取款日期、数目等基本信息,保存到结构体数组中。

2、能根据输入客户姓名进行存取款信息的查询以及修改、删除等操作。

3、能根据客户姓名进行查找后,以列表的方式将客户存取款信息显示在屏幕上。

三、概要设计1、系统功能结构图根据项目的开发要求,本系统划分成六个主功能模块:录入客户存取款信息模块、修改客户存取款信息模块、删除客户存取款信息模块、查询客户存取款信息模块、输出客户存取款模块和系统退出模块。

系统功能结构图如下:2、重要数据的数据结构设计客户存取款信息的记录项用结构体Student表示,包括5个属性:name、sex、age、addr、num 分别代表客户姓名、性别、年龄、住址以及客户存取款数目。

struct student{char acad[10],name[20],sex; //客户账号,姓名,性别int age; //客户年龄char addr[30]; //客户住址long int num; //存取款数目};3、函数设计银行存取款管理系统程序采用了结构化程序设计的思想,由4个.h头文件和3个.c源文件组成。

程序中除了主函数外,共设计了以下7个函数,分别包含在3个.c源文件中。

以下是这些函数的函数原型及功能设计。

(1)void inputing(student *p);函数功能:输入函数中的输数据部分并保存的函数。

(2)void input(student *p,int i);函数功能:输入函数。

输入客户的基本信息,包括客户姓名、性别、年龄、住址等。

(3)void insert(student *p,int i);函数功能:插入函数。

插入要输入的客户信息。

(4)void output(student *p,int i);函数功能:输出函数。

将需要的客户信息以列表的形式显示在屏幕上。

(5)void sort(student *p,int n);函数功能:排序函数。

按要求将客户存取款信息以账号大小的顺序排列出来。

(6)void find(student *p,int n);函数功能:查找函数。

按要求通过输入客户姓名的方式查询客户存取款信息。

(7)int del(student *p,int n);函数功能:删除函数。

通过输入要删除的客户姓名,查询后删除该客户存取款信息。

四、调试分析本系统在VC6下编译调试通过,可顺利运行,各项功能达到设计要求。

本系统程序由4个.h头文件和3个.c源文件构成。

系统调试主要在VC++6.0下进行,采用分模块调试的方法进行编译,即完成一个函数功能模块就编译一个功能模块,最后再进行整体编译并生成可执行文件Student.exe。

在调试的过程中,主要碰到了以下问题:1、清屏函数在TC 中使用的clrsrc() 函数,但在VC6中没有该函数也没有相应的函数。

查资料,发现在VC中可使用system() 函数调用系统命令cls 实现。

2、在使用C语言系统函数进行数据输入的时候,发现使用getchar()和gets()函数输入字符和字符串的时候,系统经常跳过相应的输入语句,无法输入数据。

查资料,是C系统的输入处理的输入缓存问题,解决方法是在进行字符和字符串输入的时候,先使用fflush(stdin) 函数清除输入缓存,即可正常输入字符和字符串。

五、用户手册本系统是WIN32控制台程序,可在WINDOW和DOS环境下运行,执行文件名称:Student.exe。

运行程序后,首先显示系统信息和版权信息,用户按任意键后进行主功能菜单。

在主功能菜单中输入相应的数字可执行相应的程序功能,包括录入客户存取款信息、修改客户存取款信息、删除客户存取款信息和输出所有客户存取款信息,输入4可进行查询子菜单,可进行按学号查询和按年级查询学生信息。

在主功能菜单按7可结束本系统的运行并自动关闭运行窗口。

六、程序代码://***********银行存取款管理系统****************#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>//自定义结构体程序struct student{char acad[10],name[20],sex; //客户账号,姓名,性别int age; //客户年龄char addr[30]; //客户住址long int num; //存取款数目};void inputing(student *p); //声明输入函数中的输数据部分并保存的函数void input(student *p,int i); //声明输入函数void insert(student *p,int i); //声明插入函数void output(student *p,int i); //声明输出函数void sort(student *p,int n); //声明排序函数void find(student *p,int n); //声明查找函数int del(student *p,int n); //声明删除函数void main(){system("color 34");student *q=NULL; //自定义类型指针int i=0,j,k,b=0;do{printf("\t\t|-------------------------------------------|\n");printf("\t\t|----------一银行存取款管理系统-------------|\n");printf("\t\t| by:xiaqingsong |\n");printf("\t\t|-------------------------------------------|\n");printf("\t\t| 1.输入客户信息 2.添加客户信息|\n");printf("\t\t| 3.排序客户信息 4.查找客户信息|\n");printf("\t\t| 5.删除客户信息 6.显示客户信息|\n");printf("\t\t| 7.退出系统|\n");printf("\t\t|-------------------------------------------|\n");printf("\t\t\t\t请选择菜单: ");scanf("%d",&j);switch(j){case 1:b++;if(b!=1){printf("你已经输入过一次了,不能再选择,加入可以选择<2.添加客户信息>\n");break;}else{printf("请输入要输入的客户人数:");scanf("%d",&i);while(b<=0){printf("输入错误,请重新输入要输入的客户人数:");scanf("%d",&i);}q=(student *)malloc(i*sizeof(student));input(q,i); //调用输入函数break;}case 2:i++;q=(student *)realloc(q,i*sizeof(student));insert(q,i-1); //调用插入函数break;case 3:sort(q,i); //调用排序函数break;case 4:find(q,i); //调用查找函数break;case 5:k=del(q,i); //调用删除函数if(k==1){i--;q=(student *)realloc(q,i*sizeof(student));}break;case 6:output(q,i); //调用输出函数break;case 7:printf("程序即将退出...\n");break;default:printf("菜单选择错误!");}}while(j!=7);free(q);}//输入函数中的输数据部分并保存的函数void inputing(student *p){printf("请输入客户账号:");scanf("%s",p->acad);printf("请输入客户姓名:");scanf("%s",p->name);printf("输入客户住址:");scanf("%s",&(p->addr));do{printf("输入客户性别<m:男/f:女>:");fflush(stdin);scanf("%c",&(p->sex));if(p->sex!='m'&&p->sex!='f'){printf("输入错误,重新");}}while(p->sex!='m'&&p->sex!='f');do{printf("输入客户年龄:");scanf("%d",&(p->age));if(p->age<1||p->age>100){printf("输入错误,重新");}}while(p->age<1||p->age>100);do{printf("输入客户存取款数目:");scanf("%ld",&(p->num));if(p->num<0||p->num>1000000){printf("输入错误,重新");}}while(p->num<0||p->num>1000000);}//输入函数void input(student *p,int i){int x;for(x=0;x<i;x++,p++){printf("请输入第%d名客户存取款信息:\n",x+1);inputing(p); //调用输入函数中的输数据部分并保存的函数printf("\n");}}//输出函数void output(student *p,int i){printf("账号\t姓名\t性别\t年龄\t住址\t存取款数目");int x=0;for(x=0;x<i;x++,p++){printf("%s\t%s\t%c\t%d\t%s\t%ld\n",p->acad,p->name,p->sex,p->age,p->addr,p->num);}printf("\n");}//插入函数void insert(student *p,int i){p=p+i;printf("请输入要插入的客户存取款信息:\n");inputing(p); //调用输入函数中的输数据部分并保存的函数printf("\n");}//排序函数void sort(student *p,int n){student t;int i,j;{printf("要求按账号从小到大排序.\n");for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if(strcmp((p+j)->acad,(p+j+1)->acad)==1){t=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=t;}}}}output(p,n);}//查找函数void find(student *p,int n){student t;int i=0;printf("要求按客户姓名查找:");printf("请输入要查找的姓名:");scanf("%s",);for(i=0;i<n;i++){if(strcmp(,(p+i)->name)==0){break;}}if(i>=n){printf("查找的姓名是%s的客户,没有找到!\n",);}else{printf("查找的姓名是%s的客户,是所输入的客户中的%d个客户.\n",,i+1);printf("账号\t姓名\t性别\t年龄\t住址\t存取款数目");printf("%s\t%s\t%c\t%d\t%s\t%ld\n",p->acad,p->name,p->sex,p->age,p->addr, p->num);}}//删除函数int del(student *p,int n){student t;int i=0,j;char ch;printf("要求按客户姓名删除:");{printf("输入要删除的客户的姓名:");scanf("%s",);for(i=0;i<n;i++){if(strcmp(,(p+i)->name)==0){break;}}if(i>=n){printf("删除的姓名是%s的客户,没有找到.\n",);return 0;}else{printf("删除的姓名是%s的客户,是所输入的客户中的%d个客户.\n",,i+1);printf("要删除的客户存取款信息:\n");printf("账号\t姓名\t性别\t年龄\t住址\t存取款数目");printf("%s\t%s\t%c\t%d\t%s\t%ld\n",p->acad,p->name,p->sex,p->age,p->addr, p->num);printf("是否一定删除<y:删除/n:不删除>:");fflush(stdin);scanf("%c",&ch);if(ch!='y'){printf("你选择了不删除%s客户存取款信息,没有删除\n",(p+i)->name);return 0;}else{printf("你选择了删除%s客户存取款信息,已删除\n",(p+i)->name);for(j=i;j<n;j++){*(p+j)=*(p+j+1);}return 1;}}}}。

相关文档
最新文档