C++项目实战银行信息管理系统分析及其实现

Posted xioacd99

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++项目实战银行信息管理系统分析及其实现相关的知识,希望对你有一定的参考价值。

写这个项目呢,一方面是给小同学做C++练习,另一方面也是准备数据库大作业(Web的以前玩过所以这次想玩玩QT)。为了兼顾两者,所以最终就定了个基于文件管理的版本。

哈哈哈,QT的版本等验收之后再发(虽然我还没开始写)当然,如果不追求美感的话,加个SQL连接就完工了。

老规矩,先上语雀的美丽链接
https://www.yuque.com/u12549703/vtvtgv/ny150b

一、 功能分析

这里我们把本项目没有实现但可以扩展实现的功能用()表示,大家可以自行魔改。本项目重在方便大家练习C++语言,因此也可以考虑增加数据库、安全模块等来使项目更加贴近真正的情况。

银行通过账户Account来管理用户,而用户一般来说有开户(银行卡号唯一性,同一用户最大开户数量限制)、注销(权限设置)、存钱(理财产品的利率)、取钱、查看信息(权限设置)、(登录验证)、修改信息这几大基本功能。

仿照很多ATM机上的页面,我们也应当有一个欢迎页面和主菜单。综上,针对银行信息管理系统的基本功能分析就完成了

  1. 欢迎页面
  2. 主菜单
  3. 新建用户
  4. 存钱
  5. 取钱
  6. 查看信息(用户)
  7. 查看信息(管理员)
  8. 注销账户
  9. 修改账户信息

二、 结构定义

本着尽量简单的原则,数据管理我们采用“文件”的方式(data.dat),对于用户信息的操作我们采取面向对象设计的思想,通过类来实现。

用户类的定义如下

class Account 
public:
    void createANewAccount();
    void showInformationNonFormat() const;
    void showInformationFormat() const;
    void modifyAccount();
    void saveMoney(int amount);
    void drawMoney(int amount);
    int getAcno() const;
    int getDeposit() const;
    char getType() const;

private:
    int acno;
    char name[NAME_SIZE];
    int deposit;
    char type;
;

三、 交互设计

其实不用说,大家也能自己完成第一步和第二步。但是对于如何完成一个完整的程序却没有思路,这就是我们要谈的交互设计。

对于本项目,我们如何实现信息之间的交互呢?通过上面的分析,我们的主要思想是“文件”和“类”,因此我们要实现的就是文件和类之间的信息联系。有人可能会说了,文件的数据是静态的,那一条条放着的怎么和类的具体对象联系起来?总不可能我设置一个超大的对象数组or有什么文件到对象的引用吧。

这里提一个非常简单的处理方法(当然有其他更优雅的方法),把数据一条条从文件里读出来,如果满足你的处理要求,就利用这条数据构建一个account对象object。然后利用成员函数对Account对象object进行操作,操作完成后再将这个object的数据写回文件(覆盖掉原来那条记录)

因此,按照这种思路,我们还需要在类和文件之间有一些连接的桥梁——试想一下这种情况,你想要取钱,首先需要从文件中把一条条数据读出来进行比较,至少是10+lines,如果没有这些桥梁,那代码耦合的会特别强。还会出现很多其他问题(如这个功能建立文件指针的值另一个功能直接当做初始值用了、一个main几百行看着就头大)

这里与功能分析相对应,我们设计了这些“桥梁”

void welcome();
void mainmenu();
void turnToOperation(char choice);
void addRecordToDB();
// true for save money&false for draw
void saveOrDrawMoney(int acno,bool choice);  
void outputOneUserInformation(int acno);
void outputDBInformation();
void deleteAccount(int acno);
void modifyAccount(int acno);

四、 运行截图

------------------------------------------------------------------图.操作主菜单 --------------------------------------------------------------

----------------------------------------------------------图.功能5:展示全部用户信息 --------------------------------------------------

五、 具体实现

要运行程序,请把下面的几个文件放在同一个文件夹里,多文件编译。同时,请新建一个名为data.dat的文件用于存储信息。

Full source code: https://github.com/xioacd99/bankInformationManageSystem

以上是关于C++项目实战银行信息管理系统分析及其实现的主要内容,如果未能解决你的问题,请参考以下文章

c++课程实训 银行储蓄系统

实战丨商业银行信息系统自动化运维的研究与实践

C++项目实战:基于多态的职工管理系统(源码)

分析一下银行的储蓄系统的数据库由哪些表组成及其应用程序和管理系统

基于SSM框架的JAVA银行大厅自助信息系统

求解C++模拟银行排队问题