首页 > 其他分享 >10.18

10.18

时间:2023-10-18 20:14:29浏览次数:30  
标签:return int 10.18 questions new public append

今日代码:200行
今日时间:4小时
学习内容:今天做了软件构造的作业

小学数学题的编程

MathPaper.java

package com.stdu.www;

 

import java.util.ArrayList;

import java.util.List;

 

public class MathPaper {

    private List<MathQuestion> questions;

 

    public MathPaper(int minValue, int maxValue, int totalQuestions) {

        questions = new ArrayList<>();

        for(int i = 0; i < totalQuestions; i++) {

            questions.add(new MathQuestion(minValue, maxValue));

        }

    }

 

    public String getQuestions() {

        StringBuilder sb = new StringBuilder();

        for(int i = 0; i < questions.size(); i++) {

            sb.append(i+1).append(". ").append(questions.get(i).getQuestion()).append("\n");

        }

        return sb.toString();

    }

 

    public String checkAnswers(int[] answers) {

        StringBuilder sb = new StringBuilder();

        int correctCount = 0;

        for(int i = 0; i < questions.size(); i++) {

            if(questions.get(i).checkAnswer(answers[i])) {

                sb.append(i+1).append(". 回答正确\n");

                correctCount++;

            } else {

                sb.append(i+1).append(". 回答错误,正确答案为:").append(questions.get(i).toString()).append("\n");

            }

        }

        sb.append("共").append(questions.size()).append("题,答对").append(correctCount).append("题,正确率为").append((double)correctCount/questions.size()*100).append("%\n");

        return sb.toString();

    }

}

 

MathQuestion.java

package com.stdu.www;

 

import java.util.Random;

 

public class MathQuestion {

    private int num1;

    private int num2;

    private char operator;

    private int answer;

 

    public MathQuestion(int minValue, int maxValue) {

        Random random = new Random();

        num1 = random.nextInt(maxValue - minValue + 1) + minValue;

        num2 = random.nextInt(maxValue - minValue + 1) + minValue;

        operator = generateOperator(random);

        answer = calculateAnswer();

    }

 

    private char generateOperator(Random random) {

        switch (random.nextInt(4)) {

            case 0:

                return '+';

            case 1:

                return '-';

            case 2:

                return '*';

            case 3:

                return '/';

            default:

                return '+';

        }

    }

    private int calculateAnswer() {

        switch (operator) {

            case '+':

                return num1 + num2;

            case '-':

                return num1 - num2;

            case '*':

                return num1 * num2;

            case '/':

                if(num2 == 0 || num1 % num2 != 0) {

                    throw new ArithmeticException("除数不能为0,或无法整除");

                } else {

                    return num1 / num2;

                }

            default:

                throw new IllegalArgumentException("不支持该运算符:" + operator);

        }

    }

 

    public String getQuestion() {

        return num1 + " " + operator + " " + num2 + " = ";

    }

 

    public boolean checkAnswer(int answer) {

        return this.answer == answer;

    }

 

    @Override

    public String toString() {

        return getQuestion() + answer;

    }

}

 

MathTest.java

package com.stdu.www;

 

import java.util.Scanner;

 

public class MathTest {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入最小值:");

        int minValue = scanner.nextInt();

        System.out.print("请输入最大值:");

        int maxValue = scanner.nextInt();

        System.out.print("请输入题目数量:");

        int totalQuestions = scanner.nextInt();

        MathPaper paper = new MathPaper(minValue, maxValue, totalQuestions);

        System.out.println(paper.getQuestions());

        int[] answers = new int[totalQuestions];

        for(int i = 0; i < totalQuestions; i++) {

            System.out.print("请输入第" + (i+1) + "题的答案:");

            answers[i] = scanner.nextInt();

        }

        System.out.println(paper.checkAnswers(answers));

    }

背四级单词,看了一些css知识

}

 

标签:return,int,10.18,questions,new,public,append
From: https://www.cnblogs.com/zhaoshengfu/p/17773212.html

相关文章

  • 10.18每日总结
    将数据库作业写完了,巩固了hive的相关知识;学习了软考的相关知识点;重新捋了捋自己的逻辑;学习了springboot的相关内容;背单词;明天预计将逻辑实现;将部门留下的一篇推文写了;背单词;学习软考;学习新的技术;规划一下;......
  • 10.18算法
    3的幂给定一个整数,写一个函数来判断它是否是3 的幂次方。如果是,返回true;否则,返回false。整数n是3的幂次方需满足:存在整数x使得n==3x 示例1:输入:n=27输出:true示例2:输入:n=0输出:false示例3:输入:n=9输出:true示例4:输入:n=45输出:false 提示:-231<=n......
  • 研究目标识别领域相关知识(10.11~10.18)
    这周任务(到下周三汇报):会发给我资料,需要整理下面内容:1、研究什么样的问题?目标检测/识别问题随着社会的发展,公共安全成为全社会的一个共同话题,与之相辅相成的视频监控系统也得到了大量的普及。视频监控系统可以直观的再现目标场景,可作为公安侦破案件的强力辅助。在执法......
  • Windows兼容模式怎么设置?140.210.18.x
    服务器兼容是什么意思?服务器兼容性怎么改?兼容性(compatibility)是指硬件之间、软件之间或是软硬件组合系统之间的相互协调工作的程度。兼容的概念比较广,相对于硬件来说,几种不同的电脑部件,如CPU、主板、显示卡等,如果在工作时能够相互配合、稳定地工作,就说它们之间的兼容性比较好,反之就......
  • 【坚持每日一题10.18】回文排列
    给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。回文串不一定是字典当中的单词。示例......
  • deepin 20.7 安装记录(2022.10.18)
    1.安装机器,DellPowerEdgeT130Server, 8GRAM,2T*2HD,[email protected], 2*1000MNIC, 2.安装Deepin20.7(2022.9.1发布的版本)优点:软件仓库中自带:wp......
  • 2022.10.18 - 前端Vue项目部署文件上线
    在terminal终端连接Linux服务器mac通过scp特定端口上传文件到linux服务器命令:scp-r-P10017/Users/yehudalee/Desktop/多测/portal-ui/dist/*[email protected].......
  • 2022.10.18-代码大全-10月读后感1
    近期,我阅读了这本书的什么是软件构造这一部分。我了解到了开发计算机软件已是一个复杂的过程。已经认识到在软件开发中的各种不同的活动:定义问题、需求分析、规划构建、软......
  • 10.18小测(流量人数统计)
    题目要求:给出result.txt文件,导入到mysql中,清洗日期格式,统计视频流量,可视化展示。需要数据分析的内容:(1)统计最受欢迎的视频/文章的Top10访问次数(video/article)(2)按照地市......
  • 10.18
    [COCI2021-2022#4]Autobus题目描述在一个国家里有\(n\)座城市。这些城市由\(m\)条公交线路连接,其中第\(i\)条线路从城市\(a_i\)出发,到\(b_i\)停止,路程中耗时......