作业7.2

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

  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     }
                                                                                                                                                                                                                                                                                                                                                                                                

 程序运行如下:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/765294.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

经典的卷积神经网络模型 - ResNet

经典的卷积神经网络模型 - ResNet flyfish 2015年&#xff0c;何恺明&#xff08;Kaiming He&#xff09;等人在论文《Deep Residual Learning for Image Recognition》中提出了ResNet&#xff08;Residual Network&#xff0c;残差网络&#xff09;。在当时&#xff0c;随着…

搜狐新闻HarmonyOS版本 push 推送开发

背景 搜狐新闻作为HarmonyOS的合作伙伴&#xff0c;于2023年12月成功上架鸿蒙单框架应用市场&#xff0c;成为首批鸿蒙应用矩阵的一员。 新闻类推送作为应用的重要组成部分&#xff0c;在二期规划中&#xff0c;我们将推送功能列为核心功能模块。本文将推送集成过程中的步骤和…

360的chromesafe64.dll动态链接库导致chrome和edge浏览器闪退崩溃关闭

在chrome或edge浏览器中打开特定的一些网页会导致浏览器闪退关闭 这是windows系统记录的报错日志 chrome报错日志 edge报错日志 日志指向的就是chromesafe64.dll这个动态库 然后用everything搜索发现原来在360安装目录下 360安装目录下的chromesafe64.dll文件 为什么360中的…

NSSCTF-Web题目21(文件上传-phar协议、RCE-空格绕过)

目录 [NISACTF 2022]bingdundun~ 1、题目 2、知识点 3、思路 [FSCTF 2023]细狗2.0 4、题目 5、知识点 6、思路 [NISACTF 2022]bingdundun~ 1、题目 2、知识点 文件上传&#xff0c;phar伪协议 3、思路 点击upload&#xff0c;看看 这里提示我们可以上传图片或压缩包&…

【CSAPP】-binarybomb实验

目录 实验目的与要求 实验原理与内容 实验设备与软件环境 实验过程与结果&#xff08;可贴图&#xff09; 操作异常问题与解决方案 实验总结 实验目的与要求 1. 增强学生对于程序的机器级表示、汇编语言、调试器和逆向工程等方面原理与技能的掌握。 2. 掌握使用gdb调试器…

生命在于学习——Python人工智能原理(3.1.2)

一、概率基本知识 1.3 常见概型 1.3.1 古典概型 定义1 古典概型 若随机事件E满足如下两个条件&#xff1a; &#xff08;1&#xff09;样本空间S中只有有限个样本点。 &#xff08;2&#xff09;样本空间S中每个样本点发生都是等可能的。 这样的随机试验称为古典概型。 P(A)…

JavaMySQL 学习(基础)

目录 Java CMD Java发展 计算机存储规则 Java学习 switch新用法&#xff08;可以当做if来使用&#xff09; 数组定义 随机数 Java内存分配 MySQL MySQL概述 启动和停止 客户端连接 数据模型 关系型数据库 SQL SQL通用语法 SQL分类 DDL--数据定义语言 数据库…

GPT-4o不仅能写代码,还能自查Bug,程序员替代进程再进一步!

目录 1 CriticGPT 01 综合性&#xff08;Comprehensiveness&#xff09;&#xff1a; 02 幻觉问题&#xff08;Hallucinates a problem&#xff09;&#xff1a; 2 其他 CriticGPT 案例 随着人工智能&#xff08;AI&#xff09;技术不断进步&#xff0c;AI在编程领域的应用…

产品设计的8大步骤

产品设计&#xff0c;通俗来说就是将创新想法或概念转化为落地实体的过程。一般来说&#xff0c;一个成功的产品应当具有创新性、美观性、实用性、可持续性以及经济效益&#xff0c;从而满足用户的使用需求以及市场的发展需求。产品设计也并不是一件简单的事情&#xff0c;产品…

STM32第十五课:LCD屏幕及应用

文章目录 需求一、LCD显示屏二、全屏图片三、数据显示1.显示欢迎词2.显示温湿度3.显示当前时间 四、需求实现代码 需求 1.在LCD屏上显示一张全屏图片。 2.在LCD屏上显示当前时间&#xff0c;温度&#xff0c;湿度。 一、LCD显示屏 液晶显示器&#xff0c;简称 LCD(Liquid Cry…

