简易评分系统

简介: 如果用户名及口令不合法,用户名或口令最多可输入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


五、小结

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

目录
相关文章
|
6月前
|
数据可视化 算法 数据挖掘
数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分(上)
数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分
|
6月前
|
数据可视化 数据挖掘
数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分(下)
数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分
|
6月前
|
数据可视化
SAS分类决策树预测贷款申请评分剪枝和结果可视化
SAS分类决策树预测贷款申请评分剪枝和结果可视化
|
机器学习/深度学习 TensorFlow 算法框架/工具
准确率评分
准确率评分是为了衡量一个模型在预测任务中的表现,其中包括三个指标,分别是平均绝对误差(MAE)、平均相对误差(MAE%)和精确样本占比(Ratio@C)。
130 1
|
机器学习/深度学习 存储 人工智能
深度学习应用篇-推荐系统[11]:推荐系统的组成、场景转化指标(pv点击率,uv点击率,曝光点击率)、用户数据指标等评价指标详解
深度学习应用篇-推荐系统[11]:推荐系统的组成、场景转化指标(pv点击率,uv点击率,曝光点击率)、用户数据指标等评价指标详解
深度学习应用篇-推荐系统[11]:推荐系统的组成、场景转化指标(pv点击率,uv点击率,曝光点击率)、用户数据指标等评价指标详解
|
存储 弹性计算 固态存储
|
算法 搜索推荐 数据格式
基于用户的协同过滤算法(及3种计算用户相似度的方法)
本文参考《推荐系统实践》中基于用户的协同过滤算法内容。基于老师上课讲解,自己实现了其中的代码,了解了整个过程。
345 0
|
存储 弹性计算 运维
服务器的使用评价
阿里云提供的服务器让作为学生的我们更方便的存储文件,能让我们一个小的集体能够方便共享文件。相对U盘传文件,QQ微信等传文件更方便,而且不需要人在线,只需要把自己小组有用的资源上传上去就可以共享。
|
人工智能 算法 搜索推荐
什么是线索评分?如何让线索评分发挥作用?
线索评分是一个有效的模型可帮助销售和营销部门确定哪些潜在客户对公司最具价值。但是线索评分系统只有在正确设置和使用的情况下才能发挥作用。否则就会浪费营销和销售的时间和资源。 什么是线索评分?许多线索的评分系统会对不同的客户事件分配相应的得分。
2582 0
下一篇
无影云桌面