最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

贷款申请系统

来源:动视网 责编:小OO 时间:2025-09-24 10:02:08
文档

贷款申请系统

贷款申请系统项目提醒●请仔细阅读规格文档,理解规格文档估计需要花费10~40分钟来理解,请务必看清楚要求再动手,试题包括规格描述和代码框架。●C/C++编译环境统一为VisualC++6.0版本,Java编译环境统一为1.5.0_06版本。如果你喜欢并熟悉SourceInsight或其它工具,也可以使用SourceInsight或其它工具进行开发,但大家必须保证提交的代码要在指定编译环境下编译通过,否则无法阅卷。●无论是C/C++语言,还是Java语言,都不系统函数、STL、Java类库或
推荐度:
导读贷款申请系统项目提醒●请仔细阅读规格文档,理解规格文档估计需要花费10~40分钟来理解,请务必看清楚要求再动手,试题包括规格描述和代码框架。●C/C++编译环境统一为VisualC++6.0版本,Java编译环境统一为1.5.0_06版本。如果你喜欢并熟悉SourceInsight或其它工具,也可以使用SourceInsight或其它工具进行开发,但大家必须保证提交的代码要在指定编译环境下编译通过,否则无法阅卷。●无论是C/C++语言,还是Java语言,都不系统函数、STL、Java类库或
贷款申请系统

项目提醒

●请仔细阅读规格文档,理解规格文档估计需要花费10~40分钟来理解,请务必看清楚要求再动手,试题包括规格描述和代码框架。

●C/C++编译环境统一为Visual C++ 6.0版本,Java编译环境统一为1.5.0_06版本。如果你喜欢并熟悉Source Insight或其它工具,也可以使用Source Insight或其它工具进行开发,但大家必须保证提交的代码要在指定编译环境下编译通过,否则无法阅卷。

●无论是C/C++语言,还是Java语言,都不系统函数、STL、Java类库或其他类库的使用,前提是提交的代码编译通过并正常运行。

●如果考题与日常工作/生活接近,请大家以规格为准,不要类比相似案例。

●出于自动化测试的需要,程序中不要使用原始的I/O输入输出(键盘输入、屏幕输出)作为正式输入输出,我们会提供基于Socket的输入输出API接口,大家必须使用Socket API进行正式输入输出操作。调试打印的方式不受此。

●测试的工程已经提供Socket通信功能,并提供输入/输出的API,大家不需要实现。

1总体说明

该贷款申请系统主要提供贷款的申请和查询功能.

系统启动之后,需要通过初始化命令完成初始化,系统运行过程中也可以随时执行初始化命令.贷款申请系统完成初始化后就可以申请贷款、查询贷款数据.

说明:本文档中用t标识”单位时间”,即该贷款申请系统运行的最小时间单位,第n个单位时间:nt,系统最长可运行24t,超出24t的情况不考虑.

1.1系统规则

1、对贷款申请业务,银行有3个部门负责处理:银行申请贷款部门、银行审查贷款部门、银行发放贷款部门.

2、银行申请贷款部门:

负责贷款申请数据的提交,如果申请数据填写正确,则贷款申请成功,并自动提交给银行审查贷款部门审查,否则贷款申请失败,并清除此申请数据.

每笔贷款申请占用1个t,1个t可申请多笔贷款.

3、银行审查贷款部门:

贷款申请成功后,该部门根据申请数据判断是否允许贷款,如果允许贷款就自动提交给银行发放贷款部门;否则就要求重新申请,即处于待重新申请状态.

每笔贷款审查占用1个t,1个t只可审查一笔贷款.如果当前t已被某份贷款审查占用,其他贷款审查要排队等待.

4、银行发放贷款部门:

审查贷款成功后,该部门判断当前银行是否可以发放贷款,如果可以就发放贷款,并按照相关的利率计息,否则就要求重新申请,即处于待重新申请状态.