flex布局中子元素内容超出时,子元素本身出现滚动条实现方法

flex布局中子元素宽度平均分配&#xff0c;并且当子元素内容超出时&#xff0c;子元素本身出现滚动条实现方法&#xff1a; 将父元素设置为display: flex&#xff0c;以启用Flexbox布局。将每个子元素的flex属性设置为1&#xff0c;以使其宽度平均分配。设置子元素的overflow属…

CVE-2019-12272 Openwrt可视页面LuCi命令注入漏洞复现(完结)

声明 本文所使用的一些源代码等内容已经上传至github&#xff0c;具体地址如下 Vulnerability_POC-EXP/OpenWrt/CVE-2019-12272 at main a2148001284/Vulnerability_POC-EXP GitHub 漏洞简介 参考内容&#xff1a; CVE-2019-12272 OpenWrt图形化管理界面LuCI命令注入分析 |…

【吴恩达机器学习-week2】可选实验:使用 Scikit-Learn 进行线性回归

支持我的工作 &#x1f389; &#x1f4c3;亲爱的朋友们&#xff0c;感谢你们一直以来对我的关注和支持&#xff01; &#x1f4aa;&#x1f3fb; 为了提供更优质的内容和更有趣的创作&#xff0c;我付出了大量的时间和精力。如果你觉得我的内容对你有帮助或带来了欢乐&#xf…

springboot项目jar包修改数据库配置运行时异常

一、背景 我将软件成功打好jar包了&#xff0c;到部署的时候发现jar包中数据库配置写的有问题&#xff0c;不想再重新打包了&#xff0c;打算直接修改配置文件&#xff0c;结果修改配置后&#xff0c;再通过java -jar运行时就报错了。 二、问题描述 本地项目是springBoot项目…

Git使用——首次创建本地仓库、配置、初始化、关联远程仓库

1、安装 Git软件 官网&#xff1a;git-scm.com 有时候官网打不开&#xff0c;这里留存个之前下载过的安装包&#xff1a; https://download.csdn.net/download/weixin_43908355/89502977 2、配置本地仓库 在准备建仓库的文件夹里&#xff0c;右键点击&#xff1a;Git Bash …

Cybervadis认证是什么?

Cybervadis认证是一种全面且深入的网络安全评估和认证服务&#xff0c;旨在帮助组织提高其网络安全实践的成熟度&#xff0c;并有效应对不断变化的网络威胁和攻击。以下是关于Cybervadis认证的一些关键信息&#xff1a; 认证目的&#xff1a; 评估和验证组织在网络安全方面的能…

HMI 的 UI 风格成就经典

HMI 的 UI 风格成就经典

SAR目标检测

Multi-Stage with Filter Augmentation 多阶段滤波器增强(MSFA) 对SAR合成孔径雷达目标检测性能的改善 MSFA ON SAR 传统方法: 预训练:传统方法开始于在通用数据集上预训练一个基础模型。 微调:这个预训练的模型会被微调以适应特定的SAR图像&#xff0c;试图缩小域间的差距 …

git命令含有中文,终端输出中文乱码的问题

目录 1、[当前代码页] 的936 (ANSI/OEM - 简体中文 GBK) 是导致中文乱码的原因 2、这样会导致什么问题呢&#xff1f; (1) 问题一: 【属性】选项的【字体】无法识别自定义文字样式&#xff0c;【默认值】选项可选自定义字体样式&#xff0c;却无法覆盖【属性】选项 (2) 问题…

AutoCAD Mechanical下载安装;Mechanical针对机械设计领域开发的CAD软件下载安装!

在AutoCAD Mechanical的助力下&#xff0c;用户能够轻松应对二维绘图与三维建模两大核心任务。二维绘图方面&#xff0c;软件提供了精准且灵活的绘图工具&#xff0c;使得工程师能够迅速勾勒出机械部件的轮廓与细节&#xff0c;大大提高了工作效率。 而在三维建模方面&#xff…