模拟银行ATM取款机

#include      //预编译处理命令   
#include     //windows命令头文件  
#include       //控制流命令头文件  
#include       //包含文件读写的头文件  
#include       //字符串处理头文件  
#include        //时间延迟头文件 
#include  
using namespace std;      

/**************************    用户数据   **************************/  
struct account  
{  
    int use ;        //账户  
    int pwd ;        //密码  
    double rmb ;         //金额  
}a,b;  




/***********************   ATM机子函数声明  ************************/  
void land();      //默认显示界面  
void land0();     //登录成功界面  
void menu();        //默认主菜单  
void query();      //余额查询界面  
void gain_menu();      //ATM取款界面  
void deposit_menu();     //ATM存款界面  
void make();      //密码修改界面  
void make_1();     //密码修改确认界面  
void exit();      //退出系统界面  

void land1();     //登录系统函数  
void menu1();       //主菜单函数  
void gain();     //ATM取款函数  
void deposit();    //ATM存款函数  


/*************************    主函数定义     ************************/  

int main()  
{   
    system("color fd");
    fstream acc;  
    acc.open("infor.txt" ,ios::in );  
    if (!acc.is_open())                               // 检查文件是否成功打开    
    {//cout << "          该系统已经出现错误!无法使用!请联系官方客服!" << endl;  
        acc.open("infor.txt",ios::out);  
        acc<<123456<<"  "<<123456<<"  "<<100000;  
        acc>>a.use>>a.pwd>>a.rmb;  
        acc.close();  
    }  
    else  
    {  
        acc>>a.use>>a.pwd>>a.rmb;  
    }  
    acc.close();  

    system("cls");  
    land();  

    return 0;  
}  


/*************************  ATM子函数定义      ***********************/  
/*************************  ATM子函数界面定义  ***********************/  


void land()     //登录界面                 *********************************************************  
{  
    fflush(stdin);  
    system("cls");  
    cout<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                           欢迎使用西安科技大学学生银行                        "<cout<<"                                                                               "<cout<<"                               无卡自主ATM服务系统                             "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"       请输入账号和密码登录本系统!                                            "<cout<<"                                               ***************************     "<cout<<"                                               *     西安科技大学学生    *     "<cout<<"                                               *     银行竭诚为您服务    *     "<cout<<"                                               ***************************     "<cout<<"                                                                               "<cout<<"                                                                               "<cout<<"                                                                               "<cout<<"       请勿随意相信ATM周围非正式通告!                                         "<cout<<"                                                                               "<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<void land0()    //登录成功界面               **************************************************  
{  
    system("cls");  
    cout<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                           欢迎使用西安科技大学学生银行                        "<cout<<"                                                                               "<cout<<"                               无卡自主ATM服务系统                             "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                                                                               "<cout<<"                               您已成功登录本系统 !                           "<cout<<"                                                                               "<cout<<"                                                                               "<cout<<"                                               ***************************     "<cout<<"                                               *     西安科技大学学生    *     "<cout<<"                                               *     银行竭诚为您服务    *     "<cout<<"                                               ***************************     "<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<2000);  
    system("cls");  
    menu();  

}  

void menu()        //默认主菜单界面                  ***********************************************  
{  

    cout<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                           欢迎使用西安科技大学学生银行                        "<cout<<"                                                                               "<cout<<"                               无卡自主ATM服务系统                             "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                            请输入相关数字选择对应功能                         "<cout<<"                                                                               "<cout<<"                                【1】   余额查询                               "<cout<<"                                【2】   实时取款                               "<cout<<"                                【3】   实时存款                               "<cout<<"                                【4】   密码修改                               "<cout<<"                                【5】   退出系统                               "<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<cout<<"                           请输入【1—5】:";  

    menu1();  

}  

void query()           //余额查询界面    ************************************************************  
{  

    int m;  
    cout<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                           欢迎使用西安科技大学学生银行                        "<cout<<"                                                                               "<cout<<"                               无卡自主ATM服务系统                             "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                                  【余款查询】                                 "<cout<<"                                                                               "<cout<<"                         您当前卡上的余额为:"  
        <15)<2)<cout<<"                                                                               "<cout<<"                            请输入相关数字选择对应功能                         "<cout<<"                                【1】   查询刷新                               "<cout<<"                                【2】   返回菜单                               "<cout<<"                                【3】   退出系统                               "<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<cout<<"                           请输入【1—3】:";  
    cin>>m;  


    switch(m)  
    {  
    case 1:  
        system("cls");  
        query();  
        break;  
    case 2:  
        system("cls");  
        menu();  
        break;  
    case 3:  
        system("cls");  
        exit();  
        break;  
    default:  
        cout<"                           输入错误,请正确输入!";  
        Sleep(1000);  
        system("cls");  
        query();  
    }  

}  

