银行储蓄系统

来源:互联网 发布:淘宝电子发票在哪里 编辑:程序博客网 时间:2024/06/02 14:12
bank.cpp

 

/************************************************************** 版权所有:(C)2015,烟台大学计算机与控制工程学院* * 文件名称:bank.cpp* 文件标识:无* 内容摘要:用户登录时的功能选择* 其它说明:无* 当前版本:v1.0* 作者:曾晓* 完成日期:2015 7 17* * 修改记录: /* 修改日期:/* 版本号:v1.0* 修改人:曾晓* 修改内容:创建/***************************************************************/#include <iostream>#include <cstdlib>#include <cmath>#include <stdio.h>#include <fstream>#include <string>#include <time.h>#include "staff.h"#include "bank.h"using namespace std;static long ywnum=10000000;/************************************************ 功能描述:输入符合条件的密码(密码为6位数字并且不能为0)* 输入参数:int iPass* 输出参数:char ch* 返回值:iPass* 其它说明://***********************************************/int inputPassword(){    char ch;  //接收字符形式密码    int iPass=0;   //要转换为数字    int i;    while(1)    {        for(i=0; i<6; i++)        {            ch=getch();  //输入但不显示            putchar('*');   //输出*            if(isdigit(ch))                iPass=iPass*10+(ch-'0');            else            {                iPass=0;                break;  //退出for循环后,再次接受            }        }        fflush(stdin); //清除键盘缓存区中已经有的输入        cout<<endl;;        if(iPass==0)  //此条件成立可能由两种情况引起:输入了非数字字符被直接重置为0,或6位全0后正常退出for循环        {            cout<<"密码要求全为数字,且不能全0!"<<endl;;            cout<<"请重新输入密码: ";        }        else            break;    }    return iPass;}/********************************************************************************************** 功能描述:业务员账号登录* 输入参数:业务员账户acc,密码ch* 输出参数:业务员登录成功或失败* 其它说明:读取staff.txt,按照预先存储的账户和密码,若三次用户名或密码错误,系统强制退出/*********************************************************************************************/bool Bank::passtaff(){    Staff s1;    string acc;    char ch;    cout<<"请输入业务员账户:";    cin>>acc;    for(int j=0; j<3; ++j)    {        int pw=0;        cout<<"请输入密码:";        for(int i=0; i<6; i++)        {            ch=getch();  //输入但不显示            putchar('*');   //输出*            pw=pw*10+(ch-'0');        }        if(s1.pass(acc,pw))        {            return true;        }        else        {            cout<<"\n用户名或密码错误。"<<endl;        }    }    cout<<"\n错误三次,系统自动退出。"<<endl;    return false;}/*************************************************** 功能描述:显示功能选择界面* 输入参数:/* 输出参数:/* 其它说明://**************************************************/void Bank::showMenu()//显示菜单{    cout<<"+----------------------------+"<<endl;    cout<<"+ 1.开户    2.销户    3.存款 +"<<endl;    cout<<"+ 4.取款    5.查询    6.转账 +"<<endl;    cout<<"+ 7.挂失    8.解挂    9.改密 +"<<endl;    cout<<"+ 10.业务查询                +"<<endl;    cout<<"+                     0.退出 +"<<endl;    cout<<"+----------------------------+"<<endl;    cout<<endl;}/******************************************************* 功能描述:输入操作指令,开始工作* 输入参数:操作指令* 输出参数:/* 其它说明://******************************************************/void Bank::Choice() //开始工作{    int order=1;    do    {        if(order==0)            exit(1);        openfile();        reading();        cout<<"请输入操作指令:";        cin>>order;        switch(order)        {        case 1:            openAccount();//开户            break;        case 2:            cancelAccount();//销户            break;        case 3:            save();//存款            break;        case 4:            withdraw();//取款            break;        case 5:            showAccount();//查询余额            break;        case 6:            transferAccount();//转账            break;        case 7:            reportLoss();//挂失            break;        case 8:            cancelLoss();//解挂            break;        case 9:            updatePassword();//改密            break;        case 10:            refer();//业务查询            break;        case 0:            cout<<"感谢您的光临,欢迎您再来!"<<endl;        }        savefile();    }    while(1);}/**************************************************************************************************** 功能描述:开户* 输入参数:账户 acc,姓名 nam,身份证号码 id,家庭住址 add,电话号码 pho,密码 pass,存入金额 mon.* 输出参数:开户成功的提示语句以及流水账号* 其它说明://****************************************************************************************************/void Bank::openAccount()  //开户{    /*if(nownum==upnum)    {        cout<<"银行用户数已经达到上限,不能再开户";        return;    }*/    int acc;   //账号    string nam;   //姓名    int pw;   //密码    double mon;   //金额    int sta;  //状态    string add;    char id[19];    char pho[13];    cout<<"正在开户..."<<endl;    acc=10001+nownum;    cout<<"账号:"<<acc<<endl;    cout<<"户主姓名:";    cin>>nam;    cout<<"身份证号码:"<<endl;;    cin>>id;    cout<<"家庭住址:"<<endl;    cin>>add;    cout<<"电话号码:"<<endl;    cin>>pho;    int Pass1, Pass2;    cout<<"密码:";    Pass1=inputPassword();  //输入密码1    cout<<"确认密码:";    Pass2=inputPassword();  //输入密码2    if(Pass1==Pass2)    {        pw=Pass1;        sta=0; //账户状态为“正常”        cout<<"存入金额:";        cin>>mon;        users[nownum].setUser(acc,nam,id,add,pho,pw,mon,sta);        ++nownum; //正式用户数增加1,确认了新用户已经加入        cout<<"开户成功!"<<endl;        fflush(stdin); //清除键盘缓存区中已经有的输入        written(acc,"开户操作,开户成功!");    }    else    {        cout<<"两次密码不一致,未成功开户!"<<endl; //没有N++,则读入的值无效    }}/*************************************************** 功能描述:销户* 输入参数:/* 输出参数:提示销户成功或失败的界面* 其它说明:销户后款项全部取出,余额变为0/**************************************************/void Bank::cancelAccount(){    int who;  //查找到该账号在数组中对应的下标    who=getUser();  //根据账号查询用户,返回用户的下标    if(who>=0)   //说明id账户存在    {        users[who].showName();        if(users[who].passwordIsRight())        {            users[who].showBalance("余额:");   //提示"余额"二字,显示金额            cout<<"确认销户(y/n)?";            if(getchar()=='y'||getchar()=='Y')            {                users[who].showBalance("销户成功!本次取款金额为:");                users[who].money=0;  //取款后余额变0                users[who].status=2;  //状态变为注销                written(who+10001,"销户操作,销户成功!");            }            else            {                cout<<"你取消了操作,销户失败!"<<endl;                written(who+10001,"销户操作,销户失败!错误原因:取消操作。");            }            fflush(stdin);  //清除了getchar()时在键盘缓存中的遗留,以免影响后续操作        }    }}/************************************************************* 功能描述:存款* 输入参数:/* 输出参数:存款成功或失败的提示以及错误原因,存款后的余额* 其它说明://************************************************************/void Bank::save() //存款{    int who;    double money;    who=getUser();  //根据账号查询用户,返回用户的下标    if(who>=0)   //说明id账户存在    {        if(users[who].status==0)        {            users[who].showName();            cout<<"输入存款额:";            cin>>money;            users[who].money+=money;            users[who].showBalance("存款后,金额为:");            written(who+10001,"存款操作,存款成功!");//业务查询        }        else if(users[who].status==1)        {            cout<<"该用户处于挂失状态,存款失败!"<<endl;            written(who+10001,"存款操作,存款失败!错误原因:该账户处于挂失状态。");        }        else        {            cout<<"该用户已经销户,存款失败!"<<endl;            written(who+10001,"存款操作,存款失败!错误原因:该账户已销户。");        }    }    return;}/*************************************************** 功能说明:取款* 输入描述:/* 输出描述:取款失败的提示以及失败原因,余额* 其它说明://**************************************************/void Bank::withdraw()//取款{    int who;    double money;    who=getUser();  //根据账号查询用户,返回用户的下标    if(who>=0)   //说明id账户存在    {        if(users[who].isNormalUser())        {            users[who].showName();            if(users[who].passwordIsRight())            {                cout<<"输入取款额:";                cin>>money;                if(money>users[who].money)                {                    cout<<"余额不足,取款失败!"<<endl;                    written(who+10001,"取款操作,操作失败!错误原因:余额不足。");                }                else                {                    users[who].money-=money;                    users[who].showBalance("取款后,余额为:");                    written(who+10001,"取款操作,取款成功!");                }            }        }    }    return;}/*********************************************************** 功能说明:查询用户状态* 输入描述:/* 输出描述:查询成功的提示,用户所处状态以及余额* 其它说明://**********************************************************/void Bank::showAccount(){    int who;    string sta[3]= {"正常","挂失","已经销户"};    who=getUser();  //根据账号查询用户,返回用户的下标    if(who>=0)   //说明id账户存在    {        users[who].showName();        if(users[who].passwordIsRight())        {            users[who].showBalance("余额:");            cout<<"状态:"<<sta[users[who].status]<<endl;            written(who+10001,"查询操作,查询成功!");        }    }    return;}/******************************************** 功能说明:转账* 输入描述:/* 输出描述:转账成功或失败的提示以及错误原因* 其它说明://********************************************/void Bank::transferAccount(){    int whoout, whoin;    double money;    cout<<"转出自";    whoout=getUser();  //根据账号查询用户,返回用户的下标    if(whoout>=0)   //说明id账户存在    {        if(users[whoout].isNormalUser())        {            users[whoout].showName();            if(users[whoout].passwordIsRight())            {                cout<<"输入转账金额:";                cin>>money;                if(money>users[whoout].money)                {                    cout<<"余额不足,转账失败!"<<endl;                    written(whoout+10001,"转账操作,转账失败!错误原因:余额不足。");                }                else                {                    cout<<"转出到";                    whoin = getUser();  //根据账号查询用户,返回用户的下标                    if(whoin>=0)   //说明id账户存在                    {                        if(users[whoin].isNormalUser())                        {                            users[whoout].money-=money;                            users[whoin].money+=money;                            users[whoout].showBalance("转账后,余额为:");                            written(whoout+10001,"转账操作,转账成功!");                        }                    }                }            }        }    }    return;}/**************************************************** 功能描述:挂失* 输入参数:/* 输出参数:用户挂失成功或者失败的提示以及错误原因* 其它说明://****************************************************/void Bank::reportLoss(){    int who;    who = getUser();  //根据账号查询用户,返回用户的下标    if(who>=0)   //说明id账户存在    {        users[who].showName();        if(users[who].passwordIsRight())        {            if(users[who].status==0)            {                users[who].status=1;                cout<<"挂失成功"<<endl;                written(who+10001,"挂失操作,挂失成功!");            }            else if(users[who].status==1)            {                cout<<"该账户已经处于挂失状态"<<endl;                written(who+10001,"挂失操作,挂失失败!错误原因:该账户已经处于挂失状态。");            }            else            {                cout<<"该账户已销户,不能挂失"<<endl;                written(who+10001,"挂失操作,挂失失败!错误原因:该账户已销户。");            }        }    }    return;}/**************************************************** 功能描述:解挂* 输入参数:/* 输出参数:用户所处的状态,解挂成功或者失败的提示以及错误原因* 其它说明://****************************************************/void Bank::cancelLoss() //解挂{    int who;    who = getUser();  //根据账号查询用户,返回用户的下标    if(who>=0)   //说明id账户存在    {        users[who].showName();        if(users[who].passwordIsRight())        {            if(users[who].status==0)            {                cout<<"该账户处于正常状态,不需要解除挂失"<<endl;                written(who+10001,"解挂操作,解挂失败!错误原因:该账户处于正常状态。");            }            else if(users[who].status==1)            {                users[who].status=0;                cout<<"解除挂失成功"<<endl;                written(who+10001,"解挂操作,解挂成功!");            }            else            {                cout<<"该账户已销户,操作无效"<<endl;                written(who+10001,"解挂操作,解挂失败!错误原因:该账户已销户。");            }        }    }    return;}/**************************************************** 功能描述:修改密码* 输入参数:旧密码,以及新密码* 输出参数:修改密码成功或者失败的提示,以及错误原因* 其它说明://****************************************************/void Bank::updatePassword() //改密{    int who;    int iPass1, iPass2;    who = getUser();  //根据账号查询用户,返回用户的下标    if(who>=0)   //说明id账户存在    {        users[who].showName();        if(users[who].passwordIsRight())        {            cout<<"新密码:";            iPass1=inputPassword();  //输入密码1            cout<<"确认密码:";            iPass2=inputPassword();  //输入密码2            if(iPass1==iPass2)            {                users[who].password=iPass1;                cout<<"修改成功!"<<endl;                written(who+10001,"修改密码操作,修改密码成功!");            }            else            {                cout<<"两次输入不同,修改失败!"<<endl;                written(who+10001,"修改密码操作,修改密码失败!错误原因:两次密码输入不同。");            }        }    }    return;}/**************************************************** 功能描述:查找用户* 输入参数:用户账号* 输出参数:用户信息* 其它说明://****************************************************/int Bank::getUser()//二分法查找用户{    int id;    cout<<"账号:";    cin>>id;    int index=-1;    int low=0, high=nownum-1, mid;    while(low<=high)    {        mid = (low+high)/2;        if(users[mid].account==id)        {            index=mid;            break;   //找到了,立即退出循环        }        else if (users[mid].account>id)            high=mid-1;        else            low=mid+1;    }    if (index<0)        cout<<"该用户不存在,本次操作失败!"<<endl;    return index; //若找到,其值在0~N-1间,否则,保持-1}/**************************************************** 功能描述:导入文件* 输入参数:users.txt* 输出参数:/* 其它说明://****************************************************/void Bank::openfile()//导入文件{    ifstream infile("users.txt",ios::in);    int i=0;    if(!infile)    {        cerr<<"open error!"<<endl;        exit(1);    }    nownum=usersdata();    users=new User[nownum+1];    while(infile>>users[i].account>>users[i].name>>users[i].password>>users[i].money>>users[i].status)    {        ++i;    }    infile.close();}/**************************************************** 功能描述:保存文件* 输入参数:users.txt* 输出参数:/* 其它说明://****************************************************/void Bank::savefile() //保存文件{    ofstream qingkfile("users.txt",ios::trunc);    qingkfile.close();    ofstream outfile("users.txt",ios::out);    if(!outfile)    {        cerr<<"open error!"<<endl;        exit(1);    }    for(int i=0; i<nownum; ++i)    {        outfile<<users[i].account<<'\t'<<users[i].name<<'\t'<<users[i].password<<'\t'<<users[i].money<<'\t'<<users[i].status<<endl;    }    outfile.close();    delete []users; //释放空间,等下一次打开文件时重新开辟    return;}/**************************************************** 功能描述:计算用户个数* 输入参数:users.txt* 输出参数:/* 其它说明://****************************************************/int Bank::usersdata()//计算users.txt中用户个数{    int acc;   //账号    string nam;   //姓名    int pw;   //密码    double mon;   //金额    int sta;   //状态    int i=0;    //int nownum;    ifstream infile("users.txt");    while(infile>>acc>>nam>>pw>>mon>>sta)    {        ++i;    }    infile.close();    return i;}/**************************************************** 功能描述:用户进行的操作写入文件中* 输入参数:business_information.txt* 输出参数:/* 其它说明://****************************************************/void Bank::written(int usernum,string infor)//将用户所进行的操作写入文件中,业务查询时输入流水账号,显示用户信息{    time_t t;    tm *lt;    t = time(NULL);    lt = localtime(&t);    //cout<<lt->tm_year+1900<<"/"<<lt->tm_mon+1<<"/"<<lt->tm_mday<<"\t"<<lt->tm_hour<<":"<<lt->tm_min<<":"<<lt->tm_sec<<endl;    ofstream ywfile("business_information.txt",ios::app);    if(!ywfile)    {        cerr<<"open error!"<<endl;        exit(1);    }    //++ywnum;    ywfile<<lt->tm_year+1900<<"/"<<lt->tm_mon+1<<"/"<<lt->tm_mday<<" "<<lt->tm_hour<<":"<<lt->tm_min<<":"<<lt->tm_sec<<'\t';    ywfile<<"用户"<<usernum<<"进行"<<infor<<" "<<"流水账号为:"<<++ywnum<<endl;    ywfile.close();    cout<<"流水账号:"<<ywnum<<endl;}/**************************************************** 功能描述:读入业务* 输入参数:business_information.txt* 输出参数:文件打开失败的提示* 其它说明://****************************************************/void Bank::reading()//读入业务{    long i=0;    ifstream infile("business_information.txt",ios::in);    if(!infile)    {        cerr<<"open error!"<<endl;        exit(1);    }    //while(infile>>yw[i].year>>yw[i].ch1>>yw[i].month>>yw[i].ch1>>yw[i].day>>yw[i].hour>>yw[i].ch2>>yw[i].minu>>yw[i].ch2>>yw[i].sec>>yw[i].ywinfor)    while(infile>>yw[i].ymd>>yw[i].hms>>yw[i].ywinfor>>yw[i].liushui)    {        //cout<<yw[i].ymd<<" "<<yw[i].hms<<" "<<yw[i].ywinfor<<endl;        ++i;        //cout<<yw[i].year;//<<yw[i].ch1<<yw[i].month<<yw[i].ch1<<yw[i].day<<yw[i].hour<<yw[i].ch2<<yw[i].minu<<yw[i].ch2<<yw[i].sec<<yw[i].ywinfor;        //cout<<yw[i].ymd<<yw[i].hms<<yw[i].ywinfor    }    infile.close();    ywnum=i+10000000;}/**************************************************** 功能描述:查询用户所进行的业务操作* 输入参数:流水账号* 输出参数:/* 其它说明://****************************************************/void Bank::refer(){    long i;    cout<<"请输入流水账号:";    cin>>i;    if(i<=ywnum&&i>10000000)        cout<<i<<":\t"<<yw[i-10000001].ymd<<" "<<yw[i-10000001].hms<<" "<<yw[i-10000001].ywinfor<<endl;    else        cout<<"输入错误!";}/*Bank::Bank(){    time_t t;tm *lt;t = time(NULL);lt = localtime(&t);    ofstream ywfile("business_information.txt",ios::app);    if(!ywfile)    {        cerr<<"open error!"<<endl;        exit(1);    }    ywfile<<lt->tm_year+1900<<"年"<<lt->tm_mon+1<<"月"<<lt->tm_mday<<"日  ";    ywfile<<"进行业务操作:"<<endl;}Bank::~Bank(){    ofstream ywfile("business_information.txt",ios::app);    if(!ywfile)    {        cerr<<"open error!"<<endl<<endl;        exit(1);    }}*/


