Skip to content

Simple & Lightweight CLI bank system, based on ncurses.

License

Notifications You must be signed in to change notification settings

carm-outsource/bankbase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BankBase

基于SQLite数据库的加密银行账户管理系统。

设计

基于课题要求,当开发银行存取款管理系统时,我们需要考虑系统的可靠性、安全性和易用性。最终确定开发一款“基于SQLite数据库的加密银行账户管理系统”。

首先,将系统划分为多个模块,如用户管理、账户管理、交易管理等,每个模块负责不同的功能,有利于代码的组织和维护。

其次是开发环境的选择。C语言是系统编程和底层开发的首选语言之一,具有高效性和跨平台性,适用于开发需要高性能和资源控制的系统。 SQLite是一种轻量级的数据库管理系统,易于集成和部署,适用于小型项目。使用SQLite可以方便地进行数据存储和管理,而且无需额外的数据库服务器。

对于用户登录,采用银行卡号和密码的方式进行身份验证。这种方式简单直接,并且与实际银行系统类似,用户容易理解和接受。 而对用户和管理员的密码采用BCrypt等安全哈希算法进行加密存储。这样做可以保护用户的密码安全,即使数据库泄露,也不会暴露用户的明文密码。

每个银行账户都有状态,如正常、挂失、注销等。通过管理账户状态,可以保障用户资金的安全,及时响应用户的挂失和注销请求。 而对于每笔存取款和转账操作,都需要记录到交易记录中。这样做可以实现账户资金流向的追踪和审计,帮助用户和管理员了解账户的操作情况。

在程序中需要加入充分的错误处理机制,如输入验证、异常处理等,以确保系统的稳定性和健壮性。 而控制台界面应该设计简洁明了,用户和管理员可以轻松理解和操作。在提示信息和交互过程中,应该提供清晰的指导,避免用户迷失和误操作。

综上所述,本项目开发的整体思路是为了打造一个安全可靠、易用高效的银行存取款管理系统,满足用户和管理员的日常需求,保障账户资金的安全和流动。

模块

数据库管理模块(database)

该模块负责与SQLite数据库交互,包括执行SQL语句、连接数据库、关闭数据库连接等操作。 通过封装数据库操作函数,提供给其他模块调用。使用SQLite的C语言API进行数据库管理,包括打开/关闭数据库、执行查询/更新语句等。

用户管理模块(user)

该模块负责处理用户登录、密码验证、密码修改等操作。 分方法提供用户登录和密码管理函数,包括验证用户身份、修改密码等。在密码验证时,先通过银行卡号查询数据库获取加密后的密码,然后与用户输入的密码进行比对。

管理员管理模块(admin)

该模块负责处理管理员登录、账户管理、账户状态管理等操作。 分方法提供管理员登录和账户管理函数,包括创建账户、更新账户信息、挂失账户、注销账户等。在进行账户状态管理时,需要先验证管理员身份,然后进行相应操作。

账户管理模块(account)

该模块负责处理银行账户的创建、更新、查询等操作。 分方法提供账户管理函数,包括创建账户、更新账户信息、查询账户信息等。在更新账户信息时,需要先验证账户的存在和合法性,然后根据用户输入更新相应字段。

交易管理模块(transaction):

该模块负责处理存款、取款、转账等交易操作,并记录交易历史。 提供了存款、取款、转账等交易函数,包括更新账户余额、记录交易历史等。在每笔交易完成后,需要将交易信息写入数据库中以便查询和追踪。

用户界面模块(main):

该模块负责提供初始的控制台界面,方便用户进行交互。 通过在控制台显示菜单选项,并根据用户输入调用相应模块的函数。在执行功能时,逐步引导用户输入所需信息,并在完成操作后显示相应的结果。

开发

本项目依赖于 SQLiteBCrypt,因此在构建和运行之前,请确保您的系统已安装相关的开发库。

本项目使用 CLion IDE 开发,通过 CMake 进行构建,因此您需要安装 minGW-w64 和 CMake 才可正常编译开发。

开源许可证

此项目的源代码采用 GNU 通用公共许可证 v3.0

支持

万分感谢 JetBrains 慷慨地为我提供免费许可证,以便我在此和其他开源项目上工作。

About

Simple & Lightweight CLI bank system, based on ncurses.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published