用不同语言实现自动生成四则运算题目

Github项目地址:https://github.com/Aiyaxc/zuoye-

题目:用不同语言实现自动生成四则运算题目的命令行程序。

1)题目要求:

a.  能自动生成小学四则运算题目(注意是给小学生用的,要是结果出现负数的话他们会迷茫的!)

b. 除了整数外,还要支持真分数的四则运算

 2)思路:

a.四则运算加减乘除,采用两个随机数,由于不能出现负数,所以在对两个随机数进行减法运算的时候,需要进行比较大小,而除法在运算中,除数不能取0。

b.  进行真分数运算应注意假分数的影响

3)实现过程

    a.用python的实现过程:

定义函数:用def szys()实现随机生成四则运算,用def test()通过调用syzs()实现题库的制作.

所以代码分为三个部分,第一部分是生成随机四则运算,最后输出算式并返回正确答案;第二部是用户通过输入一个整数来输出所需要的算式,当输出的算式达到目标数量后,便一一输出答案;第三部分为主函数,需要用户自己选择模式,当输入是‘1’时,是为四则运算,通过调用syzs()函数得到算式和返回值,用户输入答案后,便与用户输入值进行比较。当输入是‘2’时,是生成题库,并在最后输出答案。

   b.用Java的实现过程:

     用选择语句实现四则运算功能,以switch()函数进行功能选择加减乘除运算的选择,然后随机生成运算式。

4)python源代码:

import random

#四则运算

def szys():
    sym = [‘+‘, ‘-‘, ‘ב, ‘÷‘]
    f= random.randint(0, 3)
    n1 = random.randint(1, 20)
    n2 = random.randint(1, 20)
    result = 0
    if f== 0:#加法
       result  = n1 + n2
    elif f == 1:#减法,要先比较大小,防止输出负数
        n1, n2 = max(n1, n2), min(n1, n2)
        result  = n1 - n2
    elif f== 2:#乘法
        result  = n1 * n2
    elif f == 3:#除法,要比较大小,并循环取整除
        n1, n2 = max(n1, n2), min(n1, n2)
        while n1 % n2 != 0:
            n1 = random.randint(1, 10)
            n2 = random.randint(1, 10)
            n1, n2 = max(n1, n2), min(n1, n2)
        result  = int(n1 / n2)
    print(n1, sym[f], n2, ‘= ‘, end=‘‘)
    return result

#制作题库
def test():
    sym = [‘+‘, ‘-‘, ‘ב, ‘÷‘]
    print(‘输入所需要的题目数量‘)
    n=int(input())
    result =[]
    m=0
    while m<=(n-1):
        print(m+1,end=‘、‘)
        result .append(szys())
        print(‘ ‘)
        m=m+1
    m=0
    print(‘对应的答案:‘)
    while m<=(n-1):
        print(m+1,‘、‘,result [m])
        m=m+1

print(‘选择想要的模式‘)
print(‘1、进行四则运算‘)
print(‘2、制作题库‘)
n=int(input())
#当输入1时,进行四则运算,调用函数syzs()
if n==1:
    while True:
        result  = szys()
        j= input()
        s= int(j)
        if s== result :
            print(‘right‘)
        else:
            print(‘error.,the answer is‘, result )
#当输入2时,进行制作题库

if n==2:
     test()

  Java源代码:

import java.util.Random;
import java.util.Scanner;

public class sizeyunsuan {
public static void res()
{
      System.out.println("1.显示结果\t2.开始下一题");
}

public static void main (String[] arge){
System.out.println("请选择想要的四则运算:");
System.out.println("1,加法\t2,减法\t3,乘法\t4,除法");
//输入四则运算相应的序号
Scanner xuhao=new Scanner(System.in);
int hao = xuhao.nextInt();
double result=0;
//随机生成两个数进行运算
Random r = new Random();
int a = r.nextInt(100);
int b =r.nextInt(100);
//生成相应的四则运算
switch(hao){
case 1:System.out.println("-----"+a+"+"+b+"=?-----");result =a+b;res();break;
case 2: System.out.println("-----"+a+"-"+b+"=?-----");
          if (a-b<0)
        {
			  System.out.println("运算范围超出,请重新选择");//小学生还未学到负数运算
          }
		  else result =a-b;res();
		  break;
case 3:System.out.println("-----"+a+"*"+b+"=?-----");result =a*b;res();break;
case 4:System.out.println("-----"+a+"/"+b+"=?-----");{float c=a;float d=b;result=c/d;}res();break;
default:System.out.println("输入有误,重新开始");main(null);break;
}
//选择输出结果或是进行下一题
Scanner select =new Scanner(System.in);
int s =select.nextInt();
switch (s){
case 1:System.out.println("本题的结果:"+result);main(null);break;
case 2:main(null);break;
default:System.out.println("输入有误,重新开始");main(null);
}
}
}

  

(5)测试运行:

       a.运行python源代码后的结果

  1. 先运行第一个模式----进行四则运算,结果:

2.运行第二个模式----制作题库,先生成15道题:

生成30道题:

   b.运行java源代码后的结果

(5)分析

       我通过用python和Java两种不同语言实现生成四则运算题目,体会到两种语言的不同,也巩固了我所学的知识,但虽然是两种语言,但在实现上,思路还是一样的,只是在语言规则上不同。

(6)PSP表格


预计耗时(分钟)


是实际耗时(分钟)


Planning


计划


20


15


Estimate


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


/


/


Development


