如何让我的程序再次运行C ++

时间:2017-04-05 12:51:22

标签: c++

我提出了以下问题。

  

使用以下选项编写菜单驱动程序:

     
      
  1. 添加新值
  2.   
  3. 搜索值
  4.   
  5. 修改值
  6.   
  7. 打印值
  8.   
  9. 打印所有值的总和
  10.   
  11. 退出/终止
  12.         

    您必须创建5个选项作为五个功能。添加另一个功能以显示菜单选项。

这是我的代码:

#include<iostream>
using namespace std;
float f[100]={0};
    //1st option
void AddNewValue(){int input;
cout<<"Enter a value\n";
cin>>f[input];
}
//2nd option 
void SearchValue(){int i, search;
    cout<<"Enter a value to search\n";
    cin>>search;
    int match=0;
    for (int i=1;i<=100;i++)
    {if (f[i]==search)
    {match=1;
    break;}
    }
    if (match==1){cout<<"Matched value found\n";
    }
    else {cout<<"No match found\n";}        
}
//3rd option
void ModifyValue(){int input1;
    cout<<"Enter the position at which you want to modify value\n";
    cin>>input1;
    cout<<"Enter a value\n";
    cin>>f[input1-1];
}
//4th option
void PrintValue(){int i;
for (i=1;i<=100;i++)
    {cout<<f[i]<<' ';}
}
//5th option
void PrintSum(){int i,sum;
    for(i=1;i<=100;i++)
    {sum=f[i]+f[i+1];}
    cout<<"Sum is : "<<sum;
}
//starting Function
void menu(){int x;
    cout<<"Enter an option: \n";
    cout<<"1- Add new value\n2- Search Value\n3- Modify value\n4- Print Value\n5- Print sum of all values\n6- Quit/terminate\n";
    cin>>x;
    if(x==1){
        AddNewValue();
    }
    else if (x==2){
        SearchValue();
    }
    else if(x==3){
        ModifyValue();
    }
    else if(x==4){
        PrintValue();
    }
    else if(x==5){
        PrintSum();
    }
    else{
    }
}
int main(){

        menu();
}

我想让我的完整程序一次又一次地运行,直到用户输入错误的选项。

4 个答案:

答案 0 :(得分:1)

您可以选择创建一个封装menu()函数正文的while循环,并在用户输入6时使用break;

void menu(){
    int x = 0;
    while(1){
        cin >> x;
        //your code here
        if(x==6)
            break;
    }
}

此示例将使您的菜单重复,直到用户输入6。

break;的目的是从while循环“中断”。在这种情况下,中断将结束您的menu()并返回main()

此外,最好将return 0;添加到主要功能的末尾。

答案 1 :(得分:1)

您可以使用循环并使其运行,直到用户提供特定输入。在下面的代码中,一旦程序运行,然后它将要求用户输入5退出或任何其他键再次运行,如果用户给出5作为输入,那么它将停止或如果用户给出任何其他输入,则程序将运行试。

希望很清楚并帮助你。

#include<iostream>
using namespace std;
float f[100]={0};
    //1st option
void AddNewValue(){int input;
cout<<"Enter a value\n";
cin>>f[input];
}
//2nd option 
void SearchValue(){int i, search;
    cout<<"Enter a value to search\n";
    cin>>search;
    int match=0;
    for (int i=1;i<=100;i++)
    {if (f[i]==search)
    {match=1;
    break;}
    }
    if (match==1){cout<<"Matched value found\n";
    }
    else {cout<<"No match found\n";}        
}
//3rd option
void ModifyValue(){int input1;
    cout<<"Enter the position at which you want to modify value\n";
    cin>>input1;
    cout<<"Enter a value\n";
    cin>>f[input1-1];
}
//4th option
void PrintValue(){int i;
for (i=1;i<=100;i++)
    {cout<<f[i]<<' ';}
}
//5th option
void PrintSum(){int i,sum;
    for(i=1;i<=100;i++)
    {sum=f[i]+f[i+1];}
    cout<<"Sum is : "<<sum;
}
//starting Function
void menu(){int x;
    cout<<"Enter an option: \n";
    cout<<"1- Add new value\n2- Search Value\n3- Modify value\n4- Print Value\n5- Print sum of all values\n6- Quit/terminate\n";
    cin>>x;
    if(x==1){
        AddNewValue();
    }
    else if (x==2){
        SearchValue();
    }
    else if(x==3){
        ModifyValue();
    }
    else if(x==4){
        PrintValue();
    }
    else if(x==5){
        PrintSum();
    }
    else{
    }
}
int main(){

int repeater;
do{
        menu();
cout<<"Enter 5 to exit or any other key to run the program again :";
cin>>repeater;
}while(repeater != 5);
}

答案 2 :(得分:0)

如果用户选择了正确的选项,请再次调用菜单功能。否则,将控制权返回给main。我认为这可行。

 int menu(){int x;
    cout<<"Enter an option: \n";
    cout<<"1- Add new value\n2- Search Value\n3- Modify value\n4- Print Value\n5- Print sum of all values\n6- Quit/terminate\n";
    cin>>x;
    if(x!=1||x!=2||x!=3||x!=4||x!=5) return 0;
    if(x==1){
        AddNewValue();
    }
    else if (x==2){
        SearchValue();
    }
    else if(x==3){
        ModifyValue();
    }
    else if(x==4){
        PrintValue();
    }
    else if(x==5){
        PrintSum();
    }
    menu();
}

您也可以将代码包装在do-while循环中。

void menu(){
    do{
        int x;
        cout<<"Enter an option: \n";
        cout<<"1- Add new value\n2- Search Value\n3- Modify value\n4- Print Value\n5- Print sum of all values\n6- Quit/terminate\n";
        cin>>x;     
        if(x==1){
            AddNewValue();
        }
        else if (x==2){
            SearchValue();
        }
        else if(x==3){
            ModifyValue();
        }
        else if(x==4){
            PrintValue();
        }
        else if(x==5){
            PrintSum();
        }

    }while(x==1||x==2||x==3||x==4||x==5);
}

答案 3 :(得分:0)

保持简单。显示菜单的功能只应显示菜单并返回用户的选择。

im.set_clim(0,1)

这有助于enum choice { ADD_NEW_VALUE, SEARCH_VALUE, // ... QUIT }; choice menu() { choice result = QUIT; // display menu // input choice // (the more I think about it, the more I'd split it in two separate functions) return result; } int main() { while (true) { switch (menu()) { case ADD_NEW_VALUE: AddNewValue(); break; // ... case QUIT: return 0; } } } 进行测试,并可以更轻松地添加新选项和新功能。