作业7.2

发布于:2024-07-03 ⋅ 阅读:(22) ⋅ 点赞:(0)

用结构体数组以及函数完成:
录入你要增加的几个学生,之后输出所有的学生信息
删除你要删除的第几个学生,并打印所有的学生信息
修改你要修改的第几个学生,并打印所有的学生信息
查找你要查找的第几个学生,并打印该的学生信息

  1 /*用结构体数组以及函数完成:
  2   录入你要增加的几个学生,之后输出所有的学生信
  3   删除你要删除的第几个学生,并打印所有的学生信息
  4   修改你要修改的第几个学生,并打印所有的学生信息
  5   查找你要查找的第几个学生,并打印该的学生信息*/
  6 #include "/home/ubuntu/myheader.h"
  7 #define MAX_STUDENTS 100
  8 typedef struct{
  9     char name[50];
 10     int age;
 11     char id[10];
 12 }Student;
 13 
 14 Student students[100]; // 学生数组
 15 Student* p = students;
 16 int numStudents = 0; // 当前学生数量
 17 
 18 void printAllStudents();
 19 void inputStudents();
 20 void deleteStudent();
 21 void modifyStudent();
 22 void findStudent();
 23 
 24 int main(int argc, const char *argv[])
 25 {
 26     int choice;
 27     while (1) {
 28         printf("1. 添加学生\n");
 29         printf("2. 删除学生\n");
 30         printf("3. 修改学生\n");
 31         printf("4. 查找学生\n");
 32         printf("5. 打印所有学生\n");
 33         printf("6. 退出\n");
 34         printf("请输入您的选择:");
 35         scanf("%d", &choice);
 36         switch (choice){
 37  case 1:inputStudents();break;
 38  case 2:deleteStudent();break;
 39  case 3:modifyStudent();break;
 40  case 4:findStudent();break;
 41  case 5:printAllStudents();break;
 42  case 6:return 0;
 43  default:printf("无效的选择。请重新尝试。\n");
 44         }
 45     }
 46 }
 47     // 打印所有学生信息
 48     void printAllStudents() {
 49         if(numStudents == 0)
 50             printf("\n————————暂无学生信息————————\n\n");
 51         else if(numStudents > 0){
 52         printf("\n————————所有学生信息:————————\n");
 53         for (int i = 0; i < numStudents; i++) {
 54             printf("索引:%d\n", i);
 55             printf("姓名:%s\n", p->name);
 56             printf("年龄:%d\n", p->age);
 57             printf("学号:%s\n", p->id);
 58             printf("——————————————————\n\n");
 59         }
 60     }
 61     }
 62     // 录入学生信息
 63     void inputStudents() {
 64         printf("\n——————————————————————\n录入学生信息人数:");
 65         scanf("%d",&numStudents);
 66         for (int i = 0; i < numStudents; i++) {
 67             printf("请输入第 %d 个学生的信息:\n", i + 1);
 68             printf("姓名:");
 69             scanf("%s", p->name);
 70             printf("年龄:");
 71             scanf("%d", &p->age);
 72             printf("学号:");
 73             scanf("%s", p->id);
 74         }
 75         printf("———————————————————————\n\n");
 76     }
 77     // 删除学生信息
 78     void deleteStudent() {
 79         int index;
 80         printf("\n——————————————————————\n请输入要删除的学生索引:");
 81         scanf("%d", &index);
 82         if (index < 0 || index >= numStudents) {
 83             printf("错误:无效的学生索引。\n");
 84             printf("——————————————————————\n");
 85             return;
 86         }
 87         for (int i = index; i < numStudents - 1; i++) {
 88             p[i] = p[i + 1];
 89         }
 90         numStudents--;
 91         printf("学生信息删除成功。\n\n");
 92         printf("——————————————————\n\n");
 93     }
 94 
 95     // 修改学生信息
 96     void modifyStudent() {
 97         int index;
 98         printf("\n——————————————————————\n请输入要修改的学生索引:");
 99         scanf("%d", &index);
100         if (index < 0 || index >= numStudents) {
101             printf("错误:无效的学生索引。\n\n");
102             printf("——————————————————————\n");
103             return;
104         }
105         printf("请输入新的学生姓名:");
106         scanf("%s", (p+index)->name);
107         printf("请输入新的学生年龄:");
108         scanf("%d", &(p+index)->age);
109         printf("请输入新的学生学号:");
110         scanf("%s", (p+index)->id);
111         printf("学生信息修改成功。\n\n");
112         printf("——————————————————————\n\n");
113     }
114 
115     // 查找学生信息
116     void findStudent() {
117         int index;
118         printf("\n——————————————————————\n请输入要查找的学生索引:");                                                                                                                                                                                                                                                                                                                               
119         scanf("%d", &index);
120         if (index < 0 || index >= numStudents) {
121             printf("错误:无效的学生索引。\n\n");
122             printf("——————————————————————\n");
123             return;
124         }
125         printf("找到的学生信息如下:\n");
126         printf("姓名:%s\n", (p+index)->name);
127         printf("年龄:%d\n", (p+index)->age);
128         printf("学号:%s\n\n", (p+index)->id);
129         printf("——————————————————————\n\n");
130     }
                                                                                                                                                                                                                                                                                                                                                                                                

 程序运行如下: