1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > c语言大作业银行排队叫号系统 C语言银行叫号系统课程设计.doc

c语言大作业银行排队叫号系统 C语言银行叫号系统课程设计.doc

时间:2023-12-13 02:38:33

相关推荐

c语言大作业银行排队叫号系统 C语言银行叫号系统课程设计.doc

课程设计任务书

一、设计内容与要求

1、设计内容

1)、设计窗口,服务窗口;

2)、编写代码,实现各种算法,完成排队叫号问题;

2、设计要求

1.2.3.4.

2、功能设计

1)使用数组以及C#接口和范型技术实现通用的队列功能;

2)编写算法,利用队列模拟银行排队系统;

3)利用多窗口分别模拟顾客取服务号、银行窗口服务顾客。

2.2算法与数据结构

在银行排队叫号软件中,首先要找到一种数据结构来存放顾客所得到的服务号,这些服务号表示客户的请求服务的先后顺序,也表示客户被服务的先后顺序。先来的客户被服务:

在这个程序中,主要运用了队列这种结构:

队列是一种特殊的线性表,是一种只允许在表的一端插入操作而在另一端进行删除操作的线性表。进行插入操作的表尾称为队尾(Rear),进行删除操作的头部称为对头(Front)。当队列中没有数据元素时称为空队列(Empty Queue)。队列通常记为Q=(a1,a2,…,an),a1为对头元素,an为队尾元素。这n个元素是按照a1,a2,…an的次序依次入队的,出队的顺序与入队顺序相同,a1第一个出队,an最后一个出队。队列的结构示意图如下:

出队 a1 a2 … an 入队

2、队列的特征:

队列的操作是按照“先进先出”或“后进后出” 的原则进行的。

队列的基本操作:

入队列操作:EnQueue(T elem);

出队列操作:DeQueue();

取队头元素:GetFront();

求队列的长度;GetLength();

判断队列是否为空:IsEmpty();

清空操作:Clear();

判断是否为满:IsFull();

在这个程序中用循环顺序队列;

当队尾指示器rear到达数组上限时,如果还有数据元素入队并且数组的第0个空间空闲时,队尾指示器rear指向数组的0端。队尾指示器rear的值不一定大于队头Front的值,并且队满和队空的条件是相同的,为rear==front;

2.3类定义(函数定义)

在这个程序中,定义了一下及几种类:

接口IQueue类:

将队列的基本操作定义在接口IQueue中,如左图所示:

Clear:清空操作,是队列为空;

DeQueue:出队列操作,将队头元素从队列中取出;

EnQueue:入队列操作,将值为elem的新数据元素添加到队尾;

GetFront:取队头元素,返回队头元素的值;

GetLength:求队列的长度,返回队列中数据元素的个数;

IsEmpty:判断队列是否为空,如果对列为控,返回true,否则返回false;

IsFull:判断是否为满,如果对列为满返回true,否则返回false;

接口IBankQueue类:

将银行队列的所有操作定义在里面:

GetCallnumber:获取服务号;

泛型类CSeqQueue表示顺序队列:

(1)、字段

字段maxsize:表示循环队列的最大容量;

字段front:表示对头,范围是0~maxsize-1;

字段rear:表示队尾,范围也是0~maxsize-1;

字段data:表示数组用于存储循环顺序队列中的数据 元素;

(2)、属性

在类中并设置了队头属性(front)、队尾属性(rear)、容量属性(maxsize)、索引器属性(this);

(3)、方法

在这个类中有接口IQueue中的一切方法;

银行叫号顺序队列类CSeqBankQueue类:

该类实现IBankQueue接口中定义的全部行为,通过继承CSeqQueue将已实现的全部行为继承过来;此外,设置了一个新来顾客的服务号属性Callnumber;通过方法GetCallnumber()获得服务号;

Form1类:

Form1继承了系统中的Form类;

在Form1中使用了button、label、textBox等控件;

使用了button_Click方法实现取号行为;

Form2类:

Form2也继承了系统中的Form类;

在Form2中也使用了button、label、textBox等控件;

使用了button_Click方法实现叫号行为;

Form3类:

Form3也继承了系统中的Form类;

在Form2中也使用了button、label、textBox等控件;

使用了button_Click方法实现叫号行为;

Form4类:

Form4也继承了系统中的Form类;

在Form2中也使用了button、label、textBox等控件;

使用了button_Click方法实现叫号行为;

服务窗口ServiceWindow类:

服务队列的属性BankQ;

作为线程的方法Service();

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。