ATM管理系统(三)
一、作业信息
| 博客班级 | |
|---|---|
| 作业要求 | 作业要求 |
| 作业目标 | 你理解的作业目标具体内容 |
| 学号 | 3180701218 |
二、题目要求
编写一个ATM管理系统,语言不限,要求应包括以下主要功能:
(1)开户,销户
(2)查询账户余额
(3)存款
(4)取款
(5)转账(一个账户转到另一个账户)等...
三、代码
这次作业用SQL sever+VS2019写的,主要想复习一下去年学的SQL语言,再熟悉熟悉VS2019编写环境。
1、SQL代码
(1)首先建立ATM数据库和银行账户信息表masge,信息表存有用户的姓名、银行卡号、身份证号、电话、密码、余额等信息。
create database ATM
create table masge
(
name char(10) not null--姓名,
id char(18) primary key--身份证号,
cnode char(19) not null unique--银行卡号,
cal char(11) not null unique--电话号码,
code char(50) not null,--这里银行卡和注册密码一样
balance int--余额
)
go
(2)ATM管理系统需要实现开户、注销、查询、存款、取款、转账等功能,这里都使用存储过程来实现。
①开户
用户输入姓名、身份证号、银行卡号、电话号码、密码,并判断该用户是否已注册。其中result和msg是存储过程的输出变量,result是布尔变量,用作开户是否成功的标志;msg是字符串变量,存放开户是否成功的信息。
create proc login
@name char(10),
@id char(18),
@cnode char(19),
@cal char(11),
@code char(50),
@result bit out,
@msg char(200) out
as
begin
if exists(select id from masge where id=@id)begin
select @result=0,@msg='用户已存在!'
end else begin
begin try
insert into masge(name,id,cnode,cal,code)
values(@name,@id,@cnode,@cal,@code)
end try
begin catch
select @result=0,@msg=error_message()
end catch
end
end
go
②注销
create proc logout
@id char(18)
as
begin
delete
from masge
where id=@id
end
go
③查询
create proc inquire
@id char(18),
@balance int output
as
begin
select @balance=balance from masge where id=@id
end
go
④存款
create proc saves
@id char(18),
@balance int
as
begin
update masge
set balance=balance+@balance
where id=@id
end
go
⑤取款
create proc withdraw
@id char(18),
@m int
as
begin
update masge
set balance=balance-@m
where id=@id
end
go
⑥转账
这里使用了事务,若用户身份证号输入错误,事务回滚转,不执行账操作;如果用户操作正确,继续执行。
create proc transfer
@id char(18),
@id_ char(18),--被转的账户
@m int,
@result bit out,
@msg char(200) out
as
begin
begin tran --开始事务
begin try
if not exists(select * from masge where id=@id_)begin
select @result=0,@msg='用户不存在'
end else begin
update masge
set balance=balance-@m
where id=@id
update masge
set balance=balance+@m
where id=@id_
select @result=1,@msg=''
end
end try
begin catch
select @result=0,@msg=error_message()
end catch
if(@result=0)begin
rollback tran --执行出错,回滚事务
end else begin
commit tran --没有异常,提交事务
end
end
go
⑦登录
create proc logon
@id char(18),
@code char(50),
@result bit out,--返回值
@msg char(200) out--返回信息
as
begin
begin try
if not exists(select id from masge where id=@id)begin
select @result=0,@msg='用户不存在!'
end else if not exists(select * from masge where code=@code and id=@id)begin
select @result=0,@msg='密码错误!'
end else begin
select @result=1,@msg=''
end
end try
begin catch
select @result=0,@msg=error_message()
end catch
end
go
2、VS2019连接SQL数据库
VS2019连接SQL数据库,以及相关的网页项目操作,这里就不多说了,感兴趣的话可以看看下面up主的视频
SQL Server项目实战
四、运行截图
①登录与注册




②查询

③存款

④取款

⑤转账

⑥注销

