小学生四则运算应用软件(一)

一、基本想法

(1)整数和分数的四则运算

由于四则运算要支持分数,刚开始我想着是自定义分数这种数据类型,而后再重载运算符。可当整数和分数混合运算的话,就要考虑到数据类型间的转化,比较麻烦。于是我转化了下思路,即将整数看成是特殊的分数(分母为1),这样将整数和分数统一起来,那么初始化便可以根据具体的数据类型做出调整,如下图所示:

这里需要特别注意的是,我们最后控制台显示的算式是String类型,因而要能实现分数Fraction和String直接的相互转化。

而且要自定义一种隐式转化,这样就能令分数表示出正确的形式(比如整数10不显示分母,分数2/5等)

这时问题又出来了,分数2/4等同于1/2,即在实际应用中分数要进行相应化简,解决方案是求取分母分子的最大公约数,并且如果分子为负数,则将分子分母同时乘以-1(为了比较大小乘以分子大小符号不会改变)

最后便是运算符的重载了,这里以+、<、==为例

其中Add函数具体实现如下:

由于减法等同于加一个负数,除法实际上是乘一个倒数,这里就不再赘述

另外分子不能为0,因此要进行相应的异常处理。

(2)运算符的扩展

(3)程序流程

二、代码实现

三、遇到bug并解决

四、部分程序截图

五、程序改进

时间: 2024-10-03 15:48:21

小学生四则运算应用软件(一)的相关文章

小学生四则运算应用软件(二)

一.针对上周的程序改进: (1)除零问题:生成题目的时候同时计算,try catch异常,若有异常则重新生成 测试用例为2/(2-2),如下会产生分母不应为0的异常 这里的FractionException有多种类型,比如分母不能为0.计算时超出数值范围.无法转化为Fraction等. (2)参数化和用户输入异常处理: 参数化是直接使用C#主函数的String[] args,并且针对每种错误情况都要抛出相应异常,也是使用的try catch机制,其代码如下: 1 static void Main

小学生四则运算

package yun; import java.util.Random; import java.util.*; public class number { /** * 作者:范铭祥 * 功能:一个简单的小学生四则运算生成系统 */ public static void main(String[] args) { int max=4; int min=1; Random random = new Random(); //System.out.println(s); boolean pan=tr

自动生成小学生四则运算(C语言)

我写的这个自动生成小学生四则运算的代码是根据我在百度上看到的一篇博客改的,地址为http://www.cnblogs.com/ys1101/p/4368103.html.它的功能不够完整,只有整数的加.减.乘.除,我在此基础上增加了真分数的加.减.乘.除,及统计分数.我把我写的代码放在了GitHub上,地址为https://github.com/cygoodboy/helloworld.

自动生成小学生四则运算(皮!)

自动生成小学生四则运算(皮!) coding 地址 https://coding.net/u/smile12231/p/Demo/git a·需求分析 在这个家长希望自己的小孩能够赢在起跑线的社会,通常寻找很多的练习给小学生做,所以我们就来编写一个四则运算的软件,你懂我意思吧!这个软件能够 ①丶根据用户想要的出题量生成题目 ②丶生成的题目包括整数和分数的加减乘除 ③丶能够自动判断答案是否正确并给出此次的正确率 ④丶使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目 b丶功能设计

安卓小学生四则运算

安卓Activity: package com.example.count_number; import android.os.Bundle;import android.app.Activity;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText; public class MainActivit

【小学生四则运算】程序第3次冲刺(结项成果发布)

茅山光大大组员:林庆光.卢盛添.黄雄俊.陈梓仪.经过三个阶段的协作努力.通力合作,[小学生四则运算]APP程序已经实现了当初设想的全部功能:用户注册与登录(包括找回密码,记住密码功能),用户注册完成同时成为一个游戏账号(可以进行升级,增加金币功能),其中,程序的核心功能包括加法.减法.乘法.除法.以及混合运算的练习题. APP截图展示: 注册界面 登录界面 首页功能展示 答题界面 答题提示框 显示用户信息 商城金币系统 目前APP的功能已经基本定型,接下来就按照杜老师的要求,尝试对APP进行推广

结对子实验——小学生四则运算

实验开始时间:4月7日~4月9日 本次实验的组员分别是:郑泽成http://www.cnblogs.com/Oliver-zzc/,李天麟http://www.cnblogs.com/talent-demonic/: 1.代码是在Eclipse环境下开发的 2.在这次实验中我负责了写四则运算的算术代码和检查算法 同伴负责面板的设计和监听事件的实现 3.实现扩展方向有:用户在第一次答题时,需要用户输入用户名:程序可以设置答题时间,时间设置为整数,单位为秒:答题结束可以显示用户答错的题目个数和答对的

30道小学生四则运算题C/C++编程

软件工程科课上,老师通过实例讲解什么是程序,程序和软件的区别,要求我们通过短时间写一道编程题, 题目就是编写30道小学生四则运算题.以下就是源代码: #include<iostream.h>#include<stdlib.h>#include<time.h>void demo(void)  //随机产生四则运算{ int m,n,k;   //随机数m,n,计数  m=rand()%100;//生成随机数 n=rand()%100; k=rand()%5; switch

java小学生四则运算带面板版 但我不知道为什么同类变量却进不了动作监听中去

---恢复内容开始--- 1 package yun; 2 import java.util.*; 3 import java.awt.*; 4 import java.awt.event.ActionEvent; 5 import java.awt.event.ActionListener; 6 7 import javax.swing.*; 8 public class number extends JFrame{ 9 10 /** 11 * 作者:范铭祥 12 * 功能:一个简单的小学生四