<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C語言實現銀行管理系統的具體程式碼,供大家參考,具體內容如下
銀行管理系統主要有五個模組組成:
1、查詢賬戶資訊
2、存錢
3、取款
4、轉賬
5、退出系統
測試檔案:(首先在cpp檔案所在目錄下新增這個檔案,執行程式會自動新增檔案,但是需要輸入這些資料)
程式碼:
#include<stdio.h> /*I/O函數*/ #include<stdlib.h> /*其它說明*/ #include<string.h> /*字串函數*/ #define max 100 #define LEN 15 /* 賬號和密碼最大字元數,實際請更改*/ #define N 100 /* 最大賬戶數,實際請更改*/ int k=1,n=0, m=0;/* n代表當前記錄的學生人數*/ //賬戶資訊結構體 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 %sn",&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]; /* 以賬號和密碼最長長度+1為準*/ //用來輸賬號的 char s2[LEN+1]; /* 以賬號和密碼最長長度+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.1fn",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 %sn",&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]; /* 以賬號和密碼最長長度+1為準*/ //用來輸賬號的 char s2[LEN+1]; /* 以賬號和密碼最長長度+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.1fn",bank[item].Balance); printf("請輸入需要取款的金額"); printf("您的賬戶型別是%sn",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 %sn",&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]; /* 以賬號和密碼最長長度+1為準*/ //用來輸賬號的 char s2[LEN+1]; /* 以賬號和密碼最長長度+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.1fn",bank[item].Balance); printf("您的賬戶型別是%sn",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 %sn",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 %sn",&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 %sn",&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 %sn",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 %sn",bank[i].accountNo,bank[i].accountName,bank[i].Password,bank[i].Balance,bank[i].VIPoNormal); } fclose(fp); printf("儲存成功!!!"); } //介面 void menu() { int num; printf(" nn nn"); 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; }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45