每笔贷款发放占用1个t,1个t只可发放一笔贷款.如果当前t已被某份贷款发放占用,其他贷款发放要排队等待.

5、审查贷款在贷款申请成功后下一个空闲t处理,发放贷款在审查贷款成功后下一个空闲t处理.举例:

时间贷款申请审查贷款发放贷款
1tA贷款申请成功

2tB贷款申请成功

A审查贷款成功

3tC贷款申请成功

B审查贷款成功

A发放贷款成功

4tD贷款申请失败

C审查贷款失败,重新申请

B发放贷款成功

5t
6、在待重新申请状态,原贷款申请数据不清除,只有重新申请成功后才能更新其状态和数据.

7、某笔贷款发放成功后,其数据和状态不再发生变换.

8、如果有多笔贷款申请同时等待审查,则审查贷款处理顺序要按照执行贷款申请命令的顺序处理.例如:A、B两笔贷款申请都在1t申请,A先执行申请命令,则

A,在2t审查贷款结束,3t发放贷款结束。

B,在3t审查贷款结束,4t发放贷款结束。

时间贷款申请审查贷款发放贷款
1tA贷款申请成功

B贷款申请成功

2tA审查贷款成功

3tB审查贷款成功

A发放贷款成功

4tB发放贷款成功

9、特别提示:系统可以使用一个计数器来表示时间,不需要考虑时间的周期、步长等因素。计数器加1时,可以同时做审查贷款、发放贷款;如果贷款的申请时间大于系统计数器,需要将系统计数器更新到申请的时间;同一笔贷款的发放时间与审查时间相差1,并根据查询时间与贷款的审查、发放时间比较,返回某时刻贷款的状态.

10、贷款人有2种级别:低收入贷款人、高收入贷款人,(月收入单位:元)

低收入贷款人:月收入范围[1000,5000] 

高收入贷款人:月收入范围(5000,10000]

11、贷款年限,取值范围[1,20],(单位:年)

依照贷款人级别,约束不同的贷款年限,如果超出约束,则在贷款查询时提示”贷款年限超出范围,审查贷款失败” :

        低收入贷款人:贷款年限[1,10]

        高收入贷款人:贷款年限[1,20]

12、贷款本金,取值范围[10,100],格式是整数,(单位:万元)

依照贷款人级别,约束不同的贷款本金,如果超出约束,则在贷款查询时提示”贷款本金超出范围,审查贷款失败”:

        低收入贷款人:贷款本金[10,50]

        高收入贷款人:贷款本金[10,100]

13、审查贷款时,先审查贷款本金,再审查贷款年限.

14、银行可用贷款总金额为300万元,如果”已发放成功的贷款本金加上当前准备发放的贷款本金”超出约束,则在贷款查询时提示”银行无可用贷款,发放贷款失败” 

15、银行最多只允许5份贷款发放成功,如超出约束,则在贷款查询时提示”发放贷款系统能力不足,发放贷款失败”;

16、发放贷款时,先核对贷款发放份数,再核对银行可用贷款.

17、该系统申请的贷款其还款类型是:等额本金还款法,基本概念和公式如下:

概念:等额本金还款,又称等本不等息还款法.贷款人将本金分摊到每个月内,同时付清每个月的利息.这种还款方式每月支付的本金数相同,但利息逐月减少,故还款负担逐月递减.

基本术语、公式:

贷款本金:申请贷款的本金总额

实际月利率=实际年利率/12

实际年利率=初始年利率*年利率折扣

还款期数=贷款年限×12

每月还款本金=贷款本金/还款期数

第x个月月还款利息=每月还款本金*(还款期数-x+1)*实际月利率

第x个月还款本息总金额=每月还款本金+第x个月月还款利息

还款总利息=贷款本金*实际月利率*(还款期数+1)/2

还款本息总金额=贷款本金+还款总利息

    说明:第x个月是从发放贷款成功之日开始算起,本文档中利息的计算以月为最小计算单位.此时间是自然时间,与系统运行时间无关.

