Python实现学生成绩统计项目案例代码

题目描述

某科目考试,每天开考一次,每位参考者可进行多次考试,取最好成绩的一次作为最终成绩,计算每位参考者的最终成绩,并保存在最终成绩.txt中
输出格式:文件中存储数据格式为排名,姓名,性别,成绩
排序优先级为

1.高:按照最终成绩从高到低排序;

2.中:相同成绩时,按照获得日期从早到晚排序;

3.低:相同日期时,按照原文件中的顺序
排名从1开始,相同成绩排名相同

案例代码

下面是一个实现上述功能的 Python 程序,它会读取原始成绩数据文件,对每位参考者的最终成绩进行计算,并保存到最终成绩.txt 中,并按照要求进行排序输出:

import datetime

# 读取原始成绩数据
def read_scores(filename):
    scores = []
    with open(filename, 'r') as file:
        for line in file:
            parts = line.strip().split(',')
            rank = int(parts[0])
            name = parts[1]
            gender = parts[2]
            score = int(parts[3])
            date = datetime.datetime.strptime(parts[4], '%Y-%m-%d').date()
            scores.append((rank, name, gender, score, date))
    return scores

# 计算每位参考者的最终成绩
def calculate_final_scores(scores):
    final_scores = {}
    for rank, name, gender, score, date in scores:
        if name in final_scores:
            if score > final_scores[name][0]:
                final_scores[name] = (score, date, gender)
        else:
            final_scores[name] = (score, date, gender)
    return final_scores

# 将最终成绩保存到文件中
def save_final_scores(final_scores, output_file):
    with open(output_file, 'w') as file:
        sorted_scores = sorted(final_scores.items(), key=lambda x: (-x[1][0], x[1][1]))
        rank = 1
        for name, (score, date, gender) in sorted_scores:
            file.write(f"{rank},{name},{gender},{score}\n")
            rank += 1

# 主程序
if __name__ == "__main__":
    raw_scores = read_scores('原始成绩数据.txt')
    final_scores = calculate_final_scores(raw_scores)
    save_final_scores(final_scores, '最终成绩.txt')
    print("最终成绩已保存到最终成绩.txt")

这个程序首先会读取原始成绩数据文件,然后计算每位参考者的最终成绩,并将最终成绩保存到最终成绩.txt 文件中。在保存最终成绩时,程序会按照要求进行排名、排序并输出。

你需要将原始成绩数据存储在一个名为’原始成绩数据.txt’的文件中,并按照以下格式存储数据:排名,姓名,性别,成绩,获得日期。然后运行上述程序即可生成最终成绩.txt 文件。

© 版权声明
THE END
喜欢就支持一下吧
点赞10赞赏 分享