Я новичок в кодировании, и я хотел сделать это с помощью оператора if, но не знаю, как это сделать.

Я хотел сделать это, если пользователь пишет «справка», программа показывает ему, а если вы вводите «отображение информации», программа покажет вам результат.

#include <iostream>
struct studen
{
    char name[50];
    int roll;
    float marks;
    std::string help;
}s[10];

int main()
{
    std::cout << "enter imfo of students: " << std::endl;

    for (int i = 0; i < 10; ++i)
    {

//this part is my question  
    if(std::cin >> help) {
            
            std::cout << "write :'displaying information' for seeing the result ";
        } //untill here
        s[i].roll = i + 1;
        std::cout << "for roll number" << s[i].roll << "," << std::endl;

        std::cout << "enter name:";
        std::cin >> s[i].name;

        std::cout << "eneter marks: ";
        std::cin >> s[i].marks;

        std::cout << std::endl;
    }
    std::cout << "displaying information: " << std::endl;

    for (int i = 0; i < 10; ++i)
    {
        std::cout << "\nRoll number : " << i + 1 << std::endl;
        std::cout << "name: "<<s[i].name << std::endl;
        std::cout << "marks" << s[i].marks << std::endl;
    }
    return 0;
}
c++
1
amirbahador 1 Сен 2020 в 10:40

2 ответа

Лучший ответ

У меня есть идея, как реализовать учебник, который вы просите. Я собираюсь прикрепить код сюда ниже:

#include <iostream>
#include <string>
#define NAME_LENGTH 50
#define SIZE_ARRAY 10
#define HELP_COMMAND "help"

struct student {
    char name[NAME_LENGTH];
    int roll;
    float marks;
} students[SIZE_ARRAY];

int main() {
    std::string usrInput;
    
    do {
        std::cout << "Enter info of students: (write 'help' to see tutorial or anything else to continue)" << std::endl;
        std::cin >> usrInput;
        
        if (usrInput == HELP_COMMAND) {
            std::cout << "\n***Tutorial Example...***\n" << std::endl;
        }
    } while (usrInput == HELP_COMMAND);
    
    
    int i = 1;
    for (auto &singleStudent: students) {
        singleStudent.roll = i++;
        std::cout << "\nFor roll number " << singleStudent.roll << "," << std::endl;
        
        std::cout << "Enter name: ";
        std::cin >> singleStudent.name;
        
        std::cout << "Eneter marks: ";
        std::cin >> singleStudent.marks;
        std::cout << std::endl << std::endl;
    }
    std::cout << "Displaying information: " << std::endl;
    i = 1;
    
    for (auto singleStudent: students) {
        std::cout << "\nRoll number : " << i++ << std::endl;
        std::cout << "Name: "<< singleStudent.name << std::endl;
        std::cout << "Marks: " << singleStudent.marks << std::endl;
    }
    return 0;
}

Как видите, в структуре нет справки по полю, поскольку в данном случае она бесполезна. А реализации состоят из цикла do-while, в котором пользователь может взаимодействовать и набирать «help», если ему это нужно, или что-то еще, нажимать «Enter» и продолжать работу с программой.

Подсказки:

  • Используйте возможности C ++, например цикл for на основе диапазона
  • По возможности используйте #define, чтобы повысить удобство обслуживания и читаемость кода.
  • Вероятно, поле «метки» внутри структуры должно быть массивом меток, поскольку вы используете множественное число и учащийся может получить более одной оценки. Но, вероятно, это была просто опечатка.

С уважением, Денни

0
D. Caruso 1 Сен 2020 в 09:38

Здесь у вас есть 2 решения:

#include <iostream>
#include <cstring>

int main(int argc, char const *argv[])
{
    const char * help_msg = "if you enter 'displaying information' i will show you the result";
    const char * disply_msg = "Don't giveup!";
    const char * urecognized_msg = "unrecognized option!";

    // First option
    for(int i = 0; i < argc; i++)
    {
        if(std::strcmp(argv[i], "help") == 0)
        {
            std::cout << help_msg << std::endl;
            return 0;
        }
    }

    // Second option
    std::string user_input;
    std::cout << "Type what you want to do:" << std::endl;
    std::getline( std::cin, user_input );


    if(user_input == "help")
        std::cout << help_msg << std::endl;
    else if(user_input == "displaying information")
        std::cout << disply_msg << std::endl;
    else std::cout << urecognized_msg << std::endl;

    return 0;
}

Here is output with sample usage

0
Krzysztof Mochocki 1 Сен 2020 в 09:15