C語言實現模擬銀行系統

本文實例為大傢分享瞭C語言實現銀行系統的具體代碼,供大傢參考,具體內容如下

1.實現要求

生成一個1000-1000000之間的隨機數來代表賬戶餘額(要求每次生成的數不一樣);
實現登錄功能:用戶有三次輸入密碼的機會,輸入正確的密碼才能登錄,如果輸入錯誤超過瞭三次 之後密碼還是錯,則提示賬戶被凍結,退出程序。
實現查詢賬戶餘額功能:查詢賬戶餘額並輸出。
實現取款功能:提示用戶輸入相應的金額,並取款。
實現存款功能:提示用戶輸入存款金額,並存款。
實現修改密碼功能:提示用戶輸入新的密碼,密碼修改成功後,退出系統,提示重新登錄。
實現退出系統功能。

2.示例代碼:

//示例代碼:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void menu();
int changePwd();
int drawDeposit() ;
void getDeposit() ;
void judgePwd();
void Print();
long saveDeposit();

long deposit;//存款
int password=123456;//密碼 
//隨機生成一個1000-1000000之間的整數來代表存款
void getDeposit() {
    do {
        deposit=rand()%1000000+1;
    } while(deposit<1000);
}

//打印菜單選擇項
void menu() {
    printf("\t  ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
    printf("\t☆※※※※※※※※歡迎使用銀行系統※※※※※※※※☆\n");
    printf("\t  ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n");
    printf("銀行業務有以下幾種:\n");
    printf("按鍵1:查看賬戶餘額\n");
    printf("按鍵2:取款\n");
    printf("按鍵3:存款\n");
    printf("按鍵4:修改密碼\n");
    printf("按鍵5:退出系統\n");
}

//判斷密碼是否正確
void judgePwd() {
    int input;
    int count=0;//輸入密碼的次數,初值為0
    printf("請輸入您的密碼:");
    scanf("%d",&input);
    count++;//每輸入一次密碼,次數加一
    //如果密碼密碼輸入錯誤,就提示重新輸入,直到輸入正確的密碼或者次數用完
    while(input!=password) {
        if(count==3) {//當count=3時,表示輸入瞭3次錯誤的密碼,退出程序
            printf("你的次數已用完,賬戶已被凍結!\n");
            printf("正在退出系統......\n");
            exit(0);
        }
        printf("密碼輸入錯誤,請重新輸入:(您還有%d次機會)\n請輸入您的密碼:",3-count);
        scanf("%d",&input);
        count++;
    }
    printf("密碼輸入正確,登錄成功!\n");
    printf("\n \n");
}
//打印賬戶餘額
void Print() {
    printf("您的賬戶餘額為:%ld\n",deposit);
}
//取款
int drawDeposit() {
    long draw;//取款金額
    do {
        printf("請輸入您的取款金額(本機隻能提取100元面值的鈔票):");
        scanf("%ld",&draw);
        if(draw>deposit) {//如果輸入的金額大於餘額,提示餘額不足
            while(draw>deposit) {
                printf("您的餘額不足,請重新輸入取款金額:");
                scanf("%ld",&draw);
            }
        }
        if(draw<100||draw%100!=0) {//輸入的金額不合法,提示重新輸入
            printf("輸入的取款金額有誤,請重新輸入取款金額:\n");
        }
    } while(draw<100||draw%100!=0);
    deposit=deposit-draw;//計算餘額(原來的餘額-取款金額)
    return draw;
}
//存款
long  saveDeposit() {
    long save;//存款金額
    printf("存款時隻接受面值為100的鈔票。\n") ;
    printf("請輸入您的存款金額:");
    scanf("%ld",&save);
    //存款金額不能為負,且隻能存百元鈔
    while(save<=0||save%100!=0) {
        printf("存款金額不符合規定,請重新輸入存款金額:");
        scanf("%ld",&save);
    }
    deposit=deposit+save;//賬戶餘額=原來的餘額+存款金額
    return save;
}
//修改密碼
int changePwd() {
    int change_pwd,change;
    char ch;
    printf("您確定要修改密碼嗎?(Y/y)");
    scanf("%c",&ch);
    ch=getchar();
    if(ch=='y'||ch=='Y') {
        judgePwd(); 
        printf("請輸入新的密碼:");
        scanf("%d",&change_pwd);
        printf("請確認新的密碼:") ;
        scanf("%d",&change);
        if(change_pwd!=change) {
            printf("兩次密碼輸入不一致,即將返回主頁面...\n");
//            menu();
            return password;
        } else {
            password=change_pwd; 
            printf("密碼修改成功......\n");
            printf("請重新登錄:\n");
            judgePwd();
            return change_pwd;
        }
    } else {
        return password;
    }
}
int main() {
    srand((unsigned)time(NULL));//使每次生成的隨機金額不同
    getDeposit();//調用函數生成賬戶餘額
    menu();//調用函數,打印菜單
//    int password=123456;//設置初始密碼
    judgePwd();//判斷輸入的密碼是否正確
    int ch,statu=0;
    //程序主體:登錄之後,隻有等到用戶自己選擇退出時才退出系統, 否則就一直執行下去
    while(1) {
        printf("--------------------------------------------------------------------------------\n\n");
        menu();
        printf("請選擇你的業務:\n");
        scanf("%d",&ch);
        //根據用戶輸入選擇執行相應的操作
        switch(ch) {
            case 1:
                Print();
                break;
            case 2:
                printf("取款成功,金額為:%ld\n",drawDeposit());
                break;
            case 3:
                printf("存款成功,金額為:%ld\n",saveDeposit());
                break;
            case 4:
                password=changePwd();
                break;
            case 5:
                statu=-1;
                break;
            default:
                printf("輸入有誤,請重新輸入......\n");
        }
        if(statu==-1) {
            break;
        }
    }
    printf("\n歡迎下次光臨,再見\3\3\3\3\3...\n");
}

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: