c语言怎么编程一个抽题系统

抽题系统设计

c语言怎么编程一个抽题系统
(图片来源网络,侵删)

1. 需求分析

功能需求

1、用户输入问题数量。

2、用户输入问题内容。

3、系统随机抽取一个问题并显示给用户。

4、用户可以查看所有已抽取的问题。

非功能需求

1、系统需要有良好的用户体验,界面简洁明了。

2、系统需要有错误处理机制,如用户输入的问题数量为负数时,提示用户重新输入。

2. 系统设计

数据结构设计

1、使用数组存储问题内容。

2、使用链表存储已抽取的问题。

算法设计

1、使用随机数生成器生成一个介于0和问题数量之间的随机数。

2、根据随机数从数组中抽取一个问题。

3、将抽取的问题添加到链表中。

3. 代码实现

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct Node {
    char question[100];
    struct Node *next;
} Node;
Node *head = NULL;
int question_count = 0;
void add_question(char question[]) {
    Node *new_node = (Node *)malloc(sizeof(Node));
    strcpy(new_node>question, question);
    new_node>next = head;
    head = new_node;
    question_count++;
}
void draw_question() {
    if (question_count == 0) {
        printf("暂无问题!n");
        return;
    }
    srand(time(NULL));
    int random_index = rand() % question_count;
    Node *current = head;
    for (int i = 0; i < random_index; i++) {
        current = current>next;
    }
    printf("抽取的问题:%sn", current>question);
}
void show_all_questions() {
    Node *current = head;
    while (current != NULL) {
        printf("%sn", current>question);
        current = current>next;
    }
}
int main() {
    int choice;
    do {
        printf("1. 添加问题n");
        printf("2. 抽取问题n");
        printf("3. 查看所有问题n");
        printf("4. 退出n");
        printf("请输入您的选择:");
        scanf("%d", &choice);
        switch (choice) {
            case 1: {
                char question[100];
                printf("请输入问题内容:");
                scanf("%s", question);
                add_question(question);
                break;
            }
            case 2: {
                draw_question();
                break;
            }
            case 3: {
                show_all_questions();
                break;
            }
            case 4: {
                printf("谢谢使用!n");
                break;
            }
            default: {
                printf("无效的选择,请重新输入!n");
                break;
            }
        }
    } while (choice != 4);
    return 0;
}

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/416674.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-03-31 23:57
下一篇 2024-03-31 23:59

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入