简易评分系统

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


五、小结

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

目录
相关文章
|
7月前
|
图计算
综合评价法与权重方法汇总
综合评价法与权重方法汇总
|
7月前
|
数据可视化 算法 数据挖掘
数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分(上)
数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分
|
7月前
|
数据可视化 数据挖掘
数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分(下)
数据分享|R语言IMDb TOP250电影特征数据挖掘可视化分析受众偏好、排名、投票、评分
|
机器学习/深度学习 数据采集 自然语言处理
用户意图预测
用户意图预测
164 0
|
机器学习/深度学习 TensorFlow 算法框架/工具
准确率评分
准确率评分是为了衡量一个模型在预测任务中的表现,其中包括三个指标,分别是平均绝对误差(MAE)、平均相对误差(MAE%)和精确样本占比(Ratio@C)。
136 1
|
移动开发 Python
综合评价法之秩和比法RSR
介绍秩和比法的应用,及其代码实现
1317 0
综合评价法之秩和比法RSR
|
存储 弹性计算 固态存储
|
SQL 搜索推荐
logistic回归用户画像用户响应度预测
logistic回归用户画像用户响应度预测
231 0
logistic回归用户画像用户响应度预测
|
搜索推荐
3分钟,看懂用户偏好分析
一提到用户画像,很多人直观地会想到:通过用户画像分析出用户偏好。到底用户偏好该如何做分析,今天简单分享下,给大家一个懒人攻略。
990 0
3分钟,看懂用户偏好分析
|
存储 弹性计算 运维
服务器的使用评价
阿里云提供的服务器让作为学生的我们更方便的存储文件,能让我们一个小的集体能够方便共享文件。相对U盘传文件,QQ微信等传文件更方便,而且不需要人在线,只需要把自己小组有用的资源上传上去就可以共享。