课程设计---银行储蓄系统

这是一个关于银行储蓄系统的课程设计项目,包括多个功能模块如用户登录、开户、销户、存款、取款等。代码分为多个文件组织,如main.cpp、bank.h、work.cpp等。项目提供了初始界面供用户交互,并实现了基本的银行业务操作。虽然项目略显简单,但作者表示会继续改进并反思拖延问题。
摘要由CSDN通过智能技术生成
/*
* Copyright (c) 2015, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作    者:黄
* 完成日期:2015 年  7  月  18 日
* 版 本 号:v1.0
*/

 

 

多文件重组:

 

银行系统之main.cpp

 

#include<iostream>
#include"bank.h"
using namespace std;
/*
主函数:
*/
int main()
{
    cout<<"+------------------------+"<<endl;
    cout<<"+                        +"<<endl;
    cout<<"+    Wecome To HJ Bank   +"<<endl;
    cout<<"+                        +"<<endl;
    cout<<"+------------------------+"<<endl;
    Bank b;
    if (pass())
    {
        b.work();
    }
    return 0;
}

 

 

 

 

 

银行系统之bank.h

 

#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 id,string add,string ph,int pw, double bal,int sta);
    void showName();
    void showBalance(string prompt);  //显示余额,前面加上提示词prompt
    bool passwordIsRight();   //校验密码,输入的密码正确则返回true
    bool isNormalUser();  //账户状态,处于正常状态时返回true,其他情形返回false并提示
    friend class Bank;   //将Bank声明为友元类,方便其访问数据成员
private:
    int account; //账号
    string name;   //用户名
    string idNumber;   //身份证号码
    string address;   //家庭住址
    string phone;   //手机号码
    int password;  //密码
    double balance;  //账户余额
    int status;  //状态 0-正常  1-挂失  2-销户
};
class Bank
{
public:
    Bank();  //开始前从文件中读数据,存在数组中
    ~Bank();   //程序结束前,将数组中的数据写入到文件中
    void work();  //业务驱动
    void openAccount(); //开户
    void cancelAccount();  //注销账户
    void save();   //存款
    void withdraw();   //取款
    void showAccount(); //查询账户
    void transferAccounts();  //转账
    void reportLoss();  //挂失
    void cancelLoss();  //解除挂失
    void updateInformation();   //更改信息
    int getUser();  //输入账号查询用户,返回用户在对象数组中的下标
private:
    int N;  //实际用户数目
    User users[upNum];
};
int pass();  //业务员登录
int chooseInMenu(); //显示菜单并由业务员选择
int inputPassword();   //返回键盘输入的密码

#endif // BANK_H_INCLUDED


银行系统之work.cpp

 

 

#include<iostream>
#include<fstream>
#include<cstring>
#include <cstdlib>
#include <conio.h>
#include <ctype.h>
#include"bank.h"
using namespace std;
/*
功能:验证用户密码
返回值:密码正确,返回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<<"输入错误,您还有"<<iTry<<"次机会!"<<endl;
            else
                cout<<"对不起,您不能进入系统!"<<endl;
        }
    }
    while(iTry);
    return right;
}
/*
关于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);清除输入缓存区
*/

/*
功能:显示菜单并由业务员选择
返回值:用户选择的功能࿰
一、系统设计的成果 系统设计阶段的成果归纳起来一般有 (点击这里观看“各开发环节之间的关系”动画演示): 1.系统总体结构图(包括总体结构图,子系统结构图,计算机流程图等)。 2.系统设备配置图(系统设备配置图: 主要是计算机系统图,设备在各生产岗位的分布图,主机、网络、终端联系图等)。 3.系统分布编码方案(分类方案、编码系统)。 4.数据库结构图(DB的结构,主要指表与表之间的结构,表内部结构(字段、域、数据字典等)。 5.HIPO图(层次化模块控制图、IPO图等等)。 6.系统详细设计方案说明书。 二、系统设计说明书的组成 1.引言 (1) 摘要 系统的目标名称和功能等的说明 (2) 背景 l 项目开发者 l 用户 l 本项目和其它系统或机构的关系和联系 (3) 系统环境与限制 l硬件、软件和运行环境方面的限制 l保密和安全的限制 l有关系统软件文本 l有关网络协议标准文本 (4) 参考资料和专门术语说明 2.系统设计方案 (1) 模块设计 l系统的模块结构图 l各个模块的IPO图(包括各模块的名称、功能、调用关系、局部数据项和详细的算法说明等) (2) 代码设计 l各类代码的类型、名称、功能、使用范围和使用要求等的设计说明书 (3) 输入设计 l输入项目 输入人员(指出所要求的输入操作人员的水平与技术专长,说明与输入数据有关的接口软件及其来源) l主要功能要求(从满足正确、迅速、简单、经济、方便使用者等方面达到要求的说明) l输入校验(关于各类输入数据的校验方法的说明) (4) 输出设计 l输出项目 l输出接受者 l输出要求(所用设备介质、输出格式、数值范围和精度要求等) (5) 文件(数据库)设计说明 l概述(目标、主要功能) l需求规定(精度、有效性、时间要求及其它专门要求) l运行环境要求(设备支撑软件,安全保密等要求) l逻辑结构设计(有关文件及其记录、数据项的标识、定义、长度和它们之间的关系) l物理结构设计(有关文件的存贮要求、访问方法、存贮单位、设计考虑和保密处理等) (6) 模型库和方法库设计(本系统所选用的数学模型和方法以及简要说明) (7) 安全保密设计 (8) 物理系统配置方案报告 l硬件配置设计 l通信与网络配置设计 l软件配置设计 l机房配置设计 (9) 系统实施方案及说明 l实施方案 l实施计划(包括工作任务的分解、进度安排和经费预算) l实施方案的审批(说明经过审批的实施方案概况和审批人员的姓名)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值