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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、流程圖軟件設(shè)計(jì)程序流程圖如圖2-2所示:圖2-2程序流程圖系統(tǒng)實(shí)施本系統(tǒng)主要通過(guò)運(yùn)用C#的Windows窗體的設(shè)計(jì)進(jìn)行開(kāi)發(fā)和實(shí)施,主要通過(guò)如下幾個(gè)功能模塊來(lái)完成系統(tǒng)的具體的實(shí)施過(guò)程:(1)用戶(hù)登陸窗體:通過(guò)登陸界面可以進(jìn)行用戶(hù)的登陸過(guò)程,進(jìn)而實(shí)現(xiàn)相應(yīng)的用戶(hù)操作。即當(dāng)用戶(hù)名與密碼都正確時(shí)用戶(hù)就可以登陸進(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ù)庫(kù)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("用戶(hù)名或密碼錯(cuò)誤!")

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("請(qǐng)取出你的卡¡");this.Hide(); privatevoid Form1_Load(object sender, EventArgs e) (2)主窗體:通過(guò)主窗體可以進(jìn)行用戶(hù)的辦理業(yè)務(wù)過(guò)程,進(jìn)而實(shí)現(xiàn)相應(yīng)的用戶(hù)操作。具體實(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)取款窗體:通過(guò)該界面用戶(hù)可以從自己的賬戶(hù)中進(jìn)行取款操作,但是取款的金額必須在規(guī)定范圍內(nèi)且為100元的整數(shù)倍,否則無(wú)法進(jìn)行操作,當(dāng)用戶(hù)余額不足以提取時(shí)提示余額不足,其界面如圖2-4所示:圖2-4取款界面具體實(shí)現(xiàn)的代碼如下:string connString = "Data Source=.SQLEXPRESS;

14、AttachDbFilename=|DataDirectory|數(shù)據(jù)庫(kù)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("請(qǐng)取款,30秒后自動(dòng)關(guān)閉!"); else MessageBox.Show("交易記錄保存失?。?quot;); else MessageBox.Show("操作失敗,重試!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show("提供以百元為單位的金額,請(qǐng)正確輸入!"); 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)查詢(xún)余額窗體:在業(yè)務(wù)類(lèi)型窗體上點(diǎn)擊余額查詢(xún),可查詢(xún)當(dāng)前用戶(hù)銀行卡上的可用余額,其界面如圖2-5所示:圖2-5查詢(xún)余額界面具體實(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ù)庫(kù)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)窗體:通過(guò)該界面用戶(hù)可以給自家的水費(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ù)庫(kù)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)行,請(qǐng)稍侯");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("操作失敗,請(qǐng)重試!", "提示:"

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)賬窗體:通過(guò)該界面用戶(hù)可以給除自己外的其他賬戶(hù)進(jìn)行轉(zhuǎn)賬,其界面如圖2-7所示:圖2-7 轉(zhuǎn)賬界面具體實(shí)現(xiàn)的代碼如下:string connString = "Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|數(shù)據(jù)庫(kù)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("您的余額不足,請(qǐng)重新輸入金額!"); 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)修改密碼窗體:通過(guò)該界面用戶(hù)可以給自己的賬戶(hù)進(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ù)庫(kù)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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論