void gain_menu()       //ATM取款界面         ************************************************************  
{  
    system("cls");  
    fflush(stdin);  
    cout<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                           欢迎使用西安科技大学学生银行                        "<cout<<"                                                                               "<cout<<"                               无卡自主ATM服务系统                             "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                                  【实时取款】                                 "<cout<<"                                                                               "<cout<<"                        您当前卡上的可用余额为:"  
        <15)<2)<cout<<"                                                                               "<cout<<"                            请输入相关数字选择对应功能                         "<cout<<"                              【取款数】实时提款                               "<cout<<"                                【1】   返回菜单                               "<cout<<"                                【2】   退出系统                               "<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<cout<<"                           输入【1】【2】将不会进行提款                        "<cout<<"        每次输入【提款数】须为100的整数倍且须少于可用余额且少于5000元          "<cout<<"                           请输入【提款数】【1】【2】:";  

    gain();  
}  

void deposit_menu()     //ATM存款界面         ********************************************  
{  

    cout<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                           欢迎使用西安科技大学学生银行                        "<cout<<"                                                                               "<cout<<"                               无卡自主ATM服务系统                             "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                                  【实时存款】                                 "<cout<<"                                                                               "<cout<<"                您当前卡上的可用余额为:"  <15)<2)<cout<<"                                                                               "<cout<<"                            请输入相关数字选择对应功能                         "<cout<<"                              【存款数】实时存款                               "<cout<<"                                【1】   返回菜单                               "<cout<<"                                【2】   退出系统                               "<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<cout<<"                           输入【1】【2】将不会进行存款                        "<cout<<"          每次放入【存款数】须为100的整数倍,且只能放入100元整的钞票           "<cout<<"                           请输入【存款数】【1】【2】:";  
    deposit();  

}  

void make()            //密码修改界面        ****************************************************  
{  

    fflush(stdin);  
    cout<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                           欢迎使用西安科技大学学生银行                        "<cout<<"                                                                               "<cout<<"                               无卡自主ATM服务系统                             "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                                  【密码修改】                                 "<cout<<"                                                                               "<cout<<"                            请输入相关数字选择对应功能                         "<cout<<"                                【1】   密码修改                              "<cout<<"                                【2】   返回菜单                               "<cout<<"                                【3】   退出系统                               "<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<cout<<"                           输入【2】【3】将不会进行密码修改                    "<cout<<"                           输入【1】将会进行旧密码确认于修改                   "<cout<<"                              请输入【1-3】:";  
    int q;  
    cin>>q;  

    switch(q)  
    {  
    case 1:  
        system("cls");  
        make_1();  
        break;  
    case 2:  
        system("cls");  
        menu();  
        break;  
    case 3:  
        system("cls");  
        exit();  
        break;  
    default:  
        cout<"                           输入错误,请正确输入!";  
        Sleep(1000);  
        system("cls");  
        make();  

    }  
}  

void make_1()     //密码修改确认界面      *************************************  
{  
    int pwd0,newpwd1,newpwd2;  
    fflush(stdin);  


    cout<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                           欢迎使用西安科技大学学生银行                        "<cout<<"                                                                               "<cout<<"                               无卡自主ATM服务系统                             "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                                                                               "<cout<<"                新密码须为六位不能完全相同数字,需要输入两次确认!             "<cout<<"                                                                               "<cout<<"                          请输入旧密码:";  
    cin>>pwd0;  
    fstream acc;  
    acc.open("infor.txt" ,ios::in );  
    if (!acc.is_open())                               // 检查文件是否成功打开    
        cout << "          该系统已经出现错误!无法使用!请联系官方客服!" << endl;  
    else  
        acc>>a.use>>a.pwd>>a.rmb;  
    acc.close();  

    if (pwd0!=a.pwd)  
    {  
        cout<<"                             密码输入有错!无法修改密码!               ";  
        Sleep(3000);  
        system("cls");  
        make();  
    }  
    else  
    {  
        cout<<"                          请输入新密码:";  
        cin>>newpwd1;  
        cout<"                          请确认新密码:";  
        cin>>newpwd2;  
        if (newpwd1==newpwd2)  
        {  
            a.pwd=newpwd2;  
            acc.open("infor.txt",ios::out);  
            acc<"  "<"   "<cout<<"☆    ===================================================================    ☆"<cout<<"                            密码修改完成,请牢记新密码!                       "<3000);  
            system("cls");  
            fflush(stdin);  
            make();  
        }    
        else  
        {  
            cout<<"                          两次密码不一致,无法修改密码!";  
            Sleep(3000);  
            system("cls");  
            fflush(stdin);  
            make();  
        }  
    }  
}  

