博客班級 | 軟件工程node |
---|---|
做業要求 | 做業要求 |
做業目標 | 你理解的做業目標具體內容 |
學號 | 3180701218 |
編寫一個ATM管理系統,語言不限,要求應包括如下主要功能:
(1)開戶,銷戶
(2)查詢帳戶餘額
(3)存款
(4)取款
(5)轉帳(一個帳戶轉到另外一個帳戶)等...
web
此次做業用SQL sever+VS2019寫的,主要想複習一下去年學的SQL語言,再熟悉熟悉VS2019編寫環境。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數據庫,以及相關的網頁項目操做,這裏就很少說了,感興趣的話能夠看看下面up主的視頻
SQL Server項目實戰
①登陸與註冊
②查詢
③存款
④取款
⑤轉帳
⑥註銷
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,就會發生頁面刷新,以前定義的全局變量的值就會消失,所以用戶登陸時輸入的身份證號沒法保存,用戶進行查詢、轉帳等操做時須要頻繁輸入身份證號。