用結構體數組以及函數完成:
錄入你要增加的幾個學生,之后輸出所有的學生信息
刪除你要刪除的第幾個學生,并打印所有的學生信息
修改你要修改的第幾個學生,并打印所有的學生信息
查找你要查找的第幾個學生,并打印該的學生信息
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 }
?程序運行如下: