- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计之银行储蓄管理
##大学
数据结构课程设计报告
题目: 活期储蓄账目管理
院(系): 计算机工程学院
学生姓名:
班级: 学号:
起迄日期: 2011.06.20-2011.06.27
指导教师:
2010—2011年度 第 2 学期
一、需求分析
1.问题描述:
活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:1) 能比较迅速地找到储户的账户,以实现存款、取款记账;2) 能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。
我做的系统包括以下模块:
开户模块:要求能新建账户并且能够进一步对所建立的账户进行查询等操作。
查询模块:能够通过账号查找,迅速的找到要查找的账户,并显示账户余额。
存取钱模块:在迅速地查找到目的账户后,对账户余额进行修改。
销户模块:查找到目的账户,对其销户。
2.基本功能
该系统具有以下四个部分的功能:
开户功能:能够新建账户,并对其进行存储以备查询。
查询功能:能够通过账号查找,迅速的找到要查找的账户,并显示账户余额。
存取钱功能:在迅速地查找到目的账户后,对账户进行存钱取钱操作。
销户功能:查找到目的账户,对其销户。
3.输入输出
账号值大小为long,密码、存款数额值的范围为int大小,姓名为字符串。
假定账号是从50000开始,否则输出提示错误并返回主菜单;
主菜单,输入从1-到5,依次实现开户、查询、存取钱、销户和退出功能,按其他数字键位返回主菜单。
开户的时候,账号是自动分配的,从50000开始,依次增加我这里暂定账户数上限为2000,然后需要输入用户姓名,再然后是账号密码和存储金额;对于用户姓名,是字符串类型,而账号和密码必须输入数字,开户金额10元起存,小于10元慧提示并允许重新输入开户金额。
查询的时候,首先需要输入要查询的账号,如果输入的账号小于默认起始账号,那么提示输入错误并返回主菜单;如果输入了大于默认账户的账号,那么密码核实不会通过,加入输入的密码错误,则会提示并返回主菜单。
存取钱,首先符合查询的输入要求,账号密码都正确时提示存款还是取款,此时要求存款输入s,取款输入t,否则提示错误并返回主菜单,然后输入存入或取出的金额,存款提示成功,取款如果账户余额不足,则会提示余额不足并返回主菜单。
销户的时候,也是需要首先满足查找的输入要求,然后提示确定销户吗,s是确定,c是取消,输入其他的就相当于输入了字符c,提示销户不成功并返回。
二、 概要设计
设计思路:
每个账户是一个基本单位,可以看作是一个对象
每个储蓄账户由账号、户主名、密码和余额组成
能进行查找,能快速查找到所需要的账号,我选用的是哈希表。
查找到所需要的账号之后还能够进一步进行存取款操作,销户操作。
数据结构设计:
我采用的是哈希表,若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。
逻辑结构:线性结构。
存储结构:顺序结构。
采取这种存储结构和逻辑结构的原因:银行账号是按照顺序排列下来的,采取这种结构,便于增加账号和删除帐户,最主要的是便于查找,查找效率最高,而且不会有存储冲突。
其存储结构如下(哈希函数:p=Num-50000):
对象 0 1 2 3 4 5 6 …… 2000 账号 50000 50001 50002 50003 50004 50005 50006 ……
抽象数据类型线性表的定义如下:
ADT List
{
数据对象:D={A_Name//用于存储帐户姓名
A_Num//用于存储帐户的账号
A_Overmongy//用于存储帐户余额
PassWord//用于存储帐户密码
}
基本操作:
{
NewAcount()
初始条件:线性表P存在
操作结果:给线性表的一个基本单位的A_Name,PassWord, A_OverMoney赋初值。
Search()
初始条件:线性表存在。
操作结果:输入要查找的账号,验证密码,如果验证成功,则给出该结点的A_Name,A_OverMone等信息,否则返回主菜单。
ChangeMoney()
初始条件:线性表P存在,输入要查找的账号,验证密码,如果验证成功,则对结点的A_OverMoney进行修改数值操作,否则返回主菜单。
DeleteAcount()
初始条件:线性表P存在
操作结果:输入A_Num的值及PassWord值并进行验证,如果匹配,则将该结点所有信息清零。
}
文档评论(0)