四则运算升级2

import java.util.*;
public class First {
      public static void main (String[] agrs){
          double a,b,c,d;
          int count1=0,count2=0;
          int i;
          String[] s={"+","-","*","/"};
          Scanner sc=new Scanner(System.in);
              int op= 0;
              while(true){
               System.out.println("选择功能:\n0.退出1.简单的加减乘除运算 2.复合运算 3.含真分数运算");
               op= sc.nextInt();
               if (0 == op) {break;}
               if (1 == op) {
                   System.out.println("(5分/道)请输入题目数目:");
                   int n=sc.nextInt();
                   System.out.print("请输入算数的范围(由小到大):");
                   int min=sc.nextInt();
                   int max=sc.nextInt();
                   if(min>max){
                       System.out.print("输入出错");
                       break;
                   }
                   Random r= new Random();
                      for(i=0;i<n;i++){
                          a=r.nextInt(max)%(max-min+1) + min;
                          b=r.nextInt(max)%(max-min+1) + min;
                         int l= r.nextInt(s.length);//随机数,小于数组的长度数, 0~3
                         System.out.print(a+s[l]+b); //打印随机字符
                         System.out.print("=");
                            double A=sc.nextDouble();
                            if("+"==s[l]){
                                if(A==a+b){
                                    System.out.println("this is right!");
                                    count1++;
                                }
                                else {
                                   System.out.println("this is wroing!"+"正确答案是:"+(a+b));
                                   count2++;
                                   }
                         }
                         else if("-"==s[l]){
                             if((a-b)>-11){
                                    if(A==a-b){
                                        System.out.println("this is right!");
                                        count1++;
                                    }
                                    else {
                                       System.out.println("this is wroing!"+"正确答案是:"+(a-b));
                                       count2++;
                                       }
                             }
                             else{
                                 a=r.nextInt(max)%(max-min+1) + min;
                                 b=r.nextInt(max)%(max-min+1) + min;
                                 if(A==a-b){
                                     System.out.println("this is right!");
                                     count1++;
                                 }
                                 else {
                                 System.out.println("this is wroing!"+"正确答案是:"+(a-b));
                                 count2++;
                                 }
                             }
                            }
                         else if("*"==s[l]){
                             if(A==a*b){
                                    System.out.println("this is right!");
                                    count1++;
                                }
                             else {
                                    System.out.println("this is wroing!"+"正确答案是:"+(a*b));
                                    count2++;
                                }
                         }
                         else if("/"==s[l]){
                             if(A==a/b){
                                    System.out.println("this is right!");
                                    count1++;
                                }
                             else {
                                  System.out.println("this is wroing!"+"正确答案是:"+String.format("%.2f",a/b));
                                  count2++;
                                }
                         }
                      }
                      System.out.println("此题对了:"+count1+" "+"错了:"+count2+" "+"得分为:"+5*count1);
               }
               else if (2 == op) {}
               else if (3 == op) {
                   //分子
                   int q,p;
                   //分母
                   int y,w;
                   System.out.println("(5分/道)请输入题目数目:");
                   int n=sc.nextInt();
                   System.out.print("请输入算数的范围(由小到大):");
                   int min=sc.nextInt();
                   int max=sc.nextInt();
                   if(min>max){
                       System.out.print("输入出错");
                       break;
                   }
                   Random r= new Random();
                      for(i=0;i<n;i++){
                          q=r.nextInt(max)%(max-min+1) + min;
                          p=r.nextInt(max)%(max-min+1) + min;
                          y=r.nextInt(max)%(max-min+1) + min;
                          w=r.nextInt(max)%(max-min+1) + min;
                         int l= r.nextInt(s.length);//随机数,小于数组的长度数, 0~3
                         if((q<y && y!=0)||(p<w && w!=0)){
                             System.out.println(q+"/"+y+s[l]+p+"/"+w); //打印随机字符
                            System.out.print("=");
                                double A=sc.nextDouble();
                         }
                     }
               }
               else{
                   System.out.println("输入有误,请重新输入;");
               }
              }

      }
}

