C语言简单实现银行ATM存取款功能

这里使用的运行工具是DEV C++。老铁们一定要看仔细了。是DEV C++

一、课程设计的目的

掌握C语言程序设计的基础知识、基本理论、原理和实现技术。

二、课程设计的题目

银行ATM存取款系统

三、设计内容(主要技术关键的分析、解决思路和方案比较等)

银行ATM存取款系统
银行ATM存取款系统业务描述如下:
银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。为了模拟真实的ATM业务环境,本系统必须实现存款、取款、查询、转账、修改密码以及开户的功能。用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。本系统各个业务有如下注意点:
(1)登陆系统
用户登陆之前,必须在登陆界面输入其银行账户,通过其正确输入的银行账户登陆系统。
(2)开户业务
要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存储于文件当中。同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能开立一次银行账户。
(3)存款业务
客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账户。
(4)取款业务
客户登陆系统后,选择取款业务,即可以将输入的取款金额从相应的银行账户取出,但是取款金额必须大于目前的账户余额。
(5)查询业务
客户登陆系统后,可以选择查询业务,查询账户余额。
(6)转账业务
客户登陆系统后,可以选择转账业务,进行转账。注意的是转账的目的账户必须是本系统已经存在的银行账户。
(7)修改密码
客户登陆系统后,可以选择修改密码业务,进行密码修改。

实现的效果

源码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 1000
#include<conio.h>
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];

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");

}
//********************************************************************************************************************

//用户界面
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 6: exit(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"))==NULL) printf("文件无,系统创建\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<A;i++)
		if(strcmp(hu[A].idnumber,hu[i].idnumber)==0&&strcmp(hu[A].name,hu[i].name)==0)
		break;

		if(i<A)
		  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==0) printf("此账单不存在!!!\n");
fclose(fchuhu);

}

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

}

业务流程

1、用户开户

2、登录流程

3、密码修改

以上就是C语言简单实现银行ATM存取款功能的详细内容,更多关于C语言 ATM存取款的资料请关注我们其它相关文章!

(0)

