菜单程序中的布尔函数

Boolean function in Menu Program

本文关键字:布尔 函数 程序 菜单      更新时间:2023-10-16

好的!这一切都有效。不过现在,我必须添加一个布尔函数来验证,而不是在我的用户中输入的成绩是有效的......我不知道该怎么做...叹息。我什至不知道从哪里开始,但我确实设置了一个原型并在底部启动了该功能......我必须将其包含在主要内容中吗?如果是,在哪里?

我的教授在春假期间严重地向我们扔了太多东西......无论如何,我必须创建一个布尔函数来检查用户输入的值范围从 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;
}