C++ 菜单驱动输入Do循环

C++ 菜单驱动输入Do循环,c++,C++,我需要为我的编程类创建一个菜单驱动的输入[Case/Switch Statement]。我的教授还没有教我们如何创建菜单,我很难理解我的课本。我需要菜单循环,直到用户选择退出终止程序。我还需要在Case/Switch中使用默认值的错误消息,错误消息必须描述错误 由用户引起的 有人能指导我做什么吗?我只需要开始,其余的事情通常都会自然而然地发生 #include<iostream> #include<fstream> #include<string> using

我需要为我的编程类创建一个菜单驱动的输入[Case/Switch Statement]。我的教授还没有教我们如何创建菜单,我很难理解我的课本。我需要菜单循环,直到用户选择退出终止程序。我还需要在Case/Switch中使用默认值的错误消息,错误消息必须描述错误 由用户引起的

有人能指导我做什么吗?我只需要开始,其余的事情通常都会自然而然地发生

#include<iostream>
#include<fstream>
#include<string>
using namespace std;

ofstream ofs("bafia_lab5.txt");

string msg = "eofmessage ";
string cno = "blank ";
string name = "blank ";
string dat = "2/16/17 ";
string lab = "blank ";
string phn = "blank ";
string sum = "Create  menu that allows users to choose between While Loop, Do Loop, For Loop and quit. ";
string whlo = "While Loop:";
string dooo = "Do While Loop:";
string forro = "For While Loop";
int counter;
int option;

//Header for lab with name, class#, due date, and lab number
void hdr()
{
    ofs << name << cno << dat << lab << endl;
    ofs << endl;
}

void menu()
{
    do 
    {
        ofs << "1. Do Loop " << dooo << endl;
        ofs << "2. While Loop " << whlo << endl;
        ofs << "3. For Loop" << forro << endl;
        ofs << "4. Quit " << endl;
        ofs << endl;
    } while (option <= 4)
}


//Function for "while loop"
void whl()
{
    ofs << whlo << endl;
    counter = 1;

    while (counter <= 10)
    {
        ofs << counter << endl;
        counter++;
    }
    ofs << endl;
}

//Function for "do while loop"
void doo()
{
    ofs << dooo << endl;
    counter = 1;

    do
    {
        ofs << counter << endl;
        counter++;
    } while (counter <= 10);
    ofs << endl;
}

//Function for "for loop"
void forr()
{
    ofs << forro << endl;
    for (counter = 1; counter <= 10; counter++)
    {
        ofs << counter << endl;
    }
    ofs << endl;
}

//Function for description of lab
void ftr()
{
    ofs << sum << endl;
    ofs << endl;
}

//End of file function with name, class#, due date, and lab number
void eof()
{
    ofs << msg << name << cno << dat << lab << endl;
}

//Call all functions
int main()
{
    hdr();
    menu();
    whl();
    doo();
    forr();
    ftr();
    eof();
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
ofs流(“bafia_lab5.txt”);
字符串msg=“eofmessage”;
字符串cno=“空白”;
string name=“blank”;
字符串dat=“2/16/17”;
string lab=“blank”;
字符串phn=“空白”;
string sum=“创建菜单,允许用户在While循环、Do循环、For循环和quit之间进行选择。”;
字符串whlo=“While循环:”;
string dooo=“执行While循环:”;
字符串forro=“For While循环”;
整数计数器;
int选项;
//包含名称、类别、截止日期和实验室编号的实验室标题
void hdr()
{

ofs您可以这样做:

char choice = 'y';
while(choice == 'y' || choice == 'Y'){
    cout << "Enter choice : ";
    cin >> choice;
    switch(choice) {
         case 'a' : cout << "This is case-a\n";
                    //do something
                    break;
         ...
         default : //invalid choice alert
                    break;
    }
    cout << "Enter y/Y to continue else anything else to exit : ";
    cin >> choice;
}
charchoice='y';
while(choice='y'| choice='y'){
选择;
开关(选择){
案例“a”:无法选择;
}

您可以执行以下操作:

char choice = 'y';
while(choice == 'y' || choice == 'Y'){
    cout << "Enter choice : ";
    cin >> choice;
    switch(choice) {
         case 'a' : cout << "This is case-a\n";
                    //do something
                    break;
         ...
         default : //invalid choice alert
                    break;
    }
    cout << "Enter y/Y to continue else anything else to exit : ";
    cin >> choice;
}
charchoice='y';
while(choice='y'| choice='y'){
选择;
开关(选择){
案例“a”:无法选择;
}

这个问题中有很多与手头任务无关的垃圾。这些字符串是用来干什么的?除非你要本地化,否则最好让它们尽可能靠近使用它们的地方。此外,编程中最重要的事情之一就是命名东西,请选择描述性的名称。
dooo
不是。@tadman我的教授经常用这样的字符串把所有的东西都放进去。对不起,我没有想到他用的名字。whlo代表while循环void,dooo代表do循环,forro代表循环void。我只是在谷歌上搜索了“switch statement menu c++”还有很多非常清楚的例子。如果你不理解课本上的内容,请使用其他资源。这是一个基本概念。当然,每个人都必须从某个地方开始,但没有人能说服你如何做得比你更好。这是值得你花时间的。如果你回来后仍然有困难,你应该先这样做nd问一些问题。除了应该使用菜单之外,还不清楚程序应该做什么。@polskiebmw你的教授教授教授的编码风格不是很好……那些单行函数似乎只是将程序展开,你真的应该将字符串文字放在使用的地方。没有理由把它们放在t像这样的文件操作;它极大地阻碍了可读性。另外,不要害怕使用完整的单词或短短语作为函数名;可读性比简洁更重要。这个问题中有很多与手头的任务无关的垃圾。这些字符串是干什么用的?除非你要本地化,否则最好将它们保留为cl尽可能多地使用它们。另外,编程中最重要的事情之一是命名,请选择描述性的名称。
dooo
不是。@tadman我的教授使用的是这样的字符串。对不起,我没有想到他使用的名称。whlo代表while loop void,dooo代表do loop和forro代表循环无效。我只是在谷歌上搜索了“切换语句菜单c++”还有很多非常清楚的例子。如果你不理解课本上的内容,请使用其他资源。这是一个基本概念。当然,每个人都必须从某个地方开始,但没有人能说服你如何做得比你更好。这是值得你花时间的。如果你回来后仍然有困难,你应该先这样做nd问一些问题。除了应该使用菜单之外,还不清楚程序应该做什么。@polskiebmw你的教授教授教授的编码风格不是很好……那些单行函数似乎只是将程序展开,你真的应该将字符串文字放在使用的地方。没有理由把它们放在t像这样的文件操作;它极大地阻碍了可读性。另外,不要害怕使用完整的单词或短短语作为函数名;可读性比简洁更重要。