银行信贷管理系统报告.docx
《银行信贷管理系统报告.docx》由会员分享,可在线阅读,更多相关《银行信贷管理系统报告.docx(18页珍藏版)》请在冰豆网上搜索。
![银行信贷管理系统报告.docx](https://file1.bdocx.com/fileroot1/2023-1/3/9fb8ad6d-1c52-44d5-b7c1-b3dfdf66b275/9fb8ad6d-1c52-44d5-b7c1-b3dfdf66b2751.gif)
银行信贷管理系统报告
程序设计语言
课题:
银行信贷管理系统
班级号:
学号:
学生姓名:
课程设计起止日期:
目录
(一)、设计目的---------------------------------------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)
具体的功能由两大模块下分的模块实现。
通过贷款信息输入,贷款记录分为申请贷款和查询申请贷款(如图3);通过换信息输入,还款记录分为还贷和查询还款记录(图4)。
下图清晰的显示了功能描述中的四个基本功能。
(图3)(图4)
1.2申请贷款时,会显示输入贷款编号,确认贷款编号无重复后,建立贷款信息,输入贷款人身份证号码、贷款人姓名、贷款金额、贷款年限。
(功能图如图5,流程图如图6)
(图5)
(图6)
如若输入个人信息后,贷款人显示还有欠款未还,则不能再次贷款。
查询贷款时,会显示要求输入贷款人身份证号码,通过身份证号码来查询是否存在贷款,若存在,则显示该贷款人的贷款记录;若不存在,则显示无记录。
(功能图如图7、流程图如图8)
(图7)
(图8)
1.5还贷时,会显示要求输入贷款编号,通过贷款编号来查询是否存在贷款,若存在,输入一个还款编号,确认还款标号无重复后,输入还款人身份证号码,还款人姓名,还款金额,所还贷款编号。
若不存在则显示“输入编号错误”。
(功能图如图9、流程图如图10)
(图9)
(图10)
查询还贷记录时,显示要求输入一个贷款编号,通过贷款编号来查询是否存在贷款,若存在,则显示该贷款所有还贷记录,若不存在,则显示“输入编号错误”。
(功能图如图11,流程图如图12)
(图8)
(图11)
(图12)
安全退出系统(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];
因为贷款编号、贷款金额、贷款人身份证号码、贷款人姓名、贷款期限是属于一个人的贷款信息,所以对贷款定义一个结构体即可;还贷同理。
三、函数功能描述
头文件
#include<>在使用标准函数库中的输入函数时,编译系统要求程序提供有关的信息(例如对这些输入输出函数的声明),#include<>的作用就是用来提供这些信息的,时C编译系统提供的一个文件名,stdio是“standardinput&output”的缩写,即有关标准输入输出的信息。
#include<>字符串处理。
C语言里关于字符数组的函数定义头文件,常用函数有strlen、strcmp、strcpy等等。
#include<>即standardlibrary标准头文件。
里面包含了C语言最常用的系统函数。
里面定义了五种类型、一些通用工具函数。
输入函数
scanf(“”,&)即函数利用地址符号&完成对程序中某个变量的赋值,进而判断程序中循环的功能。
fclose(FILE*fp)关闭fp所指的文件,释放文件缓冲区。
feof(FILE*fp)检查文件是否结束。
fopen(char*filename,char*mode)以mode指定的方式打开名为filename的文件。
fread(char*pt,unsignedsize,unsignedn,FILE*fp)从fp所指定的文件中读取长度为size的n个数据项,存到pt所指向的内存区。
输出函数
printf(“”,)用于在屏幕上输出内容。
getchar(void)从标准输入设备读取下一个字符。
选择函数
if(){}else{}for(;;){}switch(){case:
break;}按条件进行选择。
自定义函数
void定义空函数。
eg:
voiddaikuan();
voidhuandai();
voidchaxundaikuan();
voidchaxunhuandai();
voidkey1();
int定义为整型。
longint定义长整型。
char定义为字符型。
(四)、程序实现
一、源码分析
1.程序预处理
#include<>请贷款~\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();aikuanbianhao,)
{
printf("该编号已被使用,请输入其他编号。
\n");
n=1;
break;
}
}while(n);
printf("请输入您的身份证号:
\n");
scanf("%s",;
printf("请输入您的姓名:
\n");
scanf("%s",;
printf("请输入贷款金额:
\n");
scanf("%ld",&;
printf("请输入贷款年限:
\n");
scanf("%d",&;
if(demand(lender,payments,==0)
{
lender[i]=temp;
i++;
}
else
printf("\n还有欠款%ld元,请先还清欠款。
\n\n",demand(lender,payments,);
}
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;tif(!
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)则输入贷款人身份证(如:
41130),输入贷款人姓名(如zhousiyu),输入贷款金额(如100000),输入贷款年限(如:
3),系统将暂时记录这些记录。
执行项目2
输入编号2(回车),输入一个贷款编号,若不存在,则画面显示“无此条贷款,请重新输入贷款编号”;若存在(如:
123456)则输入还款编号(如456789),输入贷款人身份证(如:
44567),输入贷款人姓名(如xiaocuicui),输入还款金额(如30000),系统将暂时记录这些记录。
执行项目3
输入编号3(回车),输入贷款人身份证号,若之前的记录中没有贷款记录,则显示“无贷款记录”;若存在记录,则显示该人贷款记录(包括:
贷款编号,贷款人身份证号码,贷款人姓名,贷款金额,贷款年限)。
执行项目4
输入编号4(回车),输入贷款编号,若不存在该贷款编号,则显示“编号有误”;若存在,则显示该人还贷记录(包括:
还贷编号,贷款人身份证号码,还款人姓名,还款金额,索还贷款编号)。
退出该系统
输入编号5(回车),如果要退出该系统,则输入“y”,若不退出“n”
(五)、心得体会
通过两个星期的研究、学习、设计、不断运行尝试,最终成功,确实得到了很多。
主要问题是之前学习的C程序掌握得不够扎实,运用不够灵活,设计之前无从下手。
但在不断翻书、问同学的过程中,所学颇多。
编程是一个漫长难熬的过程,但不能放弃,理清思路,画出结构图,一步步分析,想出要用到的函数,将自己设计的结构分成几块,然后逐个分析设计。
每一个设计好了之后都要运行。
之后组合起来。
再不断运行尝试。
(下面是我自己画的结构图)
其实在编程的过程中,最困难的是编写拓展功能,一开始毫无头绪,本来想放弃,听说班上做相同课题的同学会,便一问到底,其实拓展功能大致结构还不是很难,比较好理解,最难的是这一功能里涉及到的几乎所有函数都没有见过,不知道也不会用,就拿出书来对着附录里的解释,一遍一遍读,一次一次理解。
最终还是取得了不错的效果。
设计过程枯燥乏味,但认真不妥协,同学之间相互帮助,也真正学到了许多知识,这是我此次实训的最大收获。
相信自己对于以后所面临的困难,都能像现在这样将沉着面对。
(六)、附录
参考文献
[1]谭浩强.C程序设计(第三版).北京:
清华大学出版社,2005
[2]谭浩强.C程序设计题解与上机指导(第三版).北京:
清华大学出版社,2005
[3]HerbertSchildt.C语言大全(第四版).北京:
电子工业出版社,2004
[4]SamuelⅢ,Guy.C语言参考手册(第5版).北京:
机械工业出版社,2003
[5]张建勋.C语言程序设计教程.北京:
清华大学出版社,
[6]崔武子.C程序设计教程(第2版).北京:
清华大学出版社,(第2版)
[7]语言程序设计:
现代方法(第2版).北京:
人民邮电出版社,2010