简易评分系统

简介: 如果用户名及口令不合法,用户名或口令最多可输入3次,验证错误超过3次以后,自动退出系统。

目录


一、实验目的


二、操作环境


三、实验内容和过程


1.实验内容


2.代码


2.1 用户验证功能


2.2 菜单函数


2.3 评分功能


四、结果分析


总体的输出结果:


保存文件成功截图:


五、小结


一、实验目的

1.巩固和提高学生学过的基础理论和专业知识;


2.提高学生运用所学专业知识进行独立思考和综合分析、解决实际问题的能力;


3.培养学生掌握正确的思维方法和利用计算机解决实际问题的基本技能;


4.增强学生对信息管理工作的认识,掌握信息处理方法,进行编制技术文件等基本技能的训练,使之具有一定程度的实际工作能力。


5.使学生掌握文献检索、资料查询的基本方法以及获取新知识的能力。


6.促使学生学习和获取新知识,掌握自我学习的能力。


二、操作环境

win11

PyCharm Community Edition 2020.2.5 x64

anaconda2019

python3.7

三、实验内容和过程

1.实验内容

制作一个简易评分系统,要求完成以下功能:


1. 用户验证功能


(1)输入用户名及口令,然后在已有的用户名及口令中检查是否合法;


(2)如果用户名及口令合法,进入查询界面;


(3)如果用户名及口令不合法,用户名或口令最多可输入3次,验证错误超过3次以后,自动退出系统。


2. 评分功能


(1)在评委所打的分数中,去掉一个最高分,去掉一个最低分,得出个选手的平均分;


(2)按平均分进行排序,得出各选手的名次。


3. 菜单设计


(1)用户能够设置评委的人数并输入姓名;


(2)用户能够设置选手的人数;


(3)用户能够将最后得分及名次保存到文件中。


2.代码

# _*_ coding:utf-8 _*
#作者:码银
# 用户验证功能
def login():
    print("欢迎来到简易的评分·系统,请先登录呦~")
    username = input("请输入用户名:")
    password = input("请输入口令:")
    if username == "admin" and password == "123456":
        print("登录成功!")
        return True
    else:
        print("您还有三次机会呦~")
        for i in range(3):
            username = input("请重新输入用户名:")
            password = input("请重新输入口令:")
            if username == "admin" and password == "123456":
                print("登录成功!")
                return True
        print("登录失败,请重新启动程序!")
        exit()
def menu():
    while True:
        print("~~~~~~~~~~~~~~~~")
        print("| 1.进入评分系统 ")
        print("| 2.退出       ")
        print("~~~~~~~~~~~~~~~~")
        choice = input("\n请输入操作编号:")
        if choice == "1":
            pingfen()
        elif choice == "2":
            break
        else:
            print("登出,下次使用请重新运行本程序")
def pingfen():
    # 评分功能
    num_judges = int(input("请输入评委人数:"))
    judge_names = []
    for i in range(num_judges):
        judge_names.append(input("请输入评委姓名:"))
    num_contestants = int(input("请输入选手人数:"))
    contestant_names = []
    for i in range(num_contestants):
        contestant_names.append(input("请输入选手姓名:"))
    scores = []
    for judge in judge_names:
        score = []
        for contestant in contestant_names:
            s = float(input(f"请输入{contestant}的{judge}得分:"))
            score.append(s)
        scores.append(score)
    # 计算每个选手的最终得分和名次
    final_scores = []
    for i in range(num_contestants):
        total_score = sum(scores[j][i] for j in range(num_judges))
        max_score = max(scores[j][i] for j in range(num_judges))
        min_score = min(scores[j][i] for j in range(num_judges))
        total_score -= max_score + min_score
        final_scores.append(total_score / (num_judges - 2))
    # 按平均分排序并输出名次
    contestant_final_scores = sorted(final_scores, reverse=True)
    print("各选手的最终得分及名次如下(已经自动保存到文件中):")
    for i in range(num_contestants):
        print(f"{contestant_names[i]}: {final_scores[i]}, 名次: {i + 1}")
    with open("scores.txt", "w") as f:
        for i in range(num_contestants):
            print(f"{contestant_names[i]}: {final_scores[i]}, 名次: {i + 1}", file=f)
login()
menu()

结束了,下面不用看了。


2.1 用户验证功能

# 用户验证功能
def login():
    print("欢迎来到简易的评分·系统,请先登录呦~")
    username = input("请输入用户名:")
    password = input("请输入口令:")
    if username == "admin" and password == "123456":
        print("登录成功!")
        return True
    else:
        print("您还有三次机会呦~")
        for i in range(3):
            username = input("请重新输入用户名:")
            password = input("请重新输入口令:")
            if username == "admin" and password == "123456":
                print("登录成功!")
                return True
        print("登录失败,请重新启动程序!")
        exit()


在Python中,exit()函数用于退出程序,它接受一个可选的退出状态代码作为参数。默认情况下,如果不传递参数,状态代码将被设置为0。调用这个函数将终止程序的执行并返回到操作系统。


