GithubHelp home page GithubHelp logo

sumikkys / atm-simulator Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 5.41 MB

基于 Qt 与 SQLite 的 ATM 柜员机模拟程序,本项目为四川大学软件学院2024夏实训个人项目。

QMake 2.99% C++ 97.01%

atm-simulator's Introduction

ATM 模拟程序

项目概述

这是一个基于 Qt 与 SQLite 的 ATM 柜员机模拟程序,提供了基本的 ATM 功能,包括账户登录、查询余额、取款、存款、转账、修改密码、开卡与销户, 用于模拟 ATM 的核心功能。本项目为四川大学软件学院2024夏实训个人项目。

功能

  1. 账户登录
    • 用户通过输入卡号和密码登录系统。
    • 初始卡号和密码为 123456
    • 登录失败时会提示用户密码或账号不存在。

loginWidget

  1. 主界面
    • 在最初登陆时余额将被隐藏,保护用户隐私。
    • 显示账户的当前余额。初始余额为 10000 元。
    • 点击各功能按钮前往各个功能模块。

mainWidget

  1. 存款
    • 用户可以存款,存款金额不能为负数。
    • 存款完成后会实时更新账户余额。

depositWidget

  1. 取款
    • 用户可以取款,每次取款金额必须是 100 的倍数。
    • 总取款金额不超过 5000 元。
    • 不允许透支。
    • 取款完成后会实时更新账户余额。

withdrawWidget

  1. 修改密码
    • 用户可以修改密码,新密码必须满足以下条件:
      • 长度为 6 位。
      • 不允许出现 6 位完全相同的情况。
      • 新密码必须与确认密码匹配。
      • 旧密码必须正确。

changePassword

  1. 转账:
    • 用户可以输入目标卡号和金额转账。
    • 转账后会实时更新用户余额。

transferWidget

  1. 开卡/销户:
    • 用户可以输入卡号与密码进行开卡/销户操作。
    • 开卡时卡号不允许重复。
    • 销户时指定卡号必须存在。
    • 密码必须与确认密码匹配。

credesWidget

类结构

classDiagram

  • AtmSystem: ATM 后端系统
  • MainWindow: ATM 前端处理模块
  • Account: 账户类
  • LoginWidget: 登陆模块
  • MainWidget: 主界面
  • DepositWidget: 存款模块
  • WithdrawWidget: 取款模块
  • ChangePasswordWidget: 修改密码模块
  • TransferWidget: 转账模块
  • AccountCreDesWidget: 开卡/销户模块

目录结构

directory

数据库结构

数据库使用 SQLite 搭建,具体结构为:

Accounts 表:

Accounts_table

字段 数据类型 约束
account_id INTEGER 主键,自动递增
card_number TEXT 唯一,不为空
hashed_password TEXT 不为空
balance INTEGER 不为空

编译和运行

  1. 编译

    • 确保已安装 Qt6 开发环境。
    • 使用 Qt Creator 打开项目。
    • 选择合适的构建配置(Debug 或 Release)。
    • 进行编译。
  2. 运行

    • 在 Qt Creator 中运行项目。
    • 启动应用程序并测试各项功能。

注意事项

  • 程序的初始卡号和密码为 123456
  • 账户余额在内部作为以分为单位的整型进行处理。
  • 密码修改功能要求密码长度正好为 6 位,且不允许出现 6 位完全相同的情况。

许可证

本项目使用 MIT 许可证 进行分发。

联系

如有任何问题或反馈,请通过 [email protected] 联系我。

atm-simulator's People

Contributors

sumikkys avatar

Stargazers

 avatar Echo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.