銀行排隊課程設計報告

2022-07-24 11:06:05 字數 3644 閱讀 5434

湖南財政經濟學院

資料結構課程設計報告

系別: 資訊管理系

課程:資料結構課程設計

班級: 2011電腦科學與技術

學號:姓名:

指導教師:

2012 年 12 月 15 日

目錄資料結構課程設計報告1

實驗一線性表3

1,設計題目3

2,需求分析3

3,概要設計3

4,詳細設計5

5,除錯分析7

6,使用說明7

7,測試結果7

8,效能分析8

9,實驗心得9

課程設計報告(二)

2011 級電腦科學與技術班 2012 年 12 月 16 日

姓名學號 2011050317 **

1. 設計題目

銀行排隊程式

1. 問題描述

顧客到銀行辦理業務,首先需要拿號並排隊等候,當空閒視窗叫號碼時,按排隊順序去辦理業務,業務辦理完畢,離開銀行。

業務需求

銀行上班開始辦理業務

顧客拿號排隊等待辦理業務

視窗依次叫號顧客辦理業務

銀行下班,結束當天業務。

2.選單描述:

0:開始辦理

1: 請您拿號

2:請到1號視窗辦理

3;請到2號串列埠辦理

4;請到3號視窗辦理

5;下班

2.需求分析

利用棧和列隊模擬銀行排隊辦理業務程式,學習利用棧和列隊解決實際問題。

輸入的形式和輸入值的範圍:拿號時輸入的選項值;辦理業務時需輸入的視窗號。在所有的輸入中,輸入的值都是整數。形式為選單。

輸出的形式:以選單形式輸出,以選項的方式顯示。

程式所能達到的功能:該程式用佇列來模擬銀行辦理業務時客戶排隊的情況,根據佇列先進先出的特點來設計,可以達到目的。可以先連續拿號,然後視窗人員安排客戶辦理業務。

拿號時是根據客戶的需求設計的,辦理業務時是根據辦理人員的需求設計的,辦理人員可選擇辦理和下班。

測試資料:無

3.概要設計

1)為了實現上述功能,需要定義的鏈隊的抽象資料型別為:

adt typedef struct qnode

資料關係:r=φ;

基本操作:creat_qutype構造乙個空的佇列,存放號碼資訊。

}qnode

menu()

操作結果:在螢幕上顯示操作選單

2)本程式包含乙個主函式,五個選擇分支

主函式main()

提醒客戶拿號分支case0

客戶拿號分支case1

1號視窗辦理業務分支case2

2號視窗辦理業務分支case3

3號視窗辦理業務分支case4

銀行下班提醒分支case5

其流程圖如下:

4,詳細設計

1)源程式**及注釋:

#include<>

#include<>

typedef struct qnode

qnode鏈隊結點型別

typedef struct

qutype鏈隊型別

void bank模擬在銀行排隊取錢過程

int sel,flag=1,i,m=1;

qutype *qu;

qnode *p;

qu=(qutype * )malloc(sizeof(qutype建立空隊

qu->front=qu->rear=null迴圈執行

while(flag==1)

printf("主選單\n0:開始辦理 \n1:請您拿號 \n2:

請您到1號視窗辦理\n3:請您到2號視窗辦理\n4:請您到3號視窗辦理 \n5:

下班 \n請選擇:");

scanf("%d",&sel);

switch(sel)

case 0開始辦理

printf(">>尊敬的客戶,歡迎來此辦理業務,請您先拿號!\n");

}break;

case 1請拿號

printf(">>請拿號,您的號為:%d\n",m);

p=(qnode * )malloc(sizeof(qnode)); //建立結點

p->data=m;

p->next=null;

if(qu->rear==null第乙個客戶排隊

qu->front=qu->rear=p;

else

qu->rear->next=p將*p結點入隊

qu->rear=p;

m=m+1; break;

case 2到1號視窗辦理

if(qu->front==null隊空

printf(">>沒有排隊的顧客!\n");

else

p=qu->front;

printf(">>請客戶%d到1號視窗辦理\n",p->data);

if(qu->rear==p)

qu->front=qu->rear=null; //防止溢位

else

qu->front=p->next;

free(p);

break;

case 3到2號視窗辦理

if(qu->front==null隊空

printf(">>沒有排隊的顧客!\n");

else

p=qu->front;

printf(">>請顧客%d到2號視窗辦理\n",p->data);

if(qu->rear==p)

qu->front=qu->rear=null; //防止溢位

else

qu->front=p->next;

free(p);

break;

case 4到3號視窗辦理

if(qu->front==null隊空

printf(">>沒有排隊的顧客!\n");

else

p=qu->front;

printf(">>請顧客%d到3號視窗辦理\n",p->data);

if(qu->rear==p)

qu->front=qu->rear=null; //防止溢位

else

qu->front=p->next;

free(p);

break;

case 5:

printf(">>下班時間已到,請排隊的客戶明天再來!\n");

flag=0;

break;

}void main()

2)結點型別和指標型別

typedef struct qnode

qnode鏈隊結點型別

typedef struct

qutype鏈隊型別

5,除錯程式及使用說明

程式名為執行環境為dos.程式執行後顯示

按照提示即可使用

6,測試結果

輸入選項

0的操作結果

1的操作結果

如果你想繼續拿號,可再次按1,號碼依次從1,2………n

2的操作結果

3與4的操作結果與2相似,只是客戶變了

如果沒有客戶排隊則顯示

5的操作結果為結束辦理業務。

7,程式效能分析

優點:程式層次清晰,通俗易懂,能夠滿足實驗要求。

球閥課程設計報告 ProE課程設計

一.課題名稱 球閥班級 12機自a1 小組成員 李軍帥 組長 李軍帥 二.球閥的功能和工作原理描述 1.球閥的工作原理 球閥的主要驅動原件是裝配於閥杆上端的扳手,球閥的啟閉元件是位於閥桿下端的球體。球閥的主要工作原理是 當給扳手施加某一轉矩,扳手驅動閥桿旋轉,閥桿將扳手的轉矩傳遞給位於閥桿下端的球體...

課程設計報告

數位電路課程設計報告 題目姓名 班級學號 同組人報告得分 南京航空航天大學金城學院 目錄一 課設內容及要求 1 設計任務 2 設計指標 二 設計方案 1 總體設計方案說明 2 模組結構與方框圖 三 電路設計與器件選擇 1 功能模組一 實際名 1 模組電路及引數計算 2 工作原理和功能說明 3 器件說...

課程設計報告

題目院 系電子與資訊工程學院 專業電子資訊科學與技術 班級姓名 設計日期 報告書寫要求 1 報告的撰寫要求條理清晰 語言準確 表述簡明。報告中段首空兩個字元,中文字型為宋體五號,數字 字元 字母為times new roman五號,且單倍行距。2 報告中插圖應與文字緊密配合,文圖相符,技術內容正確。...