结队编程项目——四则运算

一、项目与分析

项目功能

自动生成小学四则运算题目(加、减、乘、除)并统计正确率

  • 支持整数
  • 支持多运算符(比如生成包含100个运算符的题目)
  • 支持真分数

分析

  • 生成整数与真分数:实现了生成真分数即可利用分数的约分机制使其生成整数。
  • 生成四则运算:最初想的方法是四则运算的生成可利用加减乘除的符号分别与数字1、2、3、4相对应,随机生成四个数字再利用switch多分支语法即可生成相应符号。但在后来的实践过程中发现这种方法并不能很好的实现,因为读取字符串的时候最好直接能读取符号和数字,避免二者交叉,所以采取了先在一个数组中定义好四个符号,然后在生成算式的时候,利用rand产生随机数,然后指向数组中不同位置的符号,即可生成
  • 支持多运算符:运算符的数量是通过源代码来决定的,可根据修改源代码来更改生成运算符的个数。

    二、设计思路

    代码应该包含四个方面:可产生随机分数、可产生字符串(即算术题)、可计算产生的字符串、可对分数进行约分与加减乘除操作。
  • 产生随机分数,在主函数中先随机产生两个整数,再在一个类中进行约分,因此我们设置了Rational类。
  • 产生字符串,有了分数,我们只需要再找个符号就可以了,我们在主函数中利用分析中生成四则运算的思路利用rand产生了符号,最后在输出的时候设置固定的括号位置,最后一个算式就诞生了。
  • 计算产生的字符串,我们把输出的字符串再读入到电脑中,利用老师给的思路,构建一个计算器,分别利用数字栈和符号栈来读字符串,根据运算符的先后顺序执行了弹栈,即遇到加号先存,遇到右括号则执行之前的算式,遇到乘除则弹出栈顶两个数字进行运算。

    UML类图

    1594162-20190404220642645-707634932.png

