void modifyRecord() { int targetId,m,i; printf("\n请输入要修改的学生学号:"); scanf("%d",&targetId); int foundIndex=-1; for(i=0;i<studentCount;i++) { if(students[i].id==targetId) { foundIndex=i; break; } } if (foundIndex==-1) { printf("未找到要修改的学生成绩!\n"); return; } printf("学号:%d,姓名:%s,成绩:%d %d %d,平均成绩:%.2f\n",students[foundIndex].id,students[foundIndex].name,students[foundIndex].scores[0],students[foundIndex].scores[1],students[foundIndex].scores[2],students[foundIndex].average); struct Student newStudent; printf("\n请选择修改: 1.姓名 2.成绩1 3.成绩2 4.成绩3"); printf("\n请输入要修改的选项:"); scanf("%d", &m); switch(m) { case 1:printf("\n请输入正确的姓名:"); scanf("%s",students[foundIndex].name);break; case 2:printf("\n请输入正确的成绩1:"); scanf("%d",&students[foundIndex].scores[0]);break; case 3:printf("\n请输入正确的成绩2:"); scanf("%d",&students[foundIndex].scores[1]);break; case 4:printf("\n请输入正确的成绩3:"); scanf("%d",&students[foundIndex].scores[2]); break; } printf("成绩修改成功!\n"); }的算法思想
时间: 2023-07-15 11:10:57 浏览: 83
这段代码实现了对学生成绩的修改功能。首先,从用户输入中获取要修改的学生的学号,然后在学生数组中查找该学生的位置。如果找到该学生,则输出该学生的信息,包括学号、姓名、成绩以及平均成绩。接下来,用户可以选择修改学生的姓名或者某一门成绩。根据用户的选择,通过 switch-case 语句实现不同的修改操作。最后,输出修改成功的提示信息。如果未找到要修改的学生,则输出未找到的提示信息。
相关问题
void showRecord() { printf("请输入要查询的学生学号:"); int targetId,i; scanf("%d",&targetId); int foundCount=0; for(i=0;i<studentCount;i++) { if(students[i].id==targetId) { printf("学号:%d,姓名:%s,成绩:%d %d %d,平均成绩:%.2f\n",students[i].id,students[i].name,students[i].scores[0],students[i].scores[1],students[i].scores[2],students[i].average); foundCount++; } } if (foundCount==0) { printf("未找到匹配的成绩!\n"); } else { printf("共找到%d条匹配的成绩!\n",foundCount); } }的算法思想
该函数是一个查询学生成绩的函数,其算法思想如下:
1. 首先让用户输入要查询的学生学号。
2. 然后遍历所有的学生记录,查找学号与目标学号相同的学生记录。
3. 如果找到了符合条件的学生记录,输出该学生的学号、姓名、三科成绩和平均成绩,并将找到的记录数 foundCount 加 1。
4. 如果没有找到符合条件的学生记录,则输出提示信息“未找到匹配的成绩!”。
5. 如果找到了符合条件的学生记录,则输出找到的记录数“共找到 x 条匹配的成绩!”。
void deleteRecord() { printf("请输入要删除的学生学号:"); int targetId,i; scanf("%d",&targetId); int foundIndex=-1; for(i=0;i<studentCount;i++) { if(students[i].id==targetId) { foundIndex=i; break; } } if(foundIndex==-1) { printf("未找到要删除的学生成绩!\n"); return; } printf("学号:%d,姓名:%s,成绩:%d %d %d,平均成绩:%.2f\n",students[foundIndex].id,students[foundIndex].name,students[foundIndex].scores[0],students[foundIndex].scores[1],students[foundIndex].scores[2],students[foundIndex].average); for(int i=foundIndex;i<studentCount-1;i++) { students[i]=students[i+1]; } studentCount--; printf("成绩删除成功!\n"); }的算法思想
这段代码是一个删除学生成绩记录的函数。具体算法思想如下:
1. 首先输入要删除的学生学号。
2. 遍历学生数组,查找要删除的学生记录的索引位置。
3. 如果未找到要删除的学生记录,则输出提示信息并返回。
4. 如果找到要删除的学生记录,则输出该学生的学号、姓名、成绩信息以及平均成绩。
5. 将要删除的学生记录之后的所有记录向前移动一个位置。
6. 减少学生计数器,表示删除成功。
7. 输出删除成功的提示信息。
阅读全文