银行信贷管理系统报告.docx

上传人:b****4 文档编号:24774005 上传时间:2023-06-01 格式:DOCX 页数:24 大小:441.60KB
下载 相关 举报
银行信贷管理系统报告.docx_第1页
第1页 / 共24页
银行信贷管理系统报告.docx_第2页
第2页 / 共24页
银行信贷管理系统报告.docx_第3页
第3页 / 共24页
银行信贷管理系统报告.docx_第4页
第4页 / 共24页
银行信贷管理系统报告.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

银行信贷管理系统报告.docx

《银行信贷管理系统报告.docx》由会员分享,可在线阅读,更多相关《银行信贷管理系统报告.docx(24页珍藏版)》请在冰豆网上搜索。

银行信贷管理系统报告.docx

银行信贷管理系统报告

 

程序设计语言

课题:

银行信贷管理系统

班级号:

学号:

学生姓名:

课程设计起止日期:

6.30-7.11

 

(一)、设计目的---------------------------------------2

(二)、功能描述---------------------------------------2

(三)、总体设计---------------------------------------2

一、功能模块设计--------------------------------3

二、数据结构设计--------------------------------8

三、函数功能描述--------------------------------8

(四)、程序实现---------------------------------------9

一、源码分析------------------------------------9

二、程序界面显示--------------------------------14

(五)、心得体会---------------------------------------17

(六)、附录-------------------------------------------18

 

(一)、设计目的

本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言》课程后进行的一次全面的综合练习。

本课程设计的目的和任务:

1.巩固和加深学生对C语言课程的基本知识的理解和掌握;

2.掌握C语言编程和程序调试的基本技能;

3.利用C语言进行基本的软件设计;

4.掌握书写程序设计说明文档的能力

5.提高运用C语言解决实际问题的能力。

(二)、功能描述

本程序主要是的基础操作。

基本功能:

(如图1)

a)申请贷款

b)还贷

c)查询贷款记录

d)查询还贷记录

拓展功能:

采用文件形式对贷款和还款记录进行操作,包括:

c)写入文件

d)读取文件

创新(自拟)功能:

程序实现的其它功能由个人自拟。

拓展功能:

要求对上述输入的贷款和还贷记录进行文件保存,下次进入系统时从文件读出数据。

 

(图1)银行信贷管理系统简易功能图

 

(3)、总体设计

一、功能模块设计

1.1银行信贷管理系统主要分为两个大模块,为贷款记录和还贷记录。

(图2)

 

(图2)

1.2具体的功能由两大模块下分的模块实现。

通过贷款信息输入,贷款记录分为申请贷款和查询申请贷款(如图3);通过换信息输入,还款记录分为还贷和查询还款记录(图4)。

下图清晰的显示了功能描述中的四个基本功能。

 

(图3)(图4)

1.2申请贷款时,会显示输入贷款编号,确认贷款编号无重复后,建立贷款信息,输入贷款人身份证号码、贷款人姓名、贷款金额、贷款年限。

(功能图如图5,流程图如图6)

 

(图5)

 

(图6)

如若输入个人信息后,贷款人显示还有欠款未还,则不能再次贷款。

 

1.4查询贷款时,会显示要求输入贷款人身份证号码,通过身份证号码来查询是否存在贷款,若存在,则显示该贷款人的贷款记录;若不存在,则显示无记录。

(功能图如图7、流程图如图8)

 

(图7)

(图8)

1.5还贷时,会显示要求输入贷款编号,通过贷款编号来查询是否存在贷款,若存在,输入一个还款编号,确认还款标号无重复后,输入还款人身份证号码,还款人姓名,还款金额,所还贷款编号。

若不存在则显示“输入编号错误”。

(功能图如图9、流程图如图10)

 

(图9)

(图10)

1.6查询还贷记录时,显示要求输入一个贷款编号,通过贷款编号来查询是否存在贷款,若存在,则显示该贷款所有还贷记录,若不存在,则显示“输入编号错误”。

(功能图如图11,流程图如图12)

 

(图8)

 

(图11)

(图12)

