银行信贷管理系统

功能模块设计

添加功能设计:

添加分为两部分添加贷款用户基本信息和添加还贷用户基本信息。添加贷款基本信息中要求输入贷款编号、贷款人身份证号码、贷款人姓名、贷款金额、贷款年限。添加还贷用户基本信息要求输入一个贷款编号(要求对贷款编号进行检查,如果没有这条贷款,显示输入编号错误),还款编号、还款人身份证号码、还款人姓名、还款金额、所还贷款编号. 要求还款编号不能重复。其中用结构体来建立输入的用户信息的形式。分别存放在两个结构体数组中。

查询功能设计:

查询贷款信息可以用输入贷款人身份证号码来进行,先查询是否存在贷款,如果存在显示该贷款人的所有贷款记录,如果不存在显示无记录。

还款记录:输入还款编号  调出还款用户信息  输出还款用户信息

程序设计语言课程设计报告  查询还贷记录通过输入贷款编号(要求对贷款编号进行检查,如果没有这条贷款,显示输入编号错误)进行,查看对该贷款的所有还贷信息。

3.2 数据结构设计

1.在本程序中定义了两个结构体类型和数组,分别对应贷款记录和还款记录;

struct SDjl sd[max];  //存放申请贷款记录的结构体数组

struct HDjl hd[max]; //存放还贷记录的结构体数组

贷款记录中包含以下数据:

贷款编号、贷款人身份证号码、贷款人姓名、贷款金额、贷款年限

struct SDjl              //用于记录申请贷款数据的结构体

{

int num;                    //贷款编号

char IDCard[20];   //身份证号

char name[20];    //贷款姓名

float jinE;       //贷款金额

int nianxian;     //贷款年限

};

还贷记录中包含以下数据:

还款编号、还款人身份证号码、还款人姓名、还款金额、所还贷款编号

struct HDjl              //用于记录还贷数据的结构体

{

int num;       //贷款编号

char IDCard[20];    //身份证号

char name[20];    //还款姓名

float jinE;        //贷款金额

int HDnum;      //还款编号

};

2. 定义两个全局变量z和x;用于结构体数组的下标,由于函数要循环调用,结构体的下标不能乱

3.3 函数功能描述

(1)ShenDai()函数:函数原型:int ShenDai(struct SDjl sd[]);用   于实现申请贷款的功能,将输入的贷款信息存放到结构体数组     中;
(2)HuanDai()函数:函数原型  型:int HuanDai(struct SDjl sd[],struct HDjl hd[]);用于实现还贷功能,  并将还贷记录存放到结构体数组中,调用时,首先查询是否存在这笔  贷款记录,而且还贷编号不能重复;
(3)ChaDai()函数:函数原  型:int ChaDai(struct SDjl sd[]);
  用于实现查询贷款记录的函数,输入身份证号,输入这个身份证浩所  有的贷款记录,没有就显示无记录
(4)ChaHuan()函数:函数原型:int ChaHuan(struct HDjl hd[]);
  用于查询还贷记录的函数,输入贷款的编号,查询这笔贷款的还贷记  录,没有则显示无记录
(5)save()函数:函数原型:              void save(struct SDjl sd[],struct HDjl hd[]);
  用于系统将要退出时,将当前栈上的贷款记录和还贷记录写入文件   中,以二进制的形式写入,并存入磁盘:
(6)read()函数:函数原  型:void read(struct SDjl sd[],struct HDjl hd[]);
  用于程序启动时,如果是第一次启动,没人文件形式的贷款记录则返  回,如果不是第一次,则将上一次的贷款记录和还款记录从文件中读  入结构体数组;
(7)main()函数:函数原型:void main();
  为主函数

程序实现