bank.h

 

/************************************************************** 版权所有:(C)2015,烟台大学计算机与控制工程学院* * 文件名称:bank.h* 文件标识:无* 内容摘要:bank类中的函数声明* 其它说明:无* 当前版本:v1.0* 作者:曾晓* 完成日期:2015 7 17* * 修改记录:/* 修改日期:/* 版本号:v1.0* 修改人:曾晓* 修改内容:创建/***************************************************************/#ifndef BANK_H_INCLUDED#define BANK_H_INCLUDED#include <iostream>#include <cmath>#include <iomanip>#include <ctype.h>#include <cstdlib>#include <cstdio>#include <conio.h>#include "user.h"using namespace std;struct business{    string ymd;    string hms;    string ywinfor;    string liushui;};class Bank{public:     //Bank();    //~Bank();    bool passtaff();//业务员信息    void openfile();//导入文件    void savefile2(int acc, string nam,int pw, double mon, int sta);//保存一行数据    void caculfile();//计算    void savefile(); //保存文件    void Choice(); //开始工作,选择指令    void showMenu();//显示菜单    void openAccount(); //开户    void cancelAccount(); //销户    void save(); //存款    void withdraw(); //取款    void showAccount(); //查询    void transferAccount(); //转账    void reportLoss(); //挂失    void cancelLoss(); //解挂    void updatePassword(); //改密    int getUser();    int usersdata();//计算users.txt中的用户个数    void written(int usernum,string infor);//将用户进行的操作写入文件business_information.txt中    void reading();//读取文件business_information.txt中的用户信息    void refer();//输入流水账号查询用户信息,病输出用户操作时的时间private:    business yw[10000];    int nownum;    //long ywnum;//流水账号    User *users;};#endif // BANK_H_INCLUDED