一开始,看到题目就开始做,没有详细的规划好,考虑自己的思路,想清楚需要定义几个类来实现功能,结果我所有的代码都在主函数里面了,导致我后来我越写越乱,错误百出,这样严重的养成了坏习惯。所以我决定还是放慢我的脚步,不在一味地追求能运行出结果就好了。我要学会如何运用类来编写我的程序,望老师指导,谢谢!

时间: 2024-12-12 13:01:55

四则运算升级2的相关文章

四则运算升级

源程序: #include <stdlib.h>#include<stdio.h>#include <iostream.h>#include <conio.h>#include <time.h>int main(){   int a = 0;  int b = 0;  int mode = 0;  int c=0;  int result = 0;  int score = 0;  int i = 0;  int n;  int x;  for(

30道四则运算题的第一次升级

/**作者:程鹏远题目:30道2年纪四则运算题目 要求:减法结果不为负数,除法能整除,除数不为0:*/ #include <iostream.h> #include <stdlib.h>int main(){ int a,b,c; for(int i=0;i<30;i++) { cout<<"第"<<i+1<<"题: "; a=rand()%100;//x+rand()%(y-x+1)随机生成[x,y

不太完美的四则运算

拖啊拖,终于记得把它上传了! 题目 写一个能自动生成小学四则运算题目的命令行"软件",分别满足下列各种需求.下面这些需求都可以用命令行参数的形式来指定: a.)除了整数以外,还支持真分数的运算.(例如1/6+1/8=7/24). b.)让程序能接受用户输入的答案,并判断对错.最后给出总对/错的数量. c.)逐步扩展功能和可以支持的表达式类型,最后希望能支持下面类型的题目(最多10个运算符,括号的数量不限制): 25-3*4-2/2+89=?          1/2+1/3-1/4=?

结队编程--基于GUI的四则运算

coding 地址 https://coding.net/u/Dialect/p/GUI-tszys/git/tree/master/ 李志强 201421123028 连永刚 201421123014 一.题目要求: 1.除了整数之外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24 2.运算符为 +, ?, ×, ÷ 3.并且要求能处理用户的输入,并判断错误,打分统计正确率 4.要求能处理用户输入的真分数,如 1/2, 5/12 等 5.程序基于GUI 界面 6

软件工程项目之二:结对编程——四则运算生成计算程序

0x01 :简介 本次的编程任务是完成一个具有UI界面的,具备四则运算生成.计算.判断对错功能的程序.本次程序使用C#语言编写,用时为2周. 0x02 :软件工程和PSP表格记录 PSP 2.1 Persinal Software Process Stages Time(Estimated) Time(Real) Planning 计划     Estimate 估计这个任务需要多少时间 24h 36h Development 开发     Analysis 需求分析(包括学习新技术) 8~10

结对作业-基于GUI的四则运算

一.需求分析 1.题目要求: 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web,手机上的),成为一个有基本功能.一定价值的程序.在下面的功能需求中实现两个: 记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算.有计时功能,能显示用户开始答题后的消耗时间.界面支持中文简体/中文繁体/英语,用户可以选择一种: 2.题目分析: (1)支持真分数和整

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

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

JavaScript四则运算精度丢失解决方案

转载于:http://jiangzhengjun.iteye.com/blog/458869 JavaScript小数在做四则运算时,精度会丢失,这会在项目中引起诸多不便,先请看下面脚本: <script type="text/javascript" language="javascript"> alert(1/3);//弹出: 0.3333333333333333 alert(0.09999999 + 0.00000001);//弹出: 0.09999

async语法升级踩坑小记

从今年过完年回来,三月份开始,就一直在做重构相关的事情. 就在今天刚刚上线了最新一次的重构代码,希望高峰期安好,接近半年的Node.js代码重构. 包含从callback+async.waterfall到generator+co,统统升级为了async,还顺带推动了TypeScript在我司的使用. 这些日子也踩了不少坑,也总结了一些小小的优化方案,进行精简后将一些比较关键的点,拿出来分享给大家,希望有同样在做重构的小伙伴们可以绕过这些. 为什么要升级 首先还是要谈谈改代码的理由,毕竟重构肯定是