当前位置:文档之家› 银行信贷管理系统,报告

银行信贷管理系统,报告

程序设计语言课题:银行信贷管理系统班级号:学号:学生姓名:课程设计起止日期: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)银行信贷管理系统简易功能图(三)、总体设计一、功能模块设计1.1银行信贷管理系统主要分为两个大模块,为贷款记录和还贷记录。

(图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)(图11)(图12)1.7 安全退出系统(y/n)。

(流程图如图13)(图13)二、数据结构设计此程序中,定义了两个结构体struct money1和struct money2,分别对应贷款和还贷。

struct money1{long int sum;int time;char daikuanbianhao[8];char shenfenzheng[19];char name[20];}lender[100],temp;struct money2{long int sum;char renum[8];char num2[8];char shenfenzheng[19];char name[20];}payments[100];因为贷款编号、贷款金额、贷款人身份证号码、贷款人姓名、贷款期限是属于一个人的贷款信息,所以对贷款定义一个结构体即可;还贷同理。

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

#include<string.h> 字符串处理。

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

#include<stdlib.h>即standard library标准头文件。

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

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

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

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

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

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

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

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

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

3.4 选择函数if(){}else{} for(; ; ){}switch(){case:break;} 按条件进行选择。

3.5自定义函数void定义空函数。

eg:void daikuan();void huandai();void chaxundaikuan();void chaxunhuandai();void key1();int 定义为整型。

long int 定义长整型。

char 定义为字符型。

(四)、程序实现一、源码分析1. 程序预处理#include <stdio.h> //标准输入输出函数库#include <string.h> //字符串操作函数库#include <stdlib.h> //标准函数库int i=0,j=0; //定义i,j为整型数据,且将0赋值给i,jvoid daikuan(); //定义空函数daikuanvoid huandai(); //定义空函数huandaivoid chaxundaikuan(); //定义空函数chaxundaikuanvoid chaxunhuandai();void duquwenjian();long int demand(struct money1 a[],struct money2 b[],char str[]); //定义长整型函数demand struct money1 //定义结构体,使贷款为一个整体{long int sum;int time;char daikuanbianhao[8];char shenfenzheng[19];char name[20];}lender[100],temp;struct money2 //定义结构体,使还贷为一个整体{long int sum;char renum[8];char num2[8];char shenfenzheng[19];char name[20];}payments[100];int main(){int n;char c;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){case 1 : daikuan();break;case 2 : huandai();break;case 3 : chaxundaikuan();break;case 4 : chaxunhuandai();break;case 0 :{printf("确认是否退出?(y/n)\n");getchar();c=getchar(); //输入一个字符给字符变量cif(c=='y')return 0; //当输入"y"时,退出系统}}}while(1); //循环中没有return, continue, break,就一直循环下去}void duquwenjian(){FILE *fp1,*fp2; //采用文件形式将贷款和还贷记录写入文件和读取文件int t=0;if((fp1=fopen("loanrecord.txt","rb"))==NULL) //以只读方式打开输出文件fp1=fopen("loanrecord.txt","wb+"); //如果没有创立loanrecord.txt文件//以读写方式创立loanrecord.txt文件while(!feof(fp1)){fread(&lender[t],sizeof(struct money1),1,fp1); //从文件指针fp读取一个size为sizeof(struct stu)的数据,存入s[i],就是说把fp1数据放入lender[t]中t++;}i=t-1;fclose(fp1); //关闭fp1if((fp2=fopen("repaymentrecord.txt","rb"))==NULL)fp2=fopen("repaymentrecord.txt","wb+");t=0;while(!feof(fp2)){fread(&payments[t],sizeof(struct money2),1,fp2);t++;}j=t-1;fclose(fp2);}void daikuan() //针对"贷款"{int t,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("该编号已被使用,请输入其他编号。

相关主题