银行储蓄系统(C++课程实训博客电子报告)

<pre class="cpp" name="code">/******************************************************
*版权所有(c)2015.烟台大学计算机与控制工程学院
*
*文件名称:main.cpp
*文件标示:无
*内容摘要:该代码用于满足后缀要求的第一个文件
*其他说明:无
*当前版本:V1.0
*作者:李长鸿
*完成日期:2015.7.17
*
*修改记录:
*修改日期:
*版本号:V1.0
*修改人:
*修改内容:
*********************************************************/
#include <iostream>
#include<cstring>
#include<cstdlib>
#include<fstream>
#include<ctype.h>
#include"BU.h"
using namespace std;
/******************
*功能描述:主函数
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:无
******************/
int main()
{
    cout<<"--------------------------"<<endl;
    cout<<"      欢迎光临CSDN银行    "<<endl;
    cout<<"--------------------------"<<endl;
    Bank b;
    if(pass())//业务员登录
    {
        b.Work();//业务员开始工作
    }
    return 0;
}
 

 

/************************************************
*版权所有(c)2015.烟台大学计算机与控制工程学院
*
*文件名称:BU.h
*文件标示:无
*内容摘要:该代码用于满足后缀要求的第一个文件
*其他说明:无
*当前版本:V1.0
*作者:李长鸿
*完成日期:2015.7.17
*
*修改记录:
*修改日期:
*版本号:V1.0
*修改人:
*修改内容:
/************************************************/
#ifndef BU_H_INCLUDED
#define BU_H_INCLUDED
#include<cstring>
using namespace std;
/*************************
*     User类的声明
***************************/
const int maxUser=2000;
class Bank;
class User//用户类
{
    string idnumber;//身份证号
    string address;//地址
    int account;//顺序号
    int number; //账户名
    string name;//户主名
    int password;//密码
    double leftmoney;//余额
    int condition;//账户状态,1为正常,2为销户,3为挂失
public:
    User(string idnu,string add,int nu,string na,int pass,double lef,int cond);
    void Show();//显示开户相关个人信息
    bool Provepassword();//验证密码
    bool Condition();//账户状态
    friend class Bank;//将Bank类声明为友元类

};
/*************************
*    Bank类的声明
*************************/
class Bank//银行类
{
    static int n;
    User *user[maxUser]={NULL};//组合,User类为数据成员;指针数组,用小空间的指针数组灵活处理大空间的对象集合
public:
    Bank();//用文件写出初始化
    ~Bank();//文件读入保存数据
    void Work();//决定办什么业务
    void Search(int nu);//查询余额及账户状态
    void Save(int nu);//存钱
    void Take(int nu);//取钱
    void Openoccount();//开户
    void Canceloccount(int nu);//销户
    void Transferaccount(int nu);//转账
    void Changepass(int nu);//改密码
    void Loss(int nu);//挂失
    void Removel(int nu);//解挂
};
/***********************
*  业务员登录函数的声明
************************/
int pass();  //业务员登录
/**************************
*输入密码函数的声明
***************************/
int inputPassword();   //返回键盘输入的密码
#endif // BU_H_INCLUDED


 

