用结构体数组以及函数完成:
录入你要增加的几个学生,之后输出所有的学生信息
删除你要删除的第几个学生,并打印所有的学生信息
修改你要修改的第几个学生,并打印所有的学生信息
查找你要查找的第几个学生,并打印该的学生信息
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 }
程序运行如下: