当前位置: 首页 > news >正文

作业7.2

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

  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     }

 程序运行如下:


http://www.lryc.cn/news/389670.html

相关文章:

  • PCL 点云聚类(基于体素连通性)
  • python自动化运维--DNS处理模块dnspython
  • 成人职场商务英语学习柯桥外语学校|邮件中的“备注”用英语怎么说?
  • AndroidStudio报错macMissing essential plugin
  • doris集群物理部署保姆级教程
  • 探囊取物之多形式登录页面(基于BootStrap4)
  • 【ONLYOFFICE】| 桌面编辑器从0-1使用初体验
  • 20、PHP字符串的排列(含源码)
  • Linux 标准IO的fopen和fclose
  • 一个计算密集小程序在不同CPU下的表现
  • 圈子系统搭建教程,以及圈子系统的功能特点,圈子系统,允许二开,免费源码,APP小程序H5
  • 递归算法练习
  • WebDriver 类的常用属性和方法
  • 基于x86+FPGA+AI轴承缺陷视觉检测系统,摇枕弹簧智能检测系统
  • 短剧小程序系统cps分销开发搭建
  • 代理IP的10大误区:区分事实与虚构
  • 数组-长度最小的子数组
  • 深度学习之交叉验证
  • 使用 Python 五年后,我发现学 python 必看这三本书!少走一半弯路
  • React@16.x(45)路由v5.x(10)源码(2)- history
  • grpc学习golang版( 八、双向流示例 )
  • SpringBoot学习05-[SpringBoot的嵌入式Servlet容器]
  • 查看Oracle是哪个Oracle_home 下启动的
  • 重温react-06(初识函数组件和快速生成格式的插件使用方式)
  • 【高考志愿】仪器科学与技术
  • Elasticsearch的Mapping
  • 【vocabulary in use (elementary)】6 Health and Illness
  • 探囊取物之多形式注册页面(基于BootStrap4)
  • 【C++进阶学习】第五弹——二叉搜索树——二叉树进阶及set和map的铺垫
  • 【RabbitMQ实战】Springboot 整合RabbitMQ组件,多种编码示例,带你实践 看完这一篇就够了