18、银行规定的贷款利率及折扣

贷款年限不同,(单位:年),初始年利率不同:

贷款年限[1,10],初始年利率:2.4%

贷款年限(10,20],初始年利率:4.8%

贷款本金不同,(单位:万元),年利率折扣不同:

贷款本金 [10,40],年利率折扣:100%

贷款本金(40,100],年利率折扣:50%

19、住房公积金,构成:50%是自己缴纳,50%是公司缴纳,还款时可用住房公积金还款.

个人还款本息总金额=还款本息总金额-住房公积金还款金额*50%

1.2 系统约束

1、所有命令格式的合法性在工程框架中提供,大家不需要考虑。

2、所有输入输出无需携带单位,使用默认的单位,大家不需要考虑单位的输出。

3、不考虑系统运行时间超出范围的情况。

2 操作说明

1、命令字请全部使用小写,系统中的命令区分大小写,如果异常输入,系统提示”E100:其他命令错误”;

命令的所有参数都是必选参数,且顺序固定,对参数缺少或冗余、参数顺序打乱、参数长度异常等输入,系统提示”E100:其他命令错误”; 

命令字与第一个参数间使用一个空格分隔,多个参数间使用半角”-”分隔,参数间没有空格,如果异常输入,系统提示”E100:其他命令错误”;

2、测试系统会对输入命令格式进行处理,大家不需要关注输入命令格式、参数格式的合法性,只需要实现命令处理函数。测试框架会将字符串解释成对应的命令及命令参数结构,大家不需要自行解释命令字符串。

3、所有不需要大家考虑的命令错误都由测试框架统一输出“E100:其他命令错误”,这里定义仅仅是为了系统的完整性,与大家无关。

4、系统中的所有标点符号应为英文半角符号,大家需要考虑输出中的标点符号。

2.1系统初始化

命令格式:reboot

功能说明:系统在任意阶段均可执行reboot命令初始化系统。已发放贷款金额、份数、系统时间、贷款申请数、审查数、所有输入命令、输出轨迹等全部清空。相当于:关闭系统并重启系统。

执行该命令后,系统数据会清空到初始状态:

✓系统运行时间:1t

✓银行已发放贷款:0

✓贷款申请数:0

输出说明:输出操作成功提示

输出样例如下:

命令·输出
rebootE001:初始化成功

2.2贷款申请

命令格式:request 贷款编号-贷款人月收入-贷款本金-贷款年限-申请时间

功能说明:输入申请贷款的基本信息,提交申请,通过合法性判断申请是否成功。

约束说明: 参数中的单位无需输入,非法的贷款申请数据报错后会立即清除,不保存。

    输出说明:

(1)贷款编号:[1,10],格式:整数,用来唯一标识一笔贷款;

如果输入值超出范围,则输出“E002:贷款编号输入错误”;

(2)贷款人月收入:[1000,10000],(单位,元)

如果输入值超出范围,则输出“E003:贷款人月收入输入错误”;

(3)贷款本金:[10,100],格式为整数,(单位,万元)

如果输入值超出范围,则输出“E004:贷款本金输入错误”;

(4)贷款年限:[1,20],(单位,年)

如果输入值超出范围,则输出“E005:贷款年限输入错误”;

(5)申请时间:[1,10],(单位,t),用来标识贷款申请时系统时间。

如果输入值超出范围,则输出“E006:申请时间输入错误”;

(6)request命令可重复执行,后执行命令的申请时间不能小于先执行命令成功的申请时间,否则输出“E007:申请时间错误递减”;

(7)某一笔贷款申请,若已申请成功,则只有在待重新申请状态才允许其被重新提交申请(重新提交申请:即再次执行贷款编号相同的request命令):

若重新提交申请成功,则覆盖原有申请且需要重新排队审查,否则不影响原有贷款数据和状态;

