小学四则运算题

Python四则运算

GitHub项目地址:https://github.com/rekosama/-/commit/230e563197c9d6cee3d04e8fc2efa8156c3533d9

题目:

  (1)能自动生成小学四则运算题目,并且不能出现负数;

  (2)能支持真分数的四则运算;

思路:

(1)四则运算加减乘除,采用两个随机数,由于不能出现负数,则对两个随机数进行比较大小再进行减法运算,除法一向特殊,所以在随机数的取值范围中设置不包括0。另外,整数类型除法中两数相除不能出现无限循环小数,故需要对除法做限制。

(2)真分数运算在pycharm中导入fractions库,其余类似。

(3)题库的生成,由于其随机性需要导入random函数。

实现过程:

 设计三个函数:

 (1)newint() 生成整数四则运算

 (2)newfra() 生成真分数四则运算

 (3)newtest() 生成制定指定数量的四则运算题目

函数关系:

  newint()与newfra()为独立的函数,负责生成随机四则运算,newtest()则随机调用上述两个函数生成题目。

代码说明:

  1 from fractions import Fraction   #fraction:分数,即在此导入分数模块
  2 import random      #用于随机生成题目
  3
  4 #整数四则运算
  5 def newint():
  6     fh = [‘+‘, ‘-‘, ‘ב, ‘÷‘]
  7     k = random.randint(0, 3)  #随机生成0到3内的整数,用于fh的下标
  8     n1 = random.randint(0, 100)
  9     n2 = random.randint(0, 100)
 10     result = 0   #存运算结果
 11     if k == 0:
 12         result = n1 + n2
 13     elif k == 1:
 14         n1, n2 = max(n1, n2), min(n1, n2)
 15         result = n1 - n2
 16     elif k == 2:
 17         result = n1 * n2
 18     elif k == 3:
 19         while n2 == 0 or float(n1/n2)*1000%10!=0:  #分母不能为0,运算结果控制在2位小数内。
 20             n1 = random.randint(0, 100)
 21             n2 = random.randint(0, 100)
 22         result = float(n1 / n2)
 23     print(n1, fh[k], n2, ‘= ‘, end=‘‘)
 24     return result
 25
 26 #分数四则运算
 27 def newfra():
 28     fh = [‘+‘, ‘-‘, ‘ב, ‘÷‘]
 29     k = random.randint(0, 3)
 30     t1 = random.randint(1,20)
 31     t2 = random.randint(t1, 20)  #做分母,控制为真分数
 32     n1 = Fraction(t1, t2)   #即表示n1为分数
 33     t1 = random.randint(1, 20)
 34     t2 = random.randint(t1, 20)
 35     n2 = Fraction(t1, t2)
 36     result = 0
 37     if k == 0:
 38         result = n1 + n2
 39     elif k == 1:
 40         n1, n2 = max(n1, n2), min(n1, n2)
 41         result = n1 - n2
 42     elif k == 2:
 43         result = n1 * n2
 44     elif k == 3:
 45         result = n1 / n2
 46     print(n1, fh[k], n2, ‘= ‘, end=‘‘)
 47     return result
 48
 49 #newtest()函数是要求用户输入一个整数来输出算式的数量,采用while循环随机生成整数或者真分数运算,
 50 # 将答案保存在result列表的同时输出算式直到算式数量达到要求。最后输出result列表即输出答案。
 51 def newtest():
 52     fh = [‘+‘, ‘-‘, ‘ב, ‘÷‘]
 53     print(‘输入题库所需要的题目数量‘)
 54     n=int(input())
 55     result=[]
 56     m=0
 57     while m<=(n-1):
 58         k = random.randint(0, 4)
 59         if k==0:
 60             print(m+1,end=‘、‘)
 61             result.append(newfra())
 62             print(‘ ‘)
 63         else:
 64             print(m+1,end=‘、‘)
 65             result.append(newint())
 66             print(‘ ‘)
 67         m=m+1
 68     m=0
 69     print(‘答案:‘)
 70     while m<=(n-1):
 71         print(m+1,‘、‘,result[m])
 72         m=m+1
 73
 74 #下列为主函数,第一个模式负责调用上述newint()、new函数,
 75 # 并获得函数返回值即算式答案,与用户输入值进行比较。第二个模式则是生成算式题目。
 76 print(‘请选择需要进行的操作(输入数字代号)‘)
 77 print(‘1、四则运算‘)
 78 print(‘2、制作题库‘)
 79 n=int(input())
 80 if n==1:
 81     print(‘input "exit" to Quit‘)
 82     while True:
 83         k = random.randint(0, 1)  #0表示真分数的运算,1表示整数的运算
 84         if k == 0:
 85             result = newfra()
 86             jg = input()
 87             if jg == ‘exit‘:
 88                 break;
 89             sr = Fraction(jg)  #化为分数形式
 90             if sr == result: #检测输入(sr)的答案与正确答案是否一致
 91                 print(‘right‘)
 92             else:
 93                 print(‘error. the Tight answer is‘, result)
 94         else:
 95             result = newint()
 96             jg = input()
 97             if jg == ‘exit‘:
 98                 break;
 99             sr = float(jg)
100             if sr == result:
101                 print(‘right‘)
102             else:
103                 print(‘error. the Tight answer is‘, result)
104 if n==2:
105     newtest()

运行效果

1四则运算效果

   

