菜单程序中的布尔函数
Boolean function in Menu Program
好的!这一切都有效。不过现在,我必须添加一个布尔函数来验证,而不是在我的用户中输入的成绩是有效的......我不知道该怎么做...叹息。我什至不知道从哪里开始,但我确实设置了一个原型并在底部启动了该功能......我必须将其包含在主要内容中吗?如果是,在哪里?
我的教授在春假期间严重地向我们扔了太多东西......无论如何,我必须创建一个布尔函数来检查用户输入的值范围从 0-100,但我根本不知道如何做到这一点,我的程序已经非常复杂了......无论如何,这是代码,布尔函数在底部,我只声明了原型,因为我不知道我的下一步是什么。任何帮助将不胜感激。
int menu();
void DisplayGrades (float, float, float, float, float, float); // In this function, it will display the grades the user enters. Used for choice 2.
float AssignmentGrade(float, float, float, float, float);
float LabTestGrade(float, float, float, float); // Prototypes to help me remember functions.
float LectureTestGrade(float, float, float, float, float);
float PostLabGrade(float, float, float, float, float, float, float, float, float, float);
float QuizGrade (float, float, float, float, float, float, float, float, float, float);
float ClickerGrade (float, float);
bool Gradeisvalid (float);
bool Choiceisvalid (int);
int main()
{
float asgnment = 0, asgnment1 = 0, asgnment2 = 0, asgnment3 = 0,
asgnment4 = 0, labtest = 0, labtest1 = 0, labtest2 = 0,
labtest3 = 0, lecturetest = 0, lecturetest1 = 0, lecturetest2 = 0, // Variables declared
lecturetest3 = 0, lecturetest4 = 0, postlab = 0, p1 = 0, p2 = 0, p3 = 0, p4 = 0,
p5 = 0, p6 = 0, p7 = 0, p8 = 0, p9 = 0, quiz = 0, quiz1 = 0, quiz2 = 0, quiz3 = 0, quiz4 = 0, quiz5 = 0,
quiz6 = 0, quiz7 = 0, quiz8 = 0, quiz9 = 0, clicker = 0, clickergrade = 0, grade = 0;
int choice;
while(1)
{
choice = menu();
if (choice ==4) break;
switch (choice)
{
case 1:
asgnment=AssignmentGrade(asgnment, asgnment1, asgnment2, asgnment3, asgnment4);
labtest = LabTestGrade(labtest, labtest1, labtest2, labtest3);
lecturetest = LectureTestGrade(lecturetest, lecturetest1, lecturetest2, lecturetest3, lecturetest4); // Typed this out to help remind of what I used
postlab = PostLabGrade(postlab, p1, p2, p3, p4, p5, p6, p7, p8, p9);
quiz = QuizGrade(quiz, quiz1, quiz2, quiz3, quiz4, quiz5, quiz6, quiz7, quiz8, quiz9);
clickergrade = ClickerGrade (clickergrade, clicker);
break;
case 2:
DisplayGrades (asgnment, labtest, lecturetest, postlab, quiz, clickergrade);
break;
case 3:
grade = asgnment + labtest + lecturetest + postlab + quiz + clickergrade;
cout << "Your total grade is " << grade << "%" << endl;
if (grade <= 100 && grade >=90)
cout << "Letter grade A" << endl << endl;
else if (grade <= 89 &&grade >= 80)
cout << "Letter grade B" << endl << endl;
else if (grade <= 79 && grade >=70)
cout << "Letter grade C" << endl << endl;
else if (grade <= 69 && grade >=60)
cout << "Letter grade D, a little more!" << endl << endl;
else if (grade <= 59 && grade >=1)
cout << "Grade of F, you can do better!" << endl << endl;
else if (grade ==0)
cout << "Don't press 3 first!" << endl << endl;
}
}
return 0;
}
//Menu Options
int menu()
{
int choice;
cout << "Please select an option below." << endl << endl;
cout << "1. Enter Grades" << endl;
cout << "2. Display Grades" << endl;
cout << "3. Show Overall Grade" << endl;
cout << "4. Exit the Program"<< endl;
cout << "Enter your choice... ";
cin >> choice;
return choice;
}
//AssignmentGrade Function
float AssignmentGrade(float asgnment, float asgnment1, float asgnment2, float asgnment3, float asgnment4)
{
cout << "Okay, lets get started!" << endl;
cout << "Please enter your first assignment grade " << endl;
cin >> asgnment1;
cout << endl << "Enter your second assignment grade " << endl;
cin >> asgnment2;
cout << endl << "Enter your final assignment grade " << endl;
cin >> asgnment3;
asgnment = asgnment1*0.05 + asgnment2*0.05 + asgnment3 *0.05;
return asgnment;
}
// LabTestGrade Function
float LabTestGrade(float labtest, float labtest1, float labtest2, float labtest3)
{
cout << "Now you are going to enter your 3 lab test grades. " <<endl;
cout << "Please enter your first lab test score" <<endl;
cin >> labtest1;
cout << endl << "Now enter your second score" <<endl;
cin >> labtest2;
cout << endl << "Lastly, your final score" <<endl;
cin >> labtest3;
labtest = labtest1*0.10 + labtest2*0.10 + labtest3*0.10;
return labtest;
}
// LectureTestGrade Function
float LectureTestGrade (float lecturetest, float lecturetest1, float lecturetest2, float lecturetest3, float lecturetest4)
{
cout << "Next, you're going to enter your 4 Lecture Test grades." << endl;
cout << "Please enter your first lecture test grade" << endl;
cin >> lecturetest1;
cout << endl << "Now enter your second grade" << endl;
cin >> lecturetest2;
cout << endl << "Next, your third score" << endl;
cin >> lecturetest3;
cout << endl << "Finally, your fourth score" << endl;
cin >> lecturetest4;
lecturetest = lecturetest1*0.10 + lecturetest2*0.10 + lecturetest3*0.10 + lecturetest4*0.10;
return lecturetest;
}
// PostLabGrade Function
float PostLabGrade(float postlab, float p1, float p2, float p3, float p4, float p5, float p6, float p7, float p8, float p9)
{
cout << "Now, enter your 9 Post Lab grades" << endl;
cin >> p1 >> p2 >> p3 >> p4 >> p5 >> p6 >> p7 >> p8 >> p9;
postlab = p1*0.003 + p2*0.003 + p3*0.003 + p4*0.003 + p5*0.003 + p6*0.003 + p7*0.003 + p8*0.003 + p9*0.003;
return postlab;
}
// QuizGrade Function
float QuizGrade (float quiz, float quiz1, float quiz2, float quiz3, float quiz4, float quiz5, float quiz6, float quiz7, float quiz8, float quiz9)
{
cout << "9 more grades to enter, this time, please enter your quiz grades" << endl;
cin >> quiz1 >> quiz2 >> quiz3 >> quiz4 >> quiz5 >> quiz6 >> quiz7 >> quiz8 >> quiz9;
quiz = quiz1*0.004 + quiz2*0.004 + quiz3*0.004 + quiz4*0.004 + quiz5*0.004 + quiz6*0.004 + quiz7*0.004 + quiz8*0.004 + quiz9*0.004;
return quiz;
}
// ClickerGrade Function
float ClickerGrade (float clickergrade, float clicker)
{
cout << "Almost done! Now, enter your total clicker grade." << endl;
cin >> clicker;
cout << "Finished! Next..." << endl;
clickergrade = clicker*0.037;
return clickergrade;
}
// DisplayGrade Function
void DisplayGrades (float asgnment, float labtest, float lecturetest, float postlab, float quiz, float clickergrade)
{
cout << "Grades" << endl << endl;
cout << "Assignment";
cout << std::right << std::setw(7)<< asgnment << "%" << endl;
cout << "Lab Test";
cout << std::right << std::setw(9)<< labtest << "%" << endl;
cout << "Lecture";
cout << std::right << std::setw(10)<< lecturetest << "%" << endl;
cout << "Post Lab";
cout << std::right << std::setw(9)<< postlab << "%" << endl;
cout << "Quiz";
cout << std::right << std::setw(13)<< quiz << "%" << endl;
cout <<"Clicker";
cout << std::right << std::setw(10)<< clickergrade << "%" << endl;
}
// Valid grade function
bool Gradeisvalid (float score)
{
}
我没有
编译,但这很关键:
- 在将变量发送到函数之前,您没有初始化变量
- 您需要使用
if (choice == 4)
而不是while()
-
int menu()
需要return
一些事情
这是您作为第一步main()
;) case 2
只会显示初始值,零。并检查我以前的整个编译笔记,然后它就可以工作了。
int main()
{
float asgnment = 0, asgnment1 = 0, asgnment2 = 0, asgnment3 = 0,
asgnment4 = 0, labtest = 0, labtest1 = 0, labtest2 = 0,
labtest3 = 0, lecturetest = 0, lecturetest1 = 0, lecturetest2 = 0,
lecturetest3 = 0, lecturetest4 = 0, postlab = 0, p1 = 0, p2 = 0, p3 = 0, p4 = 0,
p5 = 0, p6 = 0, p7 = 0, p8 = 0, p9 = 0, quiz = 0, quiz1 = 0, quiz2 = 0, quiz3 = 0, quiz4 = 0, quiz5 = 0,
quiz6 = 0, quiz7 = 0, quiz8 = 0, quiz9 = 0, clicker = 0, clickergrade = 0;
int choice;
choice = menu(); // let menu() return the entered int
switch(choice)
{
case 1:
AssignmentGrade(asgnment, asgnment1, asgnment2, asgnment3, asgnment4);
LabTestGrade(labtest, labtest1, labtest2, labtest3);
LectureTestGrade(lecturetest, lecturetest1, lecturetest2, lecturetest3, lecturetest4);
PostLabGrade(postlab, p1, p2, p3, p4, p5, p6, p7, p8, p9);
QuizGrade(quiz, quiz1, quiz2, quiz3, quiz4, quiz5, quiz6, quiz7, quiz8, quiz9);
ClickerGrade(clickergrade, clicker); break;
case 2:
DisplayGrades(asgnment, labtest, lecturetest, postlab, quiz, clickergrade);
}
return 0;
}
你需要在循环中执行它,如下所示:
int main()
{
int choice;
while(1)
{
choice = menu();
if (choice == 4) break;
your_code_with_switch_here;
}
return 0;
}
查看当用户输入 4 时,循环停止if (choice == 4) break;
。否则,循环将继续。
多亏了@FirstStep您的菜单程序效果不佳。它必须像这样重写(返回值):
int menu()
{
int choice;
cout << "Please select an option below." << endl << endl;
cout << "1. Enter Grades" << endl;
cout << "2. Display Grades" << endl;
cout << "3. Show Overall Grade" << endl;
cout << "4. Exit the Program"<< endl; // Will quit the program by using a while statement
cout << "Enter your choice... ";
cin >> choice;
return choice;
}
相关文章:
- 如何编写一个使用n倍三元条件语句的C++布尔函数
- 为什么我不能在返回 const 的布尔函数中为类成员变量赋值?C++
- 程序中的布尔函数返回输入的范围无论如何都是无效的
- 类中的虚拟布尔函数参数不起作用
- 我无法在 c++ 中调用布尔函数(已关闭)
- 如何使用布尔函数按降序对数组进行排序?
- 在布尔函数 c++ 中使用 elses
- 布尔函数在一段时间内不起作用
- 我正在尝试创建一个布尔函数,该函数计算字符并在字符为"()*-+"时返回 true
- 如何编写正确的"布尔"函数?
- 无法在 c++ 中" xor() "命名布尔函数
- 递归布尔函数的问题
- 布尔函数始终返回真正的 C++
- 具有单个参数的布尔函数映射
- 返回类型布尔函数中的声明语法错误
- 为什么我的布尔函数返回 true 会导致读取访问冲突?
- 单调布尔函数
- 布尔函数无法返回真或假
- 在C 中调用布尔函数
- 模板布尔函数没有<>,这是什么意思?