MySQL银行ATM存取款机系统(需求分析)
银行ATM需求文档
一.E-R图形文

二.开发步骤
1.明确需求--数据库设计--编码实现功能--测试
2.绘制e-r图--绘制数据库模型图--使用三大方式规范数据库结构
三.开发思路
1. 模型图综述
模型图描述了ATM机使用时的状态变化,包含登录、查询、存款、取款、转账、改密、业务选择界面状态,登录可以转向业务选择界面,其它状态则可以和业务选择界面相互转移。
2.系统功能
1) 开户(到银行填写开户申请单,卡号自动生成)
2) 取款
3) 存款
4) 挂失
5) 修改密码
6) 催款提醒
7) 统计查询银行业务信息
8) 转账
3.模型图的状态描述
(1)登录:用户登陆ATM系统,入口动作为插卡,密码错误时,重新输入密码。
(2)业务选择界面:用户登陆ATM系统后系统显示的主界面,以供用户进行择业务操作,入口动作为选择业务操作。
(3)存款:入口动作为选择存款业务,中间动作为放入现金,出口动作为发送存款结果。
(4)取款:入口动作为选择取款义务,中间动作为取出现金,出口动作为发送取款结果。
(5)转账:入口动作为选择转账业务,中间动作为输入目标账户、输入转账金额和账户,出口动作为发送转账结果。
(6)改密:入口动作为选择改密业务,中间动作为输入两次新密码,出口动作为发送改密结果,两个新密码不同或新旧密码相同则重新输入
(7)查询:入口动作为选择查询业务,出口动作为发送账户信息。
4. 模型图的状态转移描述
(1)登录到业务选择界面,条件是输入的密码正确。
(2)业务选择界面到取款、存款、转账、改密、查询,条件是选择了对应的业务。
(3)存款、取款、转账、改密、查询到业务选择界面,条件是对应业务结束。
5.数据库设计
1) 创建用户
用户信息表;银行卡信息表;交易信息表;存款类型表;
2) 添加约束
l 用户信息表约束
顾客编号为主键;开户名必填;身份证号必填,只能是18位或15位,身份证号唯一约束;
l 银行卡信息表约束
卡号必填,主键,银行的卡号规则和电话号一样一般前8位代表特殊含义;
货币必填,默认为人民币;
开户日期必填,默认为系统日期;
开户金额必填不低于一元;
余额必填,不低于一元否则将销户;
密码必填,6位数字,默认为6个8;
是否挂失必填,0或1,默认为零未挂失;
顾客编号必填表示该卡对应的顾客编号,一位顾客可以办理多张卡;
l 交易信息表约束
交易日期必填默认为系统当前日期;
卡号必填外键可重复索引;
交易金额必填,大于0;
交易日期必填默认为系统当前日期;
备注可选输入其他说明;
l 存款类型表
存款类型号,自动编号从1开始,主建;
存款类型名称,必填;
描述可空;
3) 插入测试数据
4) 模拟常规业务
5) 创建使用客户友好信息视图
使用事务完成存储或取款业务
MySQL银行ATM存取款机系统(需求分析)的更多相关文章
- mysql的ATM存取款机系统
##建库 CREATE DATABASE bankDB; ##客户信息表 CREATE TABLE userInfo ( customerID INT PRIMARY KEY AUTO_INCREME ...
- 数据库期末作业之银行ATM存取款机系统
--一.建库.建表.建约束 --1.使用SQL创建表 --客户信息表userinfo --字段名称 说明 备注 --customerID 顾客编号 自动编号(标识列),从1开始,主键 --用序列seq ...
- 银行ATM存取款系统(C语言实现)
这里使用的运行工具是DEV C++.老铁们一定要看仔细了.是DEV C++ 仅供借鉴:这个是大一时期写的.大四的时候整理了一下(本人C语言学的也不太好).肯定很多不足和存在漏洞的地方.仅供借鉴.仅供借 ...
- 语言模拟ATM自动取款机系统
C语言实验报告 题目名称:C语言模拟ATM自动取款机系统 C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输入: ...
- 实验01——java模拟银行ATM系统
用java写的一个模拟银行系统,比较初级. ATM.java package cn.tedu.yinhang; import java.util.Scanner; /** * @author 赵瑞鑫 ...
- C#实现ATM自动取款机
本篇用C#实现ATM自动取款机的一些功能.面临的第一个问题是:如何把与自动取款机相关的有形的.无形的方面抽象出来.大致如下: (1)关于用户帐号的类:Account(2)关于银行数据库的类:BankD ...
- 银行ATM机工作流程模拟编程
[编程内容] 编程,模拟一个ATM(Automatic Teller Machine,自动取款机)的工作流程.依据帐户信息:姓名.帐号.密码.余额,完成ATM机功能:登录.显示余额.取款.修改密码. ...
- 银行ATM机工作流程模拟编程(代码)
#include<stdio.h>#include<stdlib.h>#include <conio.h>#include <string.h> voi ...
- Factom(公证通)--基于区块链的存证系统
Factom这个Solution在2014年的时候就已经推出了,现在已经2018年了,我才来写这一篇分析文章可能有些迟了,但是它是十分具有参考价值的.因为现阶段来开区块链虽然炒得火热--养猫.养狗.草 ...
随机推荐
- MySQL主从数据库配置与原理
1.为什么要搭建主从数据库 (1)通过增加从库实现读写分离,提高系统负载能力 (2)将从库作为数据库备份库,实现数据热备份,为数据恢复提供机会 (3)根据业务将不同服务部署在不同机器同时又共享相同的数 ...
- 2019-2020-1 20199329《Linux内核原理与分析》第十三周作业
<Linux内核原理与分析>第十三周作业 一.本周内容概述 通过重现缓冲区溢出攻击来理解漏洞 二.本周学习内容 1.实验简介 注意:实验中命令在 xfce 终端中输入,前面有 $ 的内容为 ...
- 2019-2020-1 20199329《Linux内核原理与分析》第四周作业
<Linux内核原理与分析>第四周作业 一.上周问题总结: 虚拟机环境缺少部分库文件 书本知识使用不够熟练 二.本周学习内容: 1.实验楼环境使用gdb跟踪调试内核 1.1 在该环境下输入 ...
- Python带你做个愉快的"动森"玩家! (超简单代码)
最近Switch上的<动物森友会>可谓是炙手可热,它几乎算是任天堂版的<模拟人生>了,它的最新游戏<集合啦!动物森友会>(以下称“动森”)在发售后,取得了不错的媒体 ...
- mac OS Apache Tomcat 启动/停止服务
进入Tomcat下的bin目录 启动Tomcat命令 ./startup.sh Tomcat 默认端口 8080 停止Tomcat服务命令 ./shutdown.sh 执行tomcat ./shutd ...
- python 类C数组的两种形式:list -->内容可变, tuple --->内容不可变
python 中的列表相当与 C 中的数组,列表:list 初始化使用[ ], 元组:tuple 初始化使用(): 一.列表list 1 #!/usr/bin/python 2 3 #list初 ...
- canvas 绘图api的位置问题
很久没碰canvas了,今天因为canvas绘图的为之问题浪费了一些时间. 我们知道canvas的默认宽高是300X150嘛. 实际使用的时候当然是自定义一个高宽啦. 通常我们会习惯性地在js中通过c ...
- vue无法自动打开浏览器
原文链接: 点我 如果不能自动打开浏览器,是因为没有安装插件. 插件安装的方法1.安装插件,在cmd中输入: $ npm i open-browser-webpack-plugin --save这里的 ...
- 数学--数论--hdu 6216 A Cubic number and A Cubic Number (公式推导)
A cubic number is the result of using a whole number in a multiplication three times. For example, 3 ...
- swipe 滑动操作
1.swipe() 滑动用法 swipe(self, start_x, start_y, end_x, end_y, duration=None) :Args: - start_x - 开始滑动的x坐 ...