c++函数分配等级计算器
C++ Function Assignment grade calculator
我的编程讲师正在教我们如何编写函数,我得补充一句,我们要做一个计算学生成绩的程序。这是它的规格。
- 得分1加权0.3,
- 评分2加权0.5,
- 评分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中的所有比较。
- 将数组的地址分配给变量并删除
- vector.resize()中的分配错误
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- Win32编译器选项和内存分配
- 函数中堆分配的效果与缺少堆分配的情况
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 获取字符串的长度并将其分配给数组
- 将地址分配给本地指针后,公共对象的变量将消失
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 我在二维向量中是否正确分配了内存
- 正在尝试重载二进制搜索树分配运算符
- GlobalAlloc而不是其他分配方法
- 自定义先决条件对移动分配运算符有效吗
- 我可以重新分配/覆盖std::字符串吗
- 在c++中使用动态分配的问题
- 当一个新对象被分配到它的地址时,对象是否必须被销毁
- 表达式无法分配(无需使用 *或 /)的计算器
- c++函数分配等级计算器