张迪的课程设计报告

2020-03-26 20:05

课 程 设 计

课程名称: 数据结构课程设计 设计课题1:常用排序算法的实现及比较与分析 设计课题2: 求最长公共子串 指导教师: 陈 新

总评成绩:

专业: 计算机科学与技术 班级: 1382061 姓名: 张迪 学号: 138206101

二O一五年 五 月 七 日

一、程序目标及功能

1.1 程序目标

1、封装一个Account类 - 业务数据

(1)写一个账户类(Account),属性并且完全封装: id:账户号码 长整数(Long) password:账户密码 字符串类型(String) name:真实姓名 字符串类型(String) personId:身份证号码 字符串类型(String) email:客户的电子邮箱 字符串类型(String) balance:账户余额 双精度(double) 方法: deposit: 存款方法,参数类型:double, 返回类型:Account withdraw:取款方法,参数类型:double, 返回类型:Account 构造方法: 有参和无参,有参构造方法用于设置必要的属性. 2、完成以下两种账户类型的编码

银行的客户分为两大类:储蓄账户(SavingAccount)和信用账户(CreditAccount),两种的账户类型的区别在于:储蓄账户不允许透支,而信用账户可以透支,并在用户在满足银行条件的情况下允许用户调整自己的透支额度。 注意:

(1)、CreditAccount需要多一个属性 ceiling 透支额度

(2)、CreditAccount需要覆盖(重写)Account中的取款方式withdraw() 3、完成Bank类的编码。 属性:

1)、当前所有的账户对象的信息,存放在集合中:List. 2)、当前账户数量index. 方法:

(1)用户开户(register)

参数列表: Long 账号, String密码, String确认密码,String 姓名,String身份证号码,String邮箱,int 账户类型;

(Long id, String password, String repassword, String name, String personID, String email, int type)

返回类型:Account

项目需求规定账户类型:0 – 储蓄账户 1 – 信用账户 2 – 可贷款储蓄账户 3– 可贷款信用账户

(2)用户登录(login)

参数列表: Long 账号, String密码; (Long id, String password) 返回类型:Account (3)用户存款(deposit)

参数列表: Long 账号, double存款金额; (Long id, double money) 返回类型:Account

(4)用户取款(withdraw)

参数列表: Long 账号,String 密码,double取款金额; (Long id, String password, double money) 返回类型:Account

(5)设置透支额度(updateCeiling)

参数列表: Long 账号, String 密码,double透支额度金额; (Long id, String password, double money) 返回类型:Account

提示:这个方法需要验证账户是否是信用账户 (6)转账功能(transfer)

参数:from转出账户,passwordFrom 转出账号的密码,to转入账户,money转账的金额 (Long from, String passwordFrom, Long to, double money) 返回值:boolean

4、另外,请为Bank类添加几个统计方法

(1)统计银行所有账户余额总数 (2)统计所有信用账户透支额度总数 5、编写测试类(不需要写)

写个测试类,测试以上代码能否正常工作。 6、覆盖toString方法

查看对象的内容

7、让银行来提供账号(id)的生成

修改Account类和Bank类,银行用户的账号(id)应是自动生成的,初始值为: 862150212013020001(国家+邮编+年+月+序号)。

比如:第一个开户的账号为862150212013020001,第二开户的账号为862150212013020002 … 依此类推. 8、修改存款和取款方法

对于Account类中的存款方法和取款方法进行修改. 存款方法:改为不允许子类修改

取款方法:改为抽象方法,便于在子类中去覆盖(重写) 9、单例

将Bank类作成单例。 10、新增一个贷款功能

为了满足业务发展的需求,银行需要为用户提供贷款的功能,来满足更多的用户需求。 抽象出一个贷款功能的接口:Loanable 该接口具有以下功能:

贷款(requestLoan) 参数:money贷款金额 返回类型:Account 还贷(payLoan)

参数:money还贷款金额 返回类型:Account

11、新增两种的新的账户类型

为了满足业务发展的需求,新增两种具有贷款功能的账户类型:可以贷款不可以透支账户和可以贷款可以透支账户;

为SavingAccount和CreditAccount各自添加一个子类LoanSavingAccount类和LoanCreditAccount类,同时让两个新增的子类都必须要实现Loanable接口。为了表示某个贷款账户的贷款金额,需要为所有的可贷款账户提供一个能记录贷款金额,所以要为CreditAccount类整一个普通的成员属性loanAmount,为长整形(long)。

说明1: LoanSavingAccount类表示该账户可以贷款,不可以透支;

LoanCreditAccount类表示该账户可以贷款,可以透支。

说明2:贷款和透支是不一样的,透支指的是账户余额小于0,而贷款用户需要一个贷款额的属性.

在ATM机上,用户可以选择贷款,也可以选择还贷款,而还贷款就是要把账户余额上的资金转到贷款额上 例如:用户余额10000元,贷款额100000元,用户可以选择还款5000元,则用户余额变为5000,贷款额变为95000元.

12、为Bank类添加三个新方法 贷 款(requestLoan)

参数:id 账户,money贷款金额 (Long id , double money)

返回类型:Account 还贷款(requestLoan)

参数:id 账户,money还贷款金额 (Long id , double money)

返回类型:Account

统计所有账户贷款的总额(totoal)

参数:无

返回类型:double

13、为Bank类添加一个方法,能够打印所有用户的总资产排名(提高部分)

说明: 1)、一个用户可能会有多个账号,以身份证号为准.

2)、总资产指多个账户余额的总和,不需要考虑贷款账户的贷

1.2 系统功能

本系统功能有:

1、用户开户与登录:用户输入用户化信息可以注册帐号,可以登入系统 2、ATM存款:用户输入金额可将金额存入

3、ATM取款:用户可以从ATM中取出所需的金额

4、转账功能:用户输入金额可以将金额转给其他用户的账户上 5、贷款功能:用户可以进行贷款

6、还贷功能:用户可以对贷款进行还贷

7、资产排名功能:对用户所用户的所有资产进行排名

1.3 设计要求

1、为本系统建立一个模型

2、模型的数据类型以及数据规则要符合实际要求 3、提供相应的接口与实现类以及方法

4、实现存款、取款、贷款、转账、还贷、排名等功能 5、将用户信息保存到TXT文件中

二、程序功能模块组成及流程图

2.1系统功能模块

1、用户注册:

用户输入用户名、密码、身份证号码、电子邮箱等信息,系统会为用户自动创建一个帐号,并将用户的信息记录在TXT文件中,系统中记录用户信息。 2、登录模块:用户输入帐号与密码,如果核对成功则进入系统。

3、存款模块:用户进入系统之后,选择存款选项,进入存款功能,用户再输入存款金额则可以进行存款。

4、取款模块:用户进入系统之后,选择取款选项,进入去款功能,用户再输入取款金额则可以进行取款。

5、转账模块:用户进入系统之后,选择转账选项,进入转账功能,用户再输入转入用户的帐号,之后输入金额则可以进行转账。

6、贷款模块:用户进入系统之后,选择贷款选项,进入贷款功能,用户再输入贷款金额则可以进行贷款。

7、还贷模块:用户进入系统之后,选择还款选项,进入还款功能,用户再输入还款金额则可以进行还款。

8、资产排名模块:用户进入系统之后,选择资产排名选项,用户则可浏览资产排名。

2.2各模块流程图

1、用户注册流程图:

开始 密码、确认密码、身份证号、邮箱 两次密码是否一致 注册失败 注册成功 进入系统 结束 图2.2-1:用户登录流程图


张迪的课程设计报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:11010上巷过老巷措施

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: