• 【软件工程】psp四则运算


    基本功能:
    自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内

    剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式-

    题目数量可定制

    相关参数可控

    是否包含乘法和除法
    操作数数值范围可控(如操作数 在100以内 还是1000以内)
    操作数是否含负数
    生成的运算题存储到外部文件result.txt中

    各阶段分析:

     代码如下:

    package 四则运算;
    import java.io.FileNotFoundException;
    import java.io.InputStream;
    import java.io.PrintStream;
    import java.util.Scanner;
    public class SiZeYunSuan {
        public static void main(String[] args) throws FileNotFoundException {
            PrintStream ps = new PrintStream("C:/Users/litchi/Desktop/result.txt");
            int c;
            Scanner t=new Scanner(System.in);
            
            
            System.out.print("请输入题目个数:");
            int tg=t.nextInt();
            //控制题目个数
            
            System.out.print("请输入操作数的范围(如 100,1000等):");
            int tf=t.nextInt();
            //控制题目范围
            
            
            System.out.println("请选择是否有负数:1:有  0:没有");
            int zf=t.nextInt();
            //控制正负数
            
            
            System.out.println("请选择是否包含*或者/:2:否 4:是 ");
            int fu=t.nextInt();
            //控制符号
            
            System.setOut(ps);
             
            //添加打印学号
            //for(int j=0;j<2;j++) {
                //System.out.println(2019000+j);
    
            
            for(int i=0;i<tg;i++) {//循环控制题目个数
                
                //第一个操作数的选择
                int a=(int)(Math.random()*tf+1);
                
                if(zf==1) {//有负数
                int p=(int) (Math.random()*2);
                    switch(p) {
                    case 0:a=a*(-1);//取负数
                           System.out.print(a);break;
                    case 1:
                              System.out.print(a);break;
                    }
                }
                if(zf==0) {//没有负数
                        System.out.print(a);
                        }
                
                if(fu==2) {//选择两个字符‘+’‘-’
                    int k=(int)(Math.random()*2);
                    switch(k) {//随机选择运算符
                    case 0:System.out.print("+");
                           break;
                    case 1:System.out.print("-");
                           break; 
                                                   }
                    
                    int b=(int)(Math.random()*tf+1);
                    if(zf==1) {//有负数
                        int p=(int) (Math.random()*2);
                            switch(p) {
                            case 0:b=b*(-1);//取负数
                                   System.out.print(b);break;
                            case 1:
                                      System.out.print(b);break;
                            }
                        }
                        if(zf==0) {//没有负数
                                System.out.print(b);
                                }
                    System.out.println("=");
                    
                    /*
                    //运算结果
                    if(k==0) {c=a+b;System.out.println(c);}
                    if(k==1){c=a-b;    System.out.println(c);}
                    */
                    
                }
                if(fu==4) {//四个字符的‘+’‘-’‘*’‘/’
                int k=(int)(Math.random()*4+1);
                switch(k) {//随机选择运算符
                case 1:System.out.print("+");break;
                case 2:System.out.print("-");break;
                case 3:System.out.print("*");break;
                case 4:System.out.print("/");break;
                }
                
                //第二个操作数的选择
                int b=(int) (Math.random()*tf+1);
                
                if(zf==1) {//有负数
                    int p=(int) (Math.random()*2);
                        switch(p) {
                        case 0:b=b*(-1);//取负数
                               
                               System.out.print(b);break;
                        case 1:
                                  System.out.print(b);break;
                        }
                    }
                    if(zf==0) {//没有负数
                            
                            System.out.print(b);
                            }
                //等号
                
                System.out.println("=");
                
                /*
                //运算结果
                if(k==1) {
                    c=a+b;System.out.println(c);
                }
                if(k==2) {
                    c=a-b;System.out.println(c);
                }
                if(k==3) {
                    c=a*b;System.out.println(c);
                }
                if(k==4) {
                    c=a/b;System.out.println(c);
                }*/
                
            }    
            }
        //学号那个循环的截止}
    }
    }
    
    
    
    
        

    运行结果:

    生成的题目自动存储在txt文件中:

  • 相关阅读:
    [Writeup]奇怪的单点音
    [Writeup]百度一下,你就知道
    C语言学习一个月后感想
    小黄衫获得感想及经验总结
    Ubuntu初始化配置
    在Ubuntu 18.04中安装 docker compose
    Docker安装 配置
    Laravel Heroku评价
    Laravel Deploy to Heroku
    Laravel Nuxt auth refresh
  • 原文地址:https://www.cnblogs.com/litchi666/p/15345116.html
Copyright © 2020-2023  润新知