void exit()      //退出系统界面      **********************************************  
{  
    cout<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                           欢迎使用西安科技大学学生银行                        "<cout<<"                                                                               "<cout<<"                               无卡自主ATM服务系统                             "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                是否退出系统?                                                 "<cout<<"                                                                              "<cout<<"               请输入【1】确认                                                "<cout<<"                                                                              "<cout<<"                                                                              "<cout<<"                                               ***************************     "<cout<<"                                               *     西安科技大学学生    *     "<cout<<"                                               *     银行竭诚为您服务    *     "<cout<<"                                               ***************************     "<cout<<"                                                                               "<cout<<"                                                                                "<cout<cout<<"☆    ===================================================================    ☆"<cout<<"               请输入【1】确认退出,其他键则返回菜单:";  

    int w;  
    cin>>w;  

    if (w==1)  
    {  
        system("cls");  
        cout<cout<<"                                                                               "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                           欢迎使用西安科技大学学生银行                        "<cout<<"                                                                               "<cout<<"                               无卡自主ATM服务系统                             "<cout<<"☆    ===================================================================    ☆"<cout<<"                                                                               "<cout<<"                      您已成功退出系统,欢迎您的再次使用                       "<cout<<"                                                                               "<cout<<"                                                                               "<cout<<"                                               ***************************     "<cout<<"                                               *     西安科技大学学生    *     "<cout<<"                                               *     银行竭诚为您服务    *     "<cout<<"                                               ***************************     "<cout<<"                                                                               "<cout<<"                                                                               "<cout<cout<<"☆    ===================================================================    ☆"<4000);  
        system("cls");  
        land();  
    }  
    else  
    {  
        system("cls");  
        menu();  
    }  
}  

/*************************  ATM子函数函数定义  ***********************/  
void menu1()  
{  
    fflush(stdin);  
    int v;  
    cin>>v;  

    switch (v)  
    {  
    case 1:  
        system("cls");  
        query();  
        break;  
    case 2:  
        system("cls");  
        gain_menu();  
        break;  
    case 3:  
        system("cls");  
        deposit_menu();  
        break;  
    case 4:  
        system("cls");  
        make();  
        break;  
    case 5:  
        system("cls");  
        exit();  
        break;  
    default:  
        cout<<" 输入错误,请正确输入!";  
        Sleep(2000);  
        system("cls");  
        menu();  
    }  
}  

void land1()    //登录系统函数  
{  
    fstream acc;  
    acc.open("infor.txt" ,ios::in );  
    if (!acc.is_open())                               // 检查文件是否成功打开    
    {
        acc.open("infor.txt",ios::out);  
            acc<<123456<<"  "<<123456<<"  "<<100000;  
        acc>>a.use>>a.pwd>>a.rmb;  
        acc.close();  
    }  
    else  
    {  
        acc>>a.use>>a.pwd>>a.rmb;  
    }  
    acc.close();  

    cout<<"                            请输入账号:";  
    cin>>setw(7)>>b.use;  

    while (b.use<=100000&&b.use>=999999)  
    {  
        cout<<"                         账号错误,请重新输入!";  
        Sleep(2000);  
        land();  

    }   
        cout<<"                            请输入密码:";  
        cin>>setw(7)>>b.pwd;  
        while ((b.use<=100000&&b.use>=999999))  
        {  
            cout<<"                            密码错误,请重新输入!";  
            Sleep(2000);  
            land();  
        }   

            if (b.use==a.use&&b.pwd==a.pwd)  
            {  
                land0();  
            }   
            else  
            {  
                cout<<"                       该用户不存在或者密码错误,请重新输入!";  
                Sleep(2000);  
                land();  
            }  

}  

void gain()    //ATM取款函数  
{  
    int g=0;  
    fstream acc;  
    acc.open("infor.txt" ,ios::in );  
    if (!acc.is_open())                               // 检查文件是否成功打开    
        cout << "          该系统已经出现错误!无法使用!请联系官方客服!" << endl;  
    else  
        acc>>a.use>>a.pwd>>a.rmb;  
    acc.close();  

    cin>>g;  


    while ( g!=1&&g!=2&&g%100!=0&&g>5000&&g>a.rmb)  
    {  
        cout<<"                          输入有错,请重新检查后输入!                         "<2000);  
        system("cls");  
        deposit();  
    }  

    if(g==1||g==2)  
    {  
        if (g==1)  
        {  
            system("cls");  
            menu();  
        }  
        else  
        {  
            system("cls");  
            exit();  
        }  
    }  
    else  
    {  
        cout<<"                        请稍后,你已成功取款共计"<15)<"元            "<"infor.txt",ios::out);  
        acc<"   "<"   "<2000);  
        system("cls");  
        menu();  

    }  


}  

void deposit()   //ATM存款函数  
{  
    int h;  
    fstream acc;  
    acc.open("infor.txt" ,ios::in );  
    if (!acc.is_open())                               // 检查文件是否成功打开    
        cout << "          该系统已经出现错误!无法使用!请联系官方客服!" << endl;  
    else  
        acc>>a.use>>a.pwd>>a.rmb;  
    acc.close();  

    cin>>h;  
    while ( h!=1&&h!=2&&h%100!=0)  
    {  
        cout<<"                          输入有错,请重新检查后输入!                         "<2000);  
        system("cls");  
        gain();  
    }  

    if(h==1||h==2)  
    {  
        if (h==1)  
        {  
            system("cls");  
            menu();  
        }  
        else  
        {  
            system("cls");  
            exit();  
        }  
    }  
    else  
    {  


        cout<<"                        请稍后,你已成功存款共计"<15)<"元            "<"infor.txt",ios::out);  
        acc<"   "<"   "<2000);  
        system("cls");  
        menu();  

    }  
}  

你可能感兴趣的:(c语言)