![c銀行排隊(duì)叫號(hào)系統(tǒng)課程報(bào)告設(shè)計(jì)書_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/1ca5e159-0c17-4218-b0ec-d90207790376/1ca5e159-0c17-4218-b0ec-d902077903761.gif)
![c銀行排隊(duì)叫號(hào)系統(tǒng)課程報(bào)告設(shè)計(jì)書_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/1ca5e159-0c17-4218-b0ec-d90207790376/1ca5e159-0c17-4218-b0ec-d902077903762.gif)
![c銀行排隊(duì)叫號(hào)系統(tǒng)課程報(bào)告設(shè)計(jì)書_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/1ca5e159-0c17-4218-b0ec-d90207790376/1ca5e159-0c17-4218-b0ec-d902077903763.gif)
![c銀行排隊(duì)叫號(hào)系統(tǒng)課程報(bào)告設(shè)計(jì)書_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/1ca5e159-0c17-4218-b0ec-d90207790376/1ca5e159-0c17-4218-b0ec-d902077903764.gif)
![c銀行排隊(duì)叫號(hào)系統(tǒng)課程報(bào)告設(shè)計(jì)書_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/1ca5e159-0c17-4218-b0ec-d90207790376/1ca5e159-0c17-4218-b0ec-d902077903765.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、河北聯(lián)合大學(xué)2011-2012第2學(xué)期 軟件設(shè)計(jì)基礎(chǔ)-c#課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱: 銀行排隊(duì)叫號(hào)系統(tǒng)姓 名: 趙杰 學(xué) 號(hào) 201114210114 專業(yè)班級(jí): 11級(jí)工業(yè)工程一班 學(xué) 院: 機(jī)械工程學(xué)院 設(shè)計(jì)時(shí)間: 2012.5,26 設(shè)計(jì)地點(diǎn): 河北聯(lián)合大學(xué)主校區(qū) 成績(jī):指導(dǎo)教師評(píng)語: 指導(dǎo)教師簽字: 年 月 日目 錄1.課程設(shè)計(jì)目的32.課程設(shè)計(jì)任務(wù)與要求33.課程設(shè)計(jì)說明書44.課程設(shè)計(jì)成果95.程序調(diào)試過程116.設(shè)計(jì)問題的不足和改進(jìn)方案117.課程設(shè)計(jì)心得128.附錄139.參考文獻(xiàn)221課程設(shè)計(jì)目的軟件設(shè)計(jì)基礎(chǔ)-c#課程設(shè)計(jì)是這門課程的實(shí)踐性教學(xué)環(huán)節(jié)之一,本次設(shè)計(jì)結(jié)合實(shí)際應(yīng)用的要求
2、,使課程設(shè)計(jì)既覆蓋c#的知識(shí)點(diǎn),又接近工程實(shí)際需要。目的是通過課程設(shè)計(jì)的綜合訓(xùn)練,培養(yǎng)學(xué)生實(shí)際分析問題、解決問題的能力,以及編程和動(dòng)手能力,最終目標(biāo)是通過課程設(shè)計(jì)這種形式,幫助學(xué)生系統(tǒng)掌握c#這門課程的主要內(nèi)容,養(yǎng)成良好的編程習(xí)慣,更好的完成教學(xué)任務(wù)。2課程設(shè)計(jì)任務(wù)與要求:要求:本次課程設(shè)計(jì)利用軟件設(shè)計(jì)基礎(chǔ)-c#課程中所學(xué)到的編程知識(shí)和編程技巧,完成具有一定難度和工作量的程序設(shè)計(jì)題目,幫助學(xué)生掌握編程、調(diào)試的基本技能,獨(dú)立完成所布置的任務(wù)。要求:1、對(duì)系統(tǒng)進(jìn)行功能需求分析2、設(shè)計(jì)合理的數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)框架3、界面設(shè)計(jì)美觀、清楚、合理4、編程簡(jiǎn)練,程序功能齊全,能正確運(yùn)行5、具有一定的創(chuàng)新性6、說
3、明書、流程圖要清楚7、課題完成后必須按要求提交課程設(shè)計(jì)報(bào)告任務(wù):通過這次課程設(shè)計(jì),要求在數(shù)據(jù)結(jié)構(gòu)的邏輯特性和物理表示、數(shù)據(jù)結(jié)構(gòu) 的選擇應(yīng)用算法的及其實(shí)現(xiàn)等方面加深課程基本內(nèi)容的理解。同時(shí),在程 設(shè)計(jì)方法以及上機(jī)操作等基本技能和科學(xué)作風(fēng)方面受到比較系統(tǒng)和嚴(yán)格的訓(xùn)練3課程設(shè)計(jì)說明書功能描述1,顧客取號(hào),需要辦理業(yè)務(wù)的顧客到取票機(jī)前取號(hào),并獲得打印出的排隊(duì)號(hào)。2、顧客休息等待,取到排隊(duì)號(hào)的顧客在休息區(qū)休息等待,注意大廳的提示信息。3、營(yíng)業(yè)員按鈕呼叫,窗口操作員按“下一位”,當(dāng)前窗口就顯示顧客排隊(duì)號(hào)并語音呼叫“請(qǐng) xx 到 x 號(hào)窗口”4、顧客到窗口辦理,休息區(qū)的顧客到呼叫就到響應(yīng)窗口進(jìn)行一 對(duì)一服務(wù)
4、。排隊(duì)叫號(hào)軟件的具體操作流程為:1、顧客取號(hào)需要辦理業(yè)務(wù)的顧客到取票機(jī)前取號(hào),并獲得打印出的2、顧客休息等待 取到排隊(duì)號(hào)的顧客在休息區(qū)休息等待,注意大廳的提示信息3、營(yíng)業(yè)員按鈕呼叫 窗口操作員按“下一位”,當(dāng)前窗口就顯示顧客排隊(duì)號(hào)并語音呼叫“請(qǐng)xx到x號(hào)窗口”4、顧客到窗口辦理 休息區(qū)的顧客聽到呼叫就到響應(yīng)窗口進(jìn)行一對(duì)一服務(wù)代碼實(shí)現(xiàn)詳細(xì)說明各功能模塊的實(shí)現(xiàn)過程,所用到的算法、技巧等。1、 在這個(gè)程序中,主要運(yùn)用了隊(duì)列這種結(jié)構(gòu):隊(duì)列是一種特殊的線性表,是一種只允許在表的一端插入操作而在另一端進(jìn)行刪除操作的線性表。進(jìn)行插入操作的表尾稱為隊(duì)尾(rear),進(jìn)行刪除操作的頭部稱為對(duì)(front)。當(dāng)隊(duì)
5、列中沒有數(shù)據(jù)元素時(shí)稱為空隊(duì)列(empty queue)。隊(duì)列通常記為q=(a1,a2,an),a1為對(duì)頭元素,an為隊(duì)尾元素。這n個(gè)元素是按照a1,a2,an的次序依次入隊(duì)的,出隊(duì)的順序與入隊(duì)順序相同,a1第一個(gè)出隊(duì),an最后一個(gè)出隊(duì)。隊(duì)列的結(jié)構(gòu)示意圖如下: 出隊(duì) a1 a2 an 入隊(duì)2、隊(duì)列的特征: 隊(duì)列的操作是按照“先進(jìn)先出”或“后進(jìn)后出” 的原則進(jìn)行的。3、 隊(duì)列的基本操作:(1) 入隊(duì)列操作:enqueue(t elem);(2) 出隊(duì)列操作:dequeue();(3) 取隊(duì)頭元素:getfront();(4) 求隊(duì)列的長(zhǎng)度;getlength();(5) 判斷隊(duì)列是否為空:isem
6、pty();(6) 清空操作:clear();(7) 判斷是否為滿:isfull();在這個(gè)程序中用循環(huán)順序隊(duì)列;當(dāng)隊(duì)尾指示器rear到達(dá)數(shù)組上限時(shí),如果還有數(shù)據(jù)元素入隊(duì)并且數(shù)組的第0個(gè)空間空閑時(shí),隊(duì)尾指示器rear指向數(shù)組的0端。隊(duì)尾指示器rear的值不一定大于隊(duì)頭front的值,并且隊(duì)滿和隊(duì)空的條件是相同的,為rear=front;2.3類定義(函數(shù)定義)在這個(gè)程序中,定義了一下及幾種類:接口iqueue類:將隊(duì)列的基本操作定義在接口iqueue中,如左圖所示:clear:清空操作,是隊(duì)列為空;dequeue:出隊(duì)列操作,將隊(duì)頭元素從隊(duì)列中取出;enqueue:入隊(duì)列操作,將值為elem的
7、新數(shù)據(jù)元素添加到隊(duì)尾;getfront:取隊(duì)頭元素,返回隊(duì)頭元素的值;getlength:求隊(duì)列的長(zhǎng)度,返回隊(duì)列中數(shù)據(jù)元素的個(gè)數(shù);isempty:判斷隊(duì)列是否為空,如果對(duì)列為控,返回true,否則返回false;isfull:判斷是否為滿,如果對(duì)列為滿返回true,否則返回false;接口ibankqueue類:將銀行隊(duì)列的所有操作定義在里面:getcallnumber:獲取服務(wù)號(hào); 泛型類cseqqueue<t>表示順序隊(duì)列:(1)、字段字段maxsize:表示循環(huán)隊(duì)列的最大容量;字段front:表示對(duì)頭,范圍是0maxsize-1;字段rear:表示隊(duì)尾,范圍也是0maxsiz
8、e-1;字段data:表示數(shù)組用于存儲(chǔ)循環(huán)順序隊(duì)列中的數(shù)據(jù) 元素;(2)、屬性在類中并設(shè)置了隊(duì)頭屬性(front)、隊(duì)尾屬性(rear)、容量屬性(maxsize)、索引器屬性(this);(3)、方法在這個(gè)類中有接口iqueue中的一切方法;銀行叫號(hào)順序隊(duì)列類cseqbankqueue類:該類實(shí)現(xiàn)ibankqueue接口中定義的全部行為,通過繼承cseqqueue<t>將已實(shí)現(xiàn)的全部行為繼承過來;此外,設(shè)置了一個(gè)新來顧客的服務(wù)號(hào)屬性callnumber;通過方法getcallnumber()獲得服務(wù)號(hào);form1類:form1繼承了系統(tǒng)中的form類;在form1中使用了butt
9、on、label、textbox等控件;使用了button_click方法實(shí)現(xiàn)取號(hào)行為;form2類:form2也繼承了系統(tǒng)中的form類;在form2中也使用了button、label、textbox等控件;使用了button_click方法實(shí)現(xiàn)叫號(hào)行為;form3類:form3也繼承了系統(tǒng)中的form類;在form2中也使用了button、label、textbox等控件;使用了button_click方法實(shí)現(xiàn)叫號(hào)行為;form4類:form4也繼承了系統(tǒng)中的form類;在form2中也使用了button、label、textbox等控件;使用了button_click方法實(shí)現(xiàn)叫號(hào)行為;服
10、務(wù)窗口servicewindow類:服務(wù)隊(duì)列的屬性bankq;作為線程的方法service();主程序main()方法;4課程設(shè)計(jì)成果:5.程序調(diào)試過程:按下f5進(jìn)行調(diào)試,出現(xiàn)錯(cuò)誤.有時(shí)把”.”寫成“,”,忘記“;”,或少寫“”,最后調(diào)試成功。6.設(shè)計(jì)問題的不足和改進(jìn)方案由于時(shí)間緊,設(shè)計(jì)不是很合理,觸屏取號(hào)應(yīng)該更方便。7.課程設(shè)計(jì)心得:我們認(rèn)為,在這學(xué)期的實(shí)驗(yàn)中,在收獲知識(shí)的同時(shí),還收獲了閱歷,收獲了成熟,在此過程中,我們通過查找大量資料,請(qǐng)教老師,以及不懈的努力,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實(shí)驗(yàn)課上,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。而這是日后最實(shí)
11、用的,真的是受益匪淺。要面對(duì)社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。 在整個(gè)過程中,應(yīng)該注意以下幾點(diǎn):要求利用面向?qū)ο蟮姆椒ㄒ约瓣?duì)列數(shù)據(jù)結(jié)構(gòu)來完成系統(tǒng)的設(shè)計(jì);. 在設(shè)計(jì)的過程中,建立清晰的類層次;在系統(tǒng)設(shè)計(jì)中要分析和定義各個(gè)類,每個(gè)類中要有各自的屬性和方法; 要運(yùn)用面向?qū)ο蟮臋C(jī)制來實(shí)現(xiàn)系統(tǒng)功能。通過對(duì)完成這次課程設(shè)計(jì),加深了對(duì)隊(duì)列這種數(shù)據(jù)結(jié)構(gòu)的理解,掌握了隊(duì)列數(shù)據(jù)結(jié)構(gòu)極其算法;此外也能夠更加熟練的使用button。label。textbox等控件8.附錄源代碼iqueue接口代碼:using system;namespace queueds interface iqueue<t
12、> void enqueue(t elem); /入隊(duì)列操作 t dequeue(); /出隊(duì)列操作 t getfront(); /取對(duì)頭元素 int getlength(); /求隊(duì)列的長(zhǎng)度 bool isempty(); /判斷隊(duì)列是否為空 void clear(); /清空隊(duì)列 bool isfull();/判斷是否為滿,在順序隊(duì)列中實(shí)現(xiàn)該算法,在鏈?zhǔn)疥?duì)列中代碼實(shí)現(xiàn)為空 ibankqueue接口代碼:using system;namespace queueds interface ibankqueue:iqueue<int> int getcallnumber();/獲
13、得服務(wù)號(hào)碼 順序隊(duì)列代碼:using system;namespace queueds public class cseqqueue<t>:iqueue<t> private int maxsize; /循環(huán)順序隊(duì)列的容量 private t data; /數(shù)組,用于存儲(chǔ)循環(huán)順序隊(duì)列中的數(shù)據(jù)元素 private int front; /指示最近一個(gè)己經(jīng)離開隊(duì)列的元素所占的位置 private int rear; /指示最近一個(gè)進(jìn)行入隊(duì)列的元素的位置 /索引器 public t thisint index get return dataindex; set dataind
14、ex = value; /容量屬性 public int maxsize get return maxsize; set maxsize = value; /隊(duì)頭指示器屬性 public int front get return front; set front = value; /隊(duì)尾指示器屬性 public int rear get return rear; set rear = value; /初始化隊(duì)列 public cseqqueue() public cseqqueue(int size) data = new tsize; maxsize = size; front = rear
15、 = -1; /入隊(duì)操作 public void enqueue(t elem) if (isfull() console.writeline("queue is full"); return; rear=(rear + 1) % maxsize; ; datarear = elem; /出隊(duì)操作 public t dequeue() if (isempty() console.writeline("queue is empty"); return default(t); front = (front + 1) % maxsize; return dat
16、afront; /獲取隊(duì)頭數(shù)據(jù)元素 public t getfront() if (isempty() console.writeline("queue is empty!"); return default(t); return data(front+1)%maxsize; /求循環(huán)順序隊(duì)列的長(zhǎng)度 public int getlength() return (rear - front + maxsize) % maxsize; /判斷循環(huán)順序隊(duì)列是否為滿 public bool isfull() if (front = -1 && rear = maxsi
17、ze - 1) | (rear + 1) % maxsize = front) return true; else return false; /清空循環(huán)順序隊(duì)列 public void clear() front = rear = -1; /判斷循環(huán)順序隊(duì)列是否為空 public bool isempty() if (front = rear) return true; else return false; 銀行順序隊(duì)列代碼:using system;using system.threading;namespace queueds /銀行叫號(hào)順序隊(duì)列類 class cseqbankqueue
18、:cseqqueue<int>,ibankqueue private int callnumber;/記錄系統(tǒng)自動(dòng)產(chǎn)生的新來顧客的服務(wù)號(hào) /叫號(hào)屬性 public int callnumber get return callnumber; set callnumber = value; public cseqbankqueue () public cseqbankqueue(int size):base(size) /獲得服務(wù)號(hào)碼 public int getcallnumber() if (isempty() && callnumber = 0) callnumb
19、er = 1; else callnumber+; return callnumber; /服務(wù)窗口類 class servicewindow ibankqueue bankq; public ibankqueue bankq get return bankq; set bankq = value; public void service() while (true) thread.sleep(10000); if (!bankq.isempty() console.writeline(); lock (bankq) console.writeline("請(qǐng)0號(hào)到1號(hào)窗口!"
20、;, bankq.dequeue(), thread.currentthread.name); form1代碼using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.windows.forms;using queueds;namespace 銀行排隊(duì)叫號(hào)系統(tǒng) public partial class form1 : form ib
21、ankqueue bankqueue=new cseqbankqueue(100); cseqqueue<int> q1 = new cseqqueue<int>(100); int callnumber; public form1() initializecomponent(); form2 f1 = new form2(this.q1); form3 f2 = new form3(this.q1); form4 f3 = new form4(this.q1); f1.show(); f2.show(); f3.show(); private void button1
22、_click(object sender, eventargs e) if (!bankqueue.isfull() callnumber = bankqueue.getcallnumber(); textbox1.text = "你的號(hào)碼是:" + callnumber + "號(hào)," + "你前面還有" + bankqueue.getlength() + "位,請(qǐng)耐心等待!" bankqueue .enqueue(callnumber ); q1.enqueue(callnumber); else console
23、 .writeline ("現(xiàn)在業(yè)務(wù)繁忙,請(qǐng)稍后再來!"); console .writeline (); private void form1_load(object sender, eventargs e) form2的代碼:using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.windows.forms
24、;using queueds;namespace 銀行排隊(duì)叫號(hào)系統(tǒng) public partial class form2 : form cseqqueue<int> _q1 = new cseqqueue<int>(100); public form2(cseqqueue<int> q1) initializecomponent(); this._q1=q1; private void button1_click(object sender, eventargs e) if (!_q1.isempty () textbox1.text = "請(qǐng)&q
25、uot; +_q1.dequeue()+ "號(hào)到一號(hào)窗口" else messagebox.show("現(xiàn)在沒有客人!"); private void form2_load(object sender, eventargs e) form3代碼:using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using sy
26、stem.windows.forms;using queueds;namespace 銀行排隊(duì)叫號(hào)系統(tǒng) public partial class form3 : form cseqqueue<int> _q1 = new cseqqueue<int>(100); public form3(cseqqueue<int> q1) initializecomponent(); this._q1 = q1; private void button1_click(object sender, eventargs e) if (!_q1.isempty() textbo
27、x1.text = ("請(qǐng)" + _q1.dequeue() + "號(hào)到二號(hào)窗口!"); else messagebox.show("現(xiàn)在沒有客人!"); private void form3_load(object sender, eventargs e) form4代碼:using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using syst
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年稅務(wù)工作者工作總結(jié)范文(3篇)
- 2024-2025學(xué)年廣東省清遠(yuǎn)市八校聯(lián)盟高一上學(xué)期教學(xué)質(zhì)量檢測(cè)(二)歷史試卷
- 2025年企業(yè)文化建設(shè)策劃咨詢協(xié)議
- 2025年企業(yè)數(shù)據(jù)保密共享協(xié)議
- 2025年基礎(chǔ)設(shè)施建設(shè)項(xiàng)目合同律師服務(wù)協(xié)議
- 2025年公司員工協(xié)議范本
- 2025年設(shè)備采購租賃合同協(xié)議范本
- 2025年裂隙燈顯微鏡項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模板
- 2025年醫(yī)藥產(chǎn)品銷售合同樣本
- 2025年頻率測(cè)量?jī)x器項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模板
- 2025年業(yè)務(wù)員工作總結(jié)及工作計(jì)劃模版(3篇)
- 必修3《政治與法治》 選擇題專練50題 含解析-備戰(zhàn)2025年高考政治考試易錯(cuò)題(新高考專用)
- 二零二五版電商企業(yè)兼職財(cái)務(wù)顧問雇用協(xié)議3篇
- 課題申報(bào)參考:流視角下社區(qū)生活圈的適老化評(píng)價(jià)與空間優(yōu)化研究-以沈陽市為例
- 2025江西吉安市新廬陵投資發(fā)展限公司招聘11人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 深圳2024-2025學(xué)年度四年級(jí)第一學(xué)期期末數(shù)學(xué)試題
- 2024-2025學(xué)年成都市高新區(qū)七年級(jí)上英語期末考試題(含答案)
- 《中南大學(xué)模板》課件
- 廣東省深圳市南山區(qū)2024-2025學(xué)年第一學(xué)期期末考試九年級(jí)英語試卷(含答案)
- T-CSAC 004-2024 軟件供應(yīng)鏈安全要求測(cè)評(píng)方法
- T-CISA 402-2024 涂鍍產(chǎn)品 切口腐蝕試驗(yàn)方法
評(píng)論
0/150
提交評(píng)論