user.cpp

/************************************************************** 版权所有:(C)2015,烟台大学计算机与控制工程学院** 文件名称:user.cpp* 文件标识:无* 内容摘要:用户函数的定义* 其它说明:无* 当前版本:v1.0* 作者:曾晓* 完成日期:2015 7 17** 修改记录:/* 修改日期:/* 版本号:v1.0* 修改人:曾晓* 修改内容:创建/***************************************************************/#include <iostream>#include <cstdlib>#include <cmath>#include <fstream>#include <conio.h>#include <cstring>#include "user.h"using namespace std;int inputpassw(){    char ch;  //接收字符形式密码    int iPass=0;   //要转换为数字    int i;    while(1)    {        for(i=0; i<6; i++)        {            ch=getch();  //输入但不显示            putchar('*');   //输出*            if(isdigit(ch))                iPass=iPass*10+(ch-'0');            else            {                iPass=0;                break;  //退出for循环后,再次接受            }        }        fflush(stdin); //清除键盘缓存区中已经有的输入        cout<<endl;;        if(iPass==0)  //此条件成立可能由两种情况引起:输入了非数字字符被直接重置为0,或6位全0后正常退出for循环        {            cout<<"密码要求全为数字,且不能全0!"<<endl;;            cout<<"请重新输入密码: ";        }        else            break;    }    return iPass;}/************************************************ 功能描述:数据成员的赋值* 输入参数:/* 输出参数:/* 返回值:/* 其它说明://***********************************************/void User::setUser(int acc, string nam,char id[19],string add,char pho[13], int pw, double mon, int sta){    account=acc;    name=nam;    strcpy(id_card,id);    address=add;    strcpy(phone,pho);    password=pw;    money=mon;    status=sta;}/************************************************ 功能描述:判断密码是否正确* 输入参数:int iPass* 输出参数:密码错误的提示* 返回值:right* 其它说明://***********************************************/bool User::passwordIsRight(){    int iPass;    bool right=true;    cout<<"输入密码:";    iPass=inputpassw();    if(iPass!=password)    {        right = false;        cout<<"输入密码错误,不能继续操作!"<<endl;                     }    return right;}/************************************************ 功能描述:显示用户名字* 输入参数:* 输出参数:name* 返回值:/* 其它说明://***********************************************/void User::showName(){    cout<<"用户名:"<<name<<endl;}/************************************************ 功能描述:显示余额* 输入参数:/* 输出参数:money* 返回值:/* 其它说明://***********************************************/void User::showBalance(string prompt){    cout<<prompt<<money<<endl;}/************************************************ 功能描述:判断用户状态是否正常* 输入参数:/* 输出参数:用户所处的状态* 返回值:/* 其它说明://***********************************************/bool User::isNormalUser(){    bool normal = true;    if(status!=0)    {        normal = false;        cout<<"该账户处于"<<(status==1?"挂失":"销户")<<"状态,不能继续操作..."<<endl;    }    return normal;}


