按学号
void search_num()
system ("pause")
按姓名
void search_name()
system("pause")
这个图和问题有啥关系?三门课,NUM定义为2?
我做完啦
tot_students
这个变量到后来似乎也没有什么用了,都被那个while循环给替代了;
int main()
{
load_settings();
int tot_students=0;
//tot_students = elimination(tot_students);
int ch=0;
int results[256];
char input[128]={0};
view_help_text();
while (ch!=-1&&ch!=-2)
{
getline(input);
ch = atoi(input);
switch(ch)
{
case 0: view_help_text(); break;
case 1: tot_students = load_stuData("stulib.txt"); break;
case 2: save_stuData("stulib.txt"); break;
case 3: view_all_students(); break;
case 4: search_by(results); break;
case 5: tot_students = add_student(); break;
case 6: edit_student_info(); break;
case 7:
printf("# Input the No. of the student to delete: ");
getline(input);
del_student( atoi(input) -1);
break;
case 8: sort_by(); break;
case 9: edit_courses_tag(); break;
//case -1: save_stuData(); break;
case -1: break;
}
if (ch>0) printf("\n# Backed to the main menu. Enter 0 for HELP. \n");
}
return 0;
}
然后,就完了。
选择按照学号或者姓名进行查找: 姓名
具体的解决方案代码如下:
struct Student { char id[10]; char name[10]; int score; }stu[] = {{"001", "Sam", 80},{"002", "Jay", 87},{"003", "Tom", 92},{"004", "Ken", 76},{"005", "Lucy", 85},{"006", "Amy", 90}};
int main() { char target_name[10]; //定义目标姓名 int i; //循环计数器
printf("请输入目标姓名:");
scanf("%s", target_name); //输入目标姓名
//循环找到目标姓名对应的学生成绩并进行输出
for(i=0;i<6;i++){
if(strcmp(target_name, stu[i].name) == 0) {
printf("学号:%s,姓名:%s,成绩:%d\n", stu[i].id, stu[i].name, stu[i].score);
break;
}
}
//如果循环完毕仍未找到匹配的姓名,则输出未找到
if(i == 6) {
printf("未找到该学生的成绩信息!\n");
}
return 0;
}
下面为代码详解:
最后执行上述代码并输入目标姓名"Jay",可以发现程序输出该学生的学号、姓名、成绩信息,如下所示:
请输入目标姓名:Jay 学号:002,姓名:Jay,成绩:87
如果输入目标姓名为"John",则由于没有匹配项,程序输出未找到该学生的成绩信息,如下所示:
请输入目标姓名:John 未找到该学生的成绩信息!