/************************************************
*版权所有(c)2015.烟台大学计算机与控制工程学院
*
*文件名称:User.cpp
*文件标示:无
*内容摘要:该代码用于满足后缀要求的第一个文件
*其他说明:无
*当前版本:V1.0
*作者:李长鸿
*完成日期:2015.7.17
*
*修改记录:
*修改日期:
*版本号:V1.0
*修改人:
*修改内容:
/************************************************/
#include<iostream>
#include<cstring>
#include<cstdio>
#include"BU.h"
using namespace std;
/********************************************************************************************
*功能描述:构造函数,对象的初始化
*输入参数:身份证号,住址,账号,户主名,六位数字密码,余额,状态:1.正常;2.销户;3.挂失
*输出参数:无
*返回值:无
*其他说明:无
**********************************************************************************************/
User::User(string idnu,string add,int nu,string na,int pass,double lef,int cond)
{
    idnumber=idnu;
    address=add;
    number=nu;
    name=na;
    password=pass;
    leftmoney=lef;
    condition=cond;
}
/********************************************
*功能描述:显示个人信息
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:无
*********************************************/
void User::Show()//显示开户时的个人及账户信息
{
    if(condition!=2)//销户的用户不能显示信息
    {
        cout<<"户主名: "<<name<<endl<<"住址为:"<<address<<endl<<"顺序号: ";
        cout<<account<<endl<<"账户名: "<<number<<endl<<"身份证号: "<<idnumber<<endl;
    }
}
/********************************************
*功能描述:密码的验证
*输入参数:无
*输出参数:无
*返回值:bool型的
*其他说明:无
*********************************************/
bool User::Provepassword()//验证密码
{
    int pass;
    int i=0;
    int j;
    while(i++<3)//最多能输入三次密码
    {
        cout<<"请输入密码"<<endl;
        pass=inputPassword();//输入六位数的密码
        if(pass==password)
            return 1;
        if((3-i)>0)//错误输入不足三次,给予提示,继续输入
        {
            cout<<"密码错误,你还有"<<3-i<<"次机会"<<endl<<"继续请输入1,退出请输入2;";
            cin>>j;
            if(j==2)return 0;//放弃输入密码,返回失败信息
        }
    }
    if(j==1)//三次都输入错误密码,锁定银行卡
    {
        cout<<"密码输入错误三次!您的银行卡已被锁定!请带上您的身份证,联系银行工作人员解决。"<<endl;
        return 0;//返回密码输入失败信息
    }
}
/********************************************
*功能描述:状态的判断
*输入参数:无
*输出参数:无
*返回值:bool型的
*其他说明:无
*********************************************/
bool User::Condition()//账户状态的判断
{
    if(condition!=1)
    {
        cout<<"此账户已被"<<(condition==2?"销户":"挂失")<<",不能对它进行操作"<<endl;//若非正常,给予提示
        return 0;
    }
    return 1;
}


 