1.7安全退出系统(y/n)。

(流程图如图13)

(图13)

二、数据结构设计

此程序中,定义了两个结构体structmoney1和structmoney2,分别对应贷款和还贷。

structmoney1

{

longintsum;

inttime;

chardaikuanbianhao[8];

charshenfenzheng[19];

charname[20];

}lender[100],temp;

structmoney2

{

longintsum;

charrenum[8];

charnum2[8];

charshenfenzheng[19];

charname[20];

}payments[100];

因为贷款编号、贷款金额、贷款人身份证号码、贷款人姓名、贷款期限是属于一个人的贷款信息,所以对贷款定义一个结构体即可;还贷同理。

三、函数功能描述

3.1头文件

#include在使用标准函数库中的输入函数时,编译系统要求程序提供有关的信息(例如对这些输入输出函数的声明),#include的作用就是用来提供这些信息的,stdio.h时C编译系统提供的一个文件名,stdio是“standardinput&output”的缩写,即有关标准输入输出的信息。

#include字符串处理。

C语言里关于字符数组的函数定义头文件,常用函数有strlen、strcmp、strcpy等等。

#include即standardlibrary标准头文件。

里面包含了C语言最常用的系统函数。

Stdlib.h里面定义了五种类型、一些通用工具函数。

3.2输入函数

scanf(“”,&)即函数利用地址符号&完成对程序中某个变量的赋值,进而判断程序中循环的功能。

fclose()关闭fp所指的文件,释放文件缓冲区。

feof()检查文件是否结束。

fopen(char**mode)以mode指定的方式打开名为的文件。

fread(char*pt,unsignedsize,unsignedn,)从fp所指定的文件中读取长度为size的n个数据项,存到pt所指向的内存区。

3.3输出函数

printf(“”,)用于在屏幕上输出内容。

getchar(void)从标准输入设备读取下一个字符。

3.4选择函数

if(){}else{}for(;;){}switch(){case:

break;}按条件进行选择。

3.5自定义函数

void定义空函数。

eg:

voiddaikuan();

voidhuandai();

voidchaxundaikuan();

voidchaxunhuandai();

voidkey1();

int定义为整型。

longint定义长整型。

char定义为字符型。

(四)、程序实现

一、源码分析

1.程序预处理

#include//标准输入输出函数库

#include//字符串操作函数库

#include//标准函数库

inti=0,j=0;//定义i,j为整型数据,且将0赋值给i,j

voiddaikuan();//定义空函数daikuan

voidhuandai();//定义空函数huandai

voidchaxundaikuan();//定义空函数chaxundaikuan

voidchaxunhuandai();

voidduquwenjian();

longintdemand(structmoney1a[],structmoney2b[],charstr[]);//定义长整型函数demand

structmoney1//定义结构体,使贷款为一个整体

{

longintsum;

inttime;

chardaikuanbianhao[8];

charshenfenzheng[19];

charname[20];

}

lender[100],temp;

structmoney2//定义结构体,使还贷为一个整体

{

longintsum;

charrenum[8];

charnum2[8];

charshenfenzheng[19];

charname[20];

}payments[100];

intmain()

