学生的记录由学号、姓名、专业组成,根据班级人数,将学生记录存放在结构体数组中。由于部分同学转专业,学生记录发生了变化。请编程实现根据学号查询学生记录并修改专业,分别输出转专业和未转专业的学生记录。要求:班级人数、学生记录由键盘输入(结构数组解决,不要用指针)
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 宇视监控服务器无法登录
- ¥15 PADS Logic 原理图
- ¥15 PADS Logic 图标
- ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
- ¥20 气象站点数据求取中~
- ¥15 如何获取APP内弹出的网址链接
- ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
- ¥50 STM32单片机传感器读取错误
- ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
- ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)