用结构体数组以及函数完成:
录入你要增加的几个学生,之后输出所有的学生信息
删除你要删除的第几个学生,并打印所有的学生信息
修改你要修改的第几个学生,并打印所有的学生信息
查找你要查找的第几个学生,并打印该的学生信息
1 /*用结构体数组以及函数完成:2 录入你要增加的几个学生,之后输出所有的学生信3 删除你要删除的第几个学生,并打印所有的学生信息4 修改你要修改的第几个学生,并打印所有的学生信息5 查找你要查找的第几个学生,并打印该的学生信息*/6 #include "/home/ubuntu/myheader.h"7 #define MAX_STUDENTS 1008 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 }
程序运行如下: