C语言开源练手项目,值得一看

李肖遥 2025-02-10 22:13
    关注、星标公众号,直达精彩内容

银行ATM存取款系统

银行ATM存取款系统业务描述如下:

银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。为了模拟真实的ATM业务环境,本系统必须实现存款、取款、查询、转账、修改密码以及开户的功能。用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。本系统各个业务有如下注意点:

  • (1)登陆系统

用户登陆之前,必须在登陆界面输入其银行账户,通过其正确输入的银行账户登陆系统。

  • (2)开户业务

要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存储于文件当中。同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能开立一次银行账户。

  • (3)存款业务

客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账户。

  • (4)取款业务

客户登陆系统后,选择取款业务,即可以将输入的取款金额从相应的银行账户取出,但是取款金额必须大于目前的账户余额。

  • (5)查询业务

客户登陆系统后,可以选择查询业务,查询账户余额。

  • (6)转账业务

客户登陆系统后,可以选择转账业务,进行转账。注意的是转账的目的账户必须是本系统已经存在的银行账户。

  • (7)修改密码

客户登陆系统后,可以选择修改密码业务,进行密码修改。

实现的效果

image

image

image

image

源码

#include
#include
#include
#define N 1000 
#include
struct chuhu{
 char idnum[9];//账户 
 char name[10];//姓名
 char idnumber[20];//省份证号
   char password[7];//密码 
   double cunkuan;//存款 
}hu[N]; 

void date();//显示当前日期
int a,a1;//主界面选择变量 
void Flag1();//主界面
void Flag2();//用户界面 
void Flag3();//用户功能选择界面
void zhuce();//注册 
int yanzheng();//验证存单号或密码 
//&&&&&&&&&&&&&&&&&&&&&&&
void qukaun();//取款
void cunkaun();//存款
void display();//查询
void zhuan();//转账 
void xiugai();//密码修改 
void display();//查找 
//&&&&&&&&&&&&&&&&&&&&&&&&&&
 int A,key;//开户人数 
 int i;//控制密码循环 
 char ch='y';//是否继续注册 
 double jin;//存的钱 
 int t;

 char id[11],password[7];
搜索公众号:信息科技人,关注免费领取300G编程资料
int main(){
system("COLOR 0A"); int b;
 Flag1();//引入主界面
 do{

 printf("\n\n\t\t##请输入你的选择:");
 scanf("%d",&a); 
 switch(a){
  case 1:{
   zhuce();//zhuce
   Flag1(); 
   break;
  }
  case 2:{
   b=yanzheng();
   fflush(stdin);///好东西,以防跳过数据
   Flag2();
   break;
  } 
  case 3:exit(0);break;
  default:printf("\n\n\n\t\t您输入的数据不符合要求!!!\n\n\n\n\n");
  
 }

 }while(1);
}