{

intn;

charc;

duquwenjian();

do

{

printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("~欢迎使用银行信贷管理系统~\n");

printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("~请输入您所需要的服务编号~\n");

printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

printf("~1.申请贷款~\n");

printf("~2.还款~\n");

printf("~3.查询贷款记录~\n");

printf("~4.查询还贷记录~\n");

printf("~0.退出系统~\n");

printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

scanf("%d",&n);

switch(n)

{

case1:

daikuan();break;

case2:

huandai();break;

case3:

chaxundaikuan();break;

case4:

chaxunhuandai();break;

case0:

{

printf("确认是否退出?

(y/n)\n");

getchar();

c=getchar();//输入一个字符给字符变量c

if(c=='y')

return0;//当输入"y"时,退出系统

}

}

}while

(1);//循环中没有return,continue,break,就一直循环下去

}

voidduquwenjian()

{

FILE*fp1,*fp2;//采用文件形式将贷款和还贷记录写入文件和读取文件

intt=0;

if((fp1=fopen("loanrecord.txt","rb"))==NULL)//以只读方式打开输出文件

fp1=fopen("loanrecord.txt","wb+");//如果没有创立loanrecord.txt文件//以读写方式创立loanrecord.txt文件

while(!

feof(fp1))

{

fread(&lender[t],sizeof(structmoney1),1,fp1);//从文件指针fp读取一个size为sizeof(structstu)的数据,存入s[i],就是说把fp1数据放入lender[t]中

t++;

}

i=t-1;

fclose(fp1);//关闭fp1

if((fp2=fopen("repaymentrecord.txt","rb"))==NULL)

fp2=fopen("repaymentrecord.txt","wb+");

t=0;

while(!

feof(fp2))

{

fread(&payments[t],sizeof(structmoney2),1,fp2);

t++;

}

j=t-1;

fclose(fp2);

}

voiddaikuan()//针对"贷款"

{

intt,n;

do

{

n=0;

printf("请输入贷款编号(不超过7位):

\n");

scanf("%s",temp.daikuanbianhao);

for(t=0;t<100;t++)

if(!

strcmp(lender[t].daikuanbianhao,temp.daikuanbianhao))

{

printf("该编号已被使用,请输入其他编号。

\n");

n=1;

break;

}

}while(n);

printf("请输入您的身份证号:

\n");

scanf("%s",temp.shenfenzheng);

printf("请输入您的姓名:

\n");

scanf("%s",temp.name);

printf("请输入贷款金额:

\n");

scanf("%ld",&temp.sum);

printf("请输入贷款年限:

\n");

scanf("%d",&temp.time);

if(demand(lender,payments,temp.shenfenzheng)==0)

{

lender[i]=temp;

i++;

}

else

printf("\n还有欠款%ld元,请先还清欠款。

\n\n",demand(lender,payments,temp.shenfenzheng));

}

longintdemand(structmoney1a[],structmoney2b[],charstr[])

{

inti;

longintx=0,y=0,z;

for(i=0;i<100;i++)

{

if(strcmp(a[i].shenfenzheng,str)==0)x=x+a[i].sum;

if(strcmp(b[i].shenfenzheng,str)==0)y=y+b[i].sum;

}

z=x-y;

returnz;

}

voidhuandai()

{

intt,n=1;

do

{

printf("请输入所还贷款编号(不超过7位):

\n");

scanf("%s",payments[j].num2);

for(t=0;t<100;t++)

if(strcmp(lender[t].daikuanbianhao,payments[j].num2)==0)

{

n=0;

break;

}

if(n==1)

printf("\n无此条贷款,请重新输入贷款编号。

\n\n");

}while(n);

chartempnum[8];

do

{

n=0;

printf("请输入还款编号(不超过7位):

\n");

scanf("%s",tempnum);

for(t=0;t<100;t++)

if(strcmp(payments[t].renum,tempnum)==0)

{

printf("该编号已被使用,请输入其他编号。

\n");

n=1;

break;

}

}while(n);

strcpy(payments[j].renum,tempnum);

printf("请输入您的身份证号:

\n");

scanf("%s",payments[j].shenfenzheng);

printf("请输入您的姓名:

\n");

scanf("%s",payments[j].name);

printf("请输入还款金额:

\n");

scanf("%ld",&payments[j].sum);

j++;

}

voidchaxundaikuan()

{

intt,a=0;

chartempid[19];

printf("请输入身份证号码:

\n");

scanf("%s",tempid);

for(t=0;t

if(!

strcmp(lender[t].shenfenzheng,tempid))

a=1;

if(a)

{

printf("贷款编号贷款人身份证号码贷款人姓名贷款金额贷款年限\n");

for(t=0;t

if(!

strcmp(lender[t].shenfenzheng,tempid))

printf("%-12s%-24s%-20s%-13ld%-d\n",lender[t].daikuanbianhao,lender[t].shenfenzheng,lender[t].name,lender[t].sum,lender[t].time);

}

else

printf("\n无贷款记录。

\n\n");

}

voidchaxunhuandai()

{

intt,a=0;

chartempnum[8];

printf("请输入要查询的贷款编号:

\n");

scanf("%s",tempnum);

for(t=0;t

if(!

strcmp(payments[t].num2,tempnum))

a=1;

if(a)

{

printf("还款编号还款人身份证号码还款人姓名还款金额所还贷款编号\n");

for(t=0;t

if(!

strcmp(payments[t].num2,tempnum))

printf("%-12s%-24s%-20s%-13ld%-s\n",payments[t].renum,payments[t].shenfenzheng,payments[t].name,payments[t].sum,payments[t].num2);

}

else

printf("\n编号有误!

\n\n");

}

二、程序界面显示

●主界面

●执行项目1

输入编号1(回车),输入一个贷款编号,若重复,则画面显示“该编号已被使用,请输入其他编号”;若不重复(如:

123456)则输入贷款人身份证(如:

4181130),输入贷款人姓名(如zhousiyu),输入贷款金额(如100000),输入贷款年限(如:

3),系统将暂时记录这些记录。

●执行项目2

输入编号2(回车),输入一个贷款编号,若不存在,则画面显示“无此条贷款,请重新输入贷款编号”;若存在(如:

123456)则输入还款编号(如456789),输入贷款人身份证(如:

4103087),输入贷款人姓名(如xiaocuicui),输入还款金额(如30000),系统将暂时记录这些记录。

●执行项目3

输入编号3(回车),输入贷款人身份证号,若之前的记录中没有贷款记录,则显示“无贷款记录”;若存在记录,则显示该人贷款记录(包括:

贷款编号,贷款人身份证号码,贷款人姓名,贷款金额,贷款年限)。

●执行项目4

输入编号4(回车),输入贷款编号,若不存在该贷款编号,则显示“编号有误”;若存在,则显示该人还贷记录(包括:

还贷编号,贷款人身份证号码,还款人姓名,还款金额,索还贷款编号)。

●退出该系统

输入编号5(回车),如果要退出该系统,则输入“y”,若不退出“n”

(五)、心得体会

通过两个星期的研究、学习、设计、不断运行尝试,最终成功,确实得到了很多。

主要问题是之前学习的C程序掌握得不够扎实,运用不够灵活,设计之前无从下手。

但在不断翻书、问同学的过程中,所学颇多。

编程是一个漫长难熬的过程,但不能放弃,理清思路,画出结构图,一步步分析,想出要用到的函数,将自己设计的结构分成几块,然后逐个分析设计。

每一个设计好了之后都要运行。

之后组合起来。

再不断运行尝试。

(下面是我自己画的结构图)

其实在编程的过程中,最困难的是编写拓展功能,一开始毫无头绪,本来想放弃,听说班上做相同课题的同学会,便一问到底,其实拓展功能大致结构还不是很难,比较好理解,最难的是这一功能里涉及到的几乎所有函数都没有见过,不知道也不会用,就拿出书来对着附录里的解释,一遍一遍读,一次一次理解。

最终还是取得了不错的效果。

设计过程枯燥乏味,但认真不妥协,同学之间相互帮助,也真正学到了许多知识,这是我此次实训的最大收获。

相信自己对于以后所面临的困难,都能像现在这样将沉着面对。

(六)、附录

参考文献

[1]谭浩强.C程序设计(第三版).北京:

清华大学出版社,2005

[2]谭浩强.C程序设计题解与上机指导(第三版).北京:

清华大学出版社,2005

[3]HerbertSchildt.C语言大全(第四版).北京:

电子工业出版社,2004

[4]SamuelP.HarbisonⅢ,GuyL.Steele.C语言参考手册(第5版).北京:

机械工业出版社,2003

[5]张建勋.C语言程序设计教程.北京:

清华大学出版社,2008.2

[6]崔武子.C程序设计教程(第2版).北京:

清华大学出版社,2007.6(第2版)

[7]K.N.King.C语言程序设计:

现代方法(第2版).北京:

人民邮电出版社,2010

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1