用c语言定义输入函数、查询学生信息函数,实现对学生成绩信息的新建操作和按姓名条件查询操作。学生的信息包括学号、姓名、成绩、平均分、总分,假定最多输入50 个学生信息。
时间: 2023-04-09 10:01:39 浏览: 340
C语言成绩查询系统
4星 · 用户满意度95%
可以回答这个问题。定义输入函数可以使用scanf函数,查询学生信息函数可以使用结构体数组来存储学生信息,然后通过循环遍历数组进行查询操作。新建操作可以通过输入学生信息并添加到数组中实现,平均分和总分可以通过计算得出。具体实现可以参考以下代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT_NUM 50
struct student {
int id;
char name[20];
int score;
float avg_score;
int total_score;
};
int input_student_info(struct student *stu) {
printf("请输入学生信息:\n");
printf("学号:");
scanf("%d", &stu->id);
printf("姓名:");
scanf("%s", stu->name);
printf("成绩:");
scanf("%d", &stu->score);
stu->total_score = stu->score;
stu->avg_score = stu->score;
return 1;
}
int query_student_info(struct student *stu, int num, char *name) {
int i, count = 0;
for (i = 0; i < num; i++) {
if (strcmp(stu[i].name, name) == 0) {
printf("学号:%d,姓名:%s,成绩:%d,平均分:%.2f,总分:%d\n",
stu[i].id, stu[i].name, stu[i].score, stu[i].avg_score, stu[i].total_score);
count++;
}
}
if (count == 0) {
printf("没有找到姓名为%s的学生信息\n", name);
}
return count;
}
int main() {
struct student stu[MAX_STUDENT_NUM];
int i, num = 0;
char name[20];
int choice;
while (1) {
printf("请选择操作:\n");
printf("1. 新建学生信息\n");
printf("2. 按姓名查询学生信息\n");
printf("3. 退出\n");
printf("请输入操作编号:");
scanf("%d", &choice);
switch (choice) {
case 1:
if (num >= MAX_STUDENT_NUM) {
printf("已达到最大学生数量,无法继续添加\n");
break;
}
input_student_info(&stu[num]);
num++;
break;
case 2:
printf("请输入要查询的学生姓名:");
scanf("%s", name);
query_student_info(stu, num, name);
break;
case 3:
return 0;
default:
printf("无效的操作编号\n");
break;
}
}
return 0;
}
```
阅读全文