(2)制作题库效果

 

 

效能分析:

 

 

PSP表格:


预计耗时(分钟)


是实际耗时(分钟)


Planning


计划


25


20


Estimate


估计这个任务需要多少时间


/


/


Development


开发


120


240


Analysis


需求分析


10


10


Design Spec


生成设计文档


/


/


Design Review


设计复审(和同事审核设计文档)


/


/


Coding Standerd


代码规范(为目前的开发制定合适的规范)


/


/


Design


具体设计


5


10


Coding


具体编码


70


90


Code Review


代码复审


5


10


Text


测试(自测,修改代码,提交修改)


20


30


Reporting


报告


10


20


Text Report


测试报告


10


20


Size Measurement


计算工作量


5


5


Postmortem & Process Improvement Plan


事后总结,并提出过程改进计划


10


5


Sum


合计


300


460

原文地址:https://www.cnblogs.com/rekosama/p/10571357.html

时间: 2024-10-14 04:40:19

小学四则运算题的相关文章

生成300道小学四则运算题

通过Java编写一个能够自动生成三百道小学四则运算的小demo 通过Ramdom获取随机数 algorithm的值确定运算法则 parameter值确定循环次数 package D; import java.text.DecimalFormat; import java.util.Random; public class Demo { public static void main(String[] args) { operation(); } public static void operat

第一周作业——小学四则运算题

作业要求: 写一个能自动生成小学四则运算题目的命令行 “软件”, 分别满足下面的各种需求,这些需求都可以用命令行参数的形式来指定: a) 支持整数.真分数的四则运算.例如:  1/6 + 1/8 = 7/24 b) 逐步扩展功能和可以支持的表达式类型,最后希望能支持下面类型的题目(最多 10 个运算符,括号的数量不限制) 25 - 3 * 4 - 2 / 2 + 89 = ?      1/2 + 1/3 - 1/4 = ?       ( 5 - 4 ) * ( 3 +28 ) =? 设计思路

软工第一个程序:像二柱子那样,花二十分钟写一个能自动生成小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算。

程序设计思想 本程序的设计主要基于对C/C++中产生随机数的应用,在产生算数符号部分主要采用了switch语句,通过随机产生0-3的数值来随机产生"+-*/"字符,并进行相应的处理:在处理整数操作部分时,使用try/throw语句,避免除法分母为0,语句采用一维数组,记录答案结果:在处理真分数部分,采用while语句产生合理的真分数,采用二维数组记录答案结果. 程序源代码 #include<iostream.h> #include<stdlib.h> #incl

生成小学四则运算题,包括真假分数

源代码: import java.util.Random; public class szys { public static void main(String args[]) { for(int i=0;i<30;i++){ int a1,a2,b1,b2,c,zf; a1=sjs(100); a2=sjs(100); b1=sjs(100); b2=sjs(100); c=sjs(4); zf=sjs(2); if(zf==0){ if(c==0) System.out.println(a1

像阿超那样,花20分钟写一个能自动生成小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算。

public class c30questions { public static void main(String[] args) { print30Questions(); } private static void print30Questions() { //说明:打印30道题函数,把接收到的题目字符串按照指定格式输出. for (int i = 0; i < 10; i++) { System.out.print( i+1 ); System.out.print("."

小学四则运算

- 题目: 请编写一个能自动生成小学四则运算题目的 “软件”. 让程序能接受用户输入答案,并判定对错. 最后给出总共 对/错 的数量. 一:基本要求 1:题型选择界面设计,选择加.减.乘.除运算. 2:系统随机产生十以内的两个数进行运算. 3:练习时,用户从键盘取结果,正确和错误均有提示,按2,显示错误数.正确数和总数. 二:需求分析 编写小学四则运算测试系统,要求完成两位数的加,减,乘,除四则运算.能根据用户的输入来选择运算种类,用户输入答案后可以判断正误,做完一次测试后,用户可以决定是否继续

小学二年级四则运算题

一.题目要求 产生300道小学二年级的四则运算的数学题,减法不能出现负数,除法要整除. 二.编写过程 编写产生30道小学二年级的四则运算的数学题,用rand()产生随机数,和随机的符号,在除法运算中在被除数不为零的情况下利用一组随机数来产生被除数和除数是被除数的整数倍,这样保证了除法的整除,减法要先判断两个随机数的大小,输出的结果为大数减去小数.然后利用for循环30次输出30道题目. 三.程序运行 四.程序代码 #include<stdio.h>#include<stdlib.h>

30道小学二年级四则运算题

思路与体会:用rand函数产生随机数32767/327约等于100.2.排除了除数是0的错误, 但是仍有缺陷:减法会出现不够减结果是负数的情况! 运行结果总出现闪退情况,查阅资料后加了system("pause") 运行环境:vs2013 源代码: #include<iostream> using namespace std; #include<stdio.h> #include<stdlib.h>int rak(){ return rand() /

小学计算题——四则运算

一.题目要求 我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求: (1)能够自动生成四则运算练习题 (2)可以定制题目数量 (3)用户可以选择运算符 (4)用户设置最大数(如十以内.百以内等) (5)用户选择是否有括号.是否有小数 (6)用户选择输出方式(如输出到文件.打印机等) (7)最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主) 二.角色分配 驾驶员--王越--博客地址 (1)能够完成全部代码工作,程序基本实现全部要求功能,并将代码上传至codi