现在的位置: 首页 > 综合 > 正文

实训:银行系统(完整)

2012年09月20日 ⁄ 综合 ⁄ 共 5656字 ⁄ 字号 评论关闭
#include <iostream>
#include <string.h>
#include <iomanip>
#include <stdio.h>
using namespace std;

#define MAXACCOUNTNUMBER 20000
//银行中初始卡号
#define INITNUMBER 10001

//定义开户系统结构体
struct Account
{
    long accNumber;             //卡号
    char accName[20];          //户名
    char accPwd[10];          //密码
    double balance;          //余额
    char flag[6];           //卡的状态
};//结构体结束符(切记,别漏掉!!!)
//欢迎函数
void Welcome();
//登陆函数
void Denglu();
//主界面
void Mainmenu();
//选择函数
void Chose();
//退出函数
void Exit();
//开户函数
void OpenAnAccount();
//存款函数
void Deposit();
//进入存款
void GoDeposit();
//查询函数
void Query();
//进入查询
void GoQuery();
//取款函数
void Withdraw();
//进入取款
void GoWithdraw();
//销户函数
void CloseAnAccount();
//进入销户
void GoCloseAnAccount();
//输出指定卡的信息
void printAccount(Account acc);
//根据卡号查找卡在数组中的下标
int searchAccount(long accNumber);

