From 8e56917bec5eef1fbd4331f0c4c7704fa5e0eed7 Mon Sep 17 00:00:00 2001 From: pvk3wty2e <3053854630@qq.com> Date: Mon, 13 Nov 2023 18:58:18 +0800 Subject: [PATCH] Update README.md --- README.md | 102 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 53 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 868e0ef..e3566e0 100644 --- a/README.md +++ b/README.md @@ -1,65 +1,69 @@ -# Student_registration_management_system #include -#include #include +// 定义学生结构体 struct Student { - char id[20]; - char clas[20]; + char id[10]; + int class; char name[20]; - double score1; - double score2; - double score3; - double score; + float score1; + float score2; + float score3; }; -// Function prototypes -void inputStudent(struct Student *stu); -void deleteStudent(struct Student *stu, int *numStudents); -void selectStudent(struct Student *stu, int numStudents); +// 删除学生函数 +void deleteStudent(struct Student students[], int *numStudents, char key[]) { + int i, j; + + // 查找待删除学生的位置 + for (i = 0; i < *numStudents; i++) { + if (strcmp(students[i].id, key) == 0 || strcmp(students[i].name, key) == 0) { + break; + } + } + + // 如果找到了学生,删除并保持数组有序 + if (i < *numStudents) { + for (j = i; j < *numStudents - 1; j++) { + students[j] = students[j + 1]; + } + (*numStudents)--; + } +} int main() { - struct Student students[100]; // Adjust the size as needed - int numStudents = 0; - int option; + // 初始化已有学生信息 + struct Student students[3] = { + {"10001", 11, "Zhang", 99.5, 88.5, 89.5}, + {"10002", 12, "Yang", 77.9, 56.5, 87.5}, + {"10003", 11, "Liang", 92.5, 99.0, 60.5} + }; - do { - // Display menu - printf("1. Input\n2. Delete\n3. Select\n4. Order\n5. Output\n6. Quit\n"); - printf("Please input your option: "); - scanf("%d", &option); + int numStudents = 3; // 已有学生数量 - switch (option) { - case 1: - inputStudent(&students[numStudents]); - numStudents++; - break; - case 2: - deleteStudent(students, &numStudents); - break; - case 3: - selectStudent(students, numStudents); - break; - // Add cases for other options (order, output) if needed - case 6: - printf("Exiting the program.\n"); - break; - default: - printf("Invalid option. Please try again.\n"); - } - } while (option != 6); + char key[20]; // 待删除学生的学号或姓名 + printf("请输入待删除学生的学号或姓名:"); + scanf("%s", key); - return 0; -} + // 调用删除函数 + deleteStudent(students, &numStudents, key); -void inputStudent(struct Student *stu) { - -} + // 输出剩余学生信息 + for (int i = 0; i < numStudents; i++) { + printf("%s %d %s %.1f %.1f %.1f\n", students[i].id, students[i].class, students[i].name, students[i].score1, students[i].score2, students[i].score3); + } -void deleteStudent(struct Student *stu, int *numStudents) { - -} + // 输出确认信息 + char confirm[3]; + printf("Are you sure(yes/no)? "); + scanf("%s", confirm); -void selectStudent(struct Student *stu, int numStudents) { - + if (strcmp(confirm, "no") == 0) { + // 用户选择不删除,再次输出所有学生信息 + for (int i = 0; i < numStudents; i++) { + printf("%s %d %s %.1f %.1f %.1f\n", students[i].id, students[i].class, students[i].name, students[i].score1, students[i].score2, students[i].score3); + } + } + + return 0; }