课程设计-银行储蓄系统

这篇博客详细介绍了进行银行储蓄系统课程设计的实现过程,包括主要的头文件ub.h,以及源代码文件main.cpp、bank.cpp、user.cpp和work.cpp的内容和功能。
摘要由CSDN通过智能技术生成

Headers:ub.h

 

/*
*版权所有:Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*
*文件名称:ub.h
*文件标识:无
*内容摘要:该代码用于获取满足后缀要求的第一个文件
*其他说明:类的定义
*当前版本:V1.0
*作    者:姜甜甜
*完成日期:2015年7月17日
*
*修改记录:
*修改日期:无
*版本号:V1.0
*修改人:姜甜甜
*修改内容:
*/
#ifndef UB_H_INCLUDED
#define UB_H_INCLUDED
using namespace std;

class User
{
private:
    int account;  //账号
    string name; //姓名
    int code;//密码
    double money;//存款
    int state;//状态  0-正常 1-挂失 2-销户
    string ID;//身份证号
    string address;//地址
public:

    void showName();
    void showMoney(string p);
    void showstate();
    bool pass();
    void set(int acc,string na,int co,double m,int sta,string id,string add);
    friend class Bank;
};
class Bank
{
public:
    Bank();
    ~Bank();
    void work();
    int getno(int acc);
    void openAccount(); //开户
    void cancelAccount();  //注销账户
    void save();   //存款
    void withdraw();   //取款
    void showAccount(); //查询账户
    void transferAccounts();  //转账
    void reportLoss();  //挂失
    void cancelLoss();  //解除挂失
    void changePassword();   //更改密码  */
private:
    static int N; //实际人数
    User *users=new User[2000];//指针数组
};
#endif // UB_H_INCLUDED

Sources:main.cpp

 

/*
*版权所有:Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*
*文件名称:main.cpp
*文件标识:无
*内容摘要:该代码用于获取满足后缀要求的第一个文件
*其他说明:无
*当前版本:V1.0
*作    者:姜甜甜
*完成日期:2015年7月17日
*
*修改记录:
*修改日期:无
*版本号:V1.0
*修改人:姜甜甜
*修改内容:
*/

#include <iostream>
#include"ub.h"
using namespace std;
bool text();
int main()
{
    cout<<"+----------------------+\n";
    cout<<"+   welcome to you!    +\n";
    cout<<"+----------------------+\n";
    if (text())
    {
        Bank b;
        b.work();
    }
    return 0;
}

bank.cpp

 