相关推荐

  • C语言实现银行管理系统

    本文实例为大家分享了C语言实现银行管理系统的具体代码,供大家参考,具体内容如下 /* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:main.cpp * 作 者:赵志君 * 完成时间:2016年6月30日 * 版 本 号:v1.0 * * 问题描述:银行管理系统 */ #include<stdio.h> #include<string.h> int mingyan(); //用户名验证 int g

  • C语言实现ATM机存取款系统

    本文实例为大家分享了C语言实现ATM机存取款系统的具体代码,供大家参考,具体内容如下 利用结构体和构造函数并且采用输入输出文件实现ATM机系统. 主要功能有: 利用三种方法查询.开户.登陆.菜单.取款.修改密码.存款.转账.创建个人信息.输出.删除.增加.退出. 是一个功能齐全,完备的ATM机系统. #include<stdio.h> #include<string.h> #include<stdlib.h> struct per //定义结构体 { char name

  • C语言银行储蓄系统源码

    本文为大家分享了C语言银行储蓄系统源码,实现银行的各项功能,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> void openaccount();//开户 void save();//存款 void withdraw();//取款 void showAccount();//查询 void transferAccounts();

  • C语言银行系统课程设计

    本文为大家分享了C语言银行系统课程设计,供大家参考,具体内容如下 main.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <windows.h> #define MaxNum 200 #define N_P 6 typedef struct { int AccountNumber[3]; char name[20];

  • C语言实现ATM系统程序的完整代码

    实现效果如图: 代码如下: #include<stdio.h> #include<string.h> #include<conio.h> #include<stdlib.h> //开户信息 typedef struct _Person { char name[20]; char account[20]; char password[7]; float money; }Person; //结点 typedef struct _Node { Person P;

  • C语言编写银行打印程序实例参考

    简介 模拟银行的钱数大写输出例如345叁肆伍 方法/步骤 首先打开VC++ 文件>>>新建 创建一个C++空白文档 先声明头文件 复制代码 代码如下: #include<stdio.h>  声明变量 复制代码 代码如下: char *p[10]={"零","一","二","三","四","五","六","七",&quo

  • C语言数据结构实现银行模拟

    C语言数据结构实现银行模拟 实现代码: #include <stdio.h> #include <stdlib.h> #include <windows.h> #define MAX_WIN 20 #define MAX_STAY 100 typedef struct customer *link; struct customer { int stay; link next; }; link GUY(int stay, link next) { link c = mal

  • C语言简单实现银行ATM存取款功能

    这里使用的运行工具是DEV C++.老铁们一定要看仔细了.是DEV C++ 一.课程设计的目的 掌握C语言程序设计的基础知识.基本理论.原理和实现技术. 二.课程设计的题目 银行ATM存取款系统 三.设计内容(主要技术关键的分析.解决思路和方案比较等) 银行ATM存取款系统 银行ATM存取款系统业务描述如下: 银行ATM存取款系统能为用户提供存款.取款.查询.转账和修改密码的功能.为了模拟真实的ATM业务环境,本系统必须实现存款.取款.查询.转账.修改密码以及开户的功能.用户通过开户业务在本系统

  • C语言编程银行ATM存取款系统实现源码

    目录 一.课程设计的目的 二.课程设计的题目 三.设计内容 银行ATM存取款系统 实现的效果 源码 业务流程 1.用户开户 2.登录流程 3.密码修改 这里使用的运行工具是DEV C++.老铁们一定要看仔细了.是DEV C++ 仅供借鉴:这个是大一时期写的.大四的时候整理了一下(本人C语言学的也不太好).肯定很多不足和存在漏洞的地方.仅供借鉴.仅供借鉴. 一.课程设计的目的 掌握C语言程序设计的基础知识.基本理论.原理和实现技术. 二.课程设计的题目 银行ATM存取款系统 三.设计内容 (主要技

  • js实现ATM机存取款功能

    js是一个功能十分强大的脚本语言,通过js能实现很多有意思的demo!而要实现那些功能炫酷.特效美观的东西DOM操作是必不可少且尤为重要的!这个ATM机存取款的案例,就用到js中一些简单的DOM操作来实现其功能. ATM机案例功能需求: 1.用户最多只能有三次输入卡号和密码的机会,如果超过三次,则提示卡号已被锁定 2.用户取款的金额不能大于卡上的账户余额 3.存取功能完成后,要更新相应的余额信息 登录界面代码: <!DOCTYPE html> <html lang="en&qu

  • java 使用线程做的一个简单的ATM存取款实例代码

    实现Runnable接口.当一个线程已继承了另一个类时,就只能用实现Runnable接口的方法来创建线程,且便于保持程序风格的一致性. 我们知道,一个具有生命的线程,具有下面五种状态: 创建状态 使用new运算符创建一个线程后,该线程仅仅是一个空对象,系统没有分配资源,称该线程处于创建状态(new thread) 可运行状态 使用start()方法启动一个线程后,系统为该线程分配了除CPU外的所需资源,使该线程处于可运行状态(Runnable) 运行中状态 Java运行系统通过调度选中一个Run

  • Java简单实现银行ATM系统

    实现步骤: 定义账户类,用于后期创建账户对象封装用户的账户信息. 账户类中的信息至少需要包含(卡号.姓名.密码.余额.取现额度) 需要准备一个ArrayList的集合,用于存储系统用户的账户对象. 定义一个系统启动类ATMSystem需要展示欢迎页包含2个功能:开户功能.登录账户. 账户类 Account package test;/*账户类*/public class Account {    private String cardId; //卡号    private String user

  • java实现简单银行ATM系统

    本文实例为大家分享了java实现简单银行ATM系统的具体代码,供大家参考,具体内容如下 #ATM系统 ##功能 模拟银行ATM机系统,具有注册.登录功能用户登录后可实现以下功能:1)存款 2)取款 3)转账 4)查询 5)退出 ##设计思路 首先,要进行ATM机操作应该具有银行卡和ATM,所以我们要设计一个ATM类和Bankcard类,ATM具有存取款等操作,Bankcard用来记录用户存取款等操作后的越,其次因为ATM同时为多个用户服务,所以我们应该识别每张卡,这里增加一个Bank类来记录银行

  • Java实现简单银行ATM功能

    本文实例为大家分享了Java实现简单银行ATM功能的具体代码,供大家参考,具体内容如下 实现功能 1.用户需要通过输入银行卡号和密码才能进入ATM系统 2.用户可以在ATM中实现取款.存款.转账.余额查询.退出系统等功能 简单分析 1.创建User类(cardNo,identity,phone,username,password,balance(余额)) 2.创建Bank类,主要实现初始化用户.用户登录.显示菜单.取款.存款.转账.余额查询.退出系统等功能. 代码实现 User.java pub

  • Java实现银行存取款

    本文实例为大家分享了Java银行存取款的具体代码,供大家参考,具体内容如下 1.不加锁情况 运行结果: 代码:将加锁情况中加锁部分进行注释即可 2.加锁情况 运行结果 缓冲区代码 package Bank; import java.util.LinkedList; public class BankAccount { static double sum=1000; private LinkedList<Object> list = new LinkedList<>(); //存款

  • Python模拟自动存取款机的查询、存取款、修改密码等操作

    1.工作流程 2.模拟自动存取款机的操作 代码如下: import msvcrt, sys, os #定义用星号隐藏密码输入的函数 def psw_input(): li = [] while True: ch = msvcrt.getch() #回车 if ch == b'\r': msvcrt.putch(b'\n') break #退格 elif ch == b'\x08': if li: li.pop() msvcrt.putch(b'\b') msvcrt.putch(b' ') ms

随机推荐