python学生成绩登记平台软件测试报告

一、单元测试

1.add_student()函数

该函数实现向系统中依据学生学号添加一个学生信息的作用,函数代码如下:

    测试验证本函数功能共设计了2个测试例,详细如下:

    (1)测试例1,在架构中未存入学号为001的学生信息时添加学号为001的学生信息,函数预期运行结果为所有学生信息列表中含有001学生信息。测试代码和测试结果如下:

    (2)测试例2,在系统中已存有学号为001的学生信息时添加学号为001的学生信息。函数预期运行结果为控制台提示该学生已存在。测试代码和测试结果如下

    2.update_student()函数

    该函数搭建向平台中依据学生学号修改一个学生信息的功能,函数代码如下:

    测试验证本函数作用共设计了2个测试例,详细如下:

    (1)测试例1,在系统中修改学号为001的学生信息的单科成绩,成绩范围在0-100之间,函数预期运行结果为学生信息列表中含有修改之后的001学生信息的单科成绩。测试代码和测试结果如下

    (2)测试例2,在系统中修改学号为001的学生信息的单科成绩,成绩范围不在0-100之间,函数预期运行结果为修改001学生信息的单科成绩异常。测试代码和测试结果如下:

    3.delete_student()函数

    该函数实现向系统中依据学生学号删除一个学生信息的能力,函数代码如下:

    测试验证本函数功能共设计了2个测试例,详细如下:

    (1)测试例1,在体系中未存入学号为001的学生信息时删除学号为001的学生信息,函数预期运行结果为控制台提示该学生不存在,删除001学生信息异常。测试代码和测试结果如下:

    (2)测试例2,在系统中已存有学号为001的学生信息时删除学号为001的学生信息。函数预期运行结果为所有学生信息列表中不含有001学生信息。测试代码和测试结果如下:

    4.rank_subject(subject)函数

    该函数实现向体系中对指定科目成绩进行排名机制,函数代码如下:

    测试验证本函数功能共设计了2个测试例,详细如下:

    (1)测试例1,在框架中已存入学生信息的单科成绩,函数预期运行结果为显示指定的学生信息的单科成绩排名。测试代码和测试结果如下:

    (2)测试例2,在系统中未存入学生信息的单科成绩,函数预期运行结果为控制台提示该学生不存在。测试代码和测试结果如下:

    5.rank_total()函数

    该函数实现向系统中对总成绩进行排名功能,函数代码如下:

    测试验证本函数功能共设计了2个测试例,详细如下:

    (1)测试例1,在架构中已存入学生信息的所有成绩,函数预期运行结果为表现学生信息的所有成绩排名。测试结果如下:

    (2)测试例2,在架构中未存入学生信息的成绩,函数预期运行结果为控制台提示该学生不存在。测试结果如下:

    6.query_student()函数

    该函数实现向体系中依据学生学号查询一个学生信息的功能,函数代码如下:

    测试验证本函数功能共设计了2个测试例,详细如下:

    (1)测试例1,在系统中未存入学号为001的学生信息时查询学号为001的学生信息,函数预期运行结果为不存在该学生信息。测试代码和测试结果如下:

    (2)测试例2,在系统中已存有学号为001的学生信息时查询学号为001的学生信息。函数预期运行结果为显示001的学生的各科成绩。测试代码和测试结果如下:

    二、环境测试

    为验证系统完整运行过程,设计了3个环境测试例,涵盖软件所有功能。

    (1)体系测试例1系统运行过程为:系统启动(显示初始启动成功);分别添加学号为001和002的学生信息(能正确添加);再次添加学号为001的学生信息(提示该学生信息已存在);查询学号为001的学生信息(显示信息);更新学号为001的学生信息(更新成功);查询学号为001的学生信息(显示信息);退出平台(提示文件保存成功,系统退出)。测试运行过程及材料结果如下:

    (2)系统测试例2系统运行过程为:系统启动(显示读取文件成功,列出所有学生信息);查询学号为002学生信息(显示学生信息);删除学号为002的学生信息(删除成功);查询学号为002学生信息(表现学生不存在);再次删除学号为002的学生信息(提示不存在);分别添加学号为003、004、005和006的学生信息(能正确添加);退出系统(提示文件保存成功,系统退出)。测试运行过程及文件结果如下:

    (3)系统测试例3架构运行过程为:系统启动(表明读取文件成功,列出所有学生信息);按总成绩排序学生信息(能按正确顺序显现学生信息);按语文成绩排序学生信息(能按正确顺序显示学生信息);按数学成绩排序学生信息(能按正确顺序显示学生信息);按英语成绩排序学生信息(能按正确顺序显示学生信息);退出平台(提示文件保存成功,系统退出)。测试运行过程及资料结果如下:

    附:体系完整代码如下:

    import os
    # 数据存储
    students = []
    # 读取文件信息
    def read_students():
        global students
        try:
            if os.path.exists("students.txt"):
                with open("students.txt", "r") as file:
                    lines = file.readlines()
                    for line in lines:
                        data = line.strip().split(",")
                        student = {"id": data[0], "math": int(data[1]), "english": int(data[2]), "chinese": int(data[3])}
                        students.append(student)
                print("读取文件成功")
                print("以下是所有学生信息:")
                for student in students:
                    print(f"学号: {student['id']}, 数学成绩: {student['math']}, 英语成绩: {student['english']}, 语文成绩: {student['chinese']}")
        except Exception as e:
            print("读取文件出现异常:", e)
    # 保存文件信息
    def save_students():
        try:
            with open("students.txt", "w") as file:
                for student in students:
                    line = "{},{},{},{}\n".format(student["id"], student["math"], student["english"], student["chinese"])
                    file.write(line)
        except Exception as e:
            print("保存文件出现异常:", e)
        else:
            print("文件保存成功")
    # 添加学生成绩
    def add_student():
        try:
            id = input("请输入学号:")
            for student in students:
                if student["id"] == id:
                    print("学号已存在,请重新输入!")
                    return
            math = int(input("请输入数学成绩:"))
            if not 0 <= math <= 100:
                print("成绩应在0到100之间,请重新输入!")
                return
            english = int(input("请输入英语成绩:"))
            if not 0 <= english <= 100:
                print("成绩应在0到100之间,请重新输入!")
                return
            chinese = int(input("请输入语文成绩:"))
            if not 0 <= chinese <= 100:
                print("成绩应在0到100之间,请重新输入!")
                return
            student = {"id": id, "math": math, "english": english, "chinese": chinese}
            students.append(student)
            save_students()
        except Exception as e:
            print("添加学生成绩出现异常:", e)
    # 修改学生成绩
    def update_student():
        try:
            id = input("请输入要修改成绩的学号:")
            found = False
            for student in students:
                if student["id"] == id:
                    found = True
                    math = int(input("请输入数学成绩:"))
                    if not 0 <= math <= 100:
                        print("成绩应在0到100之间,请重新输入!")
                        return
                    english = int(input("请输入英语成绩:"))
                    if not 0 <= english <= 100:
                        print("成绩应在0到100之间,请重新输入!")
                        return
                    chinese = int(input("请输入语文成绩:"))
                    if not 0 <= chinese <= 100:
                        print("成绩应在0到100之间,请重新输入!")
                        return
                    student["math"] = math
                    student["english"] = english
                    student["chinese"] = chinese
                    save_students()
                    return
            if not found:
                print("未找到该学号的学生!")
        except Exception as e:
            print("修改学生成绩出现异常:", e)
    # 删除学生成绩
    def delete_student():
        try:
            id = input("请输入要删除成绩的学号:")
            found = False
            for student in students:
                if student["id"] == id:
                    found = True
                    students.remove(student)
                    save_students()
                    return
            if not found:
                print("未找到该学号的学生!")
        except Exception as e:
            print("删除学生成绩出现异常:", e)
    # 单科成绩排名
    def rank_subject(subject):
        found = False
        for student in students:
            if student["id"] == subject or (subject in student and student[subject] is not None):
                found = True
                break
        if not found:
            print("该学生不存在或暂无该科目成绩信息,请先添加成绩数据。")
            return
        try:
            sorted_students = sorted(students, key=lambda x: x[subject], reverse=True)
            for i, student in enumerate(sorted_students):
                print("{}、学号:{},{}成绩:{}".format(i + 1, student["id"], subject, student[subject]))
        except Exception as e:
            print("单科成绩排名出现异常:", e)
    # 总成绩排名
    def rank_total():
        found = False
        for student in students:
            if student["id"] is not None:
                found = True
                break
        if not found:
            print("系统中暂无学生成绩信息,请先添加成绩数据。")
            return
        try:
            for student in students:
                student["total"] = student["math"] + student["english"] + student["chinese"]
            sorted_students = sorted(students, key=lambda x: x["total"], reverse=True)
            for i, student in enumerate(sorted_students):
                print("{}、学号:{},总成绩:{}".format(i + 1, student["id"], student["total"]))
        except Exception as e:
            print("总成绩排名出现异常:", e)
    # 查询学生成绩
    def query_student():
        try:
            id = input("请输入要查询成绩的学号:")
            found = False
            for student in students:
                if student["id"] == id:
                    found = True
                    print("学号:{},数学成绩:{},英语成绩:{},语文成绩:{}".format(student["id"], student["math"], student["english"], student["chinese"]))
                    return
            if not found:
                print("未找到该学号的学生!")
        except Exception as e:
            print("查询学生成绩出现异常:", e)
    # 主函数
    def main():
        read_students()
        while True:
            try:
                print("1. 添加学生成绩")
                print("2. 修改学生成绩")
                print("3. 删除学生成绩")
                print("4. 数学成绩排名")
                print("5. 英语成绩排名")
                print("6. 语文成绩排名")
                print("7. 总成绩排名")
                print("8. 查询学生成绩")
                print("9. 退出")
                choice = input("请选择操作:")
                if choice == "1":
                    add_student()
                elif choice == "2":
                    update_student()
                elif choice == "3":
                    delete_student()
                elif choice == "4":
                    rank_subject("math")
                elif choice == "5":
                    rank_subject("english")
                elif choice == "6":
                    rank_subject("chinese")
                elif choice == "7":
                    rank_total()
                elif choice == "8":
                    query_student()
                elif choice == "9":
                    print("文件保存成功,系统退出")
                    break
            except Exception as e:
                print("主菜单操作出现异常:", e)
    if __name__ == "__main__":
        main()
    posted @ 2025-12-16 10:28  clnchanpin  阅读(51)  评论(0)    收藏  举报