user.h

/************************************************************** 版权所有:(C)2015,烟台大学计算机与控制工程学院* * 文件名称:uesr.h* 文件标识:无* 内容摘要:User类中的函数声明* 其它说明:无* 当前版本:v1.0* 作者:曾晓* 完成日期:2015 7 17* * 修改记录:* 修改日期:* 版本号:v1.0* 修改人:曾晓* 修改内容:创建/***************************************************************/#ifndef USER_H_INCLUDED#define USER_H_INCLUDED#include <iostream>#include <cmath>using namespace std;class User{public:    User(){}    void setUser(int acc, string nam,char id[19],string add,char pho[13], int pw, double mon, int sta);    bool isNormalUser();    bool passwordIsRight();    void showName();    void showBalance(string prompt);    friend class Bank;private:    int account;    string name;    int password;    double money;    int status;    string address;    char phone[13];    char id_card[19];};#endif // USER_H_INCLUDED


staff.cpp

/************************************************************** 版权所有:(C)2015,烟台大学计算机与控制工程学院* * 文件名称:staff.cpp* 文件标识:无* 内容摘要:业务员的登录* 其它说明:无* 当前版本:v1.0* 作者:曾晓* 完成日期:2015 7 17* * 修改记录:/* 修改日期:/* 版本号:v1.0* 修改人:曾晓* 修改内容:创建/***************************************************************/#include <iostream>#include <cstdlib>#include <cmath>#include <fstream>#include "staff.h"using namespace std;/************************************************ 功能描述:业务员登录* 输入参数:staff.txt* 输出参数:业务员登录成功的提示* 返回值:judge* 其它说明://***********************************************/bool Staff::pass(string sacc,int ps){    bool judge=false;    fstream infile("staff.txt",ios::in);//´ò¿ªstaff.txt    if(!infile)    {        cerr<<"open error!"<<endl;        exit(1);    }    while(!infile.eof())    {        infile>>stafft.account>>stafft.password;        if(stafft.account==sacc&&ps==stafft.password)        {            judge=true;            break;        }    }    infile.close();    return judge;}


staff.h

/************************************************************** 版权所有:(C)2015,烟台大学计算机与控制工程学院* * 文件名称:staff.h* 文件标识:无* 内容摘要:业务员登录* 其它说明:无* 当前版本:v1.0* 作者:曾晓* 完成日期:2015 7 17* * 修改记录:/* 修改日期:/* 版本号:v1.0* 修改人:曾晓* 修改内容:创建/***************************************************************/#ifndef STAFF_H_INCLUDED#define STAFF_H_INCLUDED#include <iostream>#include <cmath>using namespace std;struct staffTatus{    string account;    int password;};class Staff{public:    bool pass(string sacc,int ps);private:    staffTatus stafft;};#endif // STAFF_H_INCLUDED


运行结果:

业务员登录:

开户:

存款:

取款:

查询:

转账:

 

挂失:

解挂:

改密:

业务查询:

 

总结心得:

在调试过程中,对这些五花八门的错误又有了新的认识,好多错误是之前没有见过的,这么大的程序只能一点一点的自己去调试,去找大神帮忙。其实还有很多功能没有实现,对用户界面的实现其实我是很有兴趣的,但是实在没时间去研究了。
0 0
原创粉丝点击