/*
*版权所有:Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*
*文件名称:bank.cpp
*文件标识:无
*内容摘要:该代码用于获取满足后缀要求的第一个文件
*其他说明:Bank类中成员函数的定义
*当前版本:V1.0
*作    者:姜甜甜
*完成日期:2015年7月17日
*
*修改记录:
*修改日期:无
*版本号:V1.0
*修改人:姜甜甜
*修改内容:
*/
#include<iostream>
#include<fstream>
#include<cstdlib>
#include <conio.h>
#include<cstring>
#include<string>
#include <stdio.h>
#include <time.h>
#include"ub.h"
using namespace std;
int Bank::N=0;
void getime();
int inputPassword();
int chooseInMenu();
/***********************
*功能描述:Bank构造函数
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:用构造函数读取文件中保存的账户信息
***********************/
Bank::Bank()
{
    ifstream infile("account.txt",ios::in);
    if(!infile)
    {
        cerr<<" gouzao open error!"<<endl;
        exit(1);
    }
    int i=0;
    int acc;   //账号
    string nam;   //姓名
    int co;   //密码
    double m;   //金额
    int sta;//状态
    string id;
    string add;
    while(infile>>acc>>nam>>co>>m>>sta>>id>>add)   //当读取成功……
    {
        users[i].set(acc,nam,co,m,sta,id,add);
        i++;
    }
    N = i; //用静态数据成员
    infile.close();
}
/***********************
*功能描述:Bank析构函数
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:在退出系统时,将数据保存到文件中
***********************/
Bank::~Bank()
{
    ofstream outfile("account.txt",ios::out);
    if(!outfile)    //测试文件打开操作是否成功,不成功则提示后退出。
    {
        cerr<<"xigou open error!"<<endl;
        exit(1);
    }
    int i;
    for(i=0; i<N; i++)
    {
        outfile<<users[i].account<<" ";
        outfile<<users[i].name<<" ";
        outfile<<users[i].code<<" ";
        outfile<<users[i].money<<" ";
        outfile<<users[i].state<<" ";
        outfile<<users[i].ID<<" ";
        outfile<<users[i].address<<"\n";
    }
    outfile.close();
}
/***********************
*功能描述:操作系统
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
***********************/
void Bank::work()
{
    int iChoice;   //用于选择系统功能
    do
    {
        iChoice = chooseInMenu();  //从菜单中获得功能代码
        switch(iChoice)
        {
        case 1:
            openAccount(); //开户
            break;
        case 2:
            cancelAccount();  //注销账户
            break;
        case 3:
            save();  //存款
            break;
        case 4:
            withdraw();   //取款
            break;
        case 5:
            showAccount(); //查询余额
            break;
        case 6:
            transferAccounts();  //转账
            break;
        case 7:
            reportLoss();  //挂失
            break;
        case 8:
            cancelLoss();  //解除挂失
            break;
        case 9:
            changePassword();   //更改密码
            break;
        case 0:
            cout<<"欢迎您再来. "<<endl;
        }
    }
    while(iChoice);
}
/***********************
*功能描述:开户
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
***********************/
void Bank::openAccount()
{
    cout<<"正在开户\n";
    if(N==2000)
    {
        cout<<"银行账户已满,退出!\n";
        return;
    }
    int acc=10001+N;
    cout<<"账号:"<<acc;
    cout<<"\n户主姓名:";
    string name,ID,address;
    cin>>name;
    int code1,code2;
    cout<<"密码    :";
    code1=inputPassword();
    cout<<"确认密码:";
    cod
目录 1 问题定义 2 2 可行性研究 2 2.1 项目概述 2 2.2 可行性分析的前提 2 2.2.1 项目的目标 2 2.2.2 项目的环境 3 2.3 可选的方案 3 2.3.1 方案一 3 2.3.2 方案二 3 2.4 所建议的系统 3 2.4.1 系统说明 3 2.4.2 系统流程图 3 2.4.3 高级数据流图 4 2.5 经济可行性 5 5 5 5 2.6技术可行性 6 2.7 操作可行性 6 3 需求分析 6 3.1 需求概述 6 3.2 需求模型 6 3.2.1 数据模型 6 3.2.2 功能模型 8 3.2.3 行为模型 9 3.2.4 数据字典 10 4 总体设计 11 4.1 系统体系结构 11 4.2 模块详细说明 12 4.3 数据库设计 13 5 详细设计 14 5.1 人机界面设计 14 5.2 过程设计 17 6 测试 18 6.1 白盒测试 18 6.2黑盒测试 19 7 结论 19 8参考文献 20 9 附录 20 9.1程序代码 20 1 问题定义 账户管理是银行业务流程过程中十分重要且必备的环节之一,在银行业务流程当中起 着承上启下的作用,其重要性不言而喻。但是,目前许多银行在具体的业务流程处理过程 中仍然使用手工操作的方式来实施,不仅费时、费力,效率低下,而且无法达到理想的效 果。本文针对上述问题,采用软件工程的开发原理,依据软件流程过程规范,按照需求 分析、概要设计、详细设计、程序编码、测试、软件应用、软件维护等过程开发了一个 银行账户管理系统。采用VSC++作为开发工具,数据库设计遵循3范式,主要设计了用户 基本信息表、用户卡信息表、ATM取款机基本信息表、用户银行存款信息表、管理系统的 用户口令表、银行系统的用户信息表等数据表。解决了银行系统中存在的数据安全性、 数据一致性以及系统运行速度等问题。 系统实现的主要有账户管理、取款机管理、用户查询等功能; *账户管理模块:存款、取款、开户、销户、修改信息、办卡、挂失卡; *用户查询模块; *取款机信息管理模块:管理员管理查询和维护、客户查询和取款等功能; 通过该银行账户管理系统地运行,是办公人员可以轻松快捷的完成对账户管理的任务 ,提高账目管理效率,使银行的账目管理工作系统化、规范化、自动化。 该银行账目管理信息系统,优点是设计过程思路清晰、模块划分简洁,设计个阶段分 工明确。经过实践证明,该划分是合理的,极大地提高了本系统的实现。 2 可行性研究 2.1 项目概述 某银行计算机储蓄系统的工作流程大致如下:储户填写的存款单或取款单由业务员键 入系统,如果是存款则系统记录存款人的姓名、住址(或电话号码)、身份证号码、存 款类型、存款日期、到期日期、利率及密码(可选)等信息,完成后由系统打印存款单 给储户。 如果是取款,而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时 未留密码,则系统计算利息并印出利息清单给储户。 2.2 可行性分析的前提 2.2.1 项目的目标 所建议系统的开发目标包括: 人力与设备费用的减少及合理利用; 处理速度的提高及准确度的保证; 人员利用率的改进及合理调度; 改进管理和服务。 建立高效的信息传输和服务平台,提高信息处理速度和利用率等等。 a. 用系统的高速特性来节省大量的人力,并且能够极大程度上简化操作人员的工作,使得 操作人员只需要做简单的输入输出以及对于本系统的管理就可以简便的完成自己的工 作; b. 将人工计算的部分更改为系统运算处理极大的提升了速度,这样就提高了工作效率,也 极大程度缩短了用户的等待时间,这样可以提高银行在行业中的竞争力。 c. 利用计算机的系统优势,可以弥补人工作业时的出错率高的缺陷,使得每一笔业务都能 最大限度避免核实以及复工。 d. 利用计算机大容量存储数据库的模式来完成记录的存储,这样在工作中可以及时查证任 意一条记录。 2.2.2 项目的环境 采用WindowsXP操作系统MySQL先进的数据库系统,JSP技术,采用B/S框架。 2.3 可选的方案 2.3.1 方案一 通过与银行熟练业务员进行深入讨论,制定详细用户调查问卷,真正了解用户以及银 行业务员的实际需求,根据业务员提供的信息以及问题定义再综合调查问卷中用户提出 的意见进行改进。最终确定项目需要解决的问题,并确定问题能不能被解决。 2.3.2 方案二 项目的另一种实现方案是直接购买现有的计算机储蓄系统。但银行业是个对安全性要 求很高的行业,如果选用现有计算机储蓄系统,有可能会使得未公开的漏洞对本银行造 成冲击,需要承担更高的安全风险;为适应该系统有可能需要更改现有存款系统的数据 结构,转换成本高;软件授权方式的差异可能导致系统开销更高。 2.4 所建议的系统 2.4.1 系统说明 系统架构为星状架构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值