结对作业

这个作业属于哪个课程 计科22级12班
这个作业要求在哪里 作业要求
这个作业的目标 结对编程

姓名 学号 Github
热合米图拉 3122004463 Github仓库地址

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

题目要求

题目:实现一个自动生成小学四则运算题目的命令行程序(也可以用图像界面,具有相似功能)。

说明:

  • 自然数:0, 1, 2, …。
    真分数:1/2, 1/3, 2/3, 1/4, 1’1/2, …。
    运算符:+, −, ×, ÷。
    括号:(, )。
    等号:=。
    分隔符:空格(用于四则运算符和等号前后)。
    算术表达式:
    e = n | e1 + e2 | e1 − e2 | e1 × e2 | e1 ÷ e2 | (e),
    其中e, e1和e2为表达式,n为自然数或真分数。
    四则运算题目:e = ,其中e为算术表达式。

项目文件结构

主要功能执行逻辑

执行

执行之后所得到的结果(10道算题)


程序报告

一、程序功能概述

利用C++编写了这次程序,程序的主要功能是生成一系列简单的数学表达式,并验证这些表达式的合法性。程序会根据用户输入的题目数目生成相应数量的表达式,并输出那些计算结果在0到100之间的有效表达式。

二、主要功能模块

  1. 表达式求值 (calc 函数)

    • 根据给定的字符串表达式进行计算。
    • 支持加、减、乘、除四种基本运算。
    • 返回计算结果或非法输入标志 inf
  2. 初始化变量 (init 函数)

    • 随机生成三个整数 a, b, c 和两个运算符 op1, op2
    • 用于每次生成新的表达式。
  3. 表达式合法性检查 (valid 函数)

    • 检查生成的表达式是否合法,即其计算结果是否在0到100之间。
    • 返回布尔值表示是否合法。
  4. 多运算符处理 (multiop 函数)

    • 确保两个运算符不相同,以生成更复杂的表达式。
  5. 主程序逻辑 (main 函数)

    • 接收用户输入的题目数量。
    • 循环生成并检查表达式,直到达到指定数量为止。
    • 输出有效的表达式及其计算结果。

三、程序特点

  • 随机性:通过 rand() 函数生成随机数来确保每次运行程序时生成的表达式都是不同的。
  • 有效性检查:通过 valid 函数确保只有合法的表达式才会被输出,增加了程序的实用性。
  • 性能统计:通过记录程序执行时间来评估性能。

四、优化建议

  1. 错误处理:增加对输入数据的合法性检查,如题目数量应为正整数。
  2. 运算符优先级:目前程序简单地处理了所有运算符,可以进一步完善以支持正确的运算符优先级规则。
  3. 代码结构改进:将一些重复的代码逻辑封装成函数,提高代码的可读性和可维护性。

五、总结

一个四则运算题生成程序,目前只实现了基础的功能,以后会继续改进,把题目要求的功能全部逐步地完成完善并添加到程序当中。
1.

posted @ 2024-09-28 22:58  2732116289  阅读(7)  评论(0编辑  收藏  举报