⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bank.cpp.txt

📁 相当简单 简洁的模拟银行系统 功能不多 实现方便
💻 TXT
字号:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct cust
{
    int zhanghao;   //帐号
    char mingzi[20];   //名字
    float bal;     //开户的金额
};
struct tran
{
    int acc_no;
    char trantype;
    float amt;
};
void addcust();
void rectran();
void prnlowbal();
void huizong();
void main()
{
    int choice;
    while(choice!=5)
    {
        system("cls");
        printf("\n****************************************\n");
        printf("\n*       银行交易系统           *\n");
        printf("\n*   -1-   创建新用户信息         *\n");
        printf("\n*   -2-   银行业务办理           *\n");       
        printf("\n*   -3-   显示低存款用户信息       *\n");
        printf("\n*   -4-   汇总                 *\n");
        printf("\n*   -5-   退出                 *\n");
        printf("\n****************************************\n");
        printf("请选择:");
        scanf(" %d",&choice);
    switch(choice)
    {
    case 1:
        addcust();
        break;
    case 2:
        rectran();
        break;
    case 3:
        prnlowbal();
        break;
    case 4:
        huizong();
        break;
    default:
        exit(0);
    }
    }
}
void addcust()
{
    FILE *fp;
    char flag='y'
    struct cust people;
    if((fp=fopen("sql.txt","w"))==NULL)
    {
        printf("\n   **** 操作错误,重新输入 ****\n");
        getchar();
        return;
    }
    while(flag=='y')
    {
        system("cls");
        printf("\n 帐号:");
        scanf("%d",&people.zhanghao);
        printf("\n 姓名:");
        scanf("%s",&people.mingzi);
        printf("\n 金额:");
        scanf("%f",&people.bal);
        fwrite(&people,sizeof(struct cust),1,fp);
        getchar();
        printf("\n 是否继续(y/n)?:");
        scanf(" %c",&flag);
    }
    fclose(fp);
}
void rectran()
{
    FILE *fp1,*fp2;
    char flag='y',found,val_flag;
    struct cust people;
    struct tran people2;
    int size=sizeof(struct cust);
    if((fp1=fopen("sql.txt","a+f"))==NULL)
    {
        printf("\n   **** 操作错误,重新输入! ****\n");
        getchar();
        exit(0);
    }
    if((fp2=fopen("trans.dat","a+f"))==NULL)
    {
        printf("\n   **** 操作错误,重新输入! ****\n");
        getchar();
        return;
    }
    while(flag=='y')
    {
        system("cls");
        printf("\n帐号:");
        scanf("%d",&people2.acc_no);
        found='n'
        val_flag='n'
        rewind(fp1);
        while((fread(&people,size,1,fp1))==1 && found=='n')
        {
              if(people.zhanghao==people2.acc_no)
              {
                  found='y'
                  break;
              }
        }
        if(found=='y')
        {
              while(val_flag=='n')
              {
                  printf("\n 选择交易方式 存/取(D/W)?:");
                  scanf(" %c",&people2.trantype);
                  if(people2.trantype!='D'&&people2.trantype!='d'&&people2.trantype!='w'&&people2.trantype!='W')
                  {
                      printf("\n **** 交易错误,重新输入 ****\n");
                  }
                  else
                  {
                      val_flag='y'
                  }
              }
                  val_flag='n'
                  while(val_flag=='n')
                  {
                      printf("\n 金额:");
                      scanf("%f",&people2.amt);
                      if(people2.trantype=='w'||people2.trantype=='W')
                      {
                            if(people2.amt>people.bal)
                            {
                                printf("\n *** 余额:%.2f不足.重新输入。 ***",people.bal);
                            }
                            else
                            {
                                people.bal-=people2.amt;
                                val_flag='y'
                            }
                      }
                      else
                      {
                            people.bal+=people2.amt;
                            val_flag='y'
                      }
                  }
                  fwrite(&people,sizeof(struct tran),1,fp2);
                  fseek(fp1,(long)(-size),1);
                  fwrite(&people,size,1,fp1);
              }
              else
              {
                  printf("\n   **** 这个帐号不存在! ****\n");
              }
              printf("\n 交易是否继续?y/n:");
              scanf(" %c",&flag);
        }
        fclose(fp1);
        fclose(fp2);
        getchar();
        getchar();
    }
void prnlowbal()
{
    FILE *fp;
    struct cust people;
    char flag='n'
    getchar();
    if((fp=fopen("sql.txt","r"))==NULL)
    {
        printf("\n **** 操作错误,重新操作 ****");
        getchar();
        return;
    }
    printf("\n 显示帐户余额低于250元的帐号\n");
    while((fread(&people,sizeof(struct cust),1,fp))==1)
    {
        if(people.bal<250)
        {
              flag='y'
              printf("\n %d\t%s\t%.2f",people.zhanghao,people.mingzi,people.bal);
        }
    }
    if(flag=='n')
    {
        printf("\n **Sorry!未找到低于250的帐户 **");
    }
    getchar();
    fclose(fp);
}
void huizong()
{
    struct cust people;
    FILE *fp;
    fp=fopen("sql.txt","r");
    if(fp!=NULL)
    {     
        system("cls");
        printf("%-15s%-15s%-15s\n","帐号","姓名","余额");
        while(fread(&people,sizeof(struct cust),1,fp))
        {
              printf("\n%-15d",people.zhanghao);
              printf("%-15s",people.mingzi);
              printf("%-15.2f\n",people.bal);
        }
    }
    fclose(fp);
    printf("\n **** 按任意键返回! ****\n");
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -