软件工程结对项目

news/2024/9/28 15:16:58

结对项目

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230
这个作业的目标 结对完成四则运算生成器

项目成员

  • 伍绍雄 学号 3122004753
  • 陈鸿航 学号 3122004732

Github

GitHub地址https://github.com/cywoo-1?tab=repositories

PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 40 30
Estimate 估计这个任务需要多少时间 30 30
Development 开发 400 330
Analysis 需求分析 (包括学习新技术) 240 120
Design Spec 生成设计文档 30 20
Design Review 设计复审 10 10
Coding Standard 代码规范 (为目前的开发制定合适的规范) 15 20
Design 具体设计 50 40
Coding 具体编码 350 360
Code Review 代码复审 60 70
Test 测试(自我测试,修改代码,提交修改) 30 50
Reporting 报告 60 50
Test Report 测试报告 60 40
Size Measurement 计算工作量 30 10
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 10 10
Total 合计 1415 1190

设计实现说明

函数设计

  • reset_ui:用于重置整个页面,重新获取输入的题目
  • input_num:获取输入的题目
  • input_answer:获取输入的答案
  • compare_answer:用于比较原答案和用户输入答案的对错
  • answer_table:用于生成答题的区域
  • get_last_framee:用于排版和美化界面
  • generate_question:调用外部函数生成题目,并展示
  • generate_answer: 获取文件中的答案并存入字典中
  • upload_file :获取上传的文件
  • submit_answers_file:用于上传答案文件比进行比对

效能分析




代码说明

random_generation:
作用:用于生成四则运算题目,并确保生成的题目符合要求‘没有负数,题目中的算术符不超过三个,生成数值大小可以控制,随机产生括号’
实现:使用python库中的random.randint函数控制生成数的大小,random.choice函数控制算术符和括号的生成

calculation:
作用:用于将后缀表达式计算出对应的数值大小,并确保e1÷ e2的子表达式,其结果应是真分数
实现:通过使用栈的结构,按顺序弹出对应的算术符号和数值,并且使用Fraction函数进行分数之间的运算

infix_converts_suffixes:
作用:用于将输入的中缀表达式转化为后缀表达式
实现:使用字典将运算符号进行分级,只有比栈中的运算符号更高一级才可以压栈,否则将弹栈,而遇到数值则直接进栈

read_file:
作用:读取用户上传的问题文件并且计算出对应的结果后输出到答案文件中

测试运行

1.这个测试确保了compare_answer方法在各种情况下都能正确地比较答案并给出正确的结果。

2.这个测试确保了reset_ui方法能够正确地将界面重置为子组件数量不超过特定值的状态,并且保证了相关方法的可调用性。

3.这个测试确保了input_num方法能够正确处理整数输入并给出适当的反馈。

4.这个测试保证了input_answer方法能够正确地获取和处理多个答案输入。

5.这个测试确保了answer_table方法能够根据输入数据正确地创建相应数量的输入框和标签,并正确地管理界面中的框架。

6.这个测试确保了get_last_frame方法能够正确地找到根窗口中的最后一个框架,如果没有框架则返回None。

7.这个测试保证了generate_answer方法能够正确地生成答案字典,并且与外部文件的内容相关联。

8.这个测试保证了test_infix_converts_suffixes方法能够将中缀表达式正确的转化为后缀表达式。

9.这个测试保证了test_calculation方法能够将后缀表达式的算术值正确的输出。

10.这个测试保证了random_generation方法能够正确的随机生成算术表达式

测试结果

界面:

生成题目:

生成答案:

核对答案:

代码覆盖率

通过python安装的coverage进行代码覆盖率测试

项目小结

通过这次结对项目,懂得了如何事先进行交流和沟通,来进行合理的任务分配,再编写各自任务的过程中,对于一些细节要进行沟通,方便在后面进行代码的整合,对于个人的代码书写要更具有独立性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/65789.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

河道治理漂浮物识别监测系统

河道治理漂浮物识别监测系统通过深度视觉分析技术,河道治理漂浮物识别监测系统实时检测着河道水面是否存在漂浮物、水浮莲以及生活垃圾等。河道治理漂浮物识别监测系统识别到河道水面存在水藻垃圾等漂浮物,系统立即抓拍存档并同步发出报警。河道治理漂浮物识别监测系统可以提…

结队项目

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标 实现四则运算程序,掌握结对合作完成项目的技巧成员一 王佳伟3122004880成员二 范圣林3122004735…

AI动作异常行为分析预警系统

AI动作异常行为分析预警系统采用AI神经网络的学习算法,AI动作异常行为分析预警系统实时分析现场人员人体动作操作行为以及着装穿戴情况是否合规进行实时监测,AI动作异常行为分析预警系统通过统计和分析后实现人员违规行为实时监测预警提升现场人员合规操作规范,降低人员违规…

《Python 基础篇》一:初相识

Python 基础语法,以及运算符。Author: ACatSmiling Since: 2024-09-27基础语法 Python 的语法比较简单,采用缩进方式,写出来的代码就像下面的样子: # print absolute value of an integer: a = 100 if a >= 0:print(a) else:print(-a)Python 程序是大小写敏感的,如果写…

VulnHub-SickOs1.1靶机笔记

SickOs1.1靶机笔记 概述 Vulnhub的靶机sickos1.1 主要练习从互联网上搜索信息的能力,还考察了对代理使用,目录爆破的能力,很不错的靶机 靶机地址: 链接: https://pan.baidu.com/s/1JOTvKbfT-IpcgypcxaCEyQ?pwd=ytad 提取码: ytad 一、nmap扫描 1)主机发现 sudo nmap -sn …

MES开发004

写了流程图和数据字段

《DNK210使用指南 -CanMV版 V1.0》第二十七章 摄像头图像调整实验

第二十七章 摄像头图像调整实验 1)实验平台:正点原子DNK210开发板 2)章节摘自【正点原子】DNK210使用指南 - CanMV版 V1.0 3)购买链接:https://detail.tmall.com/item.htm?&id=782801398750 4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/…

linux mariadb odbc

参考: https://blog.csdn.net/mei777387/article/details/75331428 https://www.cnblogs.com/pycode/p/9495793.html mariadb与mysql非常像,甚至安装mariadb后可以使用mysql命令运行mariadb。 安装软件 sudo apt install -y mariadb-server mariadb-client我这里安装的是mari…