自己设计一种c语言构造型数据结构,定义该数据的数据类型。 如:序号 姓名 学号 作业 考试 签到 课程积分 综合成绩 (2)用已定义的数据类型定义3个变量 (3)对3个变量进行赋值 (4)输出3个变量中的数据 (5)赋上运行结果
时间: 2024-09-14 13:09:29 浏览: 50
首先,我们定义一个自定义的结构体(struct)来表示学生的信息,包含的字段有:编号(序号)、姓名、学号、作业分数、考试分数、签到记录以及课程积分和综合成绩。这里假设签到记录是一个整数数组,用于保存每周签到情况:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生信息数据类型
typedef struct {
int id; // 序号
char name[50]; // 姓名
int student_id; // 学号
float homework; // 作业分数
float exam; // 考试分数
int attendance[]; // 签到记录,最多一周7天
int course_score; // 课程积分
float overall_grade; // 综合成绩
} Student;
int main() {
// (2)用已定义的数据类型定义3个变量
Student s1, s2, s3;
// (3)对3个变量进行赋值
s1.id = 1001;
strcpy(s1.name, "张三");
s1.student_id = 20210101;
s1.homework = 85.0;
s1.exam = 92.0;
s1.attendance[0] = 5;
s1.attendance[1] = 4;
s1.attendance[2] = 3;
s1.attendance[3] = 5;
s1.attendance[4] = 4;
s1.attendance[5] = 5;
s1.attendance[6] = 0;
s1.course_score = 350;
s1.overall_grade = (s1.homework * 0.3 + s1.exam * 0.6) / 100 * s1.course_score;
s2.id = 1002;
strcpy(s2.name, "李四");
s2.student_id = 20210102;
s2.homework = 90.0;
s2.exam = 95.0;
// ...类似地给其他属性赋值
s3.id = 1003;
strcpy(s3.name, "王五");
s3.student_id = 20210103;
s3.homework = 80.0;
s3.exam = 90.0;
// ...同样给其他属性赋值
// (4)输出3个变量中的数据
printf("学生1信息:\nID: %d\n姓名: %s\n学号: %d\n", s1.id, s1.name, s1.student_id);
printf("作业分数: %.1f\n考试分数: %.1f\n", s1.homework, s1.exam);
printf("签到记录: ");
for(int i = 0; i < 7; i++) {
printf("%d ", s1.attendance[i]);
}
printf("\n课程积分: %d\n综合成绩: %.1f\n\n", s1.course_score, s1.overall_grade);
// 输出其他两个学生的数据,省略了这部分代码
return 0;
}
```
阅读全文