要编写一个显示成绩的程序,你需要考虑以下几个方面:
数据结构 :定义一个结构体来存储学生的成绩信息,包括学号、姓名和各科成绩。输入:
编写代码从用户那里获取成绩数据。
输出:
编写代码将成绩数据以表格形式显示出来。
下面是一个简单的C语言程序示例,展示了如何实现上述功能:
```c
include
// 定义结构体来存储学生成绩
typedef struct {
int num; // 学号
char name; // 姓名
float score; // 成绩数组
} Student;
// 函数声明
void print_student_scores(Student students[], int num_students);
int main() {
const int MAX_STUDENTS = 10;
Student students[MAX_STUDENTS];
int num_students = 0;
// 输入学生成绩
printf("请输入学生成绩(学号 姓名 成绩1 成绩2 成绩3):\n");
while (num_students < MAX_STUDENTS) {
scanf("%d %s %f %f %f", &students[num_students].num, students[num_students].name,
&students[num_students].score, &students[num_students].score, &students[num_students].score);
num_students++;
}
// 显示学生成绩
print_student_scores(students, num_students);
return 0;
}
// 打印学生成绩的函数
void print_student_scores(Student students[], int num_students) {
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\n");
for (int i = 0; i < num_students; i++) {
printf("%4d\t%10s\t%.2f\t%.2f\t%.2f\n",
students[i].num, students[i].name, students[i].score, students[i].score, students[i].score);
}
}
```
代码解释:
结构体定义
`Student` 结构体包含三个成员:`num`(学号)、`name`(姓名)和 `score`(成绩数组,包含三个成绩)。
主函数
定义一个 `Student` 类型的数组 `students` 和一个计数器 `num_students` 来记录学生数量。
使用 `while` 循环从用户输入中读取学生成绩,直到达到最大学生数。
调用 `print_student_scores` 函数来显示学生成绩。
打印函数
`print_student_scores` 函数接受一个 `Student` 数组和一个学生数量,然后以表格形式打印每个学生的成绩。
扩展功能:
你可以根据需要扩展这个程序,例如添加更多的输入验证、成绩排序、计算总分和平均分等功能。此外,如果你想要一个更复杂的系统,可以考虑使用文件来存储和读取成绩数据,或者使用图形用户界面(GUI)来提高用户体验。