五、psp表格
| psp2.1 | 任务内容 | 计划完成需要的时间(min) | 实际完成需要的时间(min) |
| Planning | 计划 | 10 | 10 |
| Estimate | 估计这个任务需要多少时间, 并规划大致工作步骤 |
10 | 5 |
| Development | 开发 | 100 | 120 |
| Analysis | 需求分析(包括学习新技术) | 12 | 5 |
| Design Spec | 生成设计文档 | 5 | 10 |
| Design Review | 设计复审 | 5 | 5 |
| Coding Standard | 代码规范 | 3 | 2 |
| Design | 具体设计 | 10 | 20 |
| Coding | 具体编码 | 36 | 50 |
| Code Review | 代码复审 | 5 | 7 |
| Test | 测试(自我测试,修改代码,提交修改) | 10 | 20 |
| Reporting | 报告 | 9 | 6 |
| Test Report | 测试报告 | 3 | 2 |
| Size Measurement | 计算工作量 | 2 | 1 |
| Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 3 | 3 |
六、总结
功能不太完善,由于时间原因,该系统只能检测用户是否存在,没有判断输入的银行卡号和该人信息是否符合;
操作繁琐,该系统是在web窗体执行的,ASP.net项目中,点击Button,就会发生页面刷新,之前定义的全局变量的值就会消失,因此用户登录时输入的身份证号无法保存,用户进行查询、转账等操作时需要频繁输入身份证号。
ATM管理系统(三)的更多相关文章
- 个人作业三——ATM管理系统
一 作业信息 博客班级 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/ 作业要求 https://edu.cnblogs.com/campus/a ...
- ATM管理系统
一.题目要求 编写一个ATM管理系统,语言不限,要求应包括以下主要功能: (1)开户,销户 (2)查询账户余额 (3)存款 (4)取款 (5)转账(一个账户转到另一个账户)等 二.代码提交 开户 pu ...
- IntelliJ IDEA14.0.3+Maven+SpringMVC+Spring+Hibernate光速构建Java权限管理系统(三)
注册登录 --利用简单的编写注册登录系统来打通从前端到后台的数据传输路径. 一.建立数据库.基本表 基本环境:mysql5,7.Navicat for MySQL11.0.9企业版. 我们在本地MyS ...
- 基于VUE实现的新闻后台管理系统-三
开始coding啦 ¶分析项目 根据展示效果我们可以分析出,Web页面有两个,一个用于登录,一个用于系统内容控制,我们分别将其命名为Login和Cms,然后进行路由配置. 在src/page下新建Lo ...
- 用Backbone.js创建一个联系人管理系统(三)
原文: Build a Contacts Manager Using Backbone.js: Part 3 欢迎回到这系列的教程,关注使用Backbone.js构建应用程序. 如果你还没看过第一,二 ...
- step by step 之餐饮管理系统三
1.说明 表名的长度最长为18个字符 茶色的字段为主键或联合主键 浅黄色的字段为索引 浅灰底色的字段为临时表中比正式表多出的字段 数据库系统:Sqlserver2008 脚本工具:使用CodeGene ...
- 基于Quartz.net的远程任务管理系统 三
在上一篇中,已经把服务端都做好了.那接下来就是Web的管理端了,因为很多时候服务器是有专门的运维来管理的,我们没有权限去操作,所以有个可以管理Job的工具还是很有必要的. Web管理端,我选择现在很成 ...
- 新闻cms管理系统(三) ------菜单管理
1.前期准备工作 (1)模板介绍 添加菜单的模板页面 菜单管理首页: 添加菜单页面: (2)公共类引入介绍 公共函数文件的引入(位置: Application/Admin/Controller/Com ...
- Django 练习班级管理系统三 -- 分页
在 user_manager 项目下创建一个 python package:utils,里面创建一个 page.py 文件 page.py 文件内容为: # 创建一个 PagerHelper 类 cl ...
随机推荐
- Redis入门之认识redis(一)
第1章 非关系型数据库 1.1 NoSQL数据库概述 1) NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",泛指非关系型的数据库. NoSQL 不 ...
- CSDN的Markdown编辑器实用技巧(傻瓜式教程)
markdown编辑器被很多人声称是可以取代word的文字编辑器,其优点我们在这就不再过多赘述了,但对于一些初次接触的人来说,或多或少都有还些不适应,其主要原因在于一些常见的功能突然不知道怎么实现,所 ...
- vue中上拉加载数据的实现
获取屏幕高度来判断数据的加载 效果是这样的
- Spring Boot注解与资源文件配置
date: 2018-11-18 16:57:17 updated: 2018-11-18 16:57:17 1.不需要多余的配置文件信息 application.properties mybatis ...
- 常用物联网应用层协议(1)——先说HTTP协议
概念 简介 HTTP是一个属于应用层的面向对象的协议,目前使用最为广泛的是HTTP1.1协议.当然,许多网站已经开始支持HTTP2.0,HTTP2复杂度高于HTTP1.1,我们先从HTTP1.1说起. ...
- 隐马尔科夫模型 HMM(Hidden Markov Model)
本科阶段学了三四遍的HMM,机器学习课,自然语言处理课,中文信息处理课:如今学研究生的自然语言处理,又碰见了这个老熟人: 虽多次碰到,但总觉得一知半解,对其了解不够全面,借着这次的机会,我想要直接搞定 ...
- 使用 IDEA 查看 JDK8 源码
使用 idea 查看 oracle jdk 8 源码时发现 Unsafe 没有源码. 解决方法: 到 openjdk-8 下载页面:http://jdk.java.net/java-se-ri/8-M ...
- Flask简介与启动服务器
Flask 一.简介 官方文档:http://flask.pocoo.org/ http://www.pythondoc.com/flask/index.html(中文) 1.概述 flask是一个非 ...
- 通过一个很常用的场景来展示vue数据驱动的应用
需求:可以动态增减组合条件来进行数据查询. 界面运行效果如下图所示: 界面第一次加载时,默认会显示一个空的查询条件,如下图所示: 点击"加"图标,可以无限增加查询条件,也可以点击& ...
- Java集合(类)框架(三)
1. Map集合 相较于List和Set集合而言,Map集合所储存的数据为双列行,数据是以key和value为一个单位进行存储的,如在建立一个学生Map的时候,其中的数据应为 学号-姓名(key-va ...