程序设计思路:
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://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