当前位置: 首页 > news >正文

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 studentstry: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("学号已存在,请重新输入!")returnmath = int(input("请输入数学成绩:"))if not 0 <= math <= 100:print("成绩应在0到100之间,请重新输入!")returnenglish = int(input("请输入英语成绩:"))if not 0 <= english <= 100:print("成绩应在0到100之间,请重新输入!")returnchinese = int(input("请输入语文成绩:"))if not 0 <= chinese <= 100:print("成绩应在0到100之间,请重新输入!")returnstudent = {"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 = Falsefor student in students:if student["id"] == id:found = Truemath = int(input("请输入数学成绩:"))if not 0 <= math <= 100:print("成绩应在0到100之间,请重新输入!")returnenglish = int(input("请输入英语成绩:"))if not 0 <= english <= 100:print("成绩应在0到100之间,请重新输入!")returnchinese = int(input("请输入语文成绩:"))if not 0 <= chinese <= 100:print("成绩应在0到100之间,请重新输入!")returnstudent["math"] = mathstudent["english"] = englishstudent["chinese"] = chinesesave_students()returnif not found:print("未找到该学号的学生!")except Exception as e:print("修改学生成绩出现异常:", e)# 删除学生成绩
    def delete_student():try:id = input("请输入要删除成绩的学号:")found = Falsefor student in students:if student["id"] == id:found = Truestudents.remove(student)save_students()returnif not found:print("未找到该学号的学生!")except Exception as e:print("删除学生成绩出现异常:", e)# 单科成绩排名
    def rank_subject(subject):found = Falsefor student in students:if student["id"] == subject or (subject in student and student[subject] is not None):found = Truebreakif not found:print("该学生不存在或暂无该科目成绩信息,请先添加成绩数据。")returntry: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 = Falsefor student in students:if student["id"] is not None:found = Truebreakif not found:print("系统中暂无学生成绩信息,请先添加成绩数据。")returntry: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 = Falsefor student in students:if student["id"] == id:found = Trueprint("学号:{},数学成绩:{},英语成绩:{},语文成绩:{}".format(student["id"], student["math"], student["english"], student["chinese"]))returnif 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("文件保存成功,系统退出")breakexcept Exception as e:print("主菜单操作出现异常:", e)if __name__ == "__main__":main()
    http://www.dtcms.com/a/617983.html

    相关文章:

  1. GitHub Actions 和 GitLab CI/CD
  2. 【Linux日新月异(七)】CentOS 7磁盘资源管理深度指南:从分区到性能调优
  3. 企业网站pv是什么佛山推广优化公司
  4. 机器学习常见问题之numpy维度问题
  5. Redis 原理与实验
  6. 网站开发职责与要求软件开发专业好吗
  7. 【Linux驱动开发】Linux 设备驱动中的总线机制
  8. 电压基准芯片详解:从原理到选型,附 TLV431 应用解析
  9. 住房和城乡建设部网站监理工程师网站发送邮件功能
  10. 开发第一个python程序
  11. obet(Oracle Block Editor Tool)第二版发布
  12. 【gas优化】2.11 Calldata 替换 Memory
  13. 深度学习周报(11.10~11.16)
  14. 阿里云建站论坛网站区块链网站建设方案
  15. 李宏毅NLP-14-NLP任务
  16. 惠普LaserJet Pro MFP M126a如何打印自检页
  17. 南京大学cpp复习——面向对象第一部分(构造函数,拷贝构造函数,析构函数,移动构造函数,友元)
  18. Stream 流核心速查表
  19. 网站建设设计服务公司优化大师绿色版
  20. STM32通信协议学习--I2C通信(了解)
  21. 【技术选型】Go后台框架选型
  22. 电子商务网站建设策划书范文西安优秀的集团门户网站建设费用
  23. AI人工智能-语言模型-第六周(小白)
  24. 找工作经验分享
  25. 提供网站建设哪家好佛山外贸seo
  26. 建站官网怎么做网页?
  27. Qt编写28181推流分发服务/统计访问数量/无人观看超时关闭/等待重新点播/复用点播
  28. CodexField Marketplace:重建内容与智能资产的链上市场结构
  29. 微网站素材外贸家具网站
  30. 后端服务发现工具,Consul与Eureka Consul vs Eureka:后端服务发现工具全面对比