/************************************************
*版权所有(c)2015.烟台大学计算机与控制工程学院
*
*文件名称:Bank.cpp
*文件标示:无
*内容摘要:该代码用于满足后缀要求的第一个文件
*其他说明:无
*当前版本:V1.0
*作者:李长鸿
*完成日期:2015.7.17
*
*修改记录:
*修改日期:
*版本号:V1.0
*修改人:
*修改内容:
************************************************/
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<fstream>
#include<ctype.h>
#include"BU.h"
using namespace std;
/********************************************************************
*功能描述:用构造函数读取文件中保存的用户数据复制给用户类指针数组
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:无
**********************************************************************/
int Bank::n=0;
Bank::Bank()//构造函数读取文件中的数据
{
    int i=0;
    ifstream infile("acc.txt",ios::in);
    if(!infile)//测试文件打开操作是否成功,不成功则提示后退出。
    {
        cout<<"文件输出有误"<<endl;
        exit(1);
    }
    string idnu,add;
    string na;
    int nu,c,p;
    double l;
    while(infile>>idnu>>add>>nu>>na>>p>>l>>c)//从文件中读出数据
    {
        user[i]=new User(idnu,add,nu, na,p,l,c);//给指针数组赋值
        ++i;
        user[i-1]->account=i;
    }
    n=i;
    infile.close();
}
/********************************************************************************************
*功能描述:用析构函数将数组中的数据保存到文件中
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:acc保存的是没有顺序号的数据,保证顺利下次顺利运行,account保存的是用户所有数据
**********************************************************************************************/
Bank::~Bank() //保存数据至文件中
{
    ofstream outfile("account.txt",ios::out);//account.txt中保存的数据是加入了顺序号,我是用顺序号而不是账户号来正确查找数组的数据的
    if(!outfile)    //测试文件打开操作是否成功,不成功则提示后退出。
    {
        cerr<<"file account.txt open error!"<<endl;
        exit(1);
    }
    int i;
    for(i=0; i<n; i++)//用循环将数据写入文件中
    {
        if(user[i]!=NULL)//若未销户,则写入文件,即删除已销户用户
        {
            outfile<<user[i]->idnumber<<"  ";
            outfile<<user[i]->address<<"  ";
            outfile<<user[i]->account<<"  ";
            outfile<<user[i]->number<<"  ";
            outfile<<user[i]->name<<"  ";
            outfile<<user[i]->password<<"  ";
            outfile<<user[i]->leftmoney<<"  ";
            outfile<<user[i]->condition<<endl;
        }
    }

    outfile.close();
    ofstream outputfile("acc.txt",ios::out);//更新acc.txt中的数据,保存成功操作后的数据并使下次顺利读取
    for(i=0; i<n; i++)//用循环将数据写入文件中
    {
        if(user[i]!=NULL)//若未销户,则写入文件,即删除已销户用户
        {
            outputfile<<user[i]->idnumber<<"  ";
            outputfile<<user[i]->address<<"  ";
            outputfile<<user[i]->number<<"  ";
            outputfile<<user[i]->name<<"  ";
            outputfile<<user[i]->password<<"  ";
            outputfile<<user[i]->leftmoney<<"  ";
            outputfile<<user[i]->condition<<endl;
        }
        delete user[i];//释放空间
    }
    outputfile.close();
}
/******************************
*功能描述:选择并办理相办业务
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:无
******************************/
void Bank::Work()//决定办什么业务
{
    int i=1;
    int N;//我是用序号,即用户数组的下标N-1来找对应的用户信息
    while(1)//业务员结束对一个用户的操作后若不选择退出,可继续对另一客户进行操作,而不用重启程序
    {
        cout<<endl;
        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<<"请输入操作指令:";
        cin>>i;
        if(i==4)//一开始就开户的话无需已有用户
            Openoccount();
        else//对已有用户进行操作
        {
            cout<<"请输入本次操作户主的顺序号:";
            cin>>N;
            while(N>n||N<1)//输入的顺序号错误,没有此用户,若不退出,则一直到输入正确的顺序号才进行下一步操作
            {
                cout<<"输入有误,此用户不存在,请仔细检查。若要继续,请输入1,退出请输入2;";
                int j;
                cin>>j;
                if(j==1)
                {
                    cout<<"请输入顺序号:";
                    cin>>N;
                }
                else
                    break;
            }
            if(n>=N>0)//排除选择退出引起的混乱
                if(user[N-1]->Provepassword())//密码的验证
                    while(i!=0)//只要不选择退出,就一直对此用户进行操作
                    {
                        if(i>0 && i<11)
                        {
                            switch(i)
                            {
                            case 1:
                                Search(N-1);
                                break;
                            case 2:
                                Save(N-1);
                                break;
                            case 3:
                                Take(N-1);
                                break;
                            case 4:
                                Openoccount();
                                break;
                            case 5:
                                Canceloccount(N-1);
                                break;
                            case 6:
                                Transferaccount(N-1);
                                break;
                            case 7:
                                Changepass(N-1);
                                break;
                            case 8:
                                Loss(N-1);
                                break;
                            case 9:
                                Removel(N-1);
                                break;
                            case 10:
                                user[N-1]->Show();
                                break;
                            }
                        }
                        else
                            cout<<"请重新选择功能"<<endl;//若输入的数字不在选项中,重新输入
                        if(user[N-1]==NULL)//若进行销户操作后,则不再对此用户进行操作
                        {
                            break ;
                        }
                        cout<<endl;
                        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<<"请输入操作指令:";
                        cin>>i;
                    }
        }
        cout<<"已结束对此用户的操作!"<<endl;//已完成一位用户的所有要求
        cout<<"要关闭操作请输入1,继续请输入除1之外的任意键:";//就像是选择“下班”还是”继续工作“
        cin>>i;
        if(i==1)
            break;
    }
}
/********************************************
*功能描述:查询余额或是账户状态
*输入参数:用户在数组中的下标,即顺序号-1
*输出参数:无
*返回值:无
*其他说明:无
*********************************************/
void Bank::Search(int nu)
{
    if(user[nu]->condition!=2)//状态正常的账户才能进行此操作
    {
        cout<<"查询余额请输入1,查询状态请输入2:";//查询余额和账户状态的选择
        int i;
        cin>>i;
        while(i!=1&&i!=2)//输入的选择数字有误
        {
            cout<<"输入有误,继续查询请按1,取消请输入2,请再次输入:";
            int j;
            cin>>j;
            if(j==1)
                cin>>i;
            else break;
        }
        if(i==1)//查询余额
            cout<<"账户余额为:"<<user[nu]->leftmoney<<endl;
        else//状态的查询
        {
            if(user[nu]->condition==1)
                cout<<"您的账户一切正常。"<<endl;
            else if(user[nu]->condition==2)
                cout<<"您已销户,此账户为无效账户。"<<endl;
            else cout<<"您的账户已办理挂失。"<<endl;
        }
    }
    else cout<<"此账户已销户,不能进行查询操作"<<endl;
}
/********************************************
*功能描述:存款
*输入参数:用户在数组中的下标,即顺序号-1
*输出参数:无
*返回值:无
*其他说明:无
*********************************************/

