- 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值并进行验证, 如果匹配,则将该结点所有信息清零。
}
}
软件结构设计 :
开始
Switch(Opti o
文档评论(0)