//银行中所有卡
Account array[MAXACCOUNTNUMBER];
//银行中卡的数量(全局变量)
int size=0;
//生成银行中自增卡号
long autoCreament();
//定义全局变量用作密码、用户名
const char Mima[10]="admin";
const char Yonghuming[10]="admin";
int main()
{
    Welcome();
    Denglu();
    return 0;
}
//欢迎界面
void Welcome()
{
    cout<<"*********************************************"<<endl;
    cout<<"**                                         **"<<endl;
    cout<<"**       欢迎使用储蓄综合业务平台          **"<<endl;
    cout<<"**                                         **"<<endl;
    cout<<"*********************************************"<<endl;
}
//登陆系统
void Denglu()
{
    int i;
    char str1[10],str2[10];//用于输入用户名和密码
    cout<<"请输入用户名:";
    cin>>str1;//输入用户名
    if(strcmp(str1,Yonghuming)==0)
    {
        cout<<endl;
        cout<<"请输入登陆密码:";
        cin>>str2;
        if(strcmp(str2,Mima)==0)//判断密码是否正确
        {
            cout<<"*********************************************"<<endl;
            cout<<"**         欢迎登陆储蓄综合业务平台        **"<<endl;
            cout<<"*********************************************"<<endl;
            Mainmenu();             //正确,进入系统
        }
        else
        {
            for(i=2;i>0;--i)
            {
                cout<<"密码错误,请重新输入:(您还有"<<i<<"次机会)";//密码不正确,三次输入机会,三次不正确,退出
                cin>>str2;
                cout<<endl;
                if(strcmp(str2,Mima)==0)
                {
                    cout<<"*********************************************"<<endl;
                    cout<<"**         欢迎登陆储蓄综合业务平台        **"<<endl;
                    cout<<"*********************************************"<<endl;
                    Mainmenu();
                    break;
                }
                if(i==1)//三次没输正确
                {
                    cout<<"您连续三次输错密码,请到前台找回密码,谢谢合作!";
                    break;
                }
            }
        }
    }
    else
    {
        cout<<"该用户名不存在."<<endl;   //用户名错误
        Denglu();//重新返回登陆界面
    }

}
//主菜单
void Mainmenu()
{
    cout<<"*********************************************"<<endl;
    cout<<"**      1.开户             4.查询          **"<<endl;
    cout<<"**      2.存款             5.销户          **"<<endl;
    cout<<"**      3.取款             0.退出          **"<<endl;
    cout<<"*********************************************"<<endl;
    Chose();
}
//选择进入其他业务
void Chose()
{
    int choice;
    cout<<"请输入您的选择:";//输入选择
    cin>>choice;
    if(choice>=0&&choice<=5)
    {
        switch(choice)//分别进入不同业务
        {
            case 0:
                   Exit();
                   break;
            case 1:
                   OpenAnAccount();
                   break;
            case 2:
                   Deposit();
                   break;
            case 3:
                   Withdraw();
                   break;
            case 4:
                   Query();
                   break;
            case 5:
                   CloseAnAccount();
                   break;;
        }
    }
    else
    {
        cout<<"输入有误,请核实后重新输入!";//输入有误
        Mainmenu();
        Chose();
    }
}
void OpenAnAccount()
{
    cout<<"*********************************************"<<endl;
    cout<<"**           欢迎进入开户系统              **"<<endl;
    cout<<"*********************************************"<<endl;
    cout<<"请输入户名:";
    cin>>array[size].accName;
    cout<<"请输入密码:";        //输入并保存数据
    cin>>array[size].accPwd;
    cout<<"请输入金额:";
    cin>>array[size].balance;
    strcpy(array[size].flag,"正常");//*******记住
    array[size].accNumber=autoCreament();
    printAccount(array[size]);
    size++;
    cout<<"开户成功,按任意键返回..."<<endl;
    fflush(stdin);
    getchar();
    Mainmenu();//返回主菜单
}
//存款界面
void Deposit()
{
    cout<<"*********************************************"<<endl;
    cout<<"**           欢迎进入存款系统              **"<<endl;
    cout<<"*********************************************"<<endl;
    GoDeposit();
}
//取款界面
void Withdraw()
{
    cout<<"*********************************************"<<endl;
    cout<<"**           欢迎进入取款系统              **"<<endl;
    cout<<"*********************************************"<<endl;
    GoWithdraw();
}
//销户界面
void CloseAnAccount()
{
    cout<<"*********************************************"<<endl;
    cout<<"**           欢迎进入销户系统              **"<<endl;
    cout<<"*********************************************"<<endl;
    GoCloseAnAccount();
}
//查询界面
void Query()
{
    cout<<"*********************************************"<<endl;
    cout<<"**           欢迎进入查询系统              **"<<endl;
    cout<<"*********************************************"<<endl;
    GoQuery();
}
//退出界面
void Exit()
{
    cout<<"*********************************************"<<endl;
    cout<<"**谢谢您使用储蓄综合业务平台,欢迎下次光临 **"<<endl;
    cout<<"*********************************************"<<endl;
}
void GoDeposit()
{
    long accNum;//存款的账号
    double money;//存款的金额
    int pos;
    cout<<"请输入存款的账号:";
    cin>>accNum;
    pos=searchAccount(accNum);
    if(pos==-1)
    {
        //卡号有误
        cout<<"卡号不存在,请重新输入卡号"<<endl;
        GoDeposit();
    }else
    {
        cout<<"请输入存款金额:";
        cin>>money;
        //展示下存款前卡的信息
        cout<<"存款前卡的信息:"<<endl;
        printAccount(array[pos]);
        //存款后的余额
        array[pos].balance+=money;
         //展示存款后卡的信息
        cout<<"存款后卡的信息:"<<endl;
        printAccount(array[pos]);
        cout<<"存款成功,按任意键返回...";
        fflush(stdin);
        getchar();
        Mainmenu();//返回主菜单
    }
}
void GoWithdraw()
{
    long accNum;//取款的账号
    char accnum[10];//密码一定要定义成char数组,注意!!!
    double money;//取款的金额
    int pos;
    cout<<"请输入取款的账号:";
    cin>>accNum;
    pos=searchAccount(accNum);
    if(pos==-1)
    {
        //卡号有误
        cout<<"卡号不存在,请重新输入卡号"<<endl;
        GoWithdraw();
    }
    else//卡号正确,进入
    {
        cout<<"请输入密码:";
        cin>>accnum;//输入密码
        if(strcmp(array[pos].accPwd,accnum)==0)
        {
            cout<<"请输入取款金额:";
            cin>>money;
            if(array[pos].balance<money)
            {
                cout<<"您的余额不足,无法取出!!!"<<endl;
                GoWithdraw();
            }
            else
            {
                //展示下取款前卡的信息
                cout<<"取款前卡的信息:"<<endl;
                printAccount(array[pos]);
                //取款后的余额
                array[pos].balance-=money;
                //展示取款后卡的信息
                cout<<"取款后卡的信息:"<<endl;
                printAccount(array[pos]);
                cout<<"取款成功,按任意键返回...";
                fflush(stdin);
                getchar();
                Mainmenu();//返回主菜单
            }

        }
        else
        {
            cout<<"输入密码有误!"<<endl;
            GoWithdraw();//返回
        }
    }
}
//进入销户
void GoCloseAnAccount()
{
    int j;
    int pos;
    long CloseAccount;//销户的卡号
    char accnum[10];//密码一定要定义成char数组,注意!!!
    cout<<"请输入您要销户的卡号:";
    cin>>CloseAccount;
    pos=searchAccount(CloseAccount);//查找卡号
    if(pos==-1)
    {
        //卡号有误
        cout<<"该卡号不存在,请重新输入卡号!"<<endl;
        GoCloseAnAccount();
    }
    else//卡号正确,进入
    {
        cout<<"请输入密码:";
        cin>>accnum;//输入密码
        if(strcmp(array[pos].accPwd,accnum)==0)
        {
            cout<<"是否确认要进行销户?(确认请按1  返回主菜单请按2)";
            cin>>j;
            if(j==1)//确认销户
            {
                array[pos].balance=0;//余额为零
                strcpy(array[pos].flag,"销户");//状态为销户
                printAccount(array[pos]);//打印
                cout<<"销户成功,按任意键返回...";
                fflush(stdin);
                getchar();
                Mainmenu();//返回主菜单
            }
            else
            {
                Mainmenu();//返回主菜单
            }
        }
        else
        {
            cout<<"密码输入错误!";
            GoCloseAnAccount();
        }
    }
}
//进入查询
void GoQuery()
{
    long accNum;//查询的账号
    char accnum[10];//密码一定要定义成char数组,注意!!!
    int pos;
    cout<<"请输入您要查询的账号:";
    cin>>accNum;
    pos=searchAccount(accNum);

抱歉!评论已关闭.