void Bank::Save(int nu)//存款
{
    if(user[nu]->Condition())//状态正常的账户才能进行此操作
    {
        cout<<"请输入存款金额:(元)";
        int m;
        cin>>m;
        cout<<"成功存款 "<<m<<" 元"<<endl;
        user[nu]->leftmoney+=m;//成功存入m元
    }

}
/********************************************
*功能描述:取款
*输入参数:用户在数组中的下标,即顺序号-1
*输出参数:无
*返回值:无
*其他说明:无
*********************************************/
void Bank::Take(int nu)//取款
{
    if(user[nu]->Condition())//状态正常的账户才能进行此操作
    {
        cout<<"请输入取款金额:(元)";
        int m;
        cin>>m;
        while(m>user[nu]->leftmoney)
        {
            cout<<"余额不足,继续取款请输入1,退出此操作请输入2;";
            int j;
            cin>>j;
            if(j==1)
            {
                cout<<"请输入取款金额:  ";
                cin>>m;
            }
            else if(j==2)
            {
                m=0;
                break;
            }
            else
                while(j!=1&&j!=2)
                {
                    cout<<"输入有误,继续取款请按1,取消取款请按2:请再次输入正确的数字:";
                    cin>>j;
                }
        }
        cout<<"成功取款 "<<m<<" 元"<<endl;
        user[nu]->leftmoney-=m;
    }

}
/********************************************
*功能描述:开户
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:账号时系统自动连续生成的,状态自动为1
*********************************************/
void Bank::Openoccount()
{
    int i=0;
    ++n;
    if(n>maxUser)
    {
        cout<<"对不起,人数已满,不能再开户,请您到其他银行办理此业务,我们对因此给您带来的麻烦表示由衷的歉意。"<<endl;
    }
    else
    {
        string idnu,add;
        int acc;
        int nu;   //账号
        string na;   //姓名
        int pass;   //密码
        double lef;   //金额
        int cond=1;   //状态
        cout<<"正在开户"<<endl;
        nu=user[n-2]->number+1;
        cout<<"账号:"<<nu<<endl;
        cout<<"户主姓名:";
        cin>>na;
        cout<<"身份证号:";
        cin>>idnu;
        cout<<"住址为:";
        cin>>add;
        cout<<"请输入开户密码:";
        pass=inputPassword();
        cout<<"请再次确认密码:";
        int p1;
        p1=inputPassword();
        while(p1!=pass)
        {
            cout<<"两次密码不一致!!"<<endl;
            cout<<"返回请输入1,继续请输入其他"<<endl;
            cin>>i;
            if(i==1)
                break;
            cout<<"请您再次设立密码,请注意两次密码应一致:";
            pass=inputPassword();
            cout<<"请再次确认密码:";
            p1=inputPassword();
        }
        if(i!=1)
        {
            cout<<"请输入开户金额:";
            cin>>lef;
            user[n-1]=new User(idnu,add,nu,na,pass,lef,cond);
            user[n-1]->account=n;
            cout<<"开户成功,请注意牢记并保护好您的个人信息,防止钱财丢失。"<<endl;
        }
    }
}
/******************************************************************
*功能描述:销户
*输入参数:用户在数组中的下标,即顺序号-1
*输出参数:无
*返回值:无
*其他说明:销户后,状态为2且清除此用户的数据,保存数据至文件时,清除用户
*******************************************************************/
void Bank::Canceloccount(int nu)
{
    if(user[nu]->Condition())//状态正常的账户才能进行此操作
    {
        int j=1;
        while(user[nu]->leftmoney>0)//余额不为零不能销户
        {
            cout<<"您目前还有余额:"<<user[nu]->leftmoney<<"元,请先取出所有余额后再销户。"<<endl;
            cout<<"继续销户请按1,取消销户请按2:";
            cin>>j;
            while(j!=1&&j!=2)
            {
                cout<<"输入有误,继续销户请按1,取消销户请按2:请再次输入正确的数字:";
                cin>>j;
            }
            if(j==1)
            {
                cout<<"请取出全部余额"<<endl;
                Take(nu);
            }
            else break;
        }
        if(j==1)
        {
            user[nu]->condition=2;
            cout<<"销户成功,即将结束本次操作。"<<endl;
            user[nu]= {NULL};
        }
    }
}
/********************************************
*功能描述:转账
*输入参数:用户在数组中的下标,即顺序号-1
*输出参数:无
*返回值:无
*其他说明:无
*********************************************/
void Bank::Transferaccount(int nu)
{

    if(user[nu]->Condition())//状态正常的账户才能进行此操作
    {
        cout<<"请输入转入账户的序号:";
        int i,j=1,k;
        cin>>i;
        while(i>n+1||i<1)//判断对方账户是否存在
        {
            cout<<"此账户不存在,继续输入账号请输入1,退出此操作请输入2;";
            cin>>j;
            if(j==1)
            {
                cout<<"请输入转入账户序号:  ";
                cin>>i;
            }
            else break;
        }
        if(j==1)//对方账户存在
        {
            cout<<"请输入转账金额:(元)";
            int m;
            cin>>m;
            while(m>user[nu]->leftmoney)//转出金额必须小于等于用户账户余额
            {
                cout<<"余额不足,重新输入转账金额请输入1,退出此操作请输入2:";
                cin>>k;
                while(k!=1&&k!=2)
                {
                    cout<<"输入有误,继续转账请按1,取消转账请按2:请再次输入正确的数字:";
                    cin>>k;
                }
                if(k==1)

                {
                    cout<<"请输入转账金额 :";
                    cin>>m;
                }
                else
                {
                    m=0;
                    break;
                }
            }
            cout<<"成功转账 "<<m<<" 元"<<endl;
            user[i-1]->leftmoney+=m;//对方账户转入m元
            user[nu]->leftmoney-=m;//此用户转出m元
        }
    }
}
/********************************************
*功能描述:改密
*输入参数:用户在数组中的下标,即顺序号-1
*输出参数:无
*返回值:无
*其他说明:无
*********************************************/
void Bank::Changepass(int nu)
{
    if(user[nu]->Condition())//状态正常的账户才能进行此操作
    {
        int p1,p2;
        cout<<"请输入原密码:";
        if(user[nu]->Provepassword())//输入密码
        {
            cout<<"请输入新密码:";
            p1=inputPassword();
            cout<<"请再次确认新密码: ";
            p2=inputPassword();//输入六位数的密码
            if(p1!=p2)
            {
                cout<<"两次密码不一致,改密失败"<<endl;
            }
            else
                cout<<"改密成功,请牢记并保护好您的新密码。"<<endl;
        }
    }
}
/********************************************
*功能描述:挂失
*输入参数:用户在数组中的下标,即顺序号-1
*输出参数:无
*返回值:无
*其他说明:挂失后状态代号为3
*********************************************/
void Bank::Loss(int nu)
{
    if(user[nu]->Condition())//状态正常的账户才能进行此操作
    {
        user[nu]->condition=3;
        cout<<"挂失成功"<<endl;
    }
}
/********************************************
*功能描述:解挂
*输入参数:用户在数组中的下标,即顺序号-1
*输出参数:无
*返回值:无
*其他说明:解挂后账户代号为1;
*********************************************/
void Bank::Removel(int nu)
{
    if(user[nu]->condition==3)//状态为挂失的账户才能进行解挂操作
    {
        user[nu]->condition=1;//解挂成功,状态为正常
        cout<<"解挂成功"<<endl;
    }
    else if(user[nu]->condition==1)cout<<"此卡未被挂失,无需解挂。"<<endl;
    else cout<<"此账户已被销户,不能解挂"<<endl;
}
/************************************************
*版权所有(c)2015.烟台大学计算机与控制工程学院
*
*文件名称:work.cpp
*文件标示:无
*内容摘要:该代码用于满足后缀要求的第一个文件
*其他说明:无
*当前版本:V1.0
*作者:李长鸿
*完成日期:2015.7.17
*
*修改记录:
*修改日期:
*版本号:V1.0
*修改人:
*修改内容:
/************************************************/
#include <iostream>
#include <fstream>
#include <conio.h>
#include <cstdlib>
#include <cstring>
#include <ctype.h>
#include "BU.h"
using namespace std;
/*
功能:验证用户密码
返回值:密码正确,返回1;
        不能通过密码验证,返回0
*/
/********************************************
*功能描述:业务员登录
*输入参数:无
*输出参数:无
*返回值:登陆的结果,成功为1,失败为0
*其他说明:无
*********************************************/
int pass()
{
    char sNameInFile[20];   //由文件中读出的业务员用户名
    char sPassInFile[20];  //文件中保存的密码,这一版本中,用字符保存密码
    ifstream infile("password.txt",ios::in);
    if(!infile)
    {
        cout<<"password file cannot open!"<<endl;
        exit(1);
    }
    infile>>sNameInFile>>sPassInFile;
    infile.close();

    char sName[20];   //业务员登录时输入的用户名
    char sPass[20];  //业务员登录时输入的密码
    char ch;
    int iTry=3;   //进入系统时尝试的次数
    int right = 0;  //要返回的结果:0-不正确 1-正确

    //进入系统,密码三次不对将退出
    do
    {
        cout<<"请输入业务员用户名:";
        cin>>sName;
        cout<<"请输入密码:";
        int i=0;
        while((ch=getch())!='\r')  //getch在接受输入后,不在屏幕上显示
        {
            sPass[i++]=ch;
            putchar('*');   //接受任何字符,屏幕上只显示*
        }
        sPass[i]='\0';
        fflush(stdin);
        cout<<endl;;
        if(strcmp(sPass,sPassInFile)==0&&strcmp(sName,sNameInFile)==0)
        {
            right = 1;
            break;
        }
        else
        {
            iTry--;
            if(iTry>0)
                cout<<"超过3次将退出,你还可以尝试"<<iTry<<"次!"<<endl;
            else
            {
                cout<<"对不起,你不能进入系统"<<endl;;
            }
        }
    }
    while(iTry);
    return right;
}
/********************************************
*功能描述:输入密码
*输入参数:无
*输出参数:无
*返回值:六位数的数字密码,且不全为0
*其他说明:无
*********************************************/
int inputPassword()
{
    int ch;  //接收数字形式密码
    int i, Pass=0;
    while(1)
    {
        for(i=0; i<6; i++)
        {
            ch=getch()-'0';  //输入但不显示
            putchar('*');   //输出*
            if(ch>9||ch<0)//非数字字符退出循环,i<6
                break;
            else Pass=Pass*10+ch;
        }
        fflush(stdin); //清除键盘缓存区中已经有的输入
        cout<<endl;
        if(Pass==0||i<6)  //6位全0后Pass=0,或输入了非数字字符退出转换成密码的循环
        {
            cout<<"密码要求全为数字,且不能全0!"<<endl;
            cout<<"请重新输入密码: ";
        }
        else
            break;
    }
    return Pass;
}
/*
关于getch()的一点说明:
所在头文件:conio.h
函数用途:从控制台读取一个字符,但不显示在屏幕上
函数原型:int getch(void)
返回值:读取的字符
在不同平台,输入回车,getch()将返回不同数值,而getchar()统一返回10(即\n)
1)windows平台下ENTER键会产生两个转义字符 \r\n,因此getch返回13(\r)。
2)unix、 linux系统中ENTER键只产生 \n ,因此getch返回10(\n)。
3)MAC OS中ENTER键将产生 \r ,因此getch返回13(\r)。
为避免键盘缓存区中未读出的字符影响程序,用fflush(stdin);清除输入缓存区
*/

acc.txt:

运行截图:

业务员登录失败

成功登陆及查询

存款

取款

新用户开户

老用户开户

转账

改密

挂失及查询

解挂及显示个人信息

销户

account.txt

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值