C語(yǔ)言簡(jiǎn)單實(shí)現(xiàn)銀行ATM存取款功能
這里使用的運(yùn)行工具是DEV C++。老鐵們一定要看仔細(xì)了。是DEV C++
一、課程設(shè)計(jì)的目的
掌握C語(yǔ)言程序設(shè)計(jì)的基礎(chǔ)知識(shí)、基本理論、原理和實(shí)現(xiàn)技術(shù)。
二、課程設(shè)計(jì)的題目
銀行ATM存取款系統(tǒng)
三、設(shè)計(jì)內(nèi)容(主要技術(shù)關(guān)鍵的分析、解決思路和方案比較等)
銀行ATM存取款系統(tǒng)
銀行ATM存取款系統(tǒng)業(yè)務(wù)描述如下:
銀行ATM存取款系統(tǒng)能為用戶提供存款、取款、查詢、轉(zhuǎn)賬和修改密碼的功能。為了模擬真實(shí)的ATM業(yè)務(wù)環(huán)境,本系統(tǒng)必須實(shí)現(xiàn)存款、取款、查詢、轉(zhuǎn)賬、修改密碼以及開(kāi)戶的功能。用戶通過(guò)開(kāi)戶業(yè)務(wù)在本系統(tǒng)開(kāi)立銀行賬戶,之后可以通過(guò)該銀行賬戶登陸ATM系統(tǒng),在系統(tǒng)中實(shí)現(xiàn)存款、取款、查詢賬戶信息、修改密碼的操作。本系統(tǒng)各個(gè)業(yè)務(wù)有如下注意點(diǎn):
(1)登陸系統(tǒng)
用戶登陸之前,必須在登陸界面輸入其銀行賬戶,通過(guò)其正確輸入的銀行賬戶登陸系統(tǒng)。
(2)開(kāi)戶業(yè)務(wù)
要使用本系統(tǒng)必須首先執(zhí)行開(kāi)戶業(yè)務(wù)開(kāi)立新的銀行賬戶,并且將此新開(kāi)的銀行存儲(chǔ)于文件當(dāng)中。同時(shí),系統(tǒng)以身份證號(hào)碼作為開(kāi)戶的充分條件,即一個(gè)身份證號(hào)碼只能開(kāi)立一次銀行賬戶。
(3)存款業(yè)務(wù)
客戶登陸系統(tǒng)后,選擇存款業(yè)務(wù),即可以將輸入的存款金額存入相應(yīng)的賬戶。
(4)取款業(yè)務(wù)
客戶登陸系統(tǒng)后,選擇取款業(yè)務(wù),即可以將輸入的取款金額從相應(yīng)的銀行賬戶取出,但是取款金額必須大于目前的賬戶余額。
(5)查詢業(yè)務(wù)
客戶登陸系統(tǒng)后,可以選擇查詢業(yè)務(wù),查詢賬戶余額。
(6)轉(zhuǎn)賬業(yè)務(wù)
客戶登陸系統(tǒng)后,可以選擇轉(zhuǎn)賬業(yè)務(wù),進(jìn)行轉(zhuǎn)賬。注意的是轉(zhuǎn)賬的目的賬戶必須是本系統(tǒng)已經(jīng)存在的銀行賬戶。
(7)修改密碼
客戶登陸系統(tǒng)后,可以選擇修改密碼業(yè)務(wù),進(jìn)行密碼修改。
實(shí)現(xiàn)的效果
源碼
#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];//省份證號(hào) char password[7];//密碼 double cunkuan;//存款 }hu[N]; void date();//顯示當(dāng)前日期 int a,a1;//主界面選擇變量 void Flag1();//主界面 void Flag2();//用戶界面 void Flag3();//用戶功能選擇界面 void zhuce();//注冊(cè) int yanzheng();//驗(yàn)證存單號(hào)或密碼 //&&&&&&&&&&&&&&&&&&&&&&& void qukaun();//取款 void cunkaun();//存款 void display();//查詢 void zhuan();//轉(zhuǎn)賬 void xiugai();//密碼修改 void display();//查找 //&&&&&&&&&&&&&&&&&&&&&&&&&& int A,key;//開(kāi)戶人數(shù) int i;//控制密碼循環(huán) char ch='y';//是否繼續(xù)注冊(cè) double jin;//存的錢 int t; char id[11],password[7]; int main(){ system("COLOR 0A"); int b; Flag1();//引入主界面 do{ printf("\n\n\t\t##請(qǐng)輸入你的選擇:"); scanf("%d",&a); switch(a){ case 1:{ zhuce();//zhuce Flag1(); break; } case 2:{ b=yanzheng(); fflush(stdin);///好東西,以防跳過(guò)數(shù)據(jù) Flag2(); break; } case 3:exit(0);break; default:printf("\n\n\n\t\t您輸入的數(shù)據(jù)不符合要求!!!\n\n\n\n\n"); } }while(1); } void Flag1(){ printf("\n#################################################################################\n"); printf("\n▓ * 銀行定期儲(chǔ)蓄管理系統(tǒng) * ▓\n"); printf("\n#################################################################################\n"); printf("\n ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n"); printf(" |◆|******|◆| |◆|******|◆|\n"); printf(" |◆|******|◆| ☆ 開(kāi)戶業(yè)務(wù) 請(qǐng)按 1 |◆|******|◆|\n"); printf(" |◆|******|◆| ☆ 登錄系統(tǒng) 請(qǐng)按 2 |◆|******|◆|\n"); printf(" |◆|******|◆| ☆ 退出 請(qǐng)按 3 |◆|******|◆|\n"); printf(" |◆|******|◆| |◆|******|◆|\n"); printf(" ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n"); printf("\n#################################################################################\n"); } //******************************************************************************************************************** //用戶界面 void Flag2(){ int a,b;//選擇功能的變量 do{ printf("\n\n按ENTER鍵進(jìn)入、返回主菜單 " ) ; fflush(stdin); scanf("%c",&ch); system("cls");//清屏 date(); printf("\n#################################################################################\n"); printf("\n▓ * 歡迎使用 * ▓\n"); printf("\n#################################################################################\n"); printf("\n ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n"); printf(" |◆|******|◆| ☆ 存款業(yè)務(wù) 請(qǐng)按 1 |◆|******|◆|\n"); printf(" |◆|******|◆| ☆ 取款業(yè)務(wù) 請(qǐng)按 2 |◆|******|◆|\n"); printf(" |◆|******|◆| ☆ 查詢業(yè)務(wù) 請(qǐng)按 3 |◆|******|◆|\n"); printf(" |◆|******|◆| ☆ 轉(zhuǎn)賬業(yè)務(wù) 請(qǐng)按 4 |◆|******|◆|\n"); printf(" |◆|******|◆| ☆ 修改密碼 請(qǐng)按 5 |◆|******|◆|\n"); printf(" |◆|******|◆| ☆ 退出系統(tǒng) 請(qǐng)按 6 |◆|******|◆|\n"); printf(" |◆|******|◆| |◆|******|◆|\n"); printf(" ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n"); printf("\n#################################################################################\n"); printf("\n▓ ******************************* ▓\n"); printf("\n#################################################################################\n"); printf("\n\n\t\t##請(qǐng)輸入你的選擇:"); fflush(stdin); scanf("%d",&a); switch(a){//注冊(cè) case 1: { system("cls");fflush(stdin);cunkaun();break;//存款 } case 2: {system("cls");fflush(stdin);qukaun();break;//取款 } case 3: {display();//查詢業(yè)務(wù) break; } case 4:{system("cls");fflush(stdin);zhuan();break;//轉(zhuǎn)賬 } case 5: {system("cls");fflush(stdin);xiugai();break;//密碼修改 } case 6: exit(0); default:printf("您輸入的選擇有誤,請(qǐng)輸入正確的選項(xiàng):"); } } while(1); } //******************************************************************************************************************** //用戶功能選擇界面 void Flag3(){ printf("\n\n\t\t##請(qǐng)輸入你的選擇:"); scanf("%d",&a1); switch(a1){ case 1:printf("存款業(yè)務(wù)");break; case 2:printf("取款業(yè)務(wù)");break; case 3:printf("查詢業(yè)務(wù)");break; case 4:printf("轉(zhuǎn)賬業(yè)務(wù)");break; case 5:printf("密碼修改");break; case 6:printf("退出");break; } } //******************************************************************************************************************** //開(kāi)戶 void zhuce(){ FILE *nchuhu=fopen("chuh.txt","r"); FILE *fchuhu=fopen("chuh.txt","a"); int i; if((nchuhu=fopen("chuh.txt","r"))==NULL) printf("文件無(wú),系統(tǒng)創(chuàng)建\n"); do{ system("cls"); date();//顯示當(dāng)前日期 printf("\n\n\t\t請(qǐng)輸入新儲(chǔ)戶的信息:"); 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儲(chǔ)戶存單:"); fflush(stdin); gets(hu[A].idnum); printf("\n\t\t姓名:"); fflush(stdin); gets(hu[A].name); printf("\n\t\t儲(chǔ)戶密碼(6位):"); for(i=0;i<6;i++){ fflush(stdin); hu[A].password[i]=getch(); printf("*"); // scanf("%d",&hu[A].password[i]); } do{ printf("請(qǐng)輸入省份證號(hào)碼(18位):"); fflush(stdin); gets(hu[A].idnumber); if(strlen(hu[A].idnumber)!=18)//strlen 代表的意思 printf("\n\t\t輸入錯(cuò)誤!\n\t\t身份證請(qǐng)輸入18位數(shù)字或者字母\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前面已經(jīng)有人用此身份證注冊(cè)過(guò)\n\n\t\t請(qǐng)重新輸入省份證號(hào):\n"); }while((strlen(hu[A].idnumber)!=18)||(strcmp(hu[A].idnumber,hu[i].idnumber)==0)&&(strcmp(hu[A].name,hu[i].name)!=0) ); printf("輸入存儲(chǔ)的金額:"); 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("是否繼續(xù)是(y)/否(n)?"); fflush(stdin); scanf("%c",&ch); }while(ch=='y'||ch=='Y'); printf("存入成功!"); // system("pause"); system("cls"); fclose(nchuhu); fclose(fchuhu); } //******************************************************************************************************************** //驗(yàn)證存單號(hào)或密碼 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|#| ☆ 存單號(hào)或者密碼有誤自動(dòng)返回 ☆ |#|\n"); printf("\t\t|#| ☆ ☆ |#|\n"); printf("\t\t|#| ☆☆☆☆☆☆☆☆☆☆ |#|\n"); printf("\t\t|#| |#|\n"); printf("\t\t$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n"); printf("\n\n\n\t\t 請(qǐng)輸入您的存單號(hào): "); scanf("%s",&id); printf("\n\n\n\t\t 請(qǐng)輸入您的密碼: "); 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("不能打開(kāi)文件:"); if(!achuhu) printf("不能創(chuàng)建文件"); 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##請(qǐng)?jiān)俅屋斎氩⒋_認(rèn)存單:"); 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請(qǐng)輸入你的取款金額:"); 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您的選擇金額不在服務(wù)范圍內(nèi)?。?!\n\n\n\t\t\t請(qǐng)重新選擇業(yè)務(wù):"); } 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("不能打開(kāi)文件:"); if(!achuhu) printf("不能創(chuàng)建新文件:"); 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請(qǐng)?jiān)俅屋斎氩⒋_認(rèn)存單:"); 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請(qǐng)輸入你的取款金額:"); 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您的選擇金額不在服務(wù)范圍內(nèi)?。?!\n\n\n\t\t\t請(qǐng)重新選擇業(yè)務(wù):"); } fclose(fchuhu); fclose(achuhu); system("del chuh.txt"); rename("back.txt","chuh.txt"); break; } } } //******************************************************************************************************************** //轉(zhuǎn)賬 void zhuan(){ FILE *fchuhu=fopen("chuh.txt","r+"); int i; char id[9]; if(!fchuhu) printf("不能打開(kāi)文件:"); 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請(qǐng)輸入轉(zhuǎn)賬人的存單號(hào):"); scanf("%s",&id); for(i=0;i<=99;i++){ if(strcmp(id,hu[i].idnum)==0){ printf("\n\n\t\t請(qǐng)輸入要轉(zhuǎn)賬的金額:"); scanf("%lf",&jin); printf("\n\n\t\t請(qǐng)確認(rèn)數(shù)目:%lf",jin); hu[i].cunkuan+=jin; printf("\n\n\n轉(zhuǎ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("不能打開(kāi)文件:"); if(!achuhu) printf("不能創(chuàng)建新文件:"); 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請(qǐng)?jiān)俅屋斎氩⒋_認(rèn)存單:"); scanf("%s",&id); for(i=0;i<=99;i++){ if(strcmp(id,hu[i].idnum)==0){ printf("請(qǐng)輸入新的密碼:\n"); printf("\n\t\t儲(chǔ)戶密碼(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請(qǐng)輸入你的存單號(hào):"); scanf("%s",&fnumb); printf("\n\n\n"); printf("\t\t\t\t\t您的個(gè)人信息如下:"); printf("\n\n"); for(i=0;i<=99;i++) if(strcmp(fnumb,hu[i].idnum)==0){ printf("存單號(hào):%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(){//顯示當(dāng)前日期 printf("當(dāng)前日期:"); system("date/t"); printf("當(dāng)前時(shí)間:"); system("time/t"); }
業(yè)務(wù)流程
1、用戶開(kāi)戶
2、登錄流程
3、密碼修改
以上就是C語(yǔ)言簡(jiǎn)單實(shí)現(xiàn)銀行ATM存取款功能的詳細(xì)內(nèi)容,更多關(guān)于C語(yǔ)言 ATM存取款的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C++深入刨析優(yōu)先級(jí)隊(duì)列priority_queue的使用
最近我學(xué)習(xí)了C++中的STL庫(kù)中的優(yōu)先級(jí)隊(duì)列(priority_queue)容器適配器,對(duì)于優(yōu)先級(jí)隊(duì)列,我們不僅要會(huì)使用常用的函數(shù)接口,我們還有明白這些接口在其底層是如何實(shí)現(xiàn)的2022-08-08C++編程中用put輸出單個(gè)字符和cin輸入流的用法
這篇文章主要介紹了C++編程中用put輸出單個(gè)字符和cin輸入流的用法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-09-09C語(yǔ)言中浮點(diǎn)數(shù)的精度丟失問(wèn)題解決
大家好,本篇文章主要講的是C語(yǔ)言中浮點(diǎn)數(shù)的精度丟失問(wèn)題解決,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2022-01-01Qt物聯(lián)網(wǎng)管理平臺(tái)之實(shí)現(xiàn)數(shù)據(jù)查詢導(dǎo)出打印
這篇文章主要為大家介紹了如何利用Qt編寫物聯(lián)網(wǎng)管理平臺(tái)中數(shù)據(jù)查詢導(dǎo)出打印的功能,文字的示例代碼講解詳細(xì),感興趣的可以了解一下2022-07-07C++中回調(diào)函數(shù)及函數(shù)指針的實(shí)例詳解
這篇文章主要介紹了C++中回調(diào)函數(shù)及函數(shù)指針的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下2017-10-10C++中引用、內(nèi)聯(lián)函數(shù)、auto關(guān)鍵字和范圍for循環(huán)詳解
本文主要梳理了C++當(dāng)中一些瑣碎的知識(shí)點(diǎn),包括有命名空間,缺省參數(shù),引用,auto關(guān)鍵字和內(nèi)聯(lián)函數(shù),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-02-02如何基于C++解決RTSP取流報(bào)錯(cuò)問(wèn)題
這篇文章主要介紹了如何基于C++解決RTSP取流報(bào)錯(cuò)問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08C++?Cartographer的入口node main詳細(xì)講解
這篇文章主要介紹了C++Node類Cartographer的入口node main,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-03-03