首页 > 编程语言 >结对项目:用Python实现自动生成小学四则运算题目的程序

结对项目:用Python实现自动生成小学四则运算题目的程序

时间:2023-09-28 22:23:40浏览次数:53  
标签:10 结对 题目 项目 Python 代码 四则运算 程序 生成

Python实现四则运算程序

软件工程 计科21级1.2班
作业要求 https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13016
作业目标 完成结对项目:四则运算 ; 熟悉团队协作的方法和模式

github链接:https://github.com/howdnb/howdnb

项目成员信息

姓名 学号
刘升嘉 3121004833
谭艺豪 3121004837

PSP表格

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

程序实现

一.具体设计

  • 程序流程图
    -总体可分为三个功能:生成题目、计算结果、文件读写

  • 生成题目:
    (1)随机生成题目,包括运算符、数字等
    (2)随机生成括号插入题目中
    (3)检查重复题目,将其去除

  • 计算结果:
    (1)将中缀表达式转为后缀表达式
    (2)使用后缀表达式进行计算,同时过滤掉不符合要求的题目

  • 文件读写:
    (1)将用户输入结果写入文件
    (2)将题目与计算结果写入文件
    (3)读出用户输入结果与计算结果并进行比对,将比对结果写入至文件

代码说明

  • 使用此函数随机生成算式中数字与符号,包括整数与分数(处理为真分数)

  • 随机生成括号插入

  • 检查重复算式

  • 使用此函数将中缀表达式转换为后缀表达式,提高计算效率

  • 通过分割flag将带分数转换为假分数,并使用Fraction库使得分数间可直接进行计算

  • 使用re库结合正则表达式将答案从文件中提取出来,并将两者进行比对,得出结果

二.性能分析

  • 通过观察主函数各行代码热力值可发现,函数calculate()所占时间最多

  • 观察calculate()函数各行代码热力值可发现,主要是在输入答案时耗时较多,并不影响程序进程

  • 代码检查

  • 通过pycharm自带工具进行检查发现,程序仅存在拼写问题,对程序运行并无影响

  • 代码覆盖率

  • 使用coverage库生成coverage report,未覆盖的为条件判断

三.测试运行

  • 命令行中运行程序

  • 结果输入至文件中

异常处理

  • 传入题目为空

  • 输入参数错误

项目总结

通过紧密合作,我们两人完成了此次结对项目

  • 项目分工

    • 刘升嘉:编写题目生成以及题目查重部份的程序
    • 谭艺豪:编写题目计算以及答案对比部份的程序
  • 项目收获

    • 更加清楚地认识到了团队协作的具体过程
    • 明白了在完成团队项目时,要积极沟通,了解对方进度,共同讨论该如何实现整个程序
    • 在个人编写遇到问题时,可以询问对方建议,合作完成整个项目

标签:10,结对,题目,项目,Python,代码,四则运算,程序,生成
From: https://www.cnblogs.com/howdnb/p/17733157.html

相关文章

  • 结对项目:实现一个自动生成小学四则运算题目的命令行程序
    1作业摘要与结对伙伴介绍1.1作业摘要这个作业属于哪个课程所属课程链接这个作业要求在哪里作业要求链接这个作业的目标<熟悉软件工程流程,把握PSP流程框架,精进测试代码和性能改进的能力>Github链接1.2结对伙伴信息姓名学号彭学智3121004878......
  • 结对项目:Java实现自动生成小学四则运算题目
    结队项目软件工程所在班级队伍成员谢昊天(3121004672)林育鑫(3121004660)作业要求[要求](([个人项目-作业-计科21级12班-班级博客-博客园(cnblogs.com)](结对项目-作业-计科21级12班-班级博客-博客园(cnblogs.com))))作业目标实现一个自动生成......
  • python中实现按照固定位数拆分字符串
     001、[root@pc1test2]#lstest.py[root@pc1test2]#cattest.py##测试程序#!/usr/bin/envpython3#-*-coding:utf-8-*-importrestr1="abcdefghijklmn"print(str1)list1=re.findall(".{3}",str1)##按照每3位生成列表print(&qu......
  • 结对项目
    一,成员信息表作业链接https://edu.cnblogs.com/campus/gdgy/CSGrade21-34/homework/13025拜尔克吐拉·吾买尔江3121005247阿布都瓦力·努尔买合买提3121005072Github链接https://github.com/bayer12/3121005247-bayer二,PSP表格PSP2.1PersonalSoftware......
  • Python 中的字符串基础与应用
    在Python中,字符串可以用单引号或双引号括起来。'hello'与"hello"是相同的。您可以使用print()函数显示字符串文字:示例:print("Hello")print('Hello')将字符串分配给变量是通过变量名后跟等号和字符串完成的:示例a="Hello"print(a)多行字符串您可以使用三个引号将多......
  • 结对项目——贾基东&迪力木热提·开依散尔
    这个作业属于哪个课程计科21级12班这个作业要求在哪里结对项目这个作业的目标实现一个自动生成小学四则运算题目的命令行程序团队成员信息姓名学号贾基东3121004864迪力木热提·开依散尔3121004859gitee:https://gitee.com/jiajidong/3121004......
  • python重命名 文件
    在Python中,可以使用os模块的rename()函数来重命名文件。以下是一个基本的示例:importos#原文件的路径old_file_path='/path/to/your/old_file_name.txt'#新文件的路径new_file_path='/path/to/your/new_file_name.txt'#使用os.rename()函数进行重命名os.rename(......
  • 结对项目
    作业概述这个作业属于哪个课程软件工程这个作业要求在哪里个人项目作业这个作业的目标完成小学四则运算算法”的设计并进行测试姓名学号陈梓鹏3121005208项目链接项目链接PSP表格PSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际耗时(分......
  • python生信01
     001、生成nNnnNNnnnNNN....a、[root@pc1test1]#lstest.py[root@pc1test1]#cattest.py##测试程序#!/usr/bin/envpython3#-*-coding:utf-8-*-foriinrange(1,11):forjinrange(1,i):print("n",end="......
  • 【闲暇一写】用Python编写2048游戏(命令行版)
    本篇博文围绕使用Python开发热门游戏2048GAME(命令行版本)代码未做任何优化(原生且随意)、全程以面向过程、MVC的设计思想为主、开发环境是Ubuntu系统下的Pycharm2048是我很久以前学习Python过程中的一个作业,接下来直入正题——一、了解游戏1.介绍《2048》是一款单人在线和移......