課程設(shè)計(jì)自動提款機(jī)模擬軟件_第1頁
課程設(shè)計(jì)自動提款機(jī)模擬軟件_第2頁
課程設(shè)計(jì)自動提款機(jī)模擬軟件_第3頁
課程設(shè)計(jì)自動提款機(jī)模擬軟件_第4頁
課程設(shè)計(jì)自動提款機(jī)模擬軟件_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、*學(xué)院(C#程序設(shè)計(jì))課程設(shè)計(jì)說明書課程名稱 :C#軟件程序設(shè)計(jì)題 目 : 自動提款機(jī)模擬軟件專業(yè)班級 :學(xué)生姓名 :放羊娃 學(xué) 號: 指導(dǎo)教師 :設(shè)計(jì)周數(shù) : 2周2013年1月12號1、 課程設(shè)計(jì)目的(1)系統(tǒng)功能實(shí)現(xiàn)用戶在提款機(jī)上提取現(xiàn)金,查詢余額,修改密碼等業(yè)務(wù)。(2)掌握使用C#的使用方法,包括軟件的設(shè)計(jì),調(diào)試的全過程。(3)通過本次設(shè)計(jì)掌握使用c#語言中窗體的建立,各個控件的使用,以及界面的設(shè)計(jì)。2、系統(tǒng)的分析與設(shè)計(jì)ATM是最普遍的自動銀行設(shè)備,可以提供最基本的銀行基本業(yè)務(wù)。取款機(jī)系統(tǒng)向用戶提供一個方便、簡單、及時、隨時隨地可以隨心所欲存取款的互聯(lián)的現(xiàn)代計(jì)算機(jī)化的網(wǎng)絡(luò)系統(tǒng)。最為自助

2、式金融服務(wù)終端,除了提供金融服務(wù)外,ATM自動提款機(jī)還具有維護(hù),測試,管理等多種功能。2.1需求分析 課設(shè)任務(wù)(1)根據(jù)技術(shù)要求和現(xiàn)有開發(fā)環(huán)境,分析題目(2)選定設(shè)計(jì)方案(3)畫出軟件框架結(jié)構(gòu)圖,關(guān)鍵程序流程圖(4)使用C#語言和.net框架,并結(jié)合數(shù)據(jù)庫,實(shí)現(xiàn)軟件(5)調(diào)試,修改并完善程序 課設(shè)要求(1)模仿銀行ATM的運(yùn)行界面。(2)憑正確的卡號和密碼進(jìn)入系統(tǒng)。(3)實(shí)現(xiàn)取款,余額查詢,修改密碼,交費(fèi),轉(zhuǎn)賬操作。2.2系統(tǒng)的設(shè)計(jì)(1)輸入:用戶通過鍵盤進(jìn)行輸入。(2)性能:可使用戶在無任何經(jīng)驗(yàn)的情況下進(jìn)行操作ATM自助式服務(wù)。(3)功能方面:取款、查詢余額、修改密碼、記錄查詢、交費(fèi)、轉(zhuǎn)賬。

3、 數(shù)據(jù)庫的分析與設(shè)計(jì)本次課設(shè)涉及到的數(shù)據(jù)庫有ACCESS數(shù)據(jù)庫和SQL數(shù)據(jù)庫。ACCESS數(shù)據(jù)庫是由美國微軟公司于年推出的微機(jī)數(shù)據(jù)庫管理系統(tǒng),它是0ffice辦公軟件中一個重要的組成部分。它具有較強(qiáng)的數(shù)據(jù)處理功能,便于生成各種數(shù)據(jù)對象,能夠利用web檢索和發(fā)布數(shù)據(jù)等優(yōu)點(diǎn)。與ACCESS數(shù)據(jù)庫相比,SQLServer數(shù)據(jù)庫屬于大型數(shù)據(jù)庫,SQLServer數(shù)據(jù)庫是基于.ne t的一個重要數(shù)據(jù)源,它是美國微軟公司開發(fā)的一款關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的產(chǎn)品。由自動提款機(jī)模擬軟件系統(tǒng)的需求分析可知,本系統(tǒng)應(yīng)為windows應(yīng)用窗體的設(shè)計(jì),據(jù)提供的實(shí)驗(yàn)環(huán)境及以前所學(xué)的理論知識,采用SQL數(shù)據(jù)庫,根據(jù)自動提款機(jī)

4、模擬軟件的功能要求,在AtmInfo數(shù)據(jù)庫中建立兩張表來存儲信息,分別為CardInfo和Record。table1表中用來存儲用戶的卡號,密碼,用戶名,余額及用于卡號鎖定的字段表2-1 用戶基本信息表(Table1)列名數(shù)據(jù)類型長度允許為空是否為主鍵說明kahaonvarchar19否是卡號標(biāo)識 mima nvarchar6否否密碼xingmingnvarchar20是否戶主姓名dianhuanvarchar11是否戶主電話yuemoney是否賬戶余額locknvarchar2是否卡號鎖定recordInfo表中用于存儲用戶的卡號,用戶名,存取結(jié)余,主要用于數(shù)據(jù)庫的更新操作。表2-2 用戶操

5、作信息表(recordInfo)列名數(shù)據(jù)類型長度允許為空是否為主鍵說明xingmingnvarchar20是否戶主姓名 kahaonvarchar19否是卡號標(biāo)識acctimedatetime否是操作時間acctiyenvarchar20是否操作類型exchangemoneydecimal(18,0)是否交易金額邏輯層次的設(shè)計(jì)本次課設(shè)的自動提款機(jī)模擬軟件系統(tǒng)可以使用戶進(jìn)行登錄、取款、轉(zhuǎn)賬、查詢余額、修改密碼、輸入3次密碼不對,自動鎖定和交費(fèi)等基本業(yè)務(wù)。 ATM系統(tǒng)基本結(jié)構(gòu)框圖如圖2-1所示:啟動軟件用戶登錄系統(tǒng)主頁退出系統(tǒng)取款余額查詢轉(zhuǎn)賬修改密碼記錄查詢交費(fèi)圖2-1 ATM系統(tǒng)的基本框圖 程序

6、流程圖軟件設(shè)計(jì)程序流程圖如圖2-2所示:圖2-2程序流程圖系統(tǒng)實(shí)施本系統(tǒng)主要通過運(yùn)用C#的Windows窗體的設(shè)計(jì)進(jìn)行開發(fā)和實(shí)施,主要通過如下幾個功能模塊來完成系統(tǒng)的具體的實(shí)施過程:(1)用戶登陸窗體:通過登陸界面可以進(jìn)行用戶的登陸過程,進(jìn)而實(shí)現(xiàn)相應(yīng)的用戶操作。即當(dāng)用戶名與密碼都正確時用戶就可以登陸進(jìn)行所需的操作,其界面如圖2-3所示:圖2-3登陸界面具體實(shí)現(xiàn)的代碼如下:staticpublicstring jikahao;privatevoid btnLogin_Click(object sender, EventArgs e) string connString = "Data

7、Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|數(shù)據(jù)庫a.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"SqlConnection conn = newSqlConnection(connString); conn.Open();string sql = "select*from UserInfor where kahao='" + txtUsername.Text.Trim().ToLower() + "

8、'and mima='"+txtPassword.Text.Trim() + "'"SqlCommand cmd = newSqlCommand(sql, conn);SqlDataReader dr = cmd.ExecuteReader();if (dr.Read() jikahao = dr"kahao".ToString();frmMain frm = newfrmMain(); frm.Show();this.Hide(); else MessageBox.Show("用戶名或密碼錯誤!")

9、; dr.Close(); conn.Close();privatevoid txtUsername_TextChanged(object sender, EventArgs e) txtUsername.Focus(); privatevoid txtUsername_MouseHover(object sender, EventArgs e) txtUsername.Focus(); privatevoid txtPassword_MouseHover(object sender, EventArgs e) txtPassword.Focus(); privatevoid txtUsern

10、ame_KeyPress(object sender, KeyPressEventArgs e) if (e.KeyChar = (char)13) txtUsername.Focus(); privatevoid txtPassword_KeyPress(object sender, KeyPressEventArgs e) if (e.KeyChar = (char)13) txtPassword.Focus(); privatevoid btnReset_Click(object sender, EventArgs e) txtUsername.Text = "" t

11、xtPassword.Text = "" privatevoid button3_Click(object sender, EventArgs e) MessageBox.Show("請取出你的卡¡");this.Hide(); privatevoid Form1_Load(object sender, EventArgs e) (2)主窗體:通過主窗體可以進(jìn)行用戶的辦理業(yè)務(wù)過程,進(jìn)而實(shí)現(xiàn)相應(yīng)的用戶操作。具體實(shí)現(xiàn)的代碼如下:privatevoid button4_Click(object sender, EventArgs e) Form3 f

12、rm = newForm3(); frm.Show(); privatevoid button2_Click(object sender, EventArgs e) Form6 frm = newForm6(); frm.Show();this.Hide(); privatevoid button5_Click(object sender, EventArgs e) Form4 frm = newForm4(); frm.Show();this.Hide(); privatevoid button1_Click(object sender, EventArgs e) Form5 frm = n

13、ewForm5(); frm.Show();this.Hide(); privatevoid button3_Click(object sender, EventArgs e) Form2 frm = newForm2(); frm.Show();this.Hide(); (3)取款窗體:通過該界面用戶可以從自己的賬戶中進(jìn)行取款操作,但是取款的金額必須在規(guī)定范圍內(nèi)且為100元的整數(shù)倍,否則無法進(jìn)行操作,當(dāng)用戶余額不足以提取時提示余額不足,其界面如圖2-4所示:圖2-4取款界面具體實(shí)現(xiàn)的代碼如下:string connString = "Data Source=.SQLEXPRESS;

14、AttachDbFilename=|DataDirectory|數(shù)據(jù)庫a.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"SqlConnection conn = newSqlConnection(connString); conn.Open();string sql = "SELECT * FROM UserInfor WHERE kahao='" + Form1.jikahao + "'"SqlCommand cmd = newSqlCom

15、mand(sql, conn);SqlDataReader dr = cmd.ExecuteReader(); dr.Read();decimal jine = Convert.ToDecimal(dr4);decimal sqje = Convert.ToDecimal(textBox1.Text);decimal change = sqje;string presentname = Convert.ToString(dr1);string time = Convert.ToString(DateTime.Now); dr.Close();if (jine > sqje) if (sq

16、je % 100 = 0) decimal leftmoney = jine - sqje;string ssql = "Update UserInfor set yue = '" + leftmoney + "' where kahao ='" + Form1.jikahao + "'"SqlCommand ccmd = newSqlCommand(ssql, conn);int i = ccmd.ExecuteNonQuery();if (i = 1) if (i= 1) MessageBox.Sh

17、ow("請取款,30秒后自動關(guān)閉!"); else MessageBox.Show("交易記錄保存失?。?quot;); else MessageBox.Show("操作失敗,重試!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show("提供以百元為單位的金額,請正確輸入!"); textBox1.Text = "" else MessageBox.Show("余額不足!"

18、;); textBox1.Text = "" conn.Close();frmMain frm = newfrmMain(); frm.Show();this.Hide(); privatevoid button2_Click(object sender, EventArgs e) frmMain frm = newfrmMain(); frm.Show();this.Hide(); (4)查詢余額窗體:在業(yè)務(wù)類型窗體上點(diǎn)擊余額查詢,可查詢當(dāng)前用戶銀行卡上的可用余額,其界面如圖2-5所示:圖2-5查詢余額界面具體實(shí)現(xiàn)的代碼如下:privatevoid button1_Cli

19、ck(object sender, EventArgs e) frmMain frm = newfrmMain(); frm.Show();this.Hide(); privatevoid button2_Click(object sender, EventArgs e) frmMain frm = newfrmMain(); frm.Show();this. Hide(); privatevoid textBox1_TextChanged(object sender, EventArgs e) privatevoid Form6_Load(object sender, EventArgs e

20、) string connString = "Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|數(shù)據(jù)庫a.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"SqlConnection conn = newSqlConnection(connString); conn.Open();string sql = "select*from UserInfor where kahao='" + Form1.jik

21、ahao + "'"SqlCommand cmd = newSqlCommand(sql, conn);SqlDataReader dr = cmd.ExecuteReader(); dr.Read(); label3.Text = dr"yue".ToString().Trim(); privatevoid label3_Click(object sender, EventArgs e) (5)交費(fèi)窗體:通過該界面用戶可以給自家的水費(fèi)進(jìn)行交費(fèi),其界面如圖2-6所示:圖2-6 交費(fèi)界面具體實(shí)現(xiàn)的代碼如下:privatevoid button1_C

22、lick(object sender, EventArgs e) string connString = "Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|數(shù)據(jù)庫a.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"SqlConnection conn = newSqlConnection(connString); conn.Open();string sql = "SELECT * FROM UserInfor WH

23、ERE kahao='" +Form1 .jikahao + "'"SqlCommand cmd = newSqlCommand(sql, conn);SqlDataReader dr = cmd.ExecuteReader(); dr.Read();decimal jine = Convert.ToDecimal(dr4);decimal sqje = Convert.ToDecimal(textBox1.Text);string presentname = Convert.ToString(dr4);string cardid = "

24、'" + Form1.jikahao + "'"decimal change = sqje;string time = Convert.ToString(DateTime.Now); dr.Close();if (jine > sqje) MessageBox.Show("操作正在進(jìn)行,請稍侯");decimal leftmoney = jine - sqje;string ssql = "Update UserInfor set yue = '" + leftmoney + "

25、9; where kahao ='" + Form1.jikahao + "'"SqlCommand ccmd = newSqlCommand(ssql, conn);MessageBox.Show("交費(fèi)成功!"); textBox1.Text = ""int i = ccmd.ExecuteNonQuery();if (i = 1) textBox1.Text = "" else MessageBox.Show("操作失敗,請重試!", "提示:"

26、;, MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show(" 您的余額不足!"); textBox1.Text = "" frmMain frm = newfrmMain(); frm.Show();MessageBox.Show("繳費(fèi)成功!");this.Hide(); privatevoid button2_Click(object sender, EventArgs e) frmMain frm = newfrmMain(); frm.Show()

27、;this.Hide(); privatevoid textBox1_TextChanged(object sender, EventArgs e) privatevoid Form5_Load(object sender, EventArgs e) (6)轉(zhuǎn)賬窗體:通過該界面用戶可以給除自己外的其他賬戶進(jìn)行轉(zhuǎn)賬,其界面如圖2-7所示:圖2-7 轉(zhuǎn)賬界面具體實(shí)現(xiàn)的代碼如下:string connString = "Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|數(shù)據(jù)庫a.mdf;Integrated Security=T

28、rue;Connect Timeout=30;User Instance=True"SqlConnection conn = newSqlConnection(connString); conn.Open();string sql = "SELECT * FROM UserInfor WHERE kahao='" + Form1.jikahao + "'"SqlCommand cmd = newSqlCommand(sql, conn);SqlDataReader dr = cmd.ExecuteReader(); dr.Rea

29、d();decimal jine = Convert.ToDecimal(dr4);string wo = Convert.ToString(dr1);decimal sqje = Convert.ToDecimal(textBox2.Text); dr.Close();if (jine > sqje) MessageBox.Show("轉(zhuǎn)賬成功");decimal leftmoney = jine - sqje;string ssql = "Update UserInfor set yue = '" + leftmoney + "

30、;' where kahao ='" + Form1.jikahao + "'"SqlCommand ccmd = newSqlCommand(ssql, conn);int i = ccmd.ExecuteNonQuery();if (i = 1) string sqql = "select * from UserInfor where kahao='" + textBox1.Text.Trim() + "'"SqlCommand cmdd = newSqlCommand(sqql,

31、 conn);SqlDataReader drr = cmdd.ExecuteReader();if (drr.Read() decimal je = Convert.ToDecimal(drr4);string presentname = wo;string cardid = "'" + Form1.jikahao + "'"decimal change = sqje;string time = Convert.ToString(DateTime.Now); je = je + sqje; drr.Close();string sqql

32、1 = "Update UserInfor set yue='" + je + "'where kahao='" + textBox1.Text.Trim() + "'"SqlCommand cmmdd = newSqlCommand(sqql1, conn);int n = cmmdd.ExecuteNonQuery();if (n = 1) MessageBox.Show("轉(zhuǎn)賬成功!"); textBox1.Text = "" textBox2.Text =

33、 "" else MessageBox.Show("轉(zhuǎn)賬失敗!"); textBox1.Text = "" textBox2.Text = "" string sqll5 = "insert UserInfor1(kahao,acctime,exchangemoney) values('" + Form1.jikahao + "','" + presentname + "','" + change + "&

34、#39;)"SqlCommand cmd5 = newSqlCommand(sqll5, conn); else else MessageBox.Show("您的余額不足,請重新輸入金額!"); textBox2.Text = "" conn.Close(); privatevoid button3_Click(object sender, EventArgs e) frmMain frm = newfrmMain(); frm.Show();this.Hide(); privatevoid button2_Click(object sende

35、r, EventArgs e) textBox1.Text = "" textBox2.Text = "" (7)修改密碼窗體:通過該界面用戶可以給自己的賬戶進(jìn)行修改密碼的操作,兩次輸入的新密碼一樣將修改成功,否則將失敗,其界面如圖2-8所示:圖2-8 修改密碼界面具體實(shí)現(xiàn)的代碼如下:if (textBox2.Text.Trim() = textBox3.Text.Trim() string connString = "Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|數(shù)據(jù)庫a.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"SqlConnection conn = newSqlConnection(connString); conn.Open();string sqlCheckPwd = "select count(*)from UserInfor where kahao='"+Form1.jikahao+"'and mima='" + textBox1.Text.Trim() +

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論