若在非待重新申请状态:(包含发放成功)重新申请,则输出“E008:贷款处理正常,不允许修改初始信息”且不影响原有贷款数据和状态。

重新申请只能在待重新申请状态的当前t及以后t申请。

例如:

输入输出
request 1-5000-40-10-2E009:贷款申请成功

符合条件,贷款1申请成功,系统时间为4.

request 1-1000-40-10-4E008:贷款处理正常,不允许修改初始信息

命令企图在4时修改贷款1的信息,4时贷款发放成功,不允许修改.

request 1-1000-40-10-3E008:贷款处理正常,不允许修改初始信息

命令企图在3时修改贷款1的信息,3时贷款处于审查成功状态,也不允许修改.

request 1-1000-40-10-1E007:申请时间错误递减

修改贷款信息的时间不能小于上一次贷款的申请时间2

(8)request命令和list命令的执行以及贷款申请的判断都不会导致系统时间的增长,只有审查和发放贷款耗用时间,导致时间的增长.request命令提供的时间做为贷款状态判断的依据,如果申请成功,系统自动完成审查和放款,系统时间增长;如果申请不成功,系统时间不会增长.

(9)命令的合法性检查,按照(1)~(7)顺序判断;

(10)命令正确、参数范围合法,输出“E009:贷款申请成功”。

输出样例如下:

输入输出
request 1-2000-10-10-1E009:贷款申请成功

2.4贷款查询(本功能作为附加功能,学员选做)

命令格式:list贷款编号-第x个月份-住房公积金还款金额-查询时间

    功能说明:查询用户当前贷款申请状态,如果贷款已发放成功,附带返回用户计划还款

的第x个月份本息还款总金额,以及如果使用住房公积金还款情况下,个人还款的本息总金额。查询错误不影响贷款的数据和状态。

约束说明:参数中的单位无需输入。

输出说明:

(1)贷款编号:[1,10],格式:整数,用来标识一笔贷款;

如果输入值超出范围,则输出“E002:贷款编号输入错误”;

如果系统中没有该贷款编号对应的有效的贷款申请数据,则输出“E010:无有效的贷款申请”;

相同贷款编号可以多次查询;

(2)第x个月份:[1,240],格式:整数,x的取值不大于该笔贷款的还款期数,如果输入值超出范围,则输出“E011:还款月份无效”;

(3)住房公积金还款金额 [0,100],格式:整数,单位:万元,住房公积金还款金额不大于该笔贷款本金; 如果输入值超出范围,则输出“E012:住房公积金还款金额无效”;

(4)查询时间:[1,24],单位:t,用来标识查询贷款时系统时间:

如果输入值超出范围,则输出“E013:查询时间输入错误”;

如果查询时间小于申请时间,则输出“E014:查询时间错误递减”;

(5)list命令可以在任意的系统运行时间内重复执行,可以查询到该笔贷款的历史状态;

说明:如果在重新提交申请成功后查询,只能查询最新贷款的数据。同样的,如果在提交申请成功前查询,则查询的是原有数据。

举例:A贷款在1t申请,2t重新申请成功后查询,则查询2t时A贷款数据状态是贷款申请成功待审查,查询1t时A贷款数据是E014:查询时间错误递减。

(6)命令的合法性检查,按照(1)~(5)顺序判断;

(7)命令正确、参数范围合法,输出具体的计算结果,格式如下:

E015:贷款申请M详细信息

贷款申请状态:H

贷款本金(万元):I

还款期数:J

实际月利率(千分之):K

第x个月份的还款本息总金额:O

需还款本息总金额:P

需个人还款本息总金额:Q

说明:

✓M指贷款查询命令输入的贷款编号。

✓H指当前贷款申请状态,输出内容有以下几种:

L,待重新申请

贷款申请成功待审查

贷款审查成功待发放

贷款发放成功

✓L指重新申请的原因,包括“贷款年限超出范围,审查贷款失败”、“贷款本金超出范围,审查贷款失败”、“银行无可用贷款,发放贷款失败”、“发放贷款系统能力不足,发放贷款失败”

