1数据录入功能对B TXT进行数据录入只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据。综合成绩、学分由程序根据条件自动运算。综合成绩的计算如果本课程的实验成绩为-1则表示无实验综合成绩=平时成绩30+卷面成绩70;如果实验成绩不为-1表示本课程有实验综合成绩=平时成绩15+实验成绩15+卷面成绩70。实得学分的计算采用等级学分制。综合成绩在90-100之间
(1)数据录入功能的实现可以通过编写一个程序来完成。首先,读取B.TXT文件中的每一行数据,然后按照指定格式提取出学号、课程编号、课程名称、学分、平时成绩、实验成绩和卷面成绩这七个数据。接下来,根据实验成绩是否为-1,计算综合成绩和应得学分。最后,将学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩、综合成绩和应得学分这九个数据写入一个新的文件中。
以下是一个示例的Python代码实现:
def calculate_score(grade):
if grade >= 90 and grade <= 100:
return 1.0
elif grade >= 80 and grade < 90:
return 0.8
elif grade >= 70 and grade < 80:
return 0.75
elif grade >= 60 and grade < 70:
return 0.6
else:
return 0.0
def calculate_comprehensive_score(grade, experiment_grade):
if experiment_grade == -1:
return grade * 0.3 + grade * 0.7
else:
return grade * 0.15 + experiment_grade * 0.15 + grade * 0.7
with open('B.TXT', 'r') as file:
lines = file.readlines()
data = []
for line in lines:
student_id, course_id, course_name, credit, regular_grade, experiment_grade, final_grade = line.strip().split()
comprehensive_score = calculate_comprehensive_score(float(regular_grade), float(experiment_grade))
earned_credit = float(credit) * calculate_score(comprehensive_score)
data.append([student_id, course_id, course_name, credit, regular_grade, experiment_grade, final_grade, comprehensive_score, earned_credit])
with open('new_file.txt', 'w') as file:
for row in data:
file.write('\t'.join(map(str, row)) + '\n')
这段代码首先定义了两个函数calculate_score和calculate_comprehensive_score,分别用于计算应得学分和综合成绩。然后,使用with open()语句打开B.TXT文件,并逐行读取其中的数据。每一行数据通过strip()方法去除空白字符,并使用split()方法按空格分隔成多个字段。接下来,根据实验成绩是否为-1,调用calculate_comprehensive_score函数计算综合成绩,并通过calculate_score函数计算应得学分。最后,将学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩、综合成绩和应得学分这九个数据写入一个新的文件new_file.txt中
原文地址: https://www.cveoy.top/t/topic/hHYw 著作权归作者所有。请勿转载和采集!