程序设计实训:银行储蓄系统

头文件:bank.h

/*
*版权所有:Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*
*文件名称:bank.h
*文件标识:无
*内容摘要:该代码用于获取满足后缀要求的第一个文件
*其他说明:无
*当前版本:V1.0
*作    者:徐洪祥
*完成日期:2015年7月17日
*/
#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 acc,string nam,string idn,double phnu,string add,int pw,double bal,int sta);//赋值
    void showuser();//显示名字
    void showbalance(string prompt);//显示余额
    bool passwordright();//验证密码
    bool staisnor();//验证状态,处于正常状态时返回true,其他情形返回false并提示
    friend class Bank;//将Bank声明为友元类,方便其访问数据成员
private:
    int account;//账户
    string name;//姓名
    string idnumber;//身份证号
    double phonenumber;//电话号码
    string address;//地址
    int password;//密码
    double balance;//余额
    int status;//状态 0-正常  1-挂失  2-销户
};
class Bank
{
public:
    Bank();//构造函数
    ~Bank();//析构函数
    void work();//业务驱动
    void openacc();//开户
    void cancelacc();//销户
    void save();//存款
    void withdraw();//取款
    void showacc();//查询余额
    void transferacc();//转账
    void reloss();//挂失
    void cancelloss();//解除挂失
    void repassword();//更改密码
    int getuser(); //输入账号查询用户,返回用户在对象数组中的下标
private:
    int num; //实际的用户数目
    User users[upnum];
};
int inputpassword();//输入密码
int pass();//业务员
int choosemenu();//服务列表


#endif // BANK_H_INCLUDED

主函数:main.cpp

/*
*版权所有:Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*
*文件名称:main.cpp
*文件标识:无
*内容摘要:该代码用于获取满足后缀要求的第一个文件
*其他说明:无
*当前版本:V1.0
*作    者:徐洪祥
*完成日期:2015年7月17日
*/
#include <iostream>
#include "bank.h"
using namespace std;
int main()
{
    cout<<"+----------------------+\n";
    cout<<"+    徐氏银行欢迎您    +\n";
    cout<<"+----------------------+\n";
    if(pass())
    {
        Bank b;
        b.work();
    }
    return 0;
}
基础函数:work.cpp

/*
*版权所有:Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*
*文件名称:work.cpp
*文件标识:无
*内容摘要:该代码用于获取满足后缀要求的第一个文件
*其他说明:无
*当前版本:V1.0
*作    者:徐洪祥
*完成日期:2015年7月17日
*/
#include <iostream>
#include <fstream>
#include <conio.h>
#include <cstdlib>
#include <cstring>
#include <ctype.h>
#include "bank.h"
using namespace std;
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;
}
/*
功能:验证用户密码
返回值:密码正确,返回1;
        不能通过密码验证,返回0
*/
int pass()
{
    char namefile[20]; //由文件中读出的业务员用户名
    char passfile[20]; //文件中保存的密码,这一版本中,用字符保存密码
    ifstream infile("password.txt",ios::in);
    if(!infile)
    {
        cout<<"password.txt open error."<<endl;
        exit(1);
    }
    infile>>namefile>>passfile;
    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[
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值