用C语言写一个学生活动管理平台完整代码

1.主界面至少3个结构体关联
2.学生申请参加某个活动
3.随机选择某个学生参加活动
4.活动记录

https://blog.csdn.net/weixin_64397656/article/details/128254415


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

#define MAX_STUDENT_NUM 100
#define MAX_ACTIVITY_NUM 10
#define MAX_NAME_LENGTH 20
#define MAX_RECORD_LENGTH 50

typedef struct {
    char name[MAX_NAME_LENGTH];
    int age;
    char gender;
} Student;

typedef struct {
    char name[MAX_NAME_LENGTH];
    int capacity;
    int num_participants;
    Student participants[MAX_STUDENT_NUM];
} Activity;

typedef struct {
    char activity_name[MAX_NAME_LENGTH];
    char participant_name[MAX_NAME_LENGTH];
    char record[MAX_RECORD_LENGTH];
} Record;

int get_random_number(int min, int max) {
    return min + rand() % (max - min + 1);
}

int main() {
    srand((unsigned)time(NULL));

    // Initialize students
    int num_students = 5;
    Student students[MAX_STUDENT_NUM] = {
        {"Tom", 20, 'M'},
        {"Alice", 21, 'F'},
        {"Bob", 19, 'M'},
        {"Cathy", 20, 'F'},
        {"David", 22, 'M'}
    };

    // Initialize activities
    int num_activities = 3;
    Activity activities[MAX_ACTIVITY_NUM] = {
        {"Basketball Game", 10, 0},
        {"Art Exhibition", 20, 0},
        {"Charity Event", 30, 0}
    };

    // Initialize records
    int num_records = 0;
    Record records[MAX_RECORD_LENGTH];

    while (1) {
        // Print main menu
        printf("\n\n====== Student Activity Management Platform ======\n");
        printf("1. Apply for activity\n");
        printf("2. Randomly select a student for an activity\n");
        printf("3. View activity records\n");
        printf("0. Exit\n");
        printf("Enter your choice: ");

        // Get user input
        int choice;
        scanf("%d", &choice);

        // Process user choice
        switch (choice) {
            case 0:
                printf("Bye!\n");
                return 0;
            case 1: {
                // Print available activities
                printf("\nAvailable activities:\n");
                for (int i = 0; i < num_activities; i++) {
                    printf("%d. %s (%d/%d)\n", i+1, activities[i].name, activities[i].num_participants, activities[i].capacity);
                }

                // Get activity index and student index
                int activity_index, student_index;
                printf("Enter the activity index and student index (e.g. 1 2): ");
                scanf("%d %d", &activity_index, &student_index);
                activity_index--;
                student_index--;

                // Check if activity is full
                if (activities[activity_index].num_participants >= activities[activity_index].capacity) {
                    printf("Sorry, the activity is full.\n");
                    break;
                }

                // Add student to activity
                activities[activity_index].participants[activities[activity_index].num_participants] = students[student_index];
                activities[activity_index].num_participants++;

                // Add record
                sprintf(records[num_records].activity_name, "%s", activities[activity_index].name);
                sprintf(records[num_records].participant_name, "%s", students[student_index].name);
                sprintf(records[num_records].record, "Student %s applied for activity %s.", students[student_index].name

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^