数据结构。
课程设计报告。
院系: 信息工程学院
选题: 银行排队系统
班级: 软件开发q1341
学号: 13150162
姓名: 罗瑜
教师: 邓沌华
时间: 2015/4/25
一)问题的描述。
通过使用排队系统,由传统的客户站立排队变为取票进队,排队等待,叫号服务,由传统物理的多个队列变为一个逻辑队列,使先来先服务的思想得到更好的贯彻。
二)系统分析及设计。
1、需求分析:
假设某银行有n个窗口开展对外接待业务,从早晨银行开门起不断有客户进入。客户在客户人数多时需要选择窗口排队,约定规则如下:
客户到达银行时能拿到排队号码,并能知道需要等待的人数。如果是vip客户直接进入vip窗口,无须加入普通客户的等待。
可以查看每个窗口正在给几号客户办理业务。
客户离开银行时,有评价窗口银行职员服务的平台。
2、概要设计。
设计一个含有多个菜单项的主控菜单已链接系统的各项子功能。
采用数组存放办理业务的窗口,用链式队列存放排队客户的信息。
6个功能模块:
客户到达:先判断是普通用户还是vip,验证vip后直接进入窗口办理,普通用户判断窗口是否空闲,是进入窗口办理,否进队列排队。
客户离开:后看队列有人否,有队首进入当前窗口办理,否把该窗口置空闲,然后评分统计。
查看窗口情况:查看每个窗口的状态。
查看排队情况:查看当前等待人数。
系统查询:查看已经办理了的情况。
退出。3、详细设计。
见源**cpp文件。
(三)系统实现。
1、完整源**。
#include <>
#include <>
#include <>
#include <>
#include <>
int vip1=0;
int y,z;
float gt1=0,gt2=0,gt3=0,sum4=0,sum5=0;
float i1=0,i2=0,i3=0,i4=0,i5=0;
float pjfen1=0,pjfen2=0,pjfen3=0,**e4=0,**e5=0;
struct list
int a[3+1顾客用来办理业务的n个窗口。
int ren表示数组中的元素个数。
l;struct lnode
链表结点类型。
int data;
lnode *next;
struct linkqueue
链式存储的等候队列的类型定义。
lnode *front;
lnode *rear;
q;void initshuzu初始化线性的算法。
for(int i=1;i<=3;i++)
元素值为0,表示编号为i的窗口当前状态为空。
void initqueue初始化队列的算法。
*)malloc(sizeof(lnode));
>next=null; /k1
void enqueue(linkqueue *q,int elem) /进队算法。
lnode *s;
s=(lnode *)malloc(sizeof(lnode));
s->data=elem;
s->next=null;
q->rear->next=s;
q->rear=s;
int dlqueue(linkqueue *q) /出队算法。
lnode *t;
int x;
if(q->front==q->rear)
elsevoid printl() 输出数组算法。
int i;
printf("正在办理业务的顾客编号为: 一号柜台二号柜台三号柜台");
printf
for( i=1;i<=
printf("");
void print2输出队列算法。
int i=0;
printf("请");
lnode *s=>next;
while(s!=null)
printf("号做好准备!:)
printf("您的前面一共有%d人在排队,请您稍候!",i);
printf("");
void clientdd(int x) /顾客到达算法。
int i=
if (<3) /i++;
elseenqueue(&q,x);
void clienlk(int x顾客离开算法。
int i=0;
doprintf("\07");
scanf("%d",&x);
elsefor(i=0;i<=
if(i==x)
printf("尊敬的%d号顾客您好!",if(
int y=dlqueue(&q);
}while(i==0);
*int guitai判断输入的柜台号是否正确。
int y=0;
printf("请输入你所办理业务的柜台号(1-3):");
scanf("%d",&y);
if(y<1||y>3)
printf("\07");
printf("请输入你所办理业务的柜台号(1-3):");
scanf("%d",&y);
elseprintf(" 你所办理业务的柜台为%d.",y);
return y;
int pingfeng判断输入的分数是否正确。
int y=0;
printf("请输入你评分(1-5):1分………非常不满意;2分………比较不满意;3分………一般满意;4分………比较满意;5分………非常满意。");
printf("请输入:")
scanf("%d",&y);
if(y<1||y>5)
printf("\07");
printf("请输入你的评分(1-5):");
scanf("%d",&y);
elseprintf(" 你的评分为%d.",y);
return y;
void evaluatepj(int x主评分函数。
printf("为了改善服务质量,请你对我们的服务进行评价。");
z=x;y=pingfeng( )
switch (z柜台评分处理。
printf("\07");
Windows批处理程序学习
说明 本文档是平时工作的积累,正在完善和补充,这里基本采用80 20法则,大部分内容是工作中经常用到的,并且可以解决大部分的问题。由于里面夹杂各种参考资料以及自己对这些资料的理解,其间可能存在许多不全面的,甚至错误的地方。如果以后有需要,再补充外部程序命令部分。作者 garfield 发布日期 20...
WINDOWS大作业
一 windows功能体会。1.查找文件,找到后运行。体会路径 快捷方式 查找的概念 2.运行 计算器 将十进制数88转换成二进制数。体会附件的应用 3.运行 cmd,按alt printscreen键 体会复制 粘贴 4.查看自己机器的ip地址 体会网上邻居 5.查看自己机器的计算机名 体会我的电...
Windows上机作业
windows实验 计算机系统设置。注意 在d盘建立文件夹名为你学号的最后两位及你的姓名。如,学号 2010221201 姓名 李立 文件夹起名为 01李立 下面的文件都保存在此文件夹中。一 完成下列操作,将操作结果或操作过程中设置的窗口复制到word文档中 键盘上alt 印屏幕 键及剪贴板操作,p...