代码之家  ›  专栏  ›  技术社区  ›  newbieHalp

我正在尝试创建一个将接受3个参数的类[已关闭]

  •  -2
  • newbieHalp  · 技术社区  · 7 年前

    我试图创建一个类,它将接受3个参数,应用权重,并计算总分。我上了一堂课和一个测试班。我不知道如何调用这个方法来计算最终的总数。请帮忙?

    此类编译良好,没有错误:

    public class Grade {
         private double quiz;
         private double assign;
         private double disc;
    
    public Grade(double pquiz, double passign, double pdisc){
        quiz = pquiz;
        assign = passign;
        disc = pdisc;
        }
    
        public void setQuiz(double pquiz){
            quiz = pquiz;
        }
        public void setAssign(double passign){
            assign = passign;
        }
        public void setDisc(double pdisc){
            disc = pdisc;
        }
        public double getQuiz(){
            return quiz;
        }
        public double getAssign(){
            return assign;
        }
        public double getDisc(){
            return disc;
        }
        public double calcQuiz(Grade quiz1){
            double wgtQuiz = quiz1.getQuiz() * .65;
            return wgtQuiz;
                }
        public double calcAssign(Grade assign1){
            double wgtAssign = assign1.getAssign() * .25;
            return wgtAssign;
                }
        public double calcDisc(Grade disc1){
            double wgtDisc = disc1.getDisc() * .10;
            return wgtDisc;
                }
        public double calcTotal(double wgtQuiz, double wgtAssign, double wgtDisc){
            double overall = wgtQuiz + wgtAssign + wgtDisc;
            return overall; 
            }
        }
    

    请原谅缩进。以下是目前为止的测试课程:

    public class TestGrade{
      public state void main (String [] args){
        Grade quiz1 = new Grade(.95);
        Grade assign1 = new Grade(.91);
        Grade disc1 = new Grade(.87);
    
        double pQuiz = quiz1.getQuiz();
        double pAssign = assign1.getAssign();
        double pdisc = disc1.getDisc();
    
        double wgtQuiz = quiz1.calcQuiz(quiz1);
        double wgtAssign = assign1.calcAssign(assign1);
        double wgtDisc = disc1.calcDisc(disc1);
    
        double overall = ?????
    

    请帮我完成这件事。

    2 回复  |  直到 7 年前
        1
  •  0
  •   marekmuratow    7 年前

    这个成绩只是一个双倍,所以你不需要一个新的班级,但如果你想你可以创建一个新的班级成绩与双倍领域…

    变化:

    public class CalculateGrade {
        private double quiz;
        private double assign;
        private double disc;
    
        public CalculateGrade(double pquiz, double passign, double pdisc) {
            quiz = pquiz;
            assign = passign;
            disc = pdisc;
        }
    
        public double calcQuiz() {
            return quiz * .65;
        }
    
        public double calcAssign() {
            return assign * .25;
        }
    
        public double calcDisc() {
            return disc * .10;
        }
    
        public double calcTotal() {
            return calcQuiz() + calcAssign() + calcDisc();
        }
    }
    
    
    public class TestGrade {
        public static void main(String[] args) {
            CalculateGrade calculator = new CalculateGrade(.95, .91, .87);
            System.out.println("total: " + calculator.calcTotal()); // total: 0.9319999999999999
        }
    }
    
        2
  •  0
  •   JineshEP    7 年前

    你们班有两次变动。

    添加默认构造函数。保持字段私有,添加getter和setter。

        public Grade(){
         }
    

    修改calctotal方法,不需要参数,使用字段应用日志计算总数。

        public double calcTotal(){
            double overall = wgtQuiz + wgtAssign + wgtDisc;
             return overall; 
         }
    

    创建grade对象。在测试调用setters、getter和calctotal方法中使用grade对象。

       Grade grade = new Grade();
       // call setters on grade.
       // call calcTotal method and assert the value.