课程设计任务书

一、设计内容与要求

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();

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

  1. c语言大作业俄罗斯方块,VC++ 6.0 C语言实现俄罗斯方块详细教程

    今天把我之前写的大作业分享一下吧,并教你们如何实现,希望你们看了前面的教程也能自己写一个. 1.要先下载一个 graphics.h 的头文件来绘图. 2.初始化窗口:initgraph(x, y);这 ...

  2. c语言大作业打印课程表,课程表(c语言)

    #include #include #include #include #include #include #pragma comment(lib,"WINMM.LIB") cha ...

  3. c语言大作业 模拟泊松分布,怎样用C语言模拟泊松分布

    每个事件的时间间隔按照指数分布,就可以满足事件在单位时间内发生的次数是按照泊松分布的 先顺便说一句,关于二项分布这个名称可以这样认为:发生k个事件的概率是二项展开式中的第k项.概率与二项展开式紧密联系 ...

  4. c语言大作业井字棋程序,C语言实现的井字棋

    /* *  文件名:#.c *  用途:井字棋程序 *  编程环境:WinXP SP2+CL 8.0 *  完成日期: 2006.8   Ver 0.01 *  作者: 88250 *  联系方式:  ...

  5. HTML期末大作业——游戏介绍(HTML+CSS+JavaScript) web前端开发技术 web课程设计网页规划与设计 Web大学生网页成品

  6. C语言大作业——匹配系统

    c语言大作业,匹配系统,开了三个线程,c89,需要支持pthread.h库. 文件1 color.h #include <windows.h> const WORD FORE_BLUE = ...

  7. c语言作业查询,C语言大作业学生成绩查询系统源代码.doc

    C语言大作业学生成绩查询系统源代码 #include #include struct student { char name[20]; char speciality[10]; int C; int ...

  8. 蔬菜信息配送系统c语言编程,c语言大作业物流配送系统程序(10页)-原创力文档...

    c语言大作业物流配送系统程序 #include #include #include //日期 struct date { int year; int month; int day; }; //订单链表 ...

  9. 1008c语言答案,c语言大作业题目01008.doc

    c语言大作业题目01008 一.学生信息管理程序 基本要求: 1.要求实现学生信息的查找.添加.删除.修改.浏览.保存.从文件读取.查看奖学金信息8个功能,每个功能模块均能实现随时从模块中退出,而且可 ...

  10. 学委作业管理系统c语言,c语言大作业-学生信息管理系统.doc

    c语言大作业-学生信息管理系统.doc 课程设计报告书 题目:学生信息管理系统设计 学 院 电子与信息学院 专 业 电子信息类 学生姓名 学生学号 指导教师 课程编号 135160 课程学分 1学分 ...

最新文章

  1. 【怎样写代码】参数化类型 -- 泛型(五):泛型类
  2. mysql隐式转换造成索引失效的事故总结
  3. 设计包含min函数的栈
  4. SAP用户增强总结-采购订单建立增加客户数据增强示例
  5. 计算机网络-基本概念(11)【应用层】
  6. 【Matlab】利用diary记录日志/保存命令窗口输出
  7. 成功者十三个价值连城的习惯
  8. mysql视图什么时候用_Mysql为什么要使用视图?
  9. 学习设计模式系列之一:单例模式
  10. 多线程(一)--线程的创建,Thread类与Runnable接口
  11. AVI视频文件损坏修复
  12. 小世界网络——利用Networkx分析武汉公交网络
  13. 什么是cpu?(基础篇)
  14. day 82 Vue学习三之vue组件
  15. UML工具Visual Paradigm v16.3发布:新增40种图表类型,模板更具针对性,让你轻松上手
  16. 7.Android常用第三方支付
  17. 伯克利摘得最佳论文,陈丹琦、杨笛一等华人团队获杰出论文,ACL2022奖项公布...
  18. 《数据结构与算法》实验:排序算法实验比较——选择排序 堆排序
  19. matlab 信号生成,Matlab产生信号的方法
  20. 刚子扯谈:专注 极致 口碑 快

热门文章

  1. 图解设计模式阅读(概述)
  2. 【洛谷OJ】传球游戏
  3. ROS配置环境搞错了,每次开终端都有bash: export: `/home/yyq/ork_ws/devel/setup.bash‘: 不是有效的标识符
  4. 软件测试面试常用Linux命令总结
  5. 西门子S7-1200PLC脉冲控制伺服程序案例 此程序是关于西门子1200PLC以PTO脉冲方式控制伺服电机,步进电机的功能块程序
  6. python组态开发_开发监控云组态软件的组成
  7. 病历管理系统设计与实现
  8. 【全网最新最全28套】Java毕业设计项目合集_轻松完成毕设_Java实战项目/Java练手项目
  9. 配置JAVA_HOME环境变量
  10. STM32利用Flymcu进行烧录