湖南財政經濟學院
資料結構課程設計報告
系別: 資訊管理系
課程:資料結構課程設計
班級: 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 報告中插圖應與文字緊密配合,文圖相符,技術內容正確。...