2022级计算机实习第18题

发布时间 2024-01-09 00:34:40作者: 20211108俞振阳

闲的无聊随便拿GPT写的,只能保证程序能跑

提问部分

选择合适的方法实现并给出详细的代码以及操作流程18.评教管理程序(难度系数:4级)
(1)
现代教学管理中不仅评价学生学习好坏,也评估教师教学水平,设计一个学生评教管理程序,帮助教学管理部门完成教师教学水平评估。
(2)功能
提供当前学期教师授课任务安排信息的录人、修改和删除,包括教师编号、姓名所授课程、班级、学生人数。
@提供学生无记名对教师授课水平的评价。评价时登记:所属班级、所评教师编号、所评课程,各项打分
评价内容分:
·育人理念教学目标清晰否?对学生有足够的关注否?(10 分)
·教学内容是否科学充实,能结合学科发展更新内容,使之贴近实际否?(10 分)·教学方法与手段是否恰当,注意运用讲授、提问、启发、互动、探讨、案例等多方法传达教学内容,实时指导学生开展教学内容研究活动否?(20 分)
教学组织是否有条理,课堂讲授重点突出、详略得当、组织合理否?(20 分)
教学态度是否认真、投入,课堂上精神饱满,授课语言清晰、准确否?(10 分)
。教学上是否不断改进组织方式,改善教学方法与手段?(10 分)
教学课堂是否气氛活跃,学生们乐于积极参与思考、及时反馈学习感受否?
(20分)
3统计授课教师各项得分的平均分和总得分评价每位教师的学生人数及其占班级总人数比。
@按授课教师姓名字母顺序显示授课教师得分信息。
G按授课教师总得分从大到小顺序排序授课教师得分信息
G按授课班级显示授课教师得分信息。
(3)设计提示
本任务需要两个文件,一个教师授课任务安排信息文件,一个评教文件。

GTP回答

为了实现这个评教管理程序,我会采用Python编程语言来实现。首先,我们需要创建一个教师授课任务安排信息文件和一个评教文件。我会使用文本文件来保存这些信息。

接下来,我们需要实现以下功能:

  1. 录入、修改和删除当前学期教师授课任务安排信息
  2. 学生的无记名对教师授课水平的评价
  3. 统计授课教师各项得分的平均分和总得分
  4. 根据不同的需求按照教师姓名、总得分排序以及按班级显示教师得分信息

以下是详细的代码以及操作流程:

  1. 教师授课任务安排信息文件的格式:
    teacher_info.txt

教师编号 姓名 所授课程 班级 学生人数

  1. 评教文件的格式:
    evaluation_info.txt

班级 所评教师编号 所评课程 打分1 打分2 打分3 ...

---------------功能1:录入、修改和删除教师授课任务安排信息---------------

def add_teacher_info(file_name):
f = open(file_name, 'a')
teacher_info = input("请输入教师授课任务安排信息(编号 姓名 所授课程 班级 学生人数):")
f.write(teacher_info + "\n")
f.close()
print("教师授课任务安排信息已录入成功!")

def modify_teacher_info(file_name):
f = open(file_name, 'r')
lines = f.readlines()
f.close()
f = open(file_name, 'w')
teacher_num = input("请输入要修改信息教师的编号:")
for line in lines:
if line.split()[0] == teacher_num:
new_info = input("请输入修改后的教师授课任务安排信息:")
f.write(new_info + "\n")
else:
f.write(line)
f.close()
print("教师授课任务安排信息已修改成功!")

def delete_teacher_info(file_name):
f = open(file_name, 'r')
lines = f.readlines()
f.close()
f = open(file_name, 'w')
teacher_num = input("请输入要删除信息教师的编号:")
for line in lines:
if line.split()[0] != teacher_num:
f.write(line)
f.close()
print("教师授课任务安排信息已删除成功!")

---------------功能2:学生对教师授课水平的评价---------------

def evaluate_teacher(file_name):
f = open(file_name, 'a')
evaluation = input("请输入评价信息(班级 教师编号 课程 分数1 分数2 分数3 ...):")
f.write(evaluation + "\n")
f.close()
print("评价已提交成功!")

---------------功能3:统计教师得分信息---------------

def calculate_average_score():
f = open("evaluation_info.txt", 'r')
lines = f.readlines()
f.close()
scores = {}
counts = {}
for line in lines:
evaluation = line.split()
teacher_num = evaluation[1]
score_list = list(map(int, evaluation[3:]))
total_score = sum(score_list)
if teacher_num in scores:
scores[teacher_num] += total_score
counts[teacher_num] += 1
else:
scores[teacher_num] = total_score
counts[teacher_num] = 1
averages = {}
for teacher_num in scores:
averages[teacher_num] = scores[teacher_num] / counts[teacher_num]
return averages

def calculate_total_score():
f = open("evaluation_info.txt", 'r')
lines = f.readlines()
f.close()
scores = {}
for line in lines:
evaluation = line.split()
teacher_num = evaluation[1]
score_list = list(map(int, evaluation[3:]))
total_score = sum(score_list)
if teacher_num in scores:
scores[teacher_num] += total_score
else:
scores[teacher_num] = total_score
return scores

def display_score_by_teacher():
averages = calculate_average_score()
sorted_averages = sorted(averages.items(), key=lambda x: x[0])
for teacher_num, average_score in sorted_averages:
print("教师编号:{},平均分数:{}".format(teacher_num, average_score))

def display_score_by_total():
scores = calculate_total_score()
sorted_scores = sorted(scores.items(), key=lambda x: x[1], reverse=True)
for teacher_num, total_score in sorted_scores:
print("教师编号:{},总分数:{}".format(teacher_num, total_score))

def display_score_by_class():
f = open("teacher_info.txt", 'r')
teacher_lines = f.readlines()
f.close()
f = open("evaluation_info.txt", 'r')
evaluation_lines = f.readlines()
f.close()
teacher_info = {}
for teacher_line in teacher_lines:
teacher = teacher_line.split()
teacher_info[teacher[0]] = teacher[3]
for evaluation_line in evaluation_lines:
evaluation = evaluation_line.split()
teacher_num = evaluation[1]
class_num = evaluation[0]
if teacher_num in teacher_info:
print("教师编号:{},班级号:{},得分:{}".format(teacher_num, class_num, evaluation[3:]))

---------------主程序---------------

while True:
print("请选择功能:")
print("1. 录入教师授课任务安排信息")
print("2. 修改教师授课任务安排信息")
print("3. 删除教师授课任务安排信息")
print("4. 学生评价教师授课水平")
print("5. 统计教师得分信息")
print("6. 按教师姓名显示教师得分信息")
print("7. 按总得分排序显示教师得分信息")
print("8. 按班级显示教师得分信息")
print("0. 退出程序")
option = input("请输入选项:")
if option == '1':
add_teacher_info("teacher_info.txt")
elif option == '2':
modify_teacher_info("teacher_info.txt")
elif option == '3':
delete_teacher_info("teacher_info.txt")
elif option == '4':
evaluate_teacher("evaluation_info.txt")
elif option == '5':
print("请选择统计方式:")
print("1. 统计教师平均得分")
print("2. 统计教师总得分")
calculate_option = input("请输入选项:")
if calculate_option == '1':
display_score_by_teacher()
elif calculate_option == '2':
display_score_by_total()
elif option == '6':
display_score_by_teacher()
elif option == '7':
display_score_by_total()
elif option == '8':
display_score_by_class()
elif option == '0':
break

测试过程截图

image
image
image
image
image