




已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
北京電子科技學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計實驗報告題 目: 銀行排隊模擬系統(tǒng) 班 級: 0921 姓 名: 韓曉雪 學(xué) 號: 完成日期: 2011/9/9 一、 問題描述 銀行業(yè)務(wù)越來越豐富,有一般的客戶存款或取款、理財金(股票、基金等業(yè)務(wù))、外幣服務(wù)等。每天來銀行的客戶越來越多,為免除客戶排隊等待,日前銀行均設(shè)計有排隊管理系統(tǒng)。試編程模擬管理銀行的排隊業(yè)務(wù)。題目要求:(1)設(shè)置有排隊機器,可以實現(xiàn)“理財金”“外幣”“個人服務(wù)”等3種業(yè)務(wù)的排隊。(2)銀行窗口接待服務(wù)。接待窗口分3種“理財”“外幣”和“個人業(yè)務(wù)”,理財和外幣業(yè)務(wù)由專用窗口接待,且這些專用窗口接待完本類業(yè)務(wù)之后,將繼續(xù)進(jìn)行“個人業(yè)務(wù)”服務(wù)。直到全部客戶服務(wù)均完成。二、 需求分析根據(jù)客戶辦理業(yè)務(wù)的需求,銀行設(shè)有“個人業(yè)務(wù)”、“理財業(yè)務(wù)”和“外幣業(yè)務(wù)”3種業(yè)務(wù)的辦理,且“理財業(yè)務(wù)”的優(yōu)先級高于“外幣業(yè)務(wù)”。本程序?qū)⒏鶕?jù)客戶選擇要辦理的業(yè)務(wù)類型,等候辦理業(yè)務(wù)的客戶進(jìn)行隊伍編排。工作人員控制每位客戶的業(yè)務(wù)辦理時間。程序開始:第一位客戶選擇要辦理的業(yè)務(wù)類型后。程序結(jié)束:3個窗口均無人辦理業(yè)務(wù)。三、 概要設(shè)計(一) 程序功能:本程序可以實現(xiàn)對辦理不同業(yè)務(wù)的客戶進(jìn)行合理編排,盡量減少客戶等待時間,同時客戶可以從界面獲得自己的排隊情況,并可以了解到當(dāng)前日期和時間。1、 選擇業(yè)務(wù):客戶從應(yīng)用程序界面上選擇要辦理的業(yè)務(wù)類型。2、 產(chǎn)生編號:程序通過客戶選擇業(yè)務(wù)來為其排號,業(yè)務(wù)不同,客戶獲得的編號類型不同。3、 顯示排隊情況:將客戶的編號、所排窗口、所在隊伍位置顯示在應(yīng)用程序界面上,模擬排隊情況。4、 刷新隊伍:每位客戶業(yè)務(wù)辦理結(jié)束后,工作人員提醒下一位客戶,當(dāng)2號窗口、3號窗口業(yè)務(wù)辦理結(jié)束且1號窗口仍有人在辦理業(yè)務(wù),則將在1號窗口前排隊的客戶分配到2號窗口、3號窗口去。分配方法是:當(dāng)2、3窗口同時為空時,先分配給2號窗口,若此時仍有客戶在1號窗口排隊,則再分配給3號窗口。5、 排號算法:若客戶選擇“理財”或“外幣”業(yè)務(wù),則分別將其直接排到2號窗口、3號窗口的隊伍中,若客戶選擇“個人業(yè)務(wù)”,則要進(jìn)行如下判斷:(1) 若1號窗口無人辦理業(yè)務(wù),則安排其到1號窗口辦理業(yè)務(wù);(2) 若1號窗口有人在辦理業(yè)務(wù),則一次判斷2號窗口、3號窗口是否有人辦理業(yè)務(wù),若沒有則安排其在無人窗口辦理業(yè)務(wù);(3) 若3個窗口均有人在辦理業(yè)務(wù),則將其排到1號窗口的隊伍中。(二) 對象說明1、窗體:1個窗體,用于設(shè)計應(yīng)用程序界面。2、Label控件:14個Label控件,用于做文字說明或信息提示。3、Button控件:7個Button控件,用于接受客戶的命令,然后執(zhí)行該命令所對應(yīng)的事件過程中的程序代碼。4、 TextBox控件:4個TextBox控件,用于輸出文本信息5、 Timer控件:3個Timer控件,用于觸發(fā)事件。6、 DataTimePicker1控件1個:獲取當(dāng)前日期,觀看日歷。對象名屬性名設(shè)置屬性名Form1Text銀行排隊模擬系統(tǒng)Label1、11Text1號窗口Label2、14Text2號窗口Label3Text您的編號是:Label4Text請您選擇業(yè)務(wù)Label5、13Text3號窗口Label6Text歡迎光臨Label7Text排隊等候人數(shù)多于50!Label8Text排隊等候人數(shù)多于50!Label9Text排隊等候人數(shù)多于50!Label10Text今天是:Label12Text工作人員界面TextBox1Text1號窗口排隊情況TextBox2Text2號窗口排隊情況TextBox3Text3號窗口排隊情況TextBox4Text電子時鐘Timer4Interval1000Timer5Interval2000Timer6Interval1000Button1、2、4Text下一位Button3Text退出系統(tǒng)Button5Text個人業(yè)務(wù)Button6Text理財業(yè)務(wù)Button7Text外幣業(yè)務(wù)DataTimePicker1CustomForm yyyy-MM-dd四、 詳細(xì)設(shè)計本程序通過數(shù)組來實現(xiàn)對排隊客戶的存儲,再通過textbox以文本形式將排隊情況顯示出來。(一) 數(shù)據(jù)數(shù)據(jù)名數(shù)據(jù)類型作用aIntegergeren()的數(shù)組元素標(biāo)號BIntegerlicai()的數(shù)組元素標(biāo)號cIntegerwaibi()的數(shù)組元素標(biāo)號num1Integer辦理個人業(yè)務(wù)客戶的編號num2Integer辦理理財業(yè)務(wù)客戶的編號num3Integer辦理外幣業(yè)務(wù)客戶的編號geren()String存儲辦理個人業(yè)務(wù)客戶的數(shù)組licai()String存儲辦理理財業(yè)務(wù)客戶的數(shù)組waibi()String存儲辦理外幣業(yè)務(wù)客戶的數(shù)組(二) 事件說明1、Button6_Clickl 客戶選擇個人業(yè)務(wù),將客戶放在數(shù)組geren()中,數(shù)組元素加1,并給客戶相應(yīng)的編號,編號加1,根據(jù)排號算法,將客戶排在合適的窗口并顯示。l 若排隊人數(shù)多于25人,顯示提示信息,同時停止個人業(yè)務(wù)辦理。2、Button7_Clickl 客戶選擇理財業(yè)務(wù),將客戶放在數(shù)組licai()中,數(shù)組元素加1,并給客戶相應(yīng)的編號,編號加1,根據(jù)排號算法,將客戶排在2號窗口并顯示。l 若2號窗口排隊人數(shù)多于25人,顯示提示信息,同時停止理財業(yè)務(wù)辦理。3、Button8_Clickl 客戶選擇外幣業(yè)務(wù)將客戶放在數(shù)組waibi()中,數(shù)組元素加1,并給客戶相應(yīng)的編號,編號加1,根據(jù)排號算法,將客戶排在3號窗口并顯示。l 若3號窗口排隊人數(shù)多于25人,顯示提示信息,同時停止外幣業(yè)務(wù)辦理。4、Button1_Clickl 工作人員接待當(dāng)前客戶完畢后,在顯示排隊情況的文本中清除該客戶編號,下一位前往辦理業(yè)務(wù)。l 1號窗口排隊人數(shù)小于25人時,撤銷提示信息,恢復(fù)個人業(yè)務(wù)的辦理。5、Button2_Clickl 工作人員接待當(dāng)前客戶完畢后,在顯示排隊情況的文本中清除該客戶編號,下一位前往辦理業(yè)務(wù)。l 2號窗口排隊人數(shù)小于25人時,撤銷提示信息,恢復(fù)理財業(yè)務(wù)的辦理。l 所有理財業(yè)務(wù)辦理結(jié)束后,觸發(fā)timer6。6、Button4_Clickl 工作人員接待當(dāng)前客戶完畢后,在顯示排隊情況的文本中清除該客戶編號,下一位前往辦理業(yè)務(wù)。l 3號窗口排隊人數(shù)小于25人時,撤銷提示信息,恢復(fù)外幣業(yè)務(wù)的辦理。l 所有理財業(yè)務(wù)辦理結(jié)束后,觸發(fā)timer5。7、Button3_Clickl 退出程序。8、Timer6_Tickl 2號窗口為空,且1號窗口仍有人排隊,將排在1號窗口的第一位客戶轉(zhuǎn)到2號窗口辦理業(yè)務(wù)。l 1號窗口排隊人數(shù)小于25人時,撤銷提示信息,恢復(fù)個人業(yè)務(wù)的辦理。l 3個窗口均為空,退出程序。9、Timer5_Tickl 3號窗口為空,1、2號窗口均不空,將排在1號窗口的第一位客戶轉(zhuǎn)到3號窗口辦理業(yè)務(wù)。l 3號窗口為空是,2號窗口也為空,則無動作。l 1號窗口排隊人數(shù)小于25人時,撤銷提示信息,恢復(fù)個人業(yè)務(wù)的辦理。l 3個窗口均為空,退出程序。10、Timer4_Tickl 數(shù)字時鐘,顯示當(dāng)前時間。(三)交互關(guān)系客戶選擇業(yè)務(wù)類型客戶獲得編號并排隊顯示排隊情況工作人員辦理業(yè)務(wù)銀行排隊模擬系統(tǒng)結(jié)束當(dāng)前客戶的業(yè)務(wù)辦理刷新叫號五、 測試分析提示:在各窗口下的第一個編號,即是在該窗口正在辦理業(yè)務(wù)的客戶的編號。(一)測試數(shù)據(jù)和測試結(jié)果測試1:客戶(G)辦理個人業(yè)務(wù)時,3個窗口都為空。測試2:客戶(G)辦理個人業(yè)務(wù)時,只有2號窗口有人在辦理業(yè)務(wù)。測試3:客戶(G)辦理個人業(yè)務(wù)時,只有3號窗口有人在辦理業(yè)務(wù)。測試4:客戶(G)辦理個人業(yè)務(wù)時,2號、3號窗口都有人在辦理業(yè)務(wù)。測試5:客戶(L)辦理理財業(yè)務(wù)。測試6:客戶(W)辦理外幣業(yè)務(wù)。測試:7:客戶(G-2)來辦理個人業(yè)務(wù)時,3個窗口均有人在辦理業(yè)務(wù)。測試8:3個窗口都在辦理業(yè)務(wù)過程中,3號窗口結(jié)束接待后,1號、2號窗口都有客戶在排隊。測試9:3個窗口都在辦理業(yè)務(wù)過程中,2號窗口結(jié)束接待后, 1號、3號窗口仍有客戶在排隊。測試10:3個窗口都在辦理業(yè)務(wù)過程中,3號和2號窗口同時結(jié)束接待后, 1號窗口仍有客戶在排隊。測試11:某窗口排對人數(shù)超過25人。(二)遇到的問題和解決方法:問題1:當(dāng)2號、3號窗口同為空時,排在1號窗口的第一為客戶的編號會出現(xiàn)在2號、3號兩個窗口中。方法:經(jīng)分析,這是由于沒有考慮兩個窗口的優(yōu)先級所致,于是我設(shè)置辦理理財業(yè)務(wù)的2號窗口的優(yōu)先級高于辦理外幣業(yè)務(wù)的3號窗口。當(dāng)兩窗口同為空時,先給2號窗口分配客戶,之后,若1號窗口仍有人排隊,再分配給3號窗口。問題2:各窗口無限排隊問題。方法:通過判斷顯示排隊情況的文本的字符長度,來確定各窗口正在排隊人數(shù),多于25人時,系統(tǒng)顯示提示信息,同時暫停接收對應(yīng)業(yè)務(wù)的辦理。六、 實驗總結(jié)通過為期10天的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計,在老師們的指導(dǎo)幫助下,我完成了銀行排隊模擬系統(tǒng)的程序設(shè)計,在這次課程設(shè)計中,我收獲良多。課程設(shè)計不同于平時的編程實驗,它的要求更多更全面,需要程序編寫者在前期做出準(zhǔn)確的需求分析,還有后期全面的程序測試,這些都是在過去的學(xué)習(xí)中很少接觸到的。通過老師的講解和自身在編程中的實踐,我深刻體會到需求分析可以使得程序更貼近生活,更具實用性,而全面到位的程序設(shè)計則可以保證程序的實用性和健壯性。起初我對所選題目的理解不夠到位,只設(shè)計了系統(tǒng)中的客戶界面,也因此不能確定每個客戶辦理業(yè)務(wù)所需具體時間,只能通過時間控件,以固定的時間頻率刷新隊伍,也就是所有將客戶辦理業(yè)務(wù)的時間限制在同樣的時間里(5分鐘),這使得程序不夠人性化,后經(jīng)過老師的提醒和指導(dǎo),我添加了工作人員界面,由工作人員通過來控制客戶的辦理時間,這樣也就實現(xiàn)了系統(tǒng)的“叫號”功能,也使得客戶和工作人員通過系統(tǒng)有了信息的交換。這次課程設(shè)計使我加強了自身的編程能力的同時,也讓我認(rèn)識到要將所學(xué)靈活的應(yīng)用到實際生活中去,不可以憑空想象,要著眼實際,找到生活所需,理論里聯(lián)系實際,才可以編寫出真正有價值的程序。感謝各位老師在這些天來對我的指導(dǎo)和幫助,讓我及時看到錯誤并得以改正。在今后的學(xué)習(xí)中我會更加仔細(xì)認(rèn)真,真正做到學(xué)以致用。附:程序代碼Public Class Form1 Dim a, b, c, num1, num2, num3 As Integer Dim geren(1000), licai(1000), waibi(1000) As String 分別為用來存儲排在個人業(yè)務(wù)理財業(yè)務(wù)外幣業(yè)務(wù)窗口的客戶的數(shù)組 Private Sub Timer4_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer4.Tick TextBox4.Text = TimeOfDay() 數(shù)字時鐘 End Sub Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click num1 = num1 + 1 Label3.Text = 您的的編號為:G- & num1 num1為辦理個人業(yè)務(wù)客戶的編號 通過判斷各窗口有無業(yè)務(wù)正在辦理,安排辦理個人業(yè)務(wù)客戶的排隊位置 If Me.TextBox1.Text.Trim = String.Empty Then Call g() 調(diào)用函數(shù)g() ElseIf Me.TextBox2.Text.Trim = String.Empty Then licai(b) = num1 將該客戶編號存入licai數(shù)組,b為licai數(shù)組的數(shù)組元素標(biāo)號 TextBox2.Text = TextBox2.Text & G- & licai(b) TextBox2.Text = TextBox2.Text & vbCrLf b = b + 1 排在號窗口,并將其號碼顯示在文本框輸出 ElseIf Me.TextBox3.Text.Trim = String.Empty Then waibi(c) = num1 將該客戶編號存入waibi數(shù)組,c為weibi數(shù)組的數(shù)組元素標(biāo)號() TextBox3.Text = TextBox3.Text & G- & waibi(c) TextBox3.Text = TextBox3.Text & vbCrLf c = c + 1 排在號窗口,并將其號碼顯示在文本框輸出 Else Call g() End If 提醒客戶要排隊的窗口前排隊等候的人數(shù)多于 If TextBox1.TextLength 125 Then Label7.Visible = True Label7.Text = 排隊等候多于人! Button6.Enabled = False Else Label9.Visible = False End If End Sub Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click num2 = num2 + 1 num2為辦理理財業(yè)務(wù)客戶的編號 Label3.Text = 您的的編號為:L- & num2 licai(b) = num2 將該客戶編號存入licai數(shù)組 TextBox2.Text = TextBox2.Text & L- & licai(b) TextBox2.Text = TextBox2.Text & vbCrLf b = b + 1 排在號窗口,并將其號碼顯示在文本框輸出 If TextBox2.TextLength 125 Then Label8.Visible = True Label8.Text = 排隊等候多于人! Button7.Enabled = False End If End Sub Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click num3 = num3 + 1 num2為辦理理財業(yè)務(wù)客戶的編號 Label3.Text = 您的的編號為:W- & num3 waibi(c) = num3 將該客戶編號存入waibi數(shù)組 TextBox3.Text = TextBox3.Text & W- & waibi(c) TextBox3.Text = TextBox3.Text & vbCrLf c = c + 1 排在號窗口,并將其號碼顯示在文本框輸出 提醒客戶要排隊的窗口前排隊等候的人數(shù)多于 If TextBox3.TextLength 125 Then Label9.Visible = True Label9.Text = 排隊等候的人數(shù)多于! Button8.Enabled = False Else Label9.Visible = False End If End Sub Private Sub g() geren(a) = num1 將該客戶編號存入geren數(shù)組,a為geren數(shù)組的數(shù)組元素標(biāo)號 TextBox1.Text = TextBox1.Text & G- & geren(a) TextBox1.Text = TextBox1.Text & vbCrLf a = a + 1 排在號窗口,并將其號碼顯示在文本框輸出 End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 將號窗口辦完業(yè)務(wù)的客戶的編號從文本框中撤除 Dim a1, a2 As String a1 = TextBox1.GetFirstCharIndexFromLine(0) 第一行第一個字符的索引 a2 = TextBox1.GetFirstCharIndexFromLine(1) 第二行第一個字符的索引 TextBox1.Select(a1, a2) 選中第一行 TextBox1.SelectedText = 設(shè)置第一行的內(nèi)容為空 If TextBox1.TextLength = 125 Then 排隊人數(shù)小于等于人時,撤除提醒 Label7.Visible = False Button6.Enabled = True End If If TextBox1.TextLength = 0 Then If TextBox2.TextLength = 0 Then If TextBox3.TextLength = 0 Then End End If End If End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 將號窗口辦完業(yè)務(wù)的客戶的編號從文本框中撤除 Dim b1, b2 As String b1 = TextBox2.GetFirstCharIndexFromLine(0) b2 = TextBox2.GetFirstCharIndexFromLine(1) TextBox2.Select(b1, b2) TextBox2.SelectedText = 當(dāng)號窗口前為空時,觸發(fā)timer6 If TextBox2.TextLength = 0 Then Timer6.Enabled = True Else Timer6.Enabled = False End If If TextBox2.TextLength = 125 Then Label8.Visible = False End If If TextBox2.TextLength = 125 Then Label8.Visible = False Button7.Enabled = True End If If TextBox1.TextLength = 0 Then If TextBox2.TextLength = 0 Then If TextBox3.TextLength = 0 Then End End If End If End If End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click 將號窗口辦完業(yè)務(wù)的客戶的編號從文本框中撤除 Dim c1, c2 As String c1 = TextBox3.GetFirstCharIndexFromLine(0) c2 = TextBox3.GetFirstCharIndexFromLine(1) TextBox3.Select(c1, c2) TextBox3.SelectedText = 當(dāng)號窗口前為空時,觸發(fā)timer5 If TextBox3.TextLength = 0 Then Timer5.Enabled = True Else Timer5.Enabled = False End If If TextBox3.TextLength 5 Then If TextBox2.TextLength 0 Then d1 = TextBox1.GetFirstCharIndexFromLine(1) d2 = TextBox1.GetFirstCharIndexFromLine(1) TextBox1.Select(d1, d2) TextBox1.Cut() f1 = TextBox3.GetFirstCharIndexFromLine(0) f2 = TextBox3.GetFirstCharIndexFromLine(1) TextBox3.Select(f1, f2) TextBox3.Paste()
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南財政經(jīng)濟學(xué)院《交際口語(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海歐華職業(yè)技術(shù)學(xué)院《建筑制圖與識圖》2023-2024學(xué)年第一學(xué)期期末試卷
- 珠海藝術(shù)職業(yè)學(xué)院《數(shù)據(jù)科學(xué)與語言》2023-2024學(xué)年第一學(xué)期期末試卷
- 西北農(nóng)林科技大學(xué)《國際物流實務(wù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 牡丹江師范學(xué)院《生物藥物臨床前評價》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年火工產(chǎn)品項目申請報告
- 數(shù)字化賦能高校精準(zhǔn)思政的實踐路徑研究
- 甘肅民族師范學(xué)院《勞動與社會保障法》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025亞太地區(qū)的社交營銷斷聯(lián)報告-奧美ogilvy-202606
- 成都農(nóng)業(yè)科技職業(yè)學(xué)院《科技信息檢索》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江省寧波市鎮(zhèn)海區(qū)2023-2024學(xué)年下學(xué)期八年級科學(xué)期末試卷
- 公司董事會與股東會議管理制度
- 2024年江蘇天寧城市發(fā)展集團有限公司招聘筆試沖刺題(帶答案解析)
- 汽車車身飾件DFMEA-后視鏡系統(tǒng)
- 機械加工安全操作規(guī)程培訓(xùn)
- 企業(yè)運營與模擬競爭智慧樹知到期末考試答案2024年
- 內(nèi)科胸腔鏡風(fēng)險處置預(yù)案
- SL345-2007水利水電工程注水試驗規(guī)程
- qc技術(shù)主管述職報告
- 護(hù)患溝通及糾紛防范
- 人工動靜脈瘺狹窄查房
評論
0/150
提交評論