这可怎么整?都想吐了。

/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称:
* 作    者: 王颖
* 完成日期: 2013 年  12 月  14 日
* 版本号: v1.0
* 输入描述:无
* 问题描述:银行系统
*/
#include <iostream>
#include <cstdio>
#include <stdio.h>
#include <conio.h>//getch头文件
#include <string.h>
#include <stdlib.h>
//银行中最大的账户数量
#define MAXACCOUNTNUMBER 20000
//银行卡的开号初始值
#define INITNUMBER 10001

using namespace std;
struct Account       //声明一个银行卡的类型
{
    long accNumber;               //卡号
    char accName[20];            //户主
    char accpassword[7];             //密码
    double balance;               //余额
    char identity[19];            //身份证号
    int state;                    //状态 0:正常  -1:挂失 -2:冻结 -3:销户
};
//银行中所有卡
Account array[MAXACCOUNTNUMBER];
//银行中银行卡数量
int size=0;
void welcome();  //欢迎界面
void login();   //登录实现
void mainFrame();  //业务选择
long openAccount();   //开户
long autoCreament(); //生成自增卡号
void deposit();  //存款
void chaxunmima(char password[]);//鉴定密码
void bid();  //查询当前的余额
void printAccount(Account acc); //输出指定卡的信息
void withdrawal();  //取款
void closed();  //销户
int searchAccount(long accNumber);
int main()
{
    welcome();       //欢迎界面
    login();            //登陆界面
    mainFrame();
    return 0;
}
void welcome()
{
    printf("|-----------------------------|\n");
    printf("|   欢迎使用储蓄综合业务平台  |\n");
    printf("|-----------------------------|\n");
}
void login() //登录实现
{
    //管理员用户和密码验证
    char managerName[20];
    char managerPWD[20];
    int errorCount=0;//记录错误次数
    int i;
    for(i=1; i<3; i++)
    {
        printf("请输入管理员账号:");
        fflush(stdin);
        gets(managerName);
        printf("请输入管理员密码:");
        fflush(stdin);
        gets(managerPWD);
        //判断
        if(strcmp(managerName,"wangying")==0&&strcmp(managerPWD,"123456")==0)
        {
            break;
        }
        else
        {
            errorCount++;
            if(errorCount<3)
            {
                printf("账号或密码错误!请重新输入\n");
            }
            else
            {
                printf("密码错误超过3次,退出系统……\n");
                exit(0);
            }
        }
    }

}

void mainFrame()        //业务选择
{
    int order;
    cout<<"+--------------------------+"<<endl;
    cout<<"+  开户请按1    存款请按2  +"<<endl;
    cout<<"+  取款请按3    销户请按4  +"<<endl;
    cout<<"+  查询请按5    退出请按6  +"<<endl;
    cout<<"+--------------------------+"<<endl;
    cout<<"请输入操作指令"<<endl;
    cin>>order;
    switch(order)
    {
    case 1:
        openAccount();
        break;
    case 2:
        deposit();

        break;
    case 3:
        withdrawal();
        break;
    case 4:
        closed();
        break;
    case 5:
        bid();
        break;
    default:
        cout<<"error!";
        break;
    }
}

long openAccount()           //开户
{
    cout<<"请输入户主姓名(不能超过9位):"<<endl;
    cin>>array[size].accName;
    fflush(stdin);
    cout<<"请输入密码(密码不能超过6位):"<<endl;
    cin>>array[size].accpassword;
    fflush(stdin);
    chaxunmima(array[size].accpassword);
    cout<<"请输入开户金额(金额必须是正确的数值(小数点只能出现一次)):"<<endl;
    cin>>array[size].balance;
    fflush(stdin);
    //写卡号
    array[size].accNumber=autoCreament();

    printAccount(array[size]);
    size++;
    cout<<"请输入身份证号码:"<<endl;
    cin>>array[size].identity;
    fflush(stdin);
    cout<<"+----------------------------------+"<<endl;
    cout<<"开户成功!"<<endl;
    size++;
    cout<<"请输入任意键返回主菜单..."<<endl;
    fflush(stdin);
    getchar();
    mainFrame();
}
long autoCreament()             //自增卡号
{

    if(size==0)
    {
        return INITNUMBER;
    }
    else
    {
        return array[size-1].accNumber+1;
    }

}
/*根据卡号查找卡的下标
* 若返回值>=0,卡号是正确
* 若返回值=-1,卡号有误
*/
int searchAccount(long accNumber)
{
    int i,t=-1;
    for(i=0; i<size; i++)
    {
        if(array[i].accNumber==accNumber)//找到了这张卡
        {
            t=i;
            break;
        }
    }
    return t;
}

