zoukankan      html  css  js  c++  java
  • 201571030302 实验二 四则运算

    一  源代码Github地址:https://github.com/adu12345/Dem

    二   实验内容

       程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符在3个到5个之间。

       为了让小学生得到充分锻炼,每个练习题至少要包含2种运算符。同时,由于小学生没有分数与负数的概念,你所出的练习题在运算过程中不得出现负数与非整数,比如不能出 3/5+2=2.6,2-5+10=7等算式。

       练习题生成好后,将你的学号与生成的n道练习题及其对应的正确答案输出到文件“result.txt中,不要输出额外信息,文件目录与程序目录一致

       当程序接收的参数为4时,以下为输出文件示例。

    三    功能分析

    随机生成n个包含3个运算符0-100的加减乘除的等式。

    等式结果包括运算途中不能产生负数。

    结果不能为小数。

    将结果输出到文件内,标注学号。

     四    测试运行

    核心代码

    package main;
    import java.util.*;
    public class main {
    public static String yuefen(int a,int b){
    int y = 1;
    for(int i=a;i>=1;i--){
    if(a%i==0&&b%i==0){
    y = i;
    break;
    }
    }
    int z = a/y;
    int m = b/y;
    if(z==0) {
    return "0";
    }
    return ""+z+"/"+m;
    }
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println("201571030302");
    int x,y,i,a1;
    int d1=0;
    String d = null;
    System.out.println("1、整数计算式,2、真分数计算式");
    Scanner scan1=new Scanner(System.in);
    a1=scan1.nextInt();
    if(a1==1){
    System.out.println("请输入题目的数量");
    Scanner scan2=new Scanner(System.in);
    x=scan2.nextInt();
    int daan[]=new int [x];
    System.out.println("请输入数值的范围");
    y=scan2.nextInt();
    for(i=0;i<x;i++){
    int a=(int)(Math.random()*y);//随机生成一个1-10的整数
    int b=(int)(Math.random()*y);//随机生成一个1-10的整数
    int c=(int)(Math.random()*3);//随机生成一个1-4的整数,0表示加法,1表示减法,2表示乘法,3表示除法
    if(c==0)
    {
    d1=a+b;
    System.out.print(a+"+"+b+"= ");
    }
    if(c==1)
    {
    d1=a-b;
    System.out.print(a+"-"+b+"= ");
    }
    if(c==2)
    {
    d1=a*b;
    System.out.print(a+"*"+b+"= ");
    }
    if(c==3)
    {
    d1=a/b;
    System.out.print(a+"/"+b+"= ");
    }
    if((i+1)%3==0){
    System.out.println();
    }
    daan[i]=d1;
    }
    System.out.println("是否显示答案(显示请输入1)");
    if(scan2.nextInt()==1){
    for(i=0;i<x;i++){
    System.out.print(daan[i]+" ");
    }
    }
    }
    if(a1==2){
    int M,Z;
    System.out.println("请输入题目的数量");
    Scanner scan2=new Scanner(System.in);
    x=scan2.nextInt();
    String daan[]=new String [x];
    int x1,x2,B,m1,m2;
    System.out.println("请输入分母数值的范围");
    B=scan2.nextInt();
    for(i=0;i<x;i++){
    m1=1+(int)(Math.random()*B);//随机生成一个小于B的分母
    x1=1+(int)(Math.random()*m1);//生成一个比分母小的分子,实现真分数
    m2=1+(int)(Math.random()*B);//随机生成一个小于B的分母
    x2=1+(int)(Math.random()*m2);//生成一个比分母小的分子,实现真分数
    int c=(int)(Math.random()*3);//生成运算符
    if(c==0){
    Z=x1*m2+x2*m1;
    M=m1*m2;
    d=yuefen(Z,M);
    System.out.print(x1+"/"+m1+"+"+x2+"/"+m2+"= ");
    }
    if(c==1){
    Z=x1*m2-x2*m1;
    M=m1*m2;
    d=yuefen(Z,M);
    System.out.print(x1+"/"+m1+"-"+x2+"/"+m2+"= ");
    }
    if(c==2){
    Z=x1*x2;
    M=m1*m2;
    d=d=yuefen(Z,M);
    System.out.print(x1+"/"+m1+"*"+x2+"/"+m2+"= ");
    }
    if(c==3){
    Z=m1*x2;
    M=m2*x1;
    d=d=yuefen(Z,M);
    System.out.print(x1+"/"+m1+"/"+x2+"/"+m2+"= ");
    }
    if((i+1)%3==0){
    System.out.println();
    }
    daan[i]=d;

    }
    System.out.println("是否显示答案(显示请输入1)");
    if(scan2.nextInt()==1){
    for(i=0;i<x;i++){
    System.out.print(daan[i]+" ");
    }
    }

    }


    }
    }

    五    总结:由于我当时没有学好java导致这次实验做得很慢 最后在自己的努力和同学的帮助下完成了这次实验 通过这次实验我也意识到自己还有很多不足  以后我会好好学习代码。

    六   psp

    PSP2.1

    任务内容

    计划完成需要的时间(min)

    实际完成需要的时间(min)

    Planning

    计划

    20

    40

    ·       Estimate

    ·  估计这个任务需要多少时间,并规划大致工作步骤

    20

    60

    Development

    开发

    200

    200

    ··       Analysis

      需求分析 (包括学习新技术)

    10

    10

    ·       Design Spec

    ·  生成设计文档

    10

    10

    ·       Design Review

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

    10

    10

    ·       Coding Standard

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

    10

    10

    ·       Design

      具体设计

    10

    10

    ·       Coding

      具体编码

    40

    40

    ·       Code Review

    ·  代码复审

    10

    10

    ·       Test

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

    40

    40

    Reporting

    报告

    10

    10

    ··       Test Report

    ·  测试报告

    10

    10

    ·       Size Measurement

      计算工作量

    20

    20

    ·       Postmortem & Process Improvement Plan

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

    10

    10

  • 相关阅读:
    KnockoutJS 3.X API 第五章 高级应用(4) 自定义处理逻辑
    KnockoutJS 3.X API 第五章 高级应用(3) 虚拟元素绑定
    KnockoutJS 3.X API 第五章 高级应用(2) 控制后代绑定
    KnockoutJS 3.X API 第五章 高级应用(1) 创建自定义绑定
    KnockoutJS 3.X API 第四章(14) 绑定语法细节
    KnockoutJS 3.X API 第四章(13) template绑定
    KnockoutJS 3.X API 第四章 表单绑定(12) selectedOptions、uniqueName绑定
    KnockoutJS 3.X API 第四章 表单绑定(11) options绑定
    KnockoutJS 3.X API 第四章 表单绑定(10) textInput、hasFocus、checked绑定
    KnockoutJS 3.X API 第四章 表单绑定(9) value绑定
  • 原文地址:https://www.cnblogs.com/dyh666/p/8641574.html
Copyright © 2011-2022 走看看