三、关键代码

  • 题目生成

      for(int i=1;i<=n;i++) {System.out.println("题目"+i+":");//  calculator.a=read.nextLine();a = rand.nextInt(100);b = rand.nextInt(100);c = rand.nextInt(100);calculator1.a = "("+a+""+ch[rand.nextInt(ch.length)]+ b+""+")"+ch[rand.nextInt(ch.length)]+c+"";
  • 约分

        double numerator = 1 ;   //分子double denominator = 1; //分母void setNumerator(double a) {  //设置分子double c=f(Math.abs(a),denominator);  //计算最大公约数numerator = a/c;//约分if(numerator<0&&denominator<0) { //分子分母负数情况numerator = -numerator;denominator = -denominator;}}void setDenominator(double b) {  //设置分母double c=f(numerator,Math.abs(b));  //计算最大公约数denominator = b/c;if(numerator<0&&denominator<0) {numerator = -numerator;denominator = -denominator;}}

四、遇到的困难及解决办法

  • 问题1:如何解决读取算式的问题
  • 解决方法:将算式放入字符串变量中,再用数组访问的方法挨个访问

五、功能展示

1594162-20190404220458162-1192615888.png

六、对小伙伴文航的评价:

做项目最重要的不是积极,热情,而是能够一直积极,热情,在最初的兴奋退却后,只有坚持不懈,才能成功,而小谢就是这样的人,我相信,我们在这一学期的结对之中都能够收获颇丰。

七、PSP图

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

转载于:https://www.cnblogs.com/wxhblogs/p/10657262.html

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客14355 翻硬币

链接&#xff1a;https://ac.nowcoder.com/acm/problem/14355 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 小明正在玩一个“翻硬币”的游戏。 …

2021诺奖预测出炉!16名学者获得最新一届“引文桂冠奖”

图片来源&#xff1a;Pixabay来源&#xff1a;公众号“科睿唯安”2002 年以来&#xff0c;科睿唯安每年都会基于 Web of Science 平台上的论文和引文数据&#xff0c;遴选诺贝尔奖奖项所涉及的生理学或医学、物理学、化学及经济学领域中全球最具影响力的顶尖研究人员&#xff0…

[转帖]2015年时微软Win3.1崩溃迫使巴黎奥利机场短暂关闭

https://www.ithome.com/html/it/188796.htm IT之家讯 2015年11月14日消息&#xff0c;上周法国巴黎奥利机场因为微软的Windows 3.1系统出现故障不得不迫使所有飞机降落并暂时关闭机场。对&#xff0c;你没看错&#xff0c;就是Windows 3.1&#xff0c;这款操作系统于1992年发布…

牛客14386 水仙花数

链接&#xff1a;https://ac.nowcoder.com/acm/problem/14386 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 水仙花数是指一个N位正整数&#xf…

华为发布《智能世界2030》报告,多维探索未来十年趋势

来源&#xff1a;华为2021年9月22日&#xff0c;华为携手产业伙伴举办了智能世界2030论坛。华为常务董事、ICT产品与解决方案总裁汪涛以“无界探索&#xff0c;翻开未来”为主题演讲&#xff0c;发布了《智能世界2030》报告。这是华为首次通过定量与定性结合的方式&#xff0c;…

类定义(课下选做)

1、设计思路 1.根据题目要求覆盖&#xff08;Override&#xff09;toString方法、覆盖equals方法&#xff0c;即重写这两个方法&#xff1b; 2.根据题目要求定义至少三个构造方法&#xff0c;接收并初始化这些数据&#xff1b; 3.创建一个测试类Bookshelf, 其中的main方法创建并…

我们不用「元宇宙」这个词!苹果CEO库克:我们称其为AR

来源&#xff1a;Time&新智元近日&#xff0c;在登上时代周刊的百大人物之后&#xff0c;苹果CEO库克再次接受了杂志的采访。虽然内容千篇一律&#xff0c;但是最有趣的莫过于拒绝「元宇宙」这个说法了。「这就是所谓的元宇宙吗&#xff1f;」Time的记者问道。「不&#xf…

牛客13584 日历中的数字

链接&#xff1a;https://ac.nowcoder.com/acm/problem/13584 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format: %lld 题目描述 ElemenT马上就要毕业了&#xff0…

许竹青、骆艾荣:数字城市的理念演化、主要类别及未来趋势研究

来源&#xff1a;本文原刊于《中国科技论坛》2021年8月第8期摘要&#xff1a;城市与技术的关系由来已久&#xff0c;但将“数字”这一技术概念与城市连接成为专有名词却是新事物。本文从技术变迁的外生驱动和城市发展问题的内生需求两个角度探讨数字城市兴起及发展的动因&#…

牛客20701 神秘钥匙

链接&#xff1a;https://ac.nowcoder.com/acm/problem/20701 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 clccle一行&#x1d45b;个人来到了…

《深入浅出vue.js》阅读笔记之数组变化侦测

1、如何追踪变化 数组的侦测方式和对象不同&#xff0c;比如&#xff1a; this.list.push(1) 此时并不会像改变对象一样触发setter。 同理&#xff0c;要侦测数组的变化意味着我们在改变数组的时候得到通知&#xff0c;如图&#xff0c;我们可以用一个拦截器覆盖Array.prototyp…

时隔16年,Science再次发布“全世界最前沿的125个科学问题”!

来源&#xff1a;文汇报《科学》杂志曾于创刊125周年之际发布过125个推动基础科学研究的科学难题&#xff0c;对指引其后十几年的科学发展产生积极影响。16年过去了&#xff0c;科技发展日新月异&#xff0c;科学突破层出不穷&#xff0c;许多问题得到一定程度的解答&#xff0…

牛客19115 选择颜色

链接&#xff1a;https://ac.nowcoder.com/acm/problem/19115 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 n个人排成一个环形&#xff0c;每个…

当人工智能遇上计算社会科学……

来源&#xff1a;微信公号&#xff1a;计算社会科学家原文出处:《人民论坛学术前沿》作者&#xff1a;华东师范大学哲学系教授 郦全民近年来&#xff0c;由深度学习引爆的“人工智能”&#xff0c;迅速成为科技领域乃至日常生活中的流行词&#xff1b;差不多同时&#xff0c;在…

Linux memcached

Linux memcached memcached是一套分布式的高速缓存系统&#xff0c;使用key-value来缓存数据&#xff0c;是由LiveJournal的Brad Fitzpatrick开发&#xff0c;目前被许多网站使用。这是一套开放源代码软件&#xff0c;以BSD license授权发布。memcached缺乏认证以及安全管制…

牛客18985 数字权重 (数学,快速幂)

链接&#xff1a;https://ac.nowcoder.com/acm/problem/18985 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 小a有一个n位的数字&#xff0c;但是…

Science 封面:史上最小飞行器,有翼微芯片仅沙粒大小,可用于环境监测

来源&#xff1a;机器人大讲堂据最新一期《自然》杂志刊发的论文&#xff0c;西北大学的工程师为电子微芯片增加了一种新的能力&#xff1a;飞行。据了解&#xff0c;这种微芯片大概只有一粒沙子大小&#xff0c;另外它没有马达。相反&#xff0c;它在风中捕获飞行--很像枫树的…

牛客15324 用来作弊的药水

链接&#xff1a;https://ac.nowcoder.com/acm/problem/15324 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 在一个风雨交加的夜晚&#xff0c;来…

由于这个现象,我们永远无法精确测量时间

几乎任何事物都可以作为时钟&#xff0c;只是有些时钟比其他的更好用而已。图片来源&#xff1a;Corinne Reid来源&#xff1a;环球科学2013年&#xff0c;物理学硕士研究生保罗埃凯尔&#xff08;Paul Erker&#xff09;仔细翻阅着教科书和论文&#xff0c;试图从中找到“时钟…

牛客15187 分元宵 (快速幂)

链接&#xff1a;https://ac.nowcoder.com/acm/problem/15187 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 题目描述 s, v, w, p, A list(map(int, i…