2.2 菜单函数

def menu():
    while True:
        print("~~~~~~~~~~~~~~~~")
        print("| 1.进入评分系统 ")
        print("| 2.退出       ")
        print("~~~~~~~~~~~~~~~~")
        choice = input("\n请输入操作编号:")
        if choice == "1":
            pingfen()
        elif choice == "2":
            break
        else:
            print("登出,下次使用请重新运行本程序")

使用while True:


通过这个语句可以达到:除非选择“2.退出”break掉,其他选项都能在执行完程序后,再次跳出菜单。


2.3 评分功能


def pingfen():
    # 评分功能
    num_judges = int(input("请输入评委人数:"))
    judge_names = []
    for i in range(num_judges):
        judge_names.append(input("请输入评委姓名:"))
    num_contestants = int(input("请输入选手人数:"))
    contestant_names = []
    for i in range(num_contestants):
        contestant_names.append(input("请输入选手姓名:"))
    scores = []
    for judge in judge_names:
        score = []
        for contestant in contestant_names:
            s = float(input(f"请输入{contestant}的{judge}得分:"))
            score.append(s)
        scores.append(score)
    # 计算每个选手的最终得分和名次
    final_scores = []
    for i in range(num_contestants):
        total_score = sum(scores[j][i] for j in range(num_judges))
        max_score = max(scores[j][i] for j in range(num_judges))
        min_score = min(scores[j][i] for j in range(num_judges))
        total_score -= max_score + min_score
        final_scores.append(total_score / (num_judges - 2))
    # 按平均分排序并输出名次
    contestant_final_scores = sorted(final_scores, reverse=True)
    print("各选手的最终得分及名次如下(已经自动保存到文件中):")
    for i in range(num_contestants):
        print(f"{contestant_names[i]}: {final_scores[i]}, 名次: {i + 1}")
    with open("scores.txt", "w") as f:
        for i in range(num_contestants):
            print(f"{contestant_names[i]}: {final_scores[i]}, 名次: {i + 1}", file=f)

四、结果分析

总体的输出结果:


316e85f266de7c1b4e50eb37f6e122c4_b9c30d1b7a7d4e3da1d05f138fc0abd7.png

保存文件成功截图:

cddddc9826855005c9099622ca0b7627_ae87dab092fb45698166a57b0f5c58d3.png


五、小结

这是一个简单的评分系统,包括用户登录、菜单选择和评分功能。用户在登录时需要输入用户名和口令,如果输入正确,则可以进入评分系统。在评分系统中,用户可以选择进入评分功能,然后输入评委人数和选手人数,分别输入评委姓名和选手姓名,以及他们的得分。系统会自动计算每个选手的最终得分和名次,并按平均分从高到低排序输出。最后,用户的评分结果会被保存到一个文件中。

目录
相关文章
|
2月前
|
图计算
综合评价法与权重方法汇总
综合评价法与权重方法汇总
|
12天前
|
数据可视化 算法 数据挖掘
数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分(上)
数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分
|
12天前
|
数据可视化 数据挖掘
数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分(下)
数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分
|
23天前
|
数据可视化 安全
游客森林公园游憩需求调查数据回归模型和可视化分析
游客森林公园游憩需求调查数据回归模型和可视化分析
|
24天前
|
数据可视化 机器学习/深度学习
|
11月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
准确率评分
准确率评分是为了衡量一个模型在预测任务中的表现,其中包括三个指标,分别是平均绝对误差(MAE)、平均相对误差(MAE%)和精确样本占比(Ratio@C)。
93 1
|
11月前
|
机器学习/深度学习 存储 人工智能
深度学习应用篇-推荐系统[11]:推荐系统的组成、场景转化指标(pv点击率,uv点击率,曝光点击率)、用户数据指标等评价指标详解
深度学习应用篇-推荐系统[11]:推荐系统的组成、场景转化指标(pv点击率,uv点击率,曝光点击率)、用户数据指标等评价指标详解
深度学习应用篇-推荐系统[11]:推荐系统的组成、场景转化指标(pv点击率,uv点击率,曝光点击率)、用户数据指标等评价指标详解
|
12月前
|
算法 搜索推荐 数据格式
基于用户的协同过滤算法(及3种计算用户相似度的方法)
本文参考《推荐系统实践》中基于用户的协同过滤算法内容。基于老师上课讲解,自己实现了其中的代码,了解了整个过程。
224 0
|
机器学习/深度学习 算法
余弦相似度算法进行客户流失分类预测
余弦相似性是一种用于计算两个向量之间相似度的方法,常被用于文本分类和信息检索领域。
117 0
|
机器学习/深度学习 自然语言处理 算法
朴素贝叶斯进行--垃圾邮件分类、新闻分类、个人广告获取区域倾向的解读
朴素贝叶斯进行--垃圾邮件分类、新闻分类、个人广告获取区域倾向的解读
152 0
朴素贝叶斯进行--垃圾邮件分类、新闻分类、个人广告获取区域倾向的解读