源码分析

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 100int z=0,x=0;   //定义全局变量struct SDjl             //用于记录申请贷款数据的结构体
{int num;char IDCard[20];char name[20];float jinE; int nianxian;
};struct HDjl             //用于记录还贷数据的结构体
{int num;char IDCard[20];char name[20];float jinE; int HDnum;
};//2   main函数//声明要使用的函数,定义两个结构体数组用于存放贷款记录和还贷记录,调用read函数,如若是第二次使用,将上一次保存的记录读取并存放到数组中,循环调用switch语句显示功能主界面;
int main()
{int ShenDai(struct SDjl sd[]);                         //1.申请贷款int HuanDai(struct SDjl sd[],struct HDjl hd[]);     //2.还贷 int ChaDai(struct SDjl sd[]);                        //3.查询贷款记录int ChaHuan(struct HDjl hd[]);                        //4.查询还贷记录void save(struct SDjl sd[],struct HDjl hd[]);//将申贷记录和还贷记录写入磁盘文件void read(struct SDjl sd[],struct HDjl hd[]);//第二次打开系统时读取上一次的记录struct SDjl sd[max];struct HDjl hd[max];read(sd,hd);int n;while(1){printf("\n---------------------------------\n");printf("\n        银行信贷管理平台\n");printf("\n---------------------------------\n");printf("\n        1. 申 请 贷 款\n");printf("\n        2.还        贷\n");printf("\n        3.查询贷款记录\n");printf("\n        4.查询还贷记录\n");printf("\n        0. 退 出 系 统\n"); printf("\n---------------------------------\n");printf("\n");printf(" 请输入你要选择的功能编号(0-4):");   //界面 scanf("%d",&n);    //使用数字选择功能选项switch(n){case 0: save(sd,hd);    printf("\n*********************************\n");printf("\n   已退出系统,感谢您的使用 \n");printf("\n*********************************\n");return 0;      //退出系统 case 1: system("cls");ShenDai(sd);system("cls");break;case 2: system("cls");HuanDai(sd,hd);system("cls");break;case 3: system("cls");ChaDai(sd);system("cls");break;case 4: system("cls");ChaHuan(hd);system("cls");break;default: printf("\n没有这个功能\n");}}
}
int ShenDai(struct SDjl sd[])     //1.申请贷款
{char s;printf("\n--------------------------------\n");printf("\n  贷  款  编  号:   ");scanf("%d",&sd[z].num);printf("\n  身  份  证  号:   ");scanf("%s",sd[z].IDCard);printf("\n  贷  款  姓  名:   ");scanf("%s",sd[z].name);printf("\n  贷  款  金  额:   ");scanf("%f",&sd[z].jinE);printf("\n  贷  款  年  限:   ");scanf("%d",&sd[z].nianxian);printf("\n--------------------------------\n");printf("\n  请认真核对信息,确定贷款?");getchar();z++;getchar();
} int HuanDai(struct SDjl sd[],struct HDjl hd[])     //2.还  贷
{
//  struct HDjl hd;int i,huanNum,hdbh;printf("\n--------------------------------\n");printf("\n  贷  款  编  号:  ");scanf("%d",&huanNum);printf("\n--------------------------------\n");for(i=0;i<max;i++){if(sd[i].num==huanNum){printf("\n  还  款  编  号:  ");scanf("%d",&hdbh);for(i=0;i<max;i++){if(hd[i].HDnum==hdbh)printf("\n还款编号重复\n");else hd[i].HDnum=hdbh;break;}printf("\n  身  份  证  号:   ");scanf("%s",hd[x].IDCard);printf("\n  贷  款  姓  名:   ");scanf("%s",hd[x].name);printf("\n  贷  款  金  额:   ");scanf("%f",&hd[x].jinE);printf("\n  贷  款  编  号:   ");scanf("%d",&hd[x].num);printf("\n--------------------------------\n");printf("\n  请认真核对信息,确定还贷?");getchar(); getchar(); x++;return 0;    }}printf("\n输入的编号错误!");getchar();getchar();}int ChaDai(struct SDjl sd[])            //3.查询贷款记录
{char sfid[18];int s=0;printf("\n--------------------------------\n");printf("\n  身  份  证  号:  ");scanf("%s",sfid);for(int i=0;i<max;i++){if((strcmp(sfid,sd[i].IDCard))==0){printf("\n--------------------------------\n");printf("\n  贷  款  编  号:   %d\n",sd[i].num);printf("\n  贷  款  姓  名:   %s\n",sd[i].name);printf("\n  贷  款  金  额:   %10.2f\n",sd[i].jinE);printf("\n  贷  款  年  限:   %d\n",sd[i].nianxian);printf("\n--------------------------------\n");   s++;} }if(s==0){    printf("\n--------------------------------\n"); printf("\n    无  记  录");}getchar();getchar();
}
int ChaHuan(struct HDjl hd[])  //4.查询还贷记录
{int i,num;printf("\n--------------------------------\n");printf("\n  贷  款  编  号:  ");scanf("%d",&num);for(i=0;i<max;i++){if(hd[i].num==num){printf("\n--------------------------------\n");printf("\n  贷  款  编  号:   %d\n",hd[i].num);printf("\n  贷  款  姓  名:   %s\n",hd[i].name);  printf("\n  身  份  证  号:   %s\n",hd[i].IDCard);printf("\n  贷  款  金  额:   %10.2f\n",hd[i].jinE);printf("\n  还  贷  编  号:   %d\n",hd[i].HDnum);printf("\n--------------------------------\n");getchar();getchar();return 0;         }}printf("\n--------------------------------\n");printf("\n    输 入 的 编 号 错 误\n");   getchar();getchar();
}void save(struct SDjl sd[],struct HDjl hd[]) //将申贷记录
//贷记录写入磁盘件
{FILE *fp1,*fp2;int i;fp1=fopen("sdjl.dat","a");//申贷记录文件名 for(i=0;i<z;i++){fwrite(&sd[i],sizeof(struct SDjl),1,fp1);}fp2=fopen("hdjl.dat","a");//还贷记录文件名 for(i=0;i<x;i++){fwrite(&hd[i],sizeof(struct HDjl),1,fp2);}fclose(fp1);fclose(fp2);
}void read(struct SDjl sd[],struct HDjl hd[])//第二次打开系统时//读取上一次的记录
{FILE *fp1,*fp2;int i;if((fp1=fopen("sdjl.dat","rb"))==NULL){return;}for(i=0;feof(fp1)==0;i++){fread(&sd[i],sizeof(struct SDjl),1,fp1);}z==i+1;//第二次使用时,给全局变量赋值 fp2=fopen("hdjl.dat","rb");for(i=0;feof(fp2)==0;i++){fread(&hd[i],sizeof(struct HDjl),1,fp2);}  x==i+1;//第二次使用时,给全局变量赋值fclose(fp1);fclose(fp2);}

C语言实现简易的信贷系统相关推荐

  1. c语言中简易公交一卡通系统的实现

    c语言中简易公交一卡通系统的实现 1.基本功能介绍: 系统启动则进入登陆菜单. 根据不同角色的选取来确定是普通用户还是管理员帐户 添加新卡 能够添加一张新卡,卡号按照自然数列向下自动产生,而用户名键盘 ...

  2. 【C语言】简易登录注册系统(登录、注册、改密、文件操作)

    概述: 本登录注册系统通过使用C语言中的结构体.函数.文件操作以及指针等,设计与实现了一个小型用户登录注册系统的登录.注册.修改密码等基本功能. 本系统全部功能基本运行良好.用户界面友好.操作简单.使 ...

  3. c语言实现简易的银行ATM系统

    用C做一个简易的ATM系统,代码都有备注,简单易懂. 不多说,代码如下: #include<stdio.h> #include<stdlib.h> #include<st ...

  4. python注册系统_Python制作简易注册登录系统

    Python制作简易注册登录系统 这篇文章主要为大家详细介绍了 Python 简易注册登录系统的制作方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Python 是一种面向对象.解释型计算机程 ...

  5. busybox的实现原理分析(C语言实现简易版的busybox)

    1.linux中实现命令的两种方式 1.1.命令都是单独的可执行程序 aston:~$ ls -l /bin/ls -rwxr-xr-x 1 root root 138208 2鏈 8 2022 /b ...

  6. 基于JAVA简易在线教学系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA简易在线教学系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA简易在线教学系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技术栈: 项目架构 ...

  7. Android开发:kotlin语言实现简易计算器

    Android开发:kotlin语言实现简易计算器 1. 实现效果 2. 主要文件代码: 界面布局:activity_main.xml文件代码 字符定义:string.xml文件代码 逻辑实现:Mai ...

  8. java计算机毕业设计简易在线教学系统源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计简易在线教学系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计简易在线教学系统源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B/S ...

  9. java计算机毕业设计简易在线教学系统源码+数据库+lw文档+系统

    java计算机毕业设计简易在线教学系统源码+数据库+lw文档+系统 java计算机毕业设计简易在线教学系统源码+数据库+lw文档+系统 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开 ...

最新文章

  1. django自带的分页功能
  2. mongodb线程池_常用高并发网络线程模型设计及MongoDB线程模型优化实践
  3. Spring MVC零配置(全注解)(版本5.0.7)
  4. ssl服务器测试网站
  5. Knative Serving 健康检查机制分析
  6. stream 提取某字段_java8从list集合中取出某一属性的值的集合案例
  7. windows编程 识别拖动_五步学会任何编程语言 | Linux 中国
  8. HDOJ 4734 数位DP
  9. 苹果 5G 芯片“难产”!
  10. java的人patch方法_java – Spring MVC PATCH方法:部分更新
  11. 深度学习:卷积神经网络CNN变体
  12. 干货丨DolphinDB即时编译(JIT)详解
  13. [动态规划-0] 前言-我的动态规划学习之路
  14. 小程序如何通过云开发获取手机号
  15. Linux笔记 No.22---(Linux - PAM)
  16. 【毕业设计】基于stm32的示波器设计与实现 - 单片机 嵌入式
  17. Apache ab压力测试说明
  18. 惹某人de集训第4周学习摘录(习题+感悟)
  19. 15个最好用的JavaScript代码压缩工具
  20. oracle分区表的优势

热门文章

  1. 金融行业的大数据分析
  2. 修改信息显示服务器升级,无感门禁监控管理软件升级37条新功能
  3. javascriptmvc-steal
  4. java商城项目面试题,Java基础视频教程
  5. 十二星座专属“小香风连衣裙”处女座精细粉色,双鱼座梦幻赫本风
  6. 用python让excel飞起来 pdf_热烈祝贺!PaperRSS文章被科大讯飞有声收录!
  7. 3DMax基础骨架绑定教程
  8. 工控出差体验感好的时候你遇到过吗
  9. Windows2003 监控文件系统并自动上传到 linux 主机
  10. 【华人学者风采】唐金辉 南京理工大学