四则运算实验报告

实验题目:结对编程-四则运算

实验日期:2017.5.12
实验内容:编译一个程序,使其:

  1. 自动生成小学四则运算题目(加、减、乘、除)
  2. 持多运算符(比如生成包含100个运算符的题目)
  3. 支持真分数
  4. 统计正确率
  5. 支持整数
    指导老师:娄老师、谢老师,王老师。

实验内容:

需求分析与设计思路

根据要求的四则运算,第一反应就是ifelse语句来选择加减乘除,如此继续延伸,ifelse语句也可以用来写是否加入真分数等等这些操作,因此,这次实验我们选择大量使用ifelse语句来编写,但是在如何计算出值和表达式方面,通过谢老师的博客知道,我们需要学习逆波兰式算法,进而得出计算结果,并且由于需要判断的语句较多,需要进行多次输入新的变量。
16a0e38c6935afd4.png
首先需要完成的是伪代码的编写,由于代码量比较大,在编译过程中有困难,因为大量的代价十分容易产生混淆与重复的问题,同时本次实验的代码的层次十分多,环节十分复杂,在编译过程中出现逻辑错误的可能性很高,需要进行多次编写和修改。在几个实验要求中,支持真分数运算是比较困难的一个部分,首先要确定输入值是否为真分数,这里就有了一个比较的过程,但是幸运的是,我们在多运算符解决之前就解决了真分数的问题,同时我们选择了在代码一开始就给使用者一个选择,是否加入真分数。
8c59537c2b372ec7.png
812b4c083215edc8.png
同时真分数时候的一些注意事项
e8225f9c3fa06554.png
2b0cfb1c0f5285ba.png
在完成了这两个难点之后,判断答案并进行记录,统计正确率是总结整个代码的过程,对于答题情况的统计,同样要通过变量进行统计。
85c94d4d0eb982c5.png
最后结果如图
4f157f9ff59b168a.png
困难点:
因为这是结对编程项目,其一对于多运算符方面的问题,我们在网上进行查找,但是都没有找到一个令人满意的解决办法。其二,因为结对人更多的选择使用bash进行编程,所以要结合IDEA和bash来进行编程。其三,因为代码量很大,出现很多问题,需要不断的改进和修正。
解决办法:
结对人刑天钺同学与张泰毓同学交流学习后,结合张同学在码云上的代码,完成了多运算符的代码编译,完善了代码。编译方法为:给代码增加一个for循环语句,在不加入括号的情况下,运算符由数字、符号、数字、符号组成,将这个语句进行长度加一的循环,就完成了多运算符的计算。
d63df789f4a5fb1f.png
结对学习情况:
本次实验,我与20162309刑天钺结对共同完成本次实验,刑天钺同学在java学习上基本功很扎实,在对代码的理解深入。能够提出很多新颖的想法,给习惯照本宣科的我以很大的启迪。
但是本次结对编程中,我们队还存在一个问题就是,代码量很大,重复冗杂的很多,因此不得不拿出很多时间去精简一下,虽然也没精简多少。
a1208f27621e3513.png

PSP表格:

|

PSP2.1Personal Software Process Stages预估耗时(小时)实际耗时(小时)
Planning计划1517
· Estimate· 估计这个任务需要多少时间811
· Analysis· 需求分析 (包括学习新技术)22
· Design Spec· 生成设计文档0.50.33
· Design Review· 设计复审 (和同事审核设计文档)0.50.5
· Coding Standard· 代码规范 (为目前的开发制定合适的规范)11.5
· Design· 具体设计23
· Coding· 具体编码34
· Code Review· 代码复审21.5
· Test· 测试(自我测试,修改代码,提交修改)11
Reporting报告11
· Test Report· 测试报告22.5
· Size Measurement· 计算工作量0.50.5
· Postmortem & Process· 事后总结, 并提出过程改进计划22
Improvement Plan合计22.5

实验总结:

本次实验是学习java以来一次较为完整和系统的考察学习情况的实验过程,通过结对实验的方式来实现。本次实验有一定的难度,考察方式较为全面,需要投入较多的时间和精力,在一些实验要求上,比如在给定的一定数量(较大)的代码输出结果中,需要为客户自动筛选出是否存在重复代码,以及多重的判断语句,在编译上确实存在困难,本周也只是完成了一部分实验内容,一些完善工作还需要完成。通过结对编程任务,在java运用上体会到了还有很多在教材学习上没有学习到和掌握的知识,只是单纯地完成教材上的代码任务很难全面的学习,通过每周的实验任务以及随堂代码运行检查可以有效地进行巩固对学习有很大帮助。
四则运算的实验的代码量相对较多,在测试和运行时,单纯的命令行就无法较为简洁地完成了,则idea的一些好处就体现出来了,代码量大的程序idea可以更加方便地进行错误的检查,判断语法,对实验的完成有很大的帮助。

转载于:https://www.cnblogs.com/yuanhongming/p/6853596.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验目的: 本实验旨在通过编写程序实现简单的四则运算,加深对程序控制流程、运算符、函数等概念的理解,提高编程能力。 实验过程: 根据题目要求,我们需要实现加减乘除四种运算。首先需要定义变量来存储用户输入的两个数和运算结果,然后根据用户选择的运算符进行相应的计算,并将结果输出。 具体实现过程如下: 1. 定义变量num1、num2、result,来存储用户输入的两个数和运算结果。 2. 通过输入函数scanf()获取用户输入的两个数num1和num2。 3. 通过输入函数scanf()获取用户选择的运算符operator。 4. 根据用户选择的运算符operator进行相应的计算,将结果保存在变量result中。 5. 通过输出函数printf()将结果输出。 6. 程序结束。 以下为程序示例: ``` #include <stdio.h> int main() { float num1, num2, result; char operator; printf("请输入两个数和运算符(例如:2+3):\n"); scanf("%f%c%f", &num1, &operator, &num2); switch (operator) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; case '*': result = num1 * num2; break; case '/': if (num2 == 0) { printf("除数不能为0!\n"); return 0; } result = num1 / num2; break; default: printf("输入的运算符不正确!\n"); return 0; } printf("运算结果为:%f\n", result); return 0; } ``` 实验结果: 运行程序,输入两个数和运算符,程序可以正确计算出结果并输出。 实验结论: 本实验通过编写程序实现简单的四则运算,加深了对程序控制流程、运算符、函数等概念的理解,提高了编程能力。同时,还需要注意输入输出的格式和数据类型的匹配,以及对除数为0的情况进行特殊处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值