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
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!