学生的记录由学号、姓名、专业组成,根据班级人数,将学生记录存放在结构体数组中。由于部分同学转专业,学生记录发生了变化。请编程实现根据学号查询学生记录并修改专业,分别输出转专业和未转专业的学生记录。要求:班级人数、学生记录由键盘输入(结构数组解决,不要用指针)
3条回答 默认 最新
- 技术专家团-小桥流水 2022-03-01 17:07关注
定义学生结构体,然后用结构体数组存储数据,转专业就是修改结构体中的专业字段。
参考如下:#include <stdio.h> #include <stdlib.h> #define MAXNMB 100 //定义学生信息 typedef struct _studentinfo { int id;//学号 char name[20]; //姓名 char major[20];//专业 int ischange; //是否转过专业,0表示没有转过,1表示转过 }Student; //录入学生信息 void input(Student stu[],int* nmb) { int i; system("cls"); printf("请输入学生人数:"); scanf("%d",nmb);//注意这里是nmb,因为nmb本身就是指针 for (i=0;i<*nmb;i++) { printf("请输入学生%d的学号:",i+1); scanf("%d",&stu[i].id); printf("请输入学生%d的姓名:",i+1); scanf("%s",stu[i].name); printf("请输入学生%d的专业:",i+1); scanf("%s",stu[i].major); stu[i].ischange = 0; } printf("录入成功!\n"); system("pause"); } //转专业 void change(Student stu[],int nmb) { int i; int id; system("cls"); printf("请输入需要转专业的学生的学号:"); scanf("%d",&id); for (i=0;i<nmb;i++) { if(stu[i].id == id) { printf("请输入新专业:"); scanf("%s",stu[i].major); printf("修改成功\n"); stu[i].ischange = 1; break; } } if(i==nmb) printf("未找到该学号的学生!\n"); system("pause"); } //输出转专业和未转专业学生的信息 void show(Student stu[],int nmb) { int i; system("cls"); //输出未转过专业的学生信息 printf("未转过专业的学生信息\n"); for (i=0;i<nmb;i++) { if(!stu[i].ischange) printf("%-10d %-20s %-20s\n",stu[i].id,stu[i].name,stu[i].major); } printf("转过专业的学生信息\n"); for (i=0;i<nmb;i++) { if(stu[i].ischange) printf("%-10d %-20s %-20s\n",stu[i].id,stu[i].name,stu[i].major); } system("pause"); } int main() { Student stu[MAXNMB]; int nmb=0; int op; while(1) { system("cls"); printf("-------------------------\n"); printf(" 欢迎使用学生管理系统\n"); printf(" 1.录入学生信息\n"); printf(" 2.转专业\n"); printf(" 3.显示学生信息\n"); printf(" 4.退出系统\n"); printf("-------------------------\n"); printf("请选择:"); scanf("%d",&op); switch(op) { case 1: input(stu,&nmb); break; case 2: change(stu,nmb); break; case 3: show(stu,nmb); break; case 4: return 0; } } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 如何构建全国统一的物流管理平台?
- ¥100 ijkplayer使用AndroidStudio/CMake编译,如何支持 rtsp 直播流?
- ¥20 和学习数据的传参方式,选择正确的传参方式有关
- ¥15 这是网络安全里面的poem code
- ¥15 用js遍历数据并对非空元素添加css样式
- ¥15 使用autodl云训练,希望有直接运行的代码(关键词-数据集)
- ¥50 python写segy数据出错
- ¥20 关于线性结构的问题:希望能从头到尾完整地帮我改一下,困扰我很久了
- ¥30 3D多模态医疗数据集-视觉问答
- ¥20 设计一个二极管稳压值检测电路