一、作业信息

博客班级

软件工程

作业要求 作业要求
作业目标 你理解的作业目标具体内容
学号 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管理系统(三)的更多相关文章

  1. 个人作业三——ATM管理系统

    一 作业信息 博客班级 https://edu.cnblogs.com/campus/ahgc/AHPU-se-JSJ18/ 作业要求 https://edu.cnblogs.com/campus/a ...

  2. ATM管理系统

    一.题目要求 编写一个ATM管理系统,语言不限,要求应包括以下主要功能: (1)开户,销户 (2)查询账户余额 (3)存款 (4)取款 (5)转账(一个账户转到另一个账户)等 二.代码提交 开户 pu ...

  3. IntelliJ IDEA14.0.3+Maven+SpringMVC+Spring+Hibernate光速构建Java权限管理系统(三)

    注册登录 --利用简单的编写注册登录系统来打通从前端到后台的数据传输路径. 一.建立数据库.基本表 基本环境:mysql5,7.Navicat for MySQL11.0.9企业版. 我们在本地MyS ...

  4. 基于VUE实现的新闻后台管理系统-三

    开始coding啦 ¶分析项目 根据展示效果我们可以分析出,Web页面有两个,一个用于登录,一个用于系统内容控制,我们分别将其命名为Login和Cms,然后进行路由配置. 在src/page下新建Lo ...

  5. 用Backbone.js创建一个联系人管理系统(三)

    原文: Build a Contacts Manager Using Backbone.js: Part 3 欢迎回到这系列的教程,关注使用Backbone.js构建应用程序. 如果你还没看过第一,二 ...

  6. step by step 之餐饮管理系统三

    1.说明 表名的长度最长为18个字符 茶色的字段为主键或联合主键 浅黄色的字段为索引 浅灰底色的字段为临时表中比正式表多出的字段 数据库系统:Sqlserver2008 脚本工具:使用CodeGene ...

  7. 基于Quartz.net的远程任务管理系统 三

    在上一篇中,已经把服务端都做好了.那接下来就是Web的管理端了,因为很多时候服务器是有专门的运维来管理的,我们没有权限去操作,所以有个可以管理Job的工具还是很有必要的. Web管理端,我选择现在很成 ...

  8. 新闻cms管理系统(三) ------菜单管理

    1.前期准备工作 (1)模板介绍 添加菜单的模板页面 菜单管理首页: 添加菜单页面: (2)公共类引入介绍 公共函数文件的引入(位置: Application/Admin/Controller/Com ...

  9. Django 练习班级管理系统三 -- 分页

    在 user_manager 项目下创建一个 python package:utils,里面创建一个 page.py 文件 page.py 文件内容为: # 创建一个 PagerHelper 类 cl ...

随机推荐

  1. 详解GaussDB(DWS) explain分布式执行计划

    摘要:本文主要介绍如何详细解读GaussDB(DWS)产生的分布式执行计划,从计划中发现性能调优点. 前言 执行计划(又称解释计划)是数据库执行SQL语句的具体步骤,例如通过索引还是全表扫描访问表中的 ...

  2. Fur 是 .NET 5 平台下企业应用开发最佳实践框架。

    Fur 是 .NET 5 平台下企业应用开发最佳实践框架. 立即尝鲜 Fur 是基于最新的 .NET 5 RC2 构建,目的是为了尽早体验新功能,对即将到来的 .NET 5 正式版做出最快的响应. 所 ...

  3. Ubuntu Eclipse启动时报错:A Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse. No java virtual machine was found after searching the following locations:

      此问题起于我在Ubuntu1004上装了两个版本的eclipse:Galieo+helios:卸载前者后出现启动不了eclipse的问题:在网上找了下,可以按如下过程进行解决: Eclipse 3 ...

  4. Deployer 的安装与配置

    Deployer 是一个 composer 包,你可以选择以 phar 包的形式,或者以 composer 全局安装来使用它,这里只讲后者,毕竟这是推荐大家使用的方式,升级也会方便很多: $ comp ...

  5. 拿了十几个offer,怎样做选择?

    本文已经收录至我的GitHub,欢迎大家踊跃star 和 issues. https://github.com/midou-tech/articles 最近收到好几个读者的咨询,关于如何选offer的 ...

  6. DOM0级事件误区-addEventListener

    百度上很多篇文章讲解addEventListener DOM0级事件的时候讲解的都是覆盖 概念如下: 同一个元素的同一种事件只能绑定一个函数,否则后面的函数会覆盖之前的函数 其实不然,官方讲解:添加的 ...

  7. C语言之 判断语句基础与if语句反汇编

    0x01.判断语句介绍以及用法 判断语句有哪些? 1.If 用法1: if (条件) { //代码块 } 当条件成立,也就是为True时,执行{}中的代码 用法2: if(条件) { //代码块 } ...

  8. 利用python3监控服务器状态进行邮件报警

    在正式的生产环境中,我们常常会需要监控服务器的状态,以保证公司整个业务的正常运转,常常我们会用到像nagios.zabbix这类工具进行实时监控,那么用python我们怎么进行监控呢?这里我们利用了p ...

  9. STM32入门系列-库帮助文档使用

    在前面文件夹介绍时,提到了stm32f10x_stdperiph_lib_um.chm文件,此文件是库函数使用帮助文档,可以直接打开如下图. 因为STM32库函数非常多,我们不可能把所有的外设函数都记 ...

  10. 使用RS485串口服务器的方法

    1.为什么设备使用RS-485串口通信? RS-485设备可以连接到计算机,并在网络样式配置中的多个位置进行多次丢弃.在需要中继器之前,设备可以距离最远4000英尺(1220米),最多可以连接32个节 ...