ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-04-08 14:57:26  阅读:163  来源: 互联网

标签:实战 文件 const acno int void 用户 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

标签:实战,文件,const,acno,int,void,用户,C++,信息管理系统
来源: https://blog.csdn.net/xioacd/article/details/115519718

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有