void deposit()     //存款
{
    long accNumber;
    double money;
    int t;
    cout<<"请输入卡号:"<<endl;
    cin>>accNumber;
    cout<<"请输入存款金额:"<<endl;
    cin>>money;
    t=searchAccount(accNumber);
    if(t=-1)
    {
        cout<<"卡号不存在,请从新输入:"<<endl;
        deposit();
    }
    else
    {
        cout<<"存款前卡的信息为:"<<endl;
        printAccount(array[t]);
        array[size].balance+=money;
        cout<<"存款后卡的信息为:"<<endl;
        printAccount(array[t]);
        cout<<"存款成功。请按任意键返回。"<<endl;
        fflush(stdin);
        getchar();
        mainFrame();
    }
}
void withdrawal()    //取款
{
    long accNumber;
    int size,money;
    char key[7];
    cout<<"请输入您的卡号:"<<endl;
    cin>>accNumber;
    size=searchAccount(accNumber);
    cout<<endl<<"请输入您的密码:"<<endl;
    for( int i=0; i<6; i++)
    {
        cin>>key[i];
    }
    key[6]='\0';
    if(strcmp(key,array[size].accpassword)==0)
    {
        cout<<endl<<"请输入您要取款的金额:";
        cin>>money;
        //展示下存款前卡的信息
        cout<<endl<<"取款前卡的信息:"<<endl;
        printAccount(array[size]);
        //找到了该卡号所对应的卡
        if(array[size].balance<money)
        {
            cout<<endl<<"您的账户余额不足!无法取款啊!"<<endl;
            cout<<endl<<"取款失败,按任意键返回!"<<endl;
            fflush(stdin);
            getchar();
            mainFrame();
        }
        else
        {
            array[size].balance-=money;
            //展示存款后卡的信息
            cout<<endl<<"取款后卡的信息:"<<endl;
            printAccount(array[size]);
            cout<<endl<<"取款成功,按任意键返回"<<endl;
            fflush(stdin);
            getchar();
            mainFrame();

        }
        void printAccount(Account acc)    //输出卡号信息
        {
            cout<<endl;
            cout<<"+----------------------------------+"<<endl;
            cout<<setiosflags(ios::left)<<+<<setw(8)<<"卡号"<<setw(8)<<"户主"<<setw(8)<<"身份证号"
                <<setw(8)<<"金额"<<sPwdetw(8)<<"状态"<<+<<endl;
            cout<<"+----------------------------------+"<<endl;
            cout<<setiosflags(ios::left)<<+<<setw(8)<<array[size].accNumber<<setw(8)
                <<array[size].accName<<setw(8)<<array[size].identity<<setw(8)<<endl;
            cout<<"+----------------------------------+"<<endl;
        }

        void chaxunmima(char password[])       //鉴定密码

        {

            int i;
            char a[7];
            if(strlen(password)!=6)
            {
                cout<<"不是六位数字密码!请重新输入!"<<endl;
                openAccount();
            }
            else
            {
                cout<<endl<<"请您再次输入:";
                for(i=0; i<6; i++)
                {
                    cin>>a[i];
                }
                a[6]='\0';
                if(strcmp(a,password)==0)
                {
                    cout<<endl<<"创建密码完成!"<<endl;
                }
                else
                {
                    cout<<"前后密码输入不一致,请重新输入!"<<endl;
                    openAccount();
                }
            }

        }
        void bid()                           //查询当前余额
        {
            int size,accNumber;
            cout<<endl<<"请输入您要查询的卡号:";
            cin>>accNumber;
            size=searchAccount(accNumber);
            printAccount(array[size]);
            cout<<endl<<"查询成功,按任意键返回"<<endl;
            fflush(stdin);
            getchar();
            mainFrame();

        }
        void closed()                //销户
        {
            char key[7];
            int i,size,accNumber;
            cout<<endl<<"请输入您要销户的卡号:";
            cin>>accNumber;
            //寻找该卡号
            size=searchAccount(accNumber);
            cout<<endl<<"请输入您的密码:";
            for(i=0; i<6; i++)
            {
                cin>>key[i];
            }
            key[6]='\0';
            if(strcmp(key,array[size].accpassword)==0)
            {
                cout<<endl<<"销户前卡的信息:"<<endl;
                printAccount(array[size]);
                cout<<"您将进行销户!按任意键继续:"<<endl;
                getchar();
                array[size].balance=0;
                strcpy(array[size].state,"不存在");
                strcpy(array[size].accName,"不存在");
                cout<<endl<<"销户后卡的信息:"<<endl;
                printAccount(array[size]);
                cout<<endl<<"销户成功,按任意键返回"<<endl;
                fflush(stdin);
                getchar();
                mainFrame();
            }
            else
            {
                cout<<"密码错误!!!"<<endl;
                cout<<endl<<"按任意键返回"<<endl;
                fflush(stdin);
                getchar();
                mainFrame();
            }
        }


心得体会:唉,这辈子真跟花括号结缘了·····为什么void printAccount(Account acc)里边老是报花括号有错啊??

你可能感兴趣的:(这可怎么整?都想吐了。)