✓I指该贷款申请的贷款本金,格式:整数,(单位:万元)

✓J指该贷款申请的还款期数,格式:整数。

✓K指该贷款的实际月利率,格式:整数,(单位:千分之)

✓x即贷款查询命令输入的第x个月份。

✓O、P、Q指算出的具体金额数,(单位:元),格式:整数,计算的最后结果四舍五入。

✓M、H、x、I、J、K、L、O、P、Q前后没有空格字符。

(8)如果当前贷款不处于“贷款发放成功”状态,则“实际月利率(千分之)”、“第x个月份的还款本息总金额”、“ 需还款本息总金额”、“ 需个人还款本息总金额”为0。

输出样例如下:

输入输出
reboot

request 1-1000-10-20-1

list 1-1-0-4

E001:初始化成功

E009:贷款申请成功

E015:贷款1申请详细信息

贷款申请状态:贷款年限超出范围,审查贷款失败,待重新申请

贷款本金(万元):10

还款期数:240

实际月利率(千分之):0

第1个月份的还款本息总金额:0

需还款本息总金额:0

需个人还款本息总金额:0

3附录:

3.1 命令汇总

命令命令格式示例说明
rebootrebootrebootreboot,系统初始化

requestrequest 贷款编号-贷款人月收入-贷款本金-贷款年限-申请时间

request 1-1000-1-1-1request,输入用户申请贷款的基本信息数据

listlist贷款编号-第x个月份-住房公积金还款金额-查询时间

list 1-1-0-1list,查询用户当前的申请状态,用户想计算的第x个月份的本息还款总金额,以及个人还款的本息总金额。

3.2 返回码汇总

返回码描述说明
E001:初始化成功

reboot命令执行成功返回

E002:贷款编号输入错误

输入的贷款编码非法
E003:贷款人月收入输入错误

request命令输入的贷款人月收入非法

E004:贷款本金输入错误

request命令输入的贷款本金非法

E005:贷款年限输入错误

request命令输入的贷款年限非法

E006:申请时间输入错误

request命令输入的申请时间非法

E007:申请时间错误递减

多条request命令执行,输入的申请时间出现递减错误

E008:贷款处理正常,不允许修改初始信息

贷款处于发放成功状态后被重复申请
E009:贷款申请成功

request命令执行成功

E010:无有效的贷款申请

list命令输入的贷款编码不存在对应的申请数据

E011:还款月份无效

list命令输入的还款月份非法

E012:住房公积金还款金额无效

list命令输入的住房公积金还款金额非法

E013:查询时间输入错误

list命令输入的查询时间非法

E014:查询时间错误递减

list命令输入的查询时间小于申请时间

E015:贷款申请M详细信息

贷款申请状态:H

贷款本金(万元):I

还款期数:J

实际月利率(千分之):K

第x个月份的还款本息总金额:O

需还款本息总金额:P

需个人还款本息总金额:Q

list命令执行成功

E100:其他命令错误

命令字大小写、错误的命令字、命令格式、全角半角错误时系统输出,不需要测试。

3.3 基本用例

编号用例标题测试步骤预期输出
1系统重启、初始化;

贷款申请、审查、放贷成功;

有计算贷款信息。

reboot

request 1-2000-20-5-1

list 1-1-10-4

E001:初始化成功

E009:贷款申请成功

E015:贷款申请1详细信息

贷款申请状态:贷款发放成功

贷款本金(万元):20

还款期数:60

实际月利率(千分之):2

第1个月份的还款本息总金额:3733

需还款本息总金额:212200

需个人还款本息总金额:162200

2系统重启、初始化;

贷款申请成功,审查失败;

无计算贷款信息。

reboot

request 1-2000-20-15-1

list 1-1-0-4

E001:初始化成功

E009:贷款申请成功

E015:贷款申请1详细信息

