我们有以下考试成绩: 完成本课程的学生中有75人参加了考试。我们想知道学生在考试中的表现如何,并且得分为75名学生。我们想要编写一个程序,通过以下方式总结和分析结果: 1.使用随机数生成器使用5(Matric /标识号仅为五位数)。 2.输入每个测试结果(即原始标记)。每次程序请求另一个测试结果时,显示提示消息“输入结果”。 a)您要输入原始分数并按如下方式对其进行分类: 一世。 90以上是A. II。 89-80是B. III。 79-70是C. IV。 69-60是D. v.59及以下是E. 3.计算每种类型的测试结果数。 4.进一步将结果分类为通过或失败(P或F) 一世。所有As,Bs,Cs和Ds属于P类,而E属于F类。 II。如果学生通过考试,则在每个基础/识别号码旁边写入P,如果学生失败,则写入F. 5.显示测试结果摘要,显示通过的学生人数和失败人数。 6.程序应限制用户输入无效标记(字符,负数,100以上等)
这是我的一致意见。我已经完成了代码部分,但我想在单个程序中添加这两个代码。但无法弄清楚如何知道 这是第一个代码 #include <iostream>
using namespace std;
int main()
{
int marks;
int matric;
cout <<"Matric/Identification number of only five digits \n";
cin >> matric;
cout <<"Enter marks \n";
cin >> marks;
if (marks <=50)
{
cout << " Your grade is F \n";
cout << " You fail in the exam";
}
else if (marks >=50 && marks <=59)
{
cout << " Your grade is E" <<endl;
cout << " You pass in the exam" <<endl;
}
else if (marks >=60 && marks <=69)
{
cout << " Your grade is D" <<endl;
cout << " You pass in the exam" <<endl;
}
else if (marks >=70 && marks <=79)
{
cout << " Your grade is C" <<endl;
cout << " You pass in the exam" <<endl;
}
else if (marks >=80 && marks <=89)
{
cout << " Your grade is B" <<endl;
cout << " You pass in the exam" <<endl;
}
else if (marks >=90 && marks <=100)
{
cout << " Your grade is A" <<endl;
cout << " You pass in the exam" <<endl;
}
else if (marks <=-1 && marks >=101)
cout << " Mark doesn't exsit" <<endl;
}
这是另一个代码
#include <iostream>
using namespace std;
int main()
{
int passes = 0;
int failures = 0;
int studentCounter = 1;
int result;
while (studentCounter <=10)
{
cout << "Enter Result";
cin >> result;
if (result >=50)
passes = passes+1;
else
failures = failures+1;
studentCounter = studentCounter + 1;
}
cout << "passed" << passes <<"\nFailed" << failures << endl;
if( failures > 3)
cout <<"Failures not eligible for Engineering " <<endl;
}
样品
Matric /标识号只有五位数: 89798
输入结果: 90
答案 0 :(得分:1)
你知道什么方法吗?我不知道你的编程水平如何,所以我会尝试解释一切。
嗯,首先,你可以看到,一切都在一个文件中。您的第一个文件不是bool result()
方法,这意味着它将返回true
(如果通过测试)和false
(如果失败)。我添加while(true)在该部分,以防用户输入无效标记,他将被要求再次执行此操作。在所有其他情况下,方法将返回值。
现在在main方法中(你知道main方法是每个代码的入口点吗?这意味着程序将在main方法上启动)我删除了需要输入结果的行。相反,我调用方法result()
,它要求输入标记,如果通过测试则返回1(true
),如果测试失败则返回0(false
)。您还可以看到我将passes = passes + 1;
更改为passes += 1;
。逻辑上没有区别,只是看起来更好,更短。
#include <iostream>
using namespace std;
bool result1()
{
int marks;
int matric;
cout <<"Matric/Identification number of only five digits \n";
cin >> matric;
cout <<"Enter marks \n";
cin >> marks;
while(true){
if (marks <=50)
{
cout << " Your grade is F \n";
return 0;
}
else if (marks >=50 && marks <=59)
{
cout << " Your grade is E" <<endl;
return 1;
}
else if (marks >=60 && marks <=69)
{
cout << " Your grade is D" <<endl;
return 1;
}
else if (marks >=70 && marks <=79)
{
cout << " Your grade is C" <<endl;
return 1;
}
else if (marks >=80 && marks <=89)
{
cout << " Your grade is B" <<endl;
return 1;
}
else if (marks >=90 && marks <=100){
cout << " Your grade is A" <<endl;
return 1;
}
else if(marks < 0 || marks >100)
cout << "Invalid marks" << endl << "Enter marks again!";
}
}
int main()
{
int passes = 0;
int failures = 0;
int studentCounter = 1;
int result;
while (studentCounter <=10)
{
if (result1())
passes += 1;
else
failures += 1;
studentCounter += 1;
}
cout << "passed" << passes <<"\nFailed" << failures << endl;
if( failures > 3)
cout <<"Failures not eligible for Engineering " <<endl;
}
如您所见,我在result()
声明中致电if
。那是正确的方法。你可以写:
bool res = result();
if(res){
}
else{
}
但那也是一样的。您可以在if
语句中放置任何内容,只要它返回,或者可以解释为boolean
值。
同样对于理论:我称bool result()
为方法,但这是错误的。 bool result()
是一个函数,因为它返回一个值(与数学函数f(x)相同,值总是为y)。现在void result()
是一种方法,因为它不会返回任何值。
哦,顺便说一句,你在代码中编写的每个方法或函数都应该在之后编写。这就是为什么在bool result()
之前编写int main()
的原因,认为将入口点放在最顶端会更好,对吗?
我希望这就是你所需要的。祝你好运