开发


100


120


Analysis


需求分析


10


15


Design Spec


生成设计文档


/


/


Design Review


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


/


/


Coding Standerd


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


/


/


Design


具体设计


8


12


Coding


具体编码


30


40


Code Review


代码复审


10


20


Text


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


15


20


Reporting


报告


25


20


Text Report


测试报告


/


/


Size Measurement


计算工作量


6


5


Postmortem & Process Improvement Plan


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


5


5


Sum


合计


229


272

 

原文地址:https://www.cnblogs.com/zhouxiaochun/p/10594565.html

时间: 2024-10-29 00:40:09

用不同语言实现自动生成四则运算题目的相关文章

自动生成四则运算题目

主要功能:随机生成四则运算题目 设计思想:先通过一个简单的四则运算,再不断完善 源代码 #include"stdio.h" main(){ int a,b,c,d; printf("自动生成四则运算:\n"); printf("%d+%d= \n",a,b); printf("%d-%d= \n",a,b); printf("%d*%d= \n",a,b); printf("%d/%d= \n&q

个人项目:自动生成四则运算题目总结

题目:写一个能自动生成小学四则运算题目程序 要求: 除了整数以外,还要支持真分数的四则运算 让程序能接受用户输入答案,并判断对错 对于求解四则运算的算法,在数据结构课程上有过相同的题目,但是当时我们需要做的求一个给定的四则运算题目的结果.根据逆波兰表达式将中缀式转换成后缀表达式再利用栈结构求解.这次的任务难点确在于随机生成四则运算题目.刚开始的想法太low了,根据常规表达式的结构随机生成一个数,一个运算符,再一个数……但是往深了想,这种方法很难实现,因为一个表达式不仅仅有操作数和+ - * /

自动生成四则运算题目程序

这个代码由自己编写的,采用的是面向过程的思想,主要实现了一些简单的四则运算的自动生成,题目中的数字都限制在100以内,答案有可能超出100.如果题目中出现除法,则需要保留2位小数点,并且不能够四舍五入,否则会显示错误.答题时,答对一题的一分,答错一题不得分也不扣分.每答一题便会显示分数,在做完所有的题目时会计算出总分数和正确率.此程序所生成的四则运算不是很全面,且实现过程比较简单.查看源代码网址https://github.com/xiongxin1/add/blob/master/MSEwor

软件工程关于自动生成四则运算题目程序的见解

1.需求分析 一个程序员在编写程序前第一件事就是要知道我要编写的程序是要干什么的,它要那些功能. 题目中要求一个能自动生成小学四则运算题目的程序,分析起来很简单,做起来也很简单. 2.实施 由于是小学四则运算题目 我们设定数字的大小不超过100,运算符号为+ - * /,而这一切要随机生成,不难想到要用到随机函数.首先使用SRAND函数设定随机数种子srand((unsigned)time(NULL)) ,再使用RAND函数控制随机生成我们想要的0-100的数字,至于如何生成加减乘除符号,我们可

结对项目(自动生成四则运算题目程序)

一.Github项目地址:https://github.com/Vigor-creat/-.git 项目成员:胡兆禧 3118005092  余金龙 3118005116 二.PSP PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划     · Estimate · 估计这个任务需要多少时间 30 48 Development 开发     · Analysis · 需求分析 (包括学习新技术) 120 1

写一个能自动生成四则运算题目的软件,要求除了整数,还要支持正分数的四则运算。和同学们比较各自的程序功能、实现方法的异同。

package Rational; import java.util.Random; import java.util.Scanner; public class szys{             public static void res() {                                                   System.out.println("1.显示答案\t2.直接出下一题");                             

3月10号周二课堂练习:关于自动生成四则运算题目的程序的延伸

对题目要求进行初步的分析: 1.判断两次随机数是否相同    将产生的题目保存(循环)下来,然后将结果进行(循环)比较. 2.多加入一个变量Num,来控制题目数量 3.在每一个switch选择的语句,进行选择判断  3.1选择是否有乘除法,  3.2是否有括号 判断是否加减乘除是否都存在,加减在算式中的位置,然后进行选择是否添加括号 3.3数值范围 主要控制随机数产生器模余的大小(如a=rand()%n,n可以取任意值)    3.4加减有无负数 比较减数和被减数的大小  3.5除法有无余数 将

20194684 + 自动生成四则运算题第一版报告

前提需求 要求:使用C或Java语言完成一个自动生成四则运算试题的程序 软件基本功能如下. 自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内 剔除重复算式.2+3 和 2+3 是重复算式,2+3 和 3+2 不属于重复算式 题目数量可定制 相关参数可控制 是否包含乘法和除法 操作数数值范围可控 操作数是否含负数 生成的运算题存储到外部文件result.txt中 需求分析 某幼儿园,老师要每天出30道加减乘除法题目给孩子做.于是,想写一个脚本完成这件

20194696 自动生成四则运算题第一版报告

1.需求分析: 帮助学校自动生成四则运算. 2.功能设计: (1)自动生成10道100以内的2个操作数的四则运算算式(+ - *  /),要求运算结果也在100以内 ( 2)剔除重复算式.  2 + 3 =    和  2 + 3 =     是重复算式      2 + 3 =   和   3 + 2 =  不属于重复算式 (3)题目数量可定制 (4)相关参数可控制 是否包含乘法和除法 操作数数值范围可控(如操作数 在100以内   还是1000以内) 操作数是否含负数 3.设计实现: 用C语