1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
| [[include]] [[include]]
[[define]] MAX_STUDENTS 100
// 定义日期结构体 typedef struct { int year; int month; int day; } Date;
// 定义性别枚举 typedef enum { MALE, FEMALE } Gender;
// 定义学生结构体 typedef struct { int id; // 学号 char name[50]; // 姓名 Gender gender; // 性别 Date birthday; // 生日 float score; // 成绩 } Student;
int studentCount = 0; Student students[MAX_STUDENTS];
// 添加学生 void addStudent() { if (studentCount >= MAX_STUDENTS) { printf("学生人数已满!\n"); return; }
Student s; printf("学号:"); scanf("%d", &s.id); printf("姓名:"); scanf("%s", s.name);
int g; printf("性别(0-男,1-女):"); scanf("%d", &g); s.gender = (Gender)g;
printf("生日(年 月 日):"); scanf("%d %d %d", &s.birthday.year, &s.birthday.month, &s.birthday.day);
printf("成绩:"); scanf("%f", &s.score);
students[studentCount++] = s; printf("添加成功!\n"); }
// 显示所有学生 void displayStudents() { if (studentCount == 0) { printf("暂无学生信息!\n"); return; }
printf("\n%-10s %-20s %-10s %-15s %s\n", "学号", "姓名", "性别", "生日", "成绩"); printf("--------------------------------------------------------\n");
for (int i = 0; i < studentCount; i++) { printf("%-10d %-20s %-10s %04d-%02d-%02d %.2f\n", students[i].id, students[i].name, students[i].gender == MALE ? "男" : "女", students[i].birthday.year, students[i].birthday.month, students[i].birthday.day, students[i].score); } }
// 按学号查找学生 void searchStudent() { int id; printf("请输入学号:"); scanf("%d", &id);
for (int i = 0; i < studentCount; i++) { if (students[i].id == id) { printf("\n找到学生:\n"); printf("学号:%d\n", students[i].id); printf("姓名:%s\n", students[i].name); printf("性别:%s\n", students[i].gender == MALE ? "男" : "女"); printf("生日:%04d-%02d-%02d\n", students[i].birthday.year, students[i].birthday.month, students[i].birthday.day); printf("成绩:%.2f\n", students[i].score); return; } }
printf("未找到该学生!\n"); }
int main() { int choice;
while (1) { printf("\n===== 学生信息管理系统 =====\n"); printf("1. 添加学生\n"); printf("2. 显示所有学生\n"); printf("3. 查找学生\n"); printf("4. 退出\n"); printf("请选择:"); scanf("%d", &choice);
switch (choice) { case 1: addStudent(); break; case 2: displayStudents(); break; case 3: searchStudent(); break; case 4: return 0; default: printf("无效选择!\n"); } }
return 0; }
|