c++函数分配等级计算器

C++ Function Assignment grade calculator

本文关键字:计算器 分配 函数 c++      更新时间:2023-10-16

我的编程讲师正在教我们如何编写函数,我得补充一句,我们要做一个计算学生成绩的程序。这是它的规格。

  1. 得分1加权0.3,
  2. 评分2加权0.5,
  3. 评分3加权0.2。如果总分大于等于85分,则成绩为"A"。如果总分大于或等于75分,则成绩为"B"。如果总分大于或等于65分,则成绩为"C"。如果总分大于或等于50分,则成绩为"P"。否则评分为"F"。

所以我写的代码如下:

#include <iostream>
using namespace std;
void calculateGrade() {

int score1, score2, score3;
int percentDec;
    cin >>score1>>score2>>score3;
    percentDec = (score1+score2+score3);
    if (percentDec >= 85) {
        cout << "The Course grade is: A";
    }
    else if (percentDec >= 75) {
        cout << "The Course grade is: B";
    }
    else if (percentDec >= 65) {
        cout <<"The Course grade is: C";
    }
    else if (percentDec >= 50) {
        cout <<"The Course grade is: P";
    }
    else {
        cout <<"The Course grade is: F";
    }  
} //end of calculateGrade()
int main() {
    calculateGrade();
    return 0;
}

在我的IDE上工作得很好,但是当我把它放入程序中确定我们的答案是否正确时,它不起作用,这是因为通常我们只被要求把东西放在main()中,但因为它是一个函数,它不在main()中,它不像那样工作。这是一个例子,我要抛出一些有多愚蠢的东西。我不知道如何编程使它按他们想要的方式工作。

cout << "The Course grade is: " << calculateGrade(90, 50, 99) << endl;

谢谢你的帮助。

这不是一个为你的家庭作业问题提供答案的论坛,尽管在展示你所做的努力方面做得很好。以下是值得关注的地方:

1)讲师正在向您展示您可以将代码分解为函数。他/她希望你写一个函数calculateGrade,将像这样工作cout << "The Course grade is: " << calculateGrade(90, 50, 99) << endl;。现在c++中的每个函数声明都有三个部分:

return_type functionName(param1_type param1, param2_type param2,...) {
    // implementation
}

functionName是函数引用的对象(在本例中是calculateGrade),参数是你需要传递给函数的信息,以便它完成它的工作,返回类型是函数将返回的类型。在本例中,老师说calculateGrade将接受三个整数作为参数,并且必须返回一个表示学生成绩等级的字符串。因此,您的函数应该看起来像:

string calculateGrade(int score1, int score2, int score3) {
    // ...
}

2)正如评论正确指出的那样,您没有在calculateGrade()方法中将score1、score2和score3乘以它们各自的权重。

从你的问题和评论中,我感觉你对函数的掌握不是很扎实。与其抱怨你的老师(不管是不是他/她的错),我建议你在这里读一下。有大量的在线资源可以帮助你学习c++编程的基础知识。

你的导师要求你写一个接受3个参数并返回分数的函数

char calculateGrade(int score1, int score2, int score3) {
    char grade = 'F';
    double percent = (0.3*score1 + 0.5*score2 + 0.2*score3);
    if(...) {
        grade = 'A/B/C/P'; // Depending upon condition, assign only value
    }
    else if(...) {
         grade = 'A/B/C/P'; //Depending upon condition, assign only one value
    }
    // Add the condition in if else statements to get the actual grade. 
    return grade;
}

注意percent的类型是double。你需要在双重基础上做if else中的所有比较。