10-3 查询所授每门课程平均成绩均在70分以上的教师(MSSQL) 分数 8 作者 张庆 单位 集美大学
时间: 2023-07-16 11:17:28 浏览: 118
可以使用如下的 SQL 语句来查询所授每门课程平均成绩均在70分以上的教师:
```
SELECT t.教师姓名
FROM 教师信息表 t
INNER JOIN 授课信息表 c ON t.教师编号 = c.教师编号
INNER JOIN 学生成绩表 s ON c.课程编号 = s.课程编号
GROUP BY t.教师姓名, c.课程编号
HAVING AVG(s.成绩) >= 70
```
其中,`教师信息表` 表、`授课信息表` 表和 `学生成绩表` 表是需要根据实际情况替换成对应的表名。在这个查询中,我们使用了三张表进行连接和聚合操作,首先通过 `INNER JOIN` 关键字将三张表进行关联,然后通过 `GROUP BY` 关键字对教师姓名和课程编号进行分组,最后通过 `HAVING` 关键字筛选出平均成绩大于等于 70 分的教师。
相关问题
6-1 atof函数的实现 分数 10 作者 张庆 单位 集美大学
atof函数是C语言标准库中的一个函数,用于将字符串转换为双精度浮点数。下面是一个简单的atof函数的实现:
```c
#include <ctype.h>
double atof(const char *s)
{
double val, power;
int sign;
// 跳过空格字符
while (isspace(*s))
s++;
// 判断正负号
sign = (*s == '-') ? -1 : 1;
if (*s == '+' || *s == '-')
s++;
// 计算整数部分
for (val = 0.0; isdigit(*s); s++)
val = val * 10.0 + (*s - '0');
// 计算小数部分
if (*s == '.')
s++;
for (power = 1.0; isdigit(*s); s++) {
val = val * 10.0 + (*s - '0');
power *= 10.0;
}
// 计算指数部分
if (*s == 'e' || *s == 'E') {
int exp_sign, exp_val;
s++;
exp_sign = (*s == '-') ? -1 : 1;
if (*s == '+' || *s == '-')
s++;
for (exp_val = 0; isdigit(*s); s++)
exp_val = exp_val * 10 + (*s - '0');
power *= pow(10.0, exp_sign * exp_val);
}
return sign * val / power;
}
```
该函数首先跳过字符串中的空格字符,然后判断正负号,接着计算整数部分和小数部分,最后计算指数部分(如果有的话),最终返回转换后的双精度浮点数值。
需要注意的是,该实现并不完整,没有处理一些特殊情况,例如科学计数法中指数部分为负数的情况,或者字符串中包含非数字字符的情况。在实际应用中,应该根据具体需求进行完善。
7-1 统计分数段人数 分数 10 作者 张庆 单位 集美大学 请对某次考试的分数,统计各分数段人数,统计原则:分别对10分以下、10-19分、20-29分、30-39分、40-49分、50-59分、60-69分、70-79,80-89分,90到99分,100分为一
组进行统计。
解题思路:
1. 定义10个变量,分别表示各个分数段的人数,初始值均为0。
2. 循环输入学生的分数,每输入一个分数就根据其值将相应的变量加1。
3. 循环结束后,输出各个分数段的人数。
参考代码:
```python
# 定义各个分数段的人数变量,初始值均为0
under_10 = 0
between_10_and_19 = 0
between_20_and_29 = 0
between_30_and_39 = 0
between_40_and_49 = 0
between_50_and_59 = 0
between_60_and_69 = 0
between_70_and_79 = 0
between_80_and_89 = 0
between_90_and_99 = 0
full_score = 0
# 循环输入学生的分数
while True:
score = input("请输入学生的分数(输入-1结束):")
if score == "-1":
break
score = int(score)
if score < 0 or score > 100:
print("分数无效,请重新输入!")
continue
if score < 10:
under_10 += 1
elif score < 20:
between_10_and_19 += 1
elif score < 30:
between_20_and_29 += 1
elif score < 40:
between_30_and_39 += 1
elif score < 50:
between_40_and_49 += 1
elif score < 60:
between_50_and_59 += 1
elif score < 70:
between_60_and_69 += 1
elif score < 80:
between_70_and_79 += 1
elif score < 90:
between_80_and_89 += 1
elif score < 100:
between_90_and_99 += 1
else:
full_score += 1
# 输出各个分数段的人数
print("10分以下:", under_10, "人")
print("10-19分:", between_10_and_19, "人")
print("20-29分:", between_20_and_29, "人")
print("30-39分:", between_30_and_39, "人")
print("40-49分:", between_40_and_49, "人")
print("50-59分:", between_50_and_59, "人")
print("60-69分:", between_60_and_69, "人")
print("70-79分:", between_70_and_79, "人")
print("80-89分:", between_80_and_89, "人")
print("90-99分:", between_90_and_99, "人")
print("满分:", full_score, "人")
```