ATM管理系統(三)

1、做業信息

博客班級

軟件工程node

做業要求 做業要求
做業目標 你理解的做業目標具體內容
學號 3180701218

2、題目要求

編寫一個ATM管理系統,語言不限,要求應包括如下主要功能:
(1)開戶,銷戶
(2)查詢帳戶餘額
(3)存款
(4)取款
(5)轉帳(一個帳戶轉到另外一個帳戶)等...
web

3、代碼

此次做業用SQL sever+VS2019寫的,主要想複習一下去年學的SQL語言,再熟悉熟悉VS2019編寫環境。sql

一、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

③查詢
ui

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

⑤取款
spa

create proc withdraw
@id char(18),
@m int
as
begin
	update masge
	set balance=balance-@m
	where id=@id
end
go

⑥轉帳

這裏使用了事務,若用戶身份證號輸入錯誤,事務回滾轉,不執行帳操做;若是用戶操做正確,繼續執行。.net

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

二、VS2019鏈接SQL數據庫

VS2019鏈接SQL數據庫,以及相關的網頁項目操做,這裏就很少說了,感興趣的話能夠看看下面up主的視頻
SQL Server項目實戰

4、運行截圖

①登陸與註冊




②查詢

③存款

④取款

⑤轉帳

⑥註銷

5、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

6、總結

功能不太完善,因爲時間緣由,該系統只能檢測用戶是否存在,沒有判斷輸入的銀行卡號和該人信息是否符合; 操做繁瑣,該系統是在web窗體執行的,ASP.net項目中,點擊Button,就會發生頁面刷新,以前定義的全局變量的值就會消失,所以用戶登陸時輸入的身份證號沒法保存,用戶進行查詢、轉帳等操做時須要頻繁輸入身份證號。

相關文章
相關標籤/搜索