C语言学习之用队列实现银行排队系统

队列操作的接口:http://blog.csdn.net/qlx846852708/article/details/43666927

数据结构C语言实现:http://blog.csdn.net/qlx846852708?viewmode=contents

本文件是用队列实现银行排队系统,上面的连接是我实现的队列的接口实现。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "seqQueue.h"

int g_number = 0;

int add_queue(SEQQUEUE *queue)
{
    int ret = 0;
    int number = 0;
    DATATYPE_T data;

    ret = queue_full(queue);
    if(ret==0)
    {
        data.number = ++g_number;
        data.time = time(NULL);
        queue_push(queue,data);
    }
    else
    {
        printf("line up too much,please waiting\n");
        return -1;
    }
    return 0;
}

void next(SEQQUEUE *queue)
{
    int ret = 0;
    DATATYPE_T *data;
    ret = queue_empty(queue);
    if(ret)
    {
        printf("the queue is empty\n");
        return -1;
    }

    data = queue_pop(queue);
    printf("0x%x\n",data);
    printf("please number is %d handles the service\n",data->number);
}

int menu()
{
    printf("********************\n");
    printf("1.new consumer\n");
    printf("2.next consumer\n");
    printf("0.quit ");
    printf("\n");
    printf("********************\n");
}

int main()
{
    int opt = 0;
    int len = 0;
    DATATYPE_T data;
    SEQQUEUE *queue=NULL; 

    queue = queue_init();
    if(queue==NULL)
    {
        printf("creat queue failed\n");
        return -1;
    }

    do
    {
        menu();
        printf("please input select!\n");
        scanf("%d",&opt);

        switch(opt)
        {
            case 1:
                add_queue(queue);
                len = get_queue_length(queue);
                printf("current wait for %d consumer\n",len);
                break;
            case 2:
                next(queue);
                len = get_queue_length(queue);
                printf("current wait for %d consumer\n",len);
                break;
            case 0:
                break;
            default:
                break;
        }

    }while(opt!=0);

    return 0;
}



时间: 2024-08-08 09:26:00

C语言学习之用队列实现银行排队系统的相关文章

DS队列之银行排队

题目描述 在银行营业大厅共服务3种客户,类型为A\B\C,大厅分别设置了3个窗口分别服务三种客户,即每个窗口只服务一种客户.现有一批客户来银行办理业务,每个客户都有类型和办理业务时间.每个窗口按照客户到来的顺序进行服务. 编程实现它们的办理流程,请使用C++自带的queue必须使用队列实现,其他方法0分! 队列queue的用法如下: 1.包含头文件:#include <queue> 2.定义一个整数队列对象:queue<int>  myQe; 3.定义一个整数队列对象数组:queu

R语言学习笔记

參考:W.N. Venables, D.M. Smith and the R DCT: Introduction to R -- Notes on R: A Programming Environment for Data Analysis and Graphics,2003. http://bayes.math.montana.edu/Rweb/Rnotes/R.html 前言:关于R 在R的官方教程里是这么给R下注解的:一个数据分析和图形显示的程序设计环境(A system for data

go语言学习笔记

go语言学习笔记 go语言学习笔记(初级) 最近一直在学习go语言,因此打算学习的时候能够记录 一下笔记.我这个人之前是从来没有记录笔记的习惯, 一直以来都是靠强大的记忆力去把一些要点记住. 读书的时候因为一直都是有一个很安静和很专心的环境, 因此很多事情都能记得很清楚,思考的很透彻.但是随着 年纪不断增加,也算是经历了很多的事情,加上工作有时会让人 特别烦闷,很难把心好好静下来去学习,去思考大自然的终极 奥秘,因此需要记录一些东西,这些东西一方面可以作为一种自我激励 的机制,另一方面,也算是自

C语言学习书籍推荐《C Primer Plus(中文版)(第5版)》下载

普拉塔 (Prata S.) (作者), 云巅工作室 (译者) <C Primer Plus(中文版)(第5版)>共17章,介绍了C语言的基础知识,包括数据类型.格式化输入输出.运算符.表达式.流程控制语句.函数.数组和指针.字符串操作.内存管理.位操作等,知识内容都针对C99标准:另外,<C Primer Plus(中文版)(第5版)>强化了对指针的讨论,并引入了动态内存分配的概念,也讨论了C预处理器和C库函数.高级数据表示(数据结构)方面的内容. 下载地址:点我 编辑推荐 作为

C语言学习必须拥有学习路线,不然你就只会写贪吃蛇

C语言学习必须拥有学习路线,不然你就只会写贪吃蛇这些天一直有人问我,c语言好学吗?我是个新手,该如何学习? 其实,这类问题困扰着很多新手.在如何学习之前,我们想简单的了解一下什么是C语言: C语言是一种计算机程序设计语言.它既有高级语言的特点,又具有汇编语言的特点.它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序.创一个小群,供大家学习交流聊天如果有对学C++方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望

大一上学期C语言学习心得总结

经过一个学期的C语言学习,大体算是在这个编程语言上入了门,能够通过一些代码解决特定的问题.当然,每次成功将问题转换成代码都小有激动,虽然只是在黑框上输出了一些数字或是字符串. 编程,虽然还不是很懂,但总感觉不只是学习知识这么简单,更多给我的感受是它在潜移默化中培养了人的一种能力,用自己的话来讲就是一种”代码能力“.对于同一个问题,让大家去解开答案,可能经过一些纸笔的运算都能得出结果,但是如何把这个问题转化成代码,这就是一种能力,而仅仅是将问题转换成代码,这是较为浅层次的能力,更深层的便是通过优化

Perl语言学习笔记 9 正则表达式处理文本

1.替换 s/PATTERN/REPLACE/; #返回是否替换成功的布尔值 可以使用捕获变量,如:s/(\w)/$1/ 匹配失败则不做任何处理 2.定界符 对于没有左右之分的定界符,重复三次即可,如:s///.s### 对于有左右之分的定界符,需使用两对,一对包含模式,一对包含替换字符串,这两对可以不一样,如:s{}{}.s[]{}.s<>[] 3.可选修饰符 /g可进行全局替换,替换所有匹配到的字符串,如:s/ / /g /s:使得 . 匹配所有字符 /i:大小写无关 4.绑定操作符 $f

go语言学习(五)——面向对象编程

主要讲的是"类"和接口&和其他传统语言不一样的地方挺多的,断断续续看了好几天 下面是我的练习代码 // GoStudy0219 project main.go /* go语言学习--面向对象编程(1) go中类型的值语义和引用语义 结构体(类)的定义和初始化 */ package main import ( "fmt" ) func main() { //几种"类"的初始化 v1 := &character{"Tom&q

Perl语言学习笔记 6 哈希

1.哈希的键是唯一的,值可以重复! 2.访问哈希元素 $hashname{"$key"};#哈希为大括号,数组为方括号,键为字符串 $family_name{"fred"} = "firstd";#给哈希元素赋值 3.哈希键支持任意表达式 $foo = "na"; $family_name{$foo."me"};#获取$family_name{"name"}对应的值 4.访问整个哈希 %