贷款申请状态:贷款年限超出范围,审查贷款失败,待重新申请

贷款本金(万元):20

还款期数:180

实际月利率(千分之):0

第1个月份的还款本息总金额:0

需还款本息总金额:0

需个人还款本息总金额:0

3系统重启、初始化;

贷款申请成功,审查成功,放款失败;

无计算贷款信息。

reboot

request 1-9000-80-15-1

request 2-8000-80-15-1

request 3-8600-80-15-1

request 4-8100-80-15-1

list 4-10-10-6

E001:初始化成功

E009:贷款申请成功

E009:贷款申请成功

E009:贷款申请成功

E009:贷款申请成功

E015:贷款申请4详细信息

贷款申请状态:银行无可用贷款,发放贷款失败,待重新申请

贷款本金(万元):80

还款期数:180

实际月利率(千分之):0

第10个月份的还款本息总金额:0

需还款本息总金额:0

需个人还款本息总金额:0

4系统重启、初始化;

贷款申请成功后,再次申请;

贷款申请失败后,再次申请;

reboot

request 1-9000-80-15-1

request 2-8000-80-15-1

request 3-8600-80-15-2

request 4-8100-80-15-3

request 3-8630-80-15-4

request 4-8100-80-13-5

request 4-8100-80-13-8

E001:初始化成功

E009:贷款申请成功

E009:贷款申请成功

E009:贷款申请成功

E009:贷款申请成功

E008:贷款处理正常,不允许修改初始信息

E008:贷款处理正常,不允许修改初始信息

E009:贷款申请成功

5系统重启、初始化;

贷款申请成功后、再次申请;

查询不同时刻的贷款状态;

reboot

request 1-2000-20-15-1

request 2-8000-20-13-2

request 3-8000-20-13-3

request 1-2000-20-15-3

list 1-1-0-4

list 1-1-0-6

E001:初始化成功

E009:贷款申请成功

E009:贷款申请成功

E009:贷款申请成功

E009:贷款申请成功

E015:贷款申请1详细信息

贷款申请状态:贷款申请成功待审查

贷款本金(万元):20

还款期数:180

实际月利率(千分之):0

第1个月份的还款本息总金额:0

需还款本息总金额:0

需个人还款本息总金额:0

E015:贷款申请1详细信息

贷款申请状态:贷款年限超出范围,审查贷款失败,待重新申请

贷款本金(万元):20

还款期数:180

实际月利率(千分之):0

第1个月份的还款本息总金额:0

需还款本息总金额:0

需个人还款本息总金额:0

3.4 API说明

VC工程MatchSysC_VC6.rar中包括:

●\\Lib\\SocketApi.lib: 是一个LIB库文件,其中实现了对外通信接口;

●\\Lib\MatchSysApi.lib: 是一个LIB库文件,其中实现了对命令输入输出的封装;

●\\Src\MatchSysApi.h: 头文件,定义了大家可能用到的的枚举、宏、结构,以及需要大家自己实现的接口函数;

●\\Src\MatchSys.h: 头文件,大家可以向其中添加自己的定义。具体要求请看注释。

●\\Src\MatchSysC.cpp: 源码文件,提供了需要大家实现的接口函数框架,这些函数是空白的,需要由大家自己实现。

●其他文件是VC工程自行产生的,大家不必关注。

更详细的定义请参阅VC工程。

文档

贷款申请系统

贷款申请系统项目提醒●请仔细阅读规格文档,理解规格文档估计需要花费10~40分钟来理解,请务必看清楚要求再动手,试题包括规格描述和代码框架。●C/C++编译环境统一为VisualC++6.0版本,Java编译环境统一为1.5.0_06版本。如果你喜欢并熟悉SourceInsight或其它工具,也可以使用SourceInsight或其它工具进行开发,但大家必须保证提交的代码要在指定编译环境下编译通过,否则无法阅卷。●无论是C/C++语言,还是Java语言,都不系统函数、STL、Java类库或
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top