广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言实现银行管理系统(文件操作)
  • 245
分享到

C语言实现银行管理系统(文件操作)

2024-04-02 19:04:59 245人浏览 薄情痞子
摘要

本文实例为大家分享了C语言实现银行管理系统的具体代码,供大家参考,具体内容如下 银行管理系统主要有五个模块组成: 1、查询账户信息2、存钱3、取款4、转账5、退出系统 测试文件:(首

本文实例为大家分享了C语言实现银行管理系统的具体代码,供大家参考,具体内容如下

银行管理系统主要有五个模块组成:

1、查询账户信息
2、存钱
3、取款
4、转账
5、退出系统

测试文件:(首先在cpp文件所在目录下添加这个文件,运行程序会自动添加文件,但是需要输入这些数据)

代码:

#include<stdio.h>    
#include<stdlib.h>  
#include<string.h>  
#define max 100
#define LEN 15      
#define N 100        
int k=1,n=0, m=0;
//账户信息结构体
struct banker
{
    char accountNo[LEN];
    char accountName[LEN];
    char PassWord[LEN];
    float Balance;
    char VIPoNORMal[LEN];
}bank[N];
void fileWrite();

//存钱
void Save()
{
    int item,i; 
    char s1[LEN+1]; //用来输账号的 
    printf("请输入需要存钱的账号\n");
    scanf("%s",&s1);
    for(i=0; i<n; i++)                  //n代表当前记录数
    {
        if(strcmp(s1,bank[i].accountNo)==0) 
        {
            item=i;
        } 
    }
    printf("请输入需要存钱的金额\n");
    float wd =0.0;
    scanf("%f",&wd); 
    bank[item].Balance+=wd;
    fileWrite(); 
    return;
} 
//查询银行账户信息
void seek()
{
    //先把账户信息读进来    必须输入该账号和对应的密码,输入错误则给出警告 
    int j=0;
    FILE * fp;
    if((fp=fopen("account.txt","r"))==NULL)
        return ;
    while(fscanf(fp,"%s %s %s %f %s\n",&bank[j].accountNo,&bank[j].accountName,&bank[j].Password,&bank[j].Balance,&bank[j].VIPoNormal)==5) 
    {
        j++;
    }
    n=j;
    int i=0,item=0,flag=0;
    char s1[LEN+1];   //用来输账号的 
    char s2[LEN+1];   //用来输密码的 
    printf("请输入需要查询的账号\n");
    scanf("%s",&s1);
    for(i=0; i<n; i++)                  //n代表当前记录数
    {
        if(strcmp(s1,bank[i].accountNo)==0) 
        {
            flag=1;
            item=i;
        } 
    } 
    if(0==flag)         //输入的账号和存好的账号不一致
        printf("该账号不存在!\n");
    else{
        int flag1=0;//判断密码输入是否正确 
        printf("请输入需要查询的账号对应的密码\n");
        scanf("%s",&s2);
        if(strcmp(s2,bank[item].Password)==0)
        {
            flag1=1;
        } 
        if(flag1==0){
            printf("密码输入错误\n");//这块可以改,重新输入,初步打算while循环 
            return; 
        }else{
            printf("密码输入正确\n");
            printf("您余额为:%10.1f\n",bank[item].Balance);
        }
        
    }
    return; 
    
} 


//取款模块
// vip一次最多3000 普通的2000
// 提取的钱超过余额则失败  ,用户可以选择重新输或者返回主菜单
// 取钱后进行相应的更新  

void Withdraw()
{
    //首先肯定需要查询一下 
        //先把账户信息读进来    必须输入该账号和对应的密码,输入错误则给出警告 
    int j=0;
    FILE * fp;
    if((fp=fopen("account.txt","r"))==NULL)
        return ;
    while(fscanf(fp,"%s %s %s %f %s\n",&bank[j].accountNo,&bank[j].accountName,&bank[j].Password,&bank[j].Balance,&bank[j].VIPoNormal)==5) 
    {
        j++;
    }
    n=j;
    int i=0,item=0,flag=0;
    char s1[LEN+1];   //用来输账号的 
    char s2[LEN+1];   //用来输密码的 
    printf("请输入账号\n");
    scanf("%s",&s1);
    for(i=0; i<n; i++)                  //n代表当前记录数
    {
        if(strcmp(s1,bank[i].accountNo)==0) 
        {
            flag=1;
            item=i;
        } 
    } 
    if(0==flag)         //输入的账号和存好的账号不一致
        printf("该账号不存在!\n");
    else{
        int flag1=0;//判断密码输入是否正确 
        printf("请输入需要查询的账号对应的密码\n");
        scanf("%s",&s2);
        if(strcmp(s2,bank[item].Password)==0)
        {
            flag1=1;
        } 
        if(flag1==0){
            printf("密码输入错误\n");//这块可以改,重新输入,初步打算while循环 
            return; 
        }else{
            printf("密码输入正确\n");
            printf("您余额为:%10.1f\n",bank[item].Balance);
            printf("请输入需要取款的金额");
            printf("您的账户类型是%s\n",bank[item].VIPoNormal);
            printf("*****注意事项:*****\n");
            printf("取款金额不能超过限额\n");
            printf("V类型用户单次取款不得超过3000元\n");
            printf("N类型用户单次取款不得超过2000元\n");
            //判断类型
            float jud=0.0;
            if(strcmp(bank[item].VIPoNormal,"V")==0) 
            {
                jud=3000;
            }
            else jud=2000;
            float wd =0.0;
            scanf("%f",&wd); 
            while(bank[item].Balance<wd || wd>jud)
            {
                printf("输入不符合规范,请按照注意事项进行输入");
                scanf("%f",&wd);
            }
            //取款之后的更新操作
            bank[item].Balance-=wd;
            fileWrite(); 
        
        }
        
    }
    
    return;
}

//转账
void Transfer()
{
        //首先肯定需要查询一下 
        //先把账户信息读进来    必须输入该账号和对应的密码,输入错误则给出警告 
    int j=0;
    FILE * fp;
    if((fp=fopen("account.txt","r"))==NULL)
        return ;
    while(fscanf(fp,"%s %s %s %f %s\n",&bank[j].accountNo,&bank[j].accountName,&bank[j].Password,&bank[j].Balance,&bank[j].VIPoNormal)==5) 
    {
        j++;
    }
    n=j;
    int i=0,item=0,flag=0;
    char s1[LEN+1];   //用来输账号的 
    char s2[LEN+1];   //用来输密码的 
    printf("请输入账号\n");
    scanf("%s",&s1);
    for(i=0; i<n; i++)                  //n代表当前记录数
    {
        if(strcmp(s1,bank[i].accountNo)==0) 
        {
            flag=1;
            item=i;
        } 
    } 
    if(0==flag) 
        printf("该账号不存在!\n");
    else{
        int flag1=0;//判断密码输入是否正确 
        printf("请输入账号对应的密码\n");
        scanf("%s",&s2);
        if(strcmp(s2,bank[item].Password)==0)
        {
            flag1=1;
        } 
        if(flag1==0){
            printf("密码输入错误\n");//这块可以改,重新输入,初步打算while循环 
            return; 
        }else{
            printf("密码输入正确\n");
            printf("您余额为:%10.1f\n",bank[item].Balance);
            printf("您的账户类型是%s\n",bank[item].VIPoNormal);
            printf("请输入需要转账的账户");
            int flag2=0; 
            char s3[LEN+1];
            int item2=0;//标记目的账户 
            scanf("%s",&s3);
            for(i=0; i<n; i++)                 
            {
                if(strcmp(s3,bank[i].accountNo)==0) 
                {
                    flag2=1;
                    item2=i;
                } 
            }
            while(flag2==0){
                printf("账户输入有误请重新输入");
                scanf("%s",&s3);
                for(i=0; i<n; i++)                 
                {
                    if(strcmp(s3,bank[i].accountNo)==0) 
                    {
                        flag2=1;
                        item2=i;
                        printf("accountNo    accountName  Password   Balance  VIPoNormal  \n");
                        printf("--------------------------------------------------------------------\n");
                        printf("%s %16s %10s %10.1f  %s\n",bank[i].accountNo,bank[i].accountName,bank[i].Password,bank[i].Balance,bank[i].VIPoNormal);
                    } 
                }
            }
    
            printf("*****注意事项:*****\n");
            printf("转账金额不能超过限额\n");
            printf("V类型用户单次转账不得超过20000元\n");
            printf("N类型用户单次转账不得超过10000元\n");
            printf("请输入需要转账的金额\n");
            float jud=0.0;
            if(strcmp(bank[item].VIPoNormal,"V")==0) 
            {
                jud=20000;
            }
            else jud=10000;
            float money;
            scanf("%f",&money);
            while(money>jud || money>bank[item].Balance)
            {
                printf("输入不符合规范,请按照注意事项进行输入");
                scanf("%f",&money);
            }
            if(strcmp(bank[item].VIPoNormal,"V")==0) 
            {
                bank[item].Balance-=money*0.005; 
            }else{
                bank[item].Balance-=money*0.01; 
            }
            bank[item].Balance-=money;
            bank[item2].Balance+=money; 
            fileWrite();
            printf("转账成功\n");
        }
        
    }
    
    return;
} 

//插入学生信息函数
void insert() 
{
    int i;
    printf("请输入待增加的账户数:");
    scanf("%d",&n);
    FILE * fp;
    if((fp=fopen("account.txt","at"))==NULL) 
        printf("文件为空!\n");
    for(i=0; i<n; i++) 
    {
        printf("\n请输入第%d个账户的账号:",i+1);
        scanf("\n%s",&bank[i].accountNo);
        printf("\n请输入第%d个账户的姓名:",i+1);
        scanf("%s",&bank[i].accountName);
        printf("\n请输入第%d个账户的密码:",i+1);
        scanf("%s",&bank[i].Password);
        printf("\n请输入第%d个账户的余额:",i+1);
        scanf("%f",&bank[i].Balance);
        printf("\n请输入第%d个账户的类别:",i+1);
        scanf("%s",&bank[i].VIPoNormal);
//        sort();   //调用按学号排序函数
        //写入文件
        fprintf(fp,"%s %16s %10s %10.1f  %s\n",&bank[i].accountNo,&bank[i].accountName,&bank[i].Password,&bank[i].Balance,&bank[i].VIPoNormal);
    }
    printf("\n添加成功!!!\n");

    fclose(fp);
}


//显示当前信息
void display() 
{
    int i=0;
    FILE * fp;
    if((fp=fopen("account.txt","r"))==NULL)
        printf("文件为空!\n");
    while(fscanf(fp,"%s %s %s %f %s\n",&bank[i].accountNo,&bank[i].accountName,&bank[i].Password,&bank[i].Balance,&bank[i].VIPoNormal)==5) 
    {
        i++;
    }
    n=i;               //记录文件中数据的行数
    printf("accountNo    accountName  Password   Balance  VIPoNormal  \n");
    printf("--------------------------------------------------------------------\n");
    for(i=0;i<n;i++)    //依次输出学生信息
    {
        printf("%s %16s %10s %10.1f  %s\n",bank[i].accountNo,bank[i].accountName,bank[i].Password,bank[i].Balance,bank[i].VIPoNormal);
    }
     fclose(fp);
}


//保存当前账户信息
void fileWrite()
{
        FILE *fp;
        int i;
        if((fp=fopen("account.txt","w"))==NULL) 
            printf("文件为空!\n");
        for(i=0; i<n; i++) 
        {
            fprintf(fp,"%s %16s %10s %10.1f  %s\n",bank[i].accountNo,bank[i].accountName,bank[i].Password,bank[i].Balance,bank[i].VIPoNormal);
        }
        fclose(fp);
        printf("保存成功!!!");
} 


//界面
void menu() 
{
    int num;
    printf(" \n\n                    \n\n");
    printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
    printf(" *                   银行管理系统                    *\n");
    printf(" *                                                       *\n");
    printf(" *       * * * * * * *系统功能菜单* * * * * * *          *\n");
    printf(" *    --------------------------------------------       *\n");
    printf(" *    1. 查询账户信息   *\n");
    printf(" *    2. 存钱           *\n");
    printf(" *    3. 取款           *\n");
    printf(" *    4. 转账           *\n");
    printf(" *    5. 退出系统       *\n");

    printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
    printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n");
    printf("请选择菜单编号:");
    scanf("%d",&num);
    switch(num) {
        case 0:
//            help();
            break;
        case 1:
            seek();
            break;
        case 2:
            Save();
            break;
        case 3:
            Withdraw();
            break;
        case 4:
            Transfer();
            break;
        case 5:
           k=0;
            break;
        default:
            printf("请在0-8之间选择\n");
    }
}


//主函数    
int main() 
{
    while(k) 
    {
        menu();
    }
    system("pause");
    return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C语言实现银行管理系统(文件操作)

本文链接: https://www.lsjlt.com/news/143053.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言实现银行管理系统(文件操作)
    本文实例为大家分享了C语言实现银行管理系统的具体代码,供大家参考,具体内容如下 银行管理系统主要有五个模块组成: 1、查询账户信息2、存钱3、取款4、转账5、退出系统 测试文件:(首...
    99+
    2022-11-13
  • C语言实现学生信息管理系统(文件操作)
    目录新增函数——文件操作;1.头文件和预处理2.定义学生结构体的数据结构3.定义每条记录或节点的数据结构4.函数接口代码.1.定义提示菜单2.增加学生记录3....
    99+
    2022-11-13
  • C语言实现模拟银行系统
    本文实例为大家分享了C语言实现银行系统的具体代码,供大家参考,具体内容如下 1.实现要求 生成一个1000-1000000之间的随机数来代表账户余额(要求每次生成的数不一样);实现登...
    99+
    2022-11-13
  • C语言如何实现学生信息管理系统的文件操作
    本文小编为大家详细介绍“C语言如何实现学生信息管理系统的文件操作”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言如何实现学生信息管理系统的文件操作”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。新增函数&am...
    99+
    2023-07-02
  • C语言实现自行车管理系统
    在大家学完C语言后,经常会被学校要求做很多管理系统,主流做法当选链表,但是很多问题就来了,在学习阶段写过最多基本上就是50行代码左右了,一下子做个小型管理系统问题就比较多。小编当然也...
    99+
    2022-11-13
  • C语言如何实现银行ATM存取款系统
    这篇文章给大家分享的是有关C语言如何实现银行ATM存取款系统的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、课程设计的目的掌握C语言程序设计的基础知识、基本理论、原理和实现技术。二、课程设计的题目银行ATM存取...
    99+
    2023-06-25
  • C语言实现图书管理系统(文件数据库)
    本文实例为大家分享了C语言实现图书管理系统的具体代码,供大家参考,具体内容如下 简介 c语言的一个大作业,发上来纪念下嘿嘿。写的不是很好,很多东西都揉在一起来,不过注释写的也挺多,希...
    99+
    2022-11-13
  • C++实现图书管理系统(文件操作与类)
    本文实例为大家分享了C++实现图书管理系统的具体代码,供大家参考,具体内容如下 (1)定义图书类; (2)图书信息包括:书名name,价格price,库存num; (3)可以查询、增...
    99+
    2022-11-13
  • C语言怎么实现对文件进行操作
    这篇“C语言怎么实现对文件进行操作”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言怎么实现对文件进行操作”文章吧。文件指...
    99+
    2023-07-05
  • C语言怎么实现文件操作
    这篇文章将为大家详细讲解有关C语言怎么实现文件操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是文件磁盘上的文件就是文件。在程序设计中,我们一般谈的文件有两种:程序文件和数据文件程序文件包括源程序文...
    99+
    2023-06-25
  • C语言实现自行车存放管理系统
    本文实例为大家分享了C语言实现自行车存放管理系统的具体代码,供大家参考,具体内容如下 系统包括以下内容 1.数据录入:录入系统基本数据,用数组或链表组织; 2.数据存储:用文件的形式...
    99+
    2022-11-13
  • C语言实现学籍管理系统
    本文实例为大家分享了C语言实现学籍管理系统的具体代码,供大家参考,具体内容如下 设计一个学籍管理系统,基本功能包括: 1.输入学生基本信息2.查询学生信息(1.按学号2.按姓名)3....
    99+
    2022-11-13
  • C语言实现设备管理系统
    本文实例为大家分享了C语言实现设备管理系统的具体代码,供大家参考,具体内容如下 一、任务概述 设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间统一部门购买的若干相同...
    99+
    2022-11-13
  • C语言实现餐厅管理系统
    本文实例为大家分享了C语言实现餐厅管理系统的具体代码,供大家参考,具体内容如下 在学习完C语言之后,写了一个小程序,涉及到单链表,文件,排序,等内容。 这个对新手指针,函数等方面的掌...
    99+
    2022-11-13
  • C语言实现客房管理系统
    本文实例为大家分享了C语言实现客房管理系统的具体代码,供大家参考,具体内容如下 总体设计 下面来分析一下整个系统,根据上面的要求分析,可将这个系统设计为五大模块(见下图):登记模块,...
    99+
    2022-11-13
  • C语言实现销售管理系统
    本文实例为大家分享了C语言实现销售管理系统的具体代码,供大家参考,具体内容如下 这是题目,没用到文件相关的函数,所以不能保存在本地,每次读入都得重新输入。 #include<...
    99+
    2022-11-13
  • C语言实现考勤管理系统
    这些天因为补修c语言课设,在花费了一段时间后写完了这个课设,课设的要求如下: 考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假...
    99+
    2022-11-13
  • C语言实现停车管理系统
    本题为大家分享了C语言实现停车管理系统的具体代码,供大家参考,具体内容如下 设计题目 设停车场是一个可以停放n辆汽车的南北方向的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按...
    99+
    2022-11-13
  • C语言实现教务管理系统
    本文实例为大家分享了C语言实现教务管理系统的具体代码,供大家参考,具体内容如下 目前已完成教师管理系统部分,学生管理系统待完成: 实现效果如图: 主界面: 教师端—&...
    99+
    2022-11-13
  • C语言实现车票管理系统
    本文实例为大家分享了C语言实现车票管理系统的具体代码,供大家参考,具体内容如下 一、项目简介 设计一个车票管理系统实现录入、查看班次信息,售票,退票等基本功能。设计中要求综合运用所学...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作