银行储蓄系统

该博客详细介绍了银行储蓄系统的代码实现,包括main.cpp、bank.h、work.cpp、user.cpp和bank.cpp等多个文件的组织结构和功能。通过屏幕截图展示了各部分代码,并且提到了编译成功以及运行结果。此外,还展示了文件在运行前后的数据变化,特别是业务员的文件内容变化情况。整体内容聚焦于实训项目中所有相关文件的详解。
摘要由CSDN通过智能技术生成

多文件组织代码:

main.cpp

/**********************************************
*版权所有 (C)2015,HaoJunyu
*文件名称:main.cpp
*文件标识:无
*内容摘要:主函数,进入银行界面
*其他说明:无
*当前版本:v1.0
*作    者:郝俊宇
*完成日期:20150715
*
*修改记录1:无
*修改日期:无
*版本号:v1.0
*修改人:HaoJunyu
*修改内容:无
************************************************/
#include <iostream>
#include "bank.h"
using namespace std;
/***********************************************
*功能描述:主函数,进入银行界面,开始工作
*输入参数:无
*输出参数:无
*返回值:0
*其他说明:无
***********************************************/
int main()
{
    cout<<"+----------------------+"<<endl;
    cout<<"+   欢迎光临CSDN银行   +"<<endl;
    cout<<"+----------------------+"<<endl;
    if(pass())//pass()密码正确返回1,错误返回0
    {
        Bank b;//建立一个对象
        b.work();//开始工作
    }
    return 0;
}

屏幕截图:


bank.h

/**********************************************
*版权所有 (C)2015,HaoJunyu
*文件名称:bank.h
*文件标识:无
*内容摘要:银行类和用户类,还有业务员登录,显示菜单,由键盘输入密码等普通函数
*其他说明:无
*当前版本:v1.0
*作    者:郝俊宇
*完成日期:20150715
*
*修改记录1:
*修改日期:20150716
*版本号:v1.0
*修改人:HaoJunyu
*修改内容:修改对象指针数组
************************************************/
#ifndef BANK_H_INCLUDED
#define BANK_H_INCLUDED
#include <cstring>
using namespace std;
const int upNum=2000;//系统最多容纳的用户
class Bank;
class User
{
public:
    void setUser(int a,string n,int p,string ID,string address,double b,int s);//输入用户信息
    void showName();//显示姓名
    void showBalance();//显示余额
    bool passwordisright();//判断密码是否正确,正确返回true
    bool isnormaluser();//判断用户账号是否正常,正常返回true
    friend class Bank;
private:
    int account;//账号
    int password;//密码
    string name;//名字
    string ID;//身份证号
    string address;//家庭住址
    double balance;//余额
    int status;//状态 0-正常,1-开户,2-销户
};
class Bank
{
public:
    Bank();//从文件中读取数据
    ~Bank();//将数据存到文件中
    void work();//登录
    void openaccount();//开户
    void closeaccount();//销户
    void addmoney();//存款
    void cutmoney();//取款
    void showaccount();//查询
    void transfraccount();//转账
    void reportofloss();//挂失
    void cancelofloss();//解挂
    void changepassword();//改密
    int getUser();//输入账号查询用户,返回用户在数组中的下标

private:
    int N;//实际的用户数目
    User *users[upNum];//对象指针数组
};
int pass();//业务员登录
int choosemenu();//显示菜单,选择业务
int inputpassword();//键盘输入密码
#endif // BANK_H_INCLUDED


屏幕截图:

work.cpp

/**********************************************
*版权所有 (C)2015,HaoJunyu
*文件名称:work.cpp
*文件标识:无
*内容摘要:业务员登录银行系统,从文件中读取业务员的信息,登录后的菜单显示,输入密码等功能
*其他说明:无
*当前版本:v1.0
*作    者:郝俊宇
*完成日期:20150715
*
*修改记录1:无
*修改日期:无
*版本号:v1.0
*修改人:HaoJunyu
*修改内容:无
************************************************/
#include <iostream>
#include <fstream>
#include <conio.h>//使用getch()
#include <cstdlib>
#include <cstring>
#include <ctype.h>//使用isdigit(ch),字符串处理
#include "bank.h"
using namespace std;
/***********************************************
*功能描述:业务员登录
*输入参数:输入业务员姓名,密码
*输出参数:如果密码正确将显示菜单,三次密码错误将退出
*返回值:密码正确返回1,错误返回0
*其他说明:从文件中读取业务员信息,判断从文件中输出的业务员信息和业务员输入的信息是否相同,密码输错三次将退出
***********************************************/
int pass()//业务员登录
{
    char ynameinfile[20];//由文件读取业务员姓名
    char ypasswordinfile[20];//文件中保存的业务员的密码
    ifstream infile("password.txt",ios::in);
    if(!infile)
    {
        cout<<"password file can not open!"<<endl;
        exit(1);
    }
    infile>>ynameinfile>>ypasswordinfile;
    infile.close();
    char yname[20];//业务员登录是输入的用户名
    char ypassword[20];//业务员登录时输入的密码
    char ch;
    int itry=3;//进入系统后可尝试输入密码的次数
    int right=0;//要返回的结果0-不正确1-正确
    //密码输错三次将退出
    do
    {
        cout<<"请输入业务员用户名:";
        cin>>yname;
        cout<<"请输入密码:";
        int j=0;
        while((ch=getch())!='\r')//输入字符不显示在屏幕上
        {
            ypassword[j++]=ch;
            putchar('*');//每输入一个字符,显示一个*
        }
        ypassword[j]='\0';
        fflush(stdin);//为避免键盘缓存区中未读出的字符影响程序,清除输入缓存区
        cout<<endl;
        if(strcmp(ypassword,ypasswordinfile)==0&&strcmp(yname,ynameinfile)==0)
        {
            right=1;
            break;//用户名和密码正确,退出程序,返回1
        }
        else
        {
            itry--;
            if(itry>0)
            {
                cout<<"用户名或密码错误!"<<endl;
                cout<<"输错三次将退出,你还可以尝试"<<itry<<"次!"<<endl;
            }
            else
                cout<<"对不起,密码输错三次,你不能进入系统!"<<endl;
        }
    }
    while(itry);
    return right;

}
/***********************************************
*功能描述:选择菜单
*输入参数:输入要操作功能的序号
*输出参数:无
*返回值&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值