C++项目实战银行信息管理系统分析及其实现
Posted xioacd99
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++项目实战银行信息管理系统分析及其实现相关的知识,希望对你有一定的参考价值。
写这个项目呢,一方面是给小同学做C++练习,另一方面也是准备数据库大作业(Web的以前玩过所以这次想玩玩QT)。为了兼顾两者,所以最终就定了个基于文件管理的版本。
哈哈哈,QT的版本等验收之后再发(虽然我还没开始写)当然,如果不追求美感的话,加个SQL连接就完工了。
老规矩,先上语雀的美丽链接
https://www.yuque.com/u12549703/vtvtgv/ny150b
一、 功能分析
这里我们把本项目没有实现但可以扩展实现的功能用()表示,大家可以自行魔改。本项目重在方便大家练习C++语言,因此也可以考虑增加数据库、安全模块等来使项目更加贴近真正的情况。
银行通过账户Account来管理用户,而用户一般来说有开户(银行卡号唯一性,同一用户最大开户数量限制)、注销(权限设置)、存钱(理财产品的利率)、取钱、查看信息(权限设置)、(登录验证)、修改信息这几大基本功能。
仿照很多ATM机上的页面,我们也应当有一个欢迎页面和主菜单。综上,针对银行信息管理系统的基本功能分析就完成了
- 欢迎页面
- 主菜单
- 新建用户
- 存钱
- 取钱
- 查看信息(用户)
- 查看信息(管理员)
- 注销账户
- 修改账户信息
二、 结构定义
本着尽量简单的原则,数据管理我们采用“文件”的方式(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++项目实战银行信息管理系统分析及其实现的主要内容,如果未能解决你的问题,请参考以下文章