学生在线答疑排队模拟C语言版的程序代码有木有呢?

程序设计思路:
1.主函数main( ),打印输出主控程序菜单选项,并接收用户的选择项
2.定义学生信息(学号、姓名)的数据存储结构
3.设计学生在线答疑排队模拟程序的功能函数EnQueue( ),处理新学生加入排队的情况
4.设计学生在线答疑排队模拟程序的功能函数AnsQ( ),处理队列中第一个学生出队列答疑的情况
5.设计功能函数PrintQ( ),输出队列中所有正在排队的学生信息。
6.当用户退出答疑程序时,检查队列是否为空。如仍有学生排队,提示已经下班。
7.需要再复习用到的队列的操作方法及C程序设计中的编程技巧。

又是学生党的作业题,谁来当一回学生党呢

Google 了一下,好像是这本书上的:数据结构(C语言)实验教程 - 电子工业出版社

这个是离散事件模型的一个实例吧,直接看书就行,书上有类似代码,拿来改一改就能用了

看那一本数据结构的书都会有讲的,看队列那一部分你就知道要怎么做了。

你的二师兄已经写好了,http://www.doc88.com/p-0714362785085.html
拿好不送

http://www.doc88.com/p-0714362785085.html

都是湖南等偏僻的地方的那种野鸡大学的学生,专门喜欢来论坛乞讨作业。

http://wenku.baidu.com/link?url=iCPh88jc1DXtTPvTUKGJ8ksarq_2Tpx9b1XqUNwDphtupiJdGprkG8k7N9k3RRf8b_0azw13g1IavXv9Y1n6aUaTihHLx2KDjzHY_DFWrLy
这里也有一份

http://z.download.csdn.net/detail/a398302010/1481561
对于这种程序,先把设计框架列好,然后进一步细化就没问题了

以下是一个简单的C语言程序,实现学生在线答疑排队模拟程序的功能,包含了上述所述的主要功能函数。程序利用队列的数据结构来模拟学生排队的过程,用户可以选择将新学生加入队列,输出队列中正在排队的学生信息,或者将队列中的第一个学生出队列进行答疑。


Copy code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// 定义学生信息的数据结构
typedef struct {
    int id;         // 学号
    char name[20];  // 姓名
} Student;

// 定义队列节点的数据结构
typedef struct Node {
    Student data;
    struct Node *next;
} Node;

// 定义队列的数据结构
typedef struct {
    Node *front;    // 队头指针
    Node *rear;     // 队尾指针
    int size;       // 队列大小
} Queue;

// 初始化队列
void initQueue(Queue *q) {
    q->front = q->rear = NULL;
    q->size = 0;
}

// 判断队列是否为空
int isEmpty(Queue *q) {
    return q->size == 0;
}

// 入队操作
void EnQueue(Queue *q) {
    Node *p = (Node *)malloc(sizeof(Node));
    printf("请输入学生学号和姓名:\n");
    scanf("%d %s", &(p->data.id), p->data.name);
    p->next = NULL;
    if (isEmpty(q)) {
        q->front = q->rear = p;
    } else {
        q->rear->next = p;
        q->rear = p;
    }
    q->size++;
    printf("学生 %d %s 已加入排队队列\n", p->data.id, p->data.name);
}

// 出队操作
void AnsQ(Queue *q) {
    if (isEmpty(q)) {
        printf("队列为空!\n");
    } else {
        Node *p = q->front;
        q->front = p->next;
        q->size--;
        printf("学生 %d %s 正在答疑中...\n", p->data.id, p->data.name);
        free(p);
    }
}

// 输出队列中所有学生信息
void PrintQ(Queue *q) {
    if (isEmpty(q)) {
        printf("队列为空!\n");
    } else {
        printf("当前排队的学生信息:\n");
        Node *p = q->front;
        while (p) {
            printf("%d %s\n", p->data.id, p->data.name);
            p = p->next;
        }
    }
}

int main() {
    Queue q;
    initQueue(&q);
    int choice;
    while (1) {
        printf("\n请根据菜单选择需要进行的操作:\n");
        printf("1. 加入排队队列\n");
        printf("2. 答疑\n");
        printf("3. 输出队列中所有学生信息\n");
        printf("4. 退出程序\n");
        printf("请输入选项数字:");
        scanf("%d", &choice);
        switch