void Flag1(){
 printf("\n#################################################################################\n");
    printf("\n▓                          * 银行定期储蓄管理系统  *                           ▓\n");
    printf("\n#################################################################################\n");
 printf("\n          ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");
 printf("          |◆|******|◆|                                     |◆|******|◆|\n");
 printf("          |◆|******|◆|       ☆ 开户业务    请按 1         |◆|******|◆|\n"); 
 printf("          |◆|******|◆|       ☆ 登录系统    请按 2         |◆|******|◆|\n");
 printf("          |◆|******|◆|       ☆ 退出        请按 3         |◆|******|◆|\n");
 printf("          |◆|******|◆|                                     |◆|******|◆|\n");
 printf("          ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");
 printf("\n#################################################################################\n");
 

//********************************************************************************************************************

//用户界面  搜索公众号:C语言中文社区,关注免费领取300G编程资料
void Flag2(){
       int a,b;//选择功能的变量
    do{
     printf("\n\n按ENTER键进入、返回主菜单 " ) ;
     fflush(stdin);
     scanf("%c",&ch);
     system("cls");//清屏
     date(); 
 printf("\n#################################################################################\n");
    printf("\n▓                               * 欢迎使用  *                                 ▓\n");
    printf("\n#################################################################################\n");
 printf("\n          ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n"); 
 printf("          |◆|******|◆|        ☆ 存款业务       请按 1        |◆|******|◆|\n"); 
 printf("          |◆|******|◆|        ☆ 取款业务       请按 2        |◆|******|◆|\n");
 printf("          |◆|******|◆|        ☆ 查询业务       请按 3        |◆|******|◆|\n"); 
 printf("          |◆|******|◆|        ☆ 转账业务       请按 4        |◆|******|◆|\n");
 printf("          |◆|******|◆|        ☆ 修改密码       请按 5        |◆|******|◆|\n");
 printf("          |◆|******|◆|        ☆ 退出系统       请按 6        |◆|******|◆|\n"); 
 printf("          |◆|******|◆|                                        |◆|******|◆|\n");
 printf("          ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");
    printf("\n#################################################################################\n");
    printf("\n▓                          *******************************                    ▓\n");
    printf("\n#################################################################################\n");
 printf("\n\n\t\t##请输入你的选择:");
 fflush(stdin);
 scanf("%d",&a);
 switch(a){//注册
  case 1: { system("cls");fflush(stdin);cunkaun();break;//存款
   
  } 
  case 2:  {system("cls");fflush(stdin);qukaun();break;//取款
 
  }
  case 3: {display();//查询业务
   break;
  }
  case 4:{system("cls");fflush(stdin);zhuan();break;//转账 
  
  }
  case 5: {system("cls");fflush(stdin);xiugai();break;//密码修改
  
  }
  case 6exit(0);
  default:printf("您输入的选择有误,请输入正确的选项:");
                                                       
 }
  } while(1);

//********************************************************************************************************************
//用户功能选择界面 
void Flag3(){
 printf("\n\n\t\t##请输入你的选择:");
 scanf("%d",&a1);
 switch(a1){
  case 1:printf("存款业务");break
  case 2:printf("取款业务");break
  case 3:printf("查询业务");break
  case 4:printf("转账业务");break
  case 5:printf("密码修改");break;
  case 6:printf("退出");break;  
 } 
}
//********************************************************************************************************************
//开户 
void zhuce(){
 FILE *nchuhu=fopen("chuh.txt","r");
 FILE *fchuhu=fopen("chuh.txt","a");
 int i;
 if((nchuhu=fopen("chuh.txt","r"))==NULLprintf("文件无,系统创建\n"); 
 do{
  system("cls");
 date();//显示当前日期 
 printf("\n\n\t\t请输入新储户的信息:");
 fscanf(nchuhu,"%s\t%s\t%s\t%s\t%lf\n",&hu[A].idnum,&hu[A].name,&hu[A].idnumber,&hu[A].password,&hu[A].cunkuan); 
 
 printf("\n\n\t\t储户存单:");
 fflush(stdin);
 gets(hu[A].idnum);
 printf("\n\t\t姓名:");
 fflush(stdin);
 gets(hu[A].name);
 printf("\n\t\t储户密码(6位):");
 for(i=0;i<6;i++){
  fflush(stdin);
  hu[A].password[i]=getch();
  printf("*");
 // scanf("%d",&hu[A].password[i]);
 } 
 
 do{
  printf("请输入省份证号码(18位):");
  fflush(stdin);
  gets(hu[A].idnumber);
  if(strlen(hu[A].idnumber)!=18)//strlen 代表的意思
  printf("\n\t\t输入错误!\n\t\t身份证请输入18位数字或者字母\n");
  for(i=0;i  if(strcmp(hu[A].idnumber,hu[i].idnumber)==0&&strcmp(hu[A].name,hu[i].name)==0
  break;
  
  if(i    printf("\n\n\t\t前面已经有人用此身份证注册过\n\n\t\t请重新输入省份证号:\n");
      
 }while((strlen(hu[A].idnumber)!=18)||(strcmp(hu[A].idnumber,hu[i].idnumber)==0)&&(strcmp(hu[A].name,hu[i].name)!=0) );
 
 printf("输入存储的金额:");
 fflush(stdin);
 scanf("%lf",&hu[A].cunkuan);
 
 fprintf(fchuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[A].idnum,hu[A].name,hu[A].idnumber,hu[A].password,hu[A].cunkuan);
 A++;
 printf("是否继续是(y)/否(n)?");
 fflush(stdin);
 scanf("%c",&ch); 
 }while(ch=='y'||ch=='Y');
 printf("存入成功!");
// system("pause");
 system("cls");
 fclose(nchuhu);
 fclose(fchuhu);
}
//********************************************************************************************************************
//验证存单号或密码 
int yanzheng(){
 FILE *fchuhu=fopen("chuh.txt","r");
 int count=0;
 char id[9];
 for(i=0;i<=100;i++){
  fscanf(fchuhu,"%s\t%s\t%s\t%s\t%lf\n",&hu[i].idnum,&hu[i].name,&hu[i].idnumber,&hu[i].password,&hu[i].cunkuan);
 }
 do{
  system("cls");
       printf("\n\n\n\t\t$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
    printf("\t\t|#|                                                          |#|\n");
    printf("\t\t|#|                    ☆☆☆☆☆☆☆☆☆☆                  |#|\n");
    printf("\t\t|#|                    ☆                ☆                  |#|\n");
    printf("\t\t|#|             ☆   存单号或者密码有误自动返回   ☆         |#|\n");
    printf("\t\t|#|                    ☆                ☆                  |#|\n");
    printf("\t\t|#|                    ☆☆☆☆☆☆☆☆☆☆                  |#|\n");
    printf("\t\t|#|                                                          |#|\n");
    printf("\t\t$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
  printf("\n\n\n\t\t      请输入您的存单号:  ");
  scanf("%s",&id);
  printf("\n\n\n\t\t      请输入您的密码:  ");
  for(i=0;i<6;i++){
   fflush(stdin);
  password[i]=getch();
   printf("*");
  } 
  password[6]='\0';
  fflush(stdin);
  scanf("c",&ch);
  printf("\n\n\t\t");
  for(i=0;i<99;i++){
   if(strcmp(id,hu[i].idnum)==0&&strcmp(password,hu[i].password)==0){
    fclose(fchuhu);
    return 0;
   }
  }
  
  
 }while(count==0);
 fclose(fchuhu);
 return count;
}
//********************************************************************************************************************
//********************************************************************************************************************
//存款
void cunkaun(){
 FILE *fchuhu=fopen("chuh.txt","r");
 FILE *achuhu=fopen("back.txt","w");
 char id[9];int i;
 if(!fchuhu) printf("不能打开文件:");
 if(!achuhu) printf("不能创建文件");
 for(i=0;i<=100;i++){
 fscanf(fchuhu,"%s\t%s\t%s\t%s\t%lf\n",&hu[i].idnum,&hu[i].name,&hu[i].idnumber,&hu[i].password,&hu[i].cunkuan);
 } //
 int x=0;
  date();
  printf("\n\n\t\t##请再次输入并确认存单:");
  scanf("%s",&id);
  for(i=0;i<=100;i++){
   if(strcmp(id,hu[i].idnum)==0){  
     printf("\n\n"); 
    printf("\t\t||================================================================||\n");
    printf("\t\t||                           *存款金额*                           ||\n");
    printf("\t\t||================================================================||\n");
    printf("\t\t||                                                                ||\n");
    printf("\t\t||                                                                ||\n");
    printf("\t\t||         1、200        2、400        3、600        4、800       ||\n");
    printf("\t\t||                                                                ||\n");
    printf("\t\t||                                                                ||\n");
      printf("\t\t||         5、1000        6、2000        7、4000        8、6000   ||\n");
    printf("\t\t||                                                                ||\n");
    printf("\t\t||================================================================||\n");
    printf("\t\t||================================================================||\n");
    printf("\n\n\t\t\t请输入你的取款金额:");
    scanf("%d",&a);
    switch(a){
     case 1:{jin=200;
       printf("\t\t\t存款%lf元",jin);
         printf("\n\n\n\t\t\t^^^^存款成功^^^^"); 
        hu[i].cunkuan+=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
     case 2:{jin=400;
         printf("\t\t\t存款%lf元",jin);
         printf("\n\n\n\t\t\t^^^^存款成功^^^^");  
        hu[i].cunkuan+=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
     case 3:{
      jin=600;
       printf("\t\t\t存款%lf元",jin);
         printf("\n\n\n\t\t\t^^^^存款成功^^^^");  
        hu[i].cunkuan+=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
     case 4:{
       jin=800;
      printf("\t\t\t存款%lf元",jin);
         printf("\n\n\n\t\t\t^^^^存款成功^^^^"); 
        hu[i].cunkuan+=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
          case 5:{jin=1000;
      printf("\t\t\t存款%lf元",jin);
         printf("\n\n\n\t\t\t^^^^存款成功^^^^"); 
        hu[i].cunkuan+=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
     case 6:{jin=2000;
      printf("\t\t\t存款%lf元",jin);
         printf("\n\n\n\t\t\t^^^^存款成功^^^^"); 
        hu[i].cunkuan+=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
     case 7:{
      jin=4000;
      printf("\t\t\t存款%lf元",jin);
         printf("\n\n\n\t\t\t^^^^存款成功^^^^"); 
        hu[i].cunkuan+=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
     case 8:{
       jin=6000;
       printf("\t\t\t存款%lf元",jin);
         printf("\n\n\n\t\t\t^^^^存款成功^^^^"); 
        hu[i].cunkuan+=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
     default:printf("\n\n\n\t\t\t您的选择金额不在服务范围内!!!\n\n\n\t\t\t请重新选择业务:"); 
     
    }   
    fclose(fchuhu);
             fclose(achuhu);
             system("del chuh.txt");
               rename("back.txt","chuh.txt");//rename(旧的,新的) 
                break;  
    }
    }
   }

//*******************************************************************************************************************
//取款 
void qukaun(){
 FILE *fchuhu=fopen("chuh.txt","r");
 FILE *achuhu=fopen("back.txt","w");
 int i;
 char id[9];
 if(!fchuhu) printf("不能打开文件:");
 if(!achuhu) printf("不能创建新文件:");
 for(i=0;i<=100;i++){
 fscanf(fchuhu,"%s\t%s\t%s\t%s\t%lf\n",&hu[i].idnum,&hu[i].name,&hu[i].idnumber,&hu[i].password,&hu[i].cunkuan);
 }

   date();
   printf("\n\n\t\t请再次输入并确认存单:");
   scanf("%s",&id);
   for(i=0;i<=99;i++){
    if(strcmp(id,hu[i].idnum)==0){
       printf("\n\n"); 
       printf("\t\t||================================================================||\n");
    printf("\t\t||                           *取款金额*                           ||\n");
    printf("\t\t||================================================================||\n");
    printf("\t\t||                                                                ||\n");
    printf("\t\t||                                                                ||\n");
    printf("\t\t||         1、200        2、400        3、600        4、800       ||\n");
    printf("\t\t||                                                                ||\n");
    printf("\t\t||                                                                ||\n");
      printf("\t\t||         5、1000        6、2000        7、4000        8、6000   ||\n");
    printf("\t\t||                                                                ||\n");
    printf("\t\t||================================================================||\n");
    printf("\t\t||================================================================||\n");
    printf("\n\n\t\t\t请输入你的取款金额:");
    scanf("%d",&a);
    switch(a){
     case 1:{jin=200;
      printf("\t\t\t取出%lf元",jin);
         printf("\n\n\n\t\t\t^^^^取款成功^^^^"); 
        hu[i].cunkuan-=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
     case 2:{jin=400;
      printf("\t\t\t取出%lf元",jin);
         printf("\n\n\n\t\t\t^^^^取款成功^^^^"); 
        hu[i].cunkuan-=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
     case 3:{
      jin=600;
     printf("\t\t\t取出%lf元",jin);
         printf("\n\n\n\t\t\t^^^^取款成功^^^^");  
        hu[i].cunkuan-=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
     case 4:{
       jin=800;
     printf("\t\t\t取出%lf元",jin);
         printf("\n\n\n\t\t\t^^^^取款成功^^^^"); 
        hu[i].cunkuan-=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
          case 5:{jin=1000;
      printf("\t\t\t取出%lf元",jin);
         printf("\n\n\n\t\t\t^^^^取款成功^^^^"); 
        hu[i].cunkuan-=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
     case 6:{jin=2000;
     printf("\t\t\t取出%lf元",jin);
         printf("\n\n\n\t\t\t^^^^取款成功^^^^"); 
        hu[i].cunkuan-=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
     case 7:{
      jin=4000;
     printf("\t\t\t取出%lf元",jin);
         printf("\n\n\n\t\t\t^^^^取款成功^^^^"); 
        hu[i].cunkuan-=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
     case 8:{
       jin=6000;
     printf("\t\t\t取出%lf元",jin);
         printf("\n\n\n\t\t\t^^^^取款成功^^^^"); 
        hu[i].cunkuan-=jin;
        printf("\n\n\t\t\t$您的余额为:%lf",hu[i].cunkuan);
        fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
     break;
     }
     default:printf("\n\n\n\t\t\t您的选择金额不在服务范围内!!!\n\n\n\t\t\t请重新选择业务:"); 
     
    }
    fclose(fchuhu);
              fclose(achuhu);
              system("del chuh.txt");
              rename("back.txt","chuh.txt");
    break;
    }

   }

}
//********************************************************************************************************************
//转账
void zhuan(){
 FILE *fchuhu=fopen("chuh.txt","r+");
 int i;
 char id[9];
 if(!fchuhu) printf("不能打开文件:");

 for(i=0;i<=100;i++){
 fscanf(fchuhu,"%s\t%s\t%s\t%s\t%lf\n",&hu[i].idnum,&hu[i].name,&hu[i].idnumber,&hu[i].password,&hu[i].cunkuan);
 }

   date();
   printf("\n\n\t\t请输入转账人的存单号:");
   scanf("%s",&id);
   for(i=0;i<=99;i++){
    if(strcmp(id,hu[i].idnum)==0){
         printf("\n\n\t\t请输入要转账的金额:");
      scanf("%lf",&jin);
      printf("\n\n\t\t请确认数目:%lf",jin); 
     hu[i].cunkuan+=jin;
     printf("\n\n\n转账成功"); 
      fprintf(fchuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[A].idnum,hu[A].name,hu[A].idnumber,hu[A].password,hu[A].cunkuan);
       fclose(fchuhu);
 fclose(fchuhu);

     break;
    }

   }

 

//********************************************************************************************************************

//********************************************************************************************************************
void xiugai(){
 FILE *fchuhu=fopen("chuh.txt","r");
 FILE *achuhu=fopen("back.txt","w");
 int j,i;
 char id[9];
 if(!fchuhu) printf("不能打开文件:");
 if(!achuhu) printf("不能创建新文件:");
 for(i=0;i<=100;i++){
 fscanf(fchuhu,"%s\t%s\t%s\t%s\t%lf\n",&hu[i].idnum,&hu[i].name,&hu[i].idnumber,&hu[i].password,&hu[i].cunkuan);
 }

   date();
   printf("\n\n\t\t请再次输入并确认存单:");
   scanf("%s",&id);
   for(i=0;i<=99;i++){
    if(strcmp(id,hu[i].idnum)==0){
    printf("请输入新的密码:\n");
     printf("\n\t\t储户密码(6位):");
 for(j=0;j<6;j++){
  fflush(stdin);
  hu[i].password[j]=getch();
  printf("*");

 } 
     printf("\n\n\t\t新的密码:%s\n",hu[i].password);
    
     printf("\n\n\t\t修改成功"); 
      fprintf(achuhu,"%s\t%s\t%s\t%s\t%lf\n",hu[A].idnum,hu[A].name,hu[A].idnumber,hu[A].password,hu[A].cunkuan);
       fclose(fchuhu);
 fclose(achuhu);
 system("del chuh.txt");
 rename("back.txt","chuh.txt");
     break;
    }

   }

}

//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//查询信息 
void display(){
 FILE *fchuhu=fopen("chuh.txt","r");
 int i,n=0;
 char fnumb[9];
 system("cls");
 for(i=0;i<=100;i++){
   fscanf(fchuhu,"%s\t%s\t%s\t%s\t%lf\n",&hu[i].idnum,&hu[i].name,&hu[i].idnumber,&hu[i].password,&hu[i].cunkuan);
 }
 
 printf("\n\n●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●\n");
 printf("\n\n              ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●                      \n");
 printf("\n\n                              ●●●●●●●●●●●●●●●●●●●●●●●●●●                                              \n");
 printf("\n\n\n\t\t\t\t\t请输入你的存单号:");
 scanf("%s",&fnumb);
 printf("\n\n\n");
 printf("\t\t\t\t\t您的个人信息如下:");
 printf("\n\n");
 for(i=0;i<=99;i++)
  if(strcmp(fnumb,hu[i].idnum)==0){
    printf("存单号:%s\t姓名:%s\t身份证:%s\t密码:%s\t存款金额:%lf\n",hu[i].idnum,hu[i].name,hu[i].idnumber,hu[i].password,hu[i].cunkuan);
    n=1;
    fclose(fchuhu);
    system("pause"); 
             break
  }
if(n==0printf("此账单不存在!!!\n");
fclose(fchuhu);

}

//********************************************************************************************************************
void date(){//显示当前日期
printf("当前日期:");
system("date/t");
printf("当前时间:");
system("time/t"); 
 
}

业务流程

1、用户开户

2、登录流程

3、密码修改


版权声明:本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。


‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧  END  ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

关注我的微信公众号,回复“星球”加入知识星球,有问必答。



点击“阅读原文”查看知识星球详情,欢迎点分享、收藏、点赞、在看。

李肖遥 公众号“技术让梦想更伟大”,作者:李肖遥,专注嵌入式,只推荐适合你的博文,干货,技术心得,与君共勉。
评论 (0)
  • 一、行业背景与需求痛点智能电子指纹锁作为智能家居的核心入口,近年来市场规模持续增长,用户对产品的功能性、安全性和设计紧凑性提出更高要求:极致空间利用率:锁体内部PCB空间有限,需高度集成化设计。语音交互需求:操作引导(如指纹识别状态、低电量提醒)、安全告警(防撬、试错报警)等语音反馈。智能化扩展能力:集成传感器以增强安全性(如温度监测、防撬检测)和用户体验。成本与可靠性平衡:在复杂环境下确保低功耗、高稳定性,同时控制硬件成本。WTV380-P(QFN32)语音芯片凭借4mm×4mm超小封装、多传
    广州唯创电子 2025-03-13 09:24 79浏览
  • 一、行业背景与用户需求随着健康消费升级,智能眼部按摩仪逐渐成为缓解眼疲劳、改善睡眠的热门产品。用户对这类设备的需求不再局限于基础按摩功能,而是追求更智能化、人性化的体验,例如:语音交互:实时反馈按摩模式、操作提示、安全提醒。环境感知:通过传感器检测佩戴状态、温度、压力等,提升安全性与舒适度。低功耗长续航:适应便携场景,延长设备使用时间。高性价比方案:在控制成本的同时实现功能多样化。针对这些需求,WTV380-8S语音芯片凭借其高性能、多传感器扩展能力及超高性价比,成为眼部按摩仪智能化升级的理想选
    广州唯创电子 2025-03-13 09:26 62浏览
  • DeepSeek自成立之初就散发着大胆创新的气息。明明核心开发团队只有一百多人,却能以惊人的效率实现许多大厂望尘莫及的技术成果,原因不仅在于资金或硬件,而是在于扁平架构携手塑造的蜂窝创新生态。创办人梁文锋多次强调,与其与大厂竞争一时的人才风潮,不如全力培养自家的优质员工,形成不可替代的内部生态。正因这样,他对DeepSeek内部人才体系有着一套别具一格的见解。他十分重视中式教育价值,因而DeepSeek团队几乎清一色都是中国式学霸。许多人来自北大清华,或者在各种数据比赛中多次获奖,可谓百里挑一。
    优思学院 2025-03-13 12:15 70浏览
  • 北京时间3月11日,国内领先的二手消费电子产品交易和服务平台万物新生(爱回收)集团(纽交所股票代码:RERE)发布2024财年第四季度和全年业绩报告。财报显示,2024年第四季度万物新生集团总收入48.5亿元,超出业绩指引,同比增长25.2%。单季non-GAAP经营利润1.3亿元(non-GAAP口径,即经调整口径,均不含员工股权激励费用、无形资产摊销及因收购产生的递延成本,下同),并汇报创历史新高的GAAP净利润7742万元,同比增长近27倍。总览全年,万物新生总收入同比增长25.9%达到1
    华尔街科技眼 2025-03-13 12:23 71浏览
  • 在海洋监测领域,基于无人艇能够实现高效、实时、自动化的海洋数据采集,从而为海洋环境保护、资源开发等提供有力支持。其中,无人艇的控制算法训练往往需要大量高质量的数据支持。然而,海洋数据采集也面临数据噪声和误差、数据融合与协同和复杂海洋环境适应等诸多挑战,制约着无人艇技术的发展。针对这些挑战,我们探索并推出一套基于多传感器融合的海洋数据采集系统,能够高效地采集和处理海洋环境中的多维度数据,为无人艇的自主航行和控制算法训练提供高质量的数据支持。一、方案架构无人艇要在复杂海上环境中实现自主导航,尤其是完
    康谋 2025-03-13 09:53 62浏览
  • 在追求更快、更稳的无线通信路上,传统射频架构深陷带宽-功耗-成本的“不可能三角”:带宽每翻倍,系统复杂度与功耗增幅远超线性增长。传统方案通过“分立式功放+多级变频链路+JESD204B 接口”的组合试图平衡性能与成本,却难以满足实时性严苛的超大规模 MIMO 通信等场景需求。在此背景下,AXW49 射频开发板以“直采+异构”重构射频范式:基于 AMD Zynq UltraScale+™ RFSoC Gen3XCZU49DR 芯片的 16 通道 14 位 2.5GSPS ADC 与 16
    ALINX 2025-03-13 09:27 43浏览
  • 前言在快速迭代的科技浪潮中,汽车电子技术的飞速发展不仅重塑了行业的面貌,也对测试工具提出了更高的挑战与要求。作为汽车电子测试领域的先锋,TPT软件始终致力于为用户提供高效、精准、可靠的测试解决方案。新思科技出品的TPT软件迎来了又一次重大更新,最新版本TPT 2024.12将进一步满足汽车行业日益增长的测试需求,推动汽车电子技术的持续革新。基于当前汽车客户的实际需求与痛点,结合最新的技术趋势,对TPT软件进行了全面的优化与升级。从模型故障注入测试到服务器函数替代C代码函数,从更准确的需求链接到P
    北汇信息 2025-03-13 14:43 67浏览
  • 本文介绍Android系统主板应用配置默认获取管理所有文件权限方法,基于触觉智能SBC3588行业主板演示,搭载了瑞芯微RK3588芯片,八核处理器,6T高算力NPU;音视频接口、通信接口等各类接口一应俱全,支持安卓Android、Linux、开源鸿蒙OpenHarmony、银河麒麟Kylin等操作系统。配置前提在配置前,建议先将应用配置成系统应用,不然配置后系统每次重启后都会弹窗提示是否获取权限。应用配置成系统应用,可参考以下链接方法:瑞芯微开发板/主板Android系统APK签名文件使用方法
    Industio_触觉智能 2025-03-12 14:34 56浏览
  • 曾经听过一个“隐形经理”的故事:有家公司,新人进来后,会惊讶地发现老板几乎从不在办公室。可大家依旧各司其职,还能在关键时刻自发协作,把项目完成得滴水不漏。新员工起初以为老板是“放羊式”管理,结果去茶水间和老员工聊过才发现,这位看似“隐形”的管理者其实“无处不在”,他提前铺好了企业文化、制度和激励机制,让一切运行自如。我的观点很简单:管理者的最高境界就是——“无为而治”。也就是说,你的存在感不需要每天都凸显,但你的思路、愿景、机制早已渗透到组织血液里。为什么呢?因为真正高明的管理,不在于事必躬亲,
    优思学院 2025-03-12 18:24 84浏览
  • 本文介绍OpenHarmony4.1系统开发板,出现打不开WiFi和蓝牙的问题排查和解决方法。触觉智能Purple Pi OH鸿蒙开发板演示,搭载了瑞芯微RK3566四核处理器,1TOPS算力NPU;Laval鸿蒙社区推荐并通过了开源鸿蒙XTS认证,成功适配OpenHarmony3.2、4.0、4.1、5.0 Release系统,SDK源码全开放!WiFi打不开缺少WiFi固件在WiFi打不开时我们可以通过使用串口工具查看WiFi打印信息:这条log主要说明了打开固件文件失败,说明了在/vend
    Industio_触觉智能 2025-03-12 14:32 60浏览
  • 2025年,科技浪潮汹涌澎湃的当下,智能数字化变革正进行得如火如荼,从去年二季度开始,触觉智能RK3562核心板上市以来,受到了火爆的关注,上百家客户选用了此方案,也获得了众多的好评与认可,为客户的降本增效提供了广阔的空间。随着原厂的更新,功能也迎来了一波重大的更新,无论是商业级(RK3562)还是工业级(RK3562J),都可支持NPU和2×CAN,不再二选一。我们触觉智能做了一个艰难又大胆的决定,为大家带来两大重磅福利,请继续往下看~福利一:RK3562核心板149元特惠再续,支持2×CAN
    Industio_触觉智能 2025-03-12 14:45 31浏览
  • 引言汽车行业正经历一场巨变。随着电动汽车、高级驾驶辅助系统(ADAS)和自动驾驶技术的普及,电子元件面临的要求从未如此严格。在这些复杂系统的核心,存在着一个看似简单却至关重要的元件——精密电阻。贞光科技代理品牌光颉科技的电阻选型过程,特别是在精度要求高达 0.01% 的薄膜和厚膜技术之间的选择,已成为全球汽车工程师的关键决策点。当几毫欧姆的差异可能影响传感器的灵敏度或控制系统的精确性时,选择正确的电阻不仅仅是满足规格的问题——它关系到车辆在极端条件下的安全性、可靠性和性能。在这份全面指南中,我们
    贞光科技 2025-03-12 17:25 115浏览
  •        随着人工智能算力集群的爆发式增长,以及5.5G/6G通信技术的演进,网络数据传输速率的需求正以每年30%的速度递增。万兆以太网(10G Base-T)作为支撑下一代数据中心、高端交换机的核心组件,其性能直接决定了网络设备的稳定性与效率。然而,万兆网络变压器的技术门槛极高:回波损耗需低于-20dB(比千兆产品严格30%),耐压值需突破1500V(传统产品仅为1000V),且需在高频信号下抑制电磁干扰。全球仅有6家企业具备规模化量产能力,而美信科
    中科领创 2025-03-13 11:24 51浏览
  • 文/Leon编辑/cc孙聪颖作为全球AI领域的黑马,DeepSeek成功搅乱了中国AI大模型市场的格局。科技大厂们选择合作,接入其模型疯抢用户;而AI独角兽们则陷入两难境地,上演了“Do Or Die”的抉择。其中,有着“大模型六小虎”之称的六家AI独角兽公司(智谱AI、百川智能、月之暗面、MiniMax、阶跃星辰及零一万物),纷纷开始转型:2025年伊始,李开复的零一万物宣布转型,不再追逐超大模型,而是聚焦AI商业化应用;紧接着,消息称百川智能放弃B端金融市场,聚焦AI医疗;月之暗面开始削减K
    华尔街科技眼 2025-03-12 17:37 172浏览
  • 文/杜杰编辑/cc孙聪颖‍主打影像功能的小米15 Ultra手机,成为2025开年的第一款旗舰机型。从发布节奏上来看,小米历代Ultra机型,几乎都选择在开年发布,远远早于其他厂商秋季主力机型的发布时间。这毫无疑问会掀起“Ultra旗舰大战”,今年影像手机将再次被卷上新高度。无意臆断小米是否有意“领跑”一场“军备竞赛”,但各种复杂的情绪难以掩盖。岁岁年年机不同,但将2-3年内记忆中那些关于旗舰机的发布会拼凑起来,会发现,包括小米在内,旗舰机的革新点,除了摄影参数的不同,似乎没什么明显变化。贵为旗
    华尔街科技眼 2025-03-13 12:30 84浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