Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Leg@
Сообщений: n/a
#1

Первый код на С++ - C++

05.10.2011, 21:13. Просмотров 526. Ответов 6
Метки нет (Все метки)

Вечер добрый)
Сразу прошу помидорами не закидывать)
На Вашу критику, оценку мое первое самостоятельное творение в Визуал С++...

Очень интересно какие ошибки и прочее там обнаружатся...


Смысловая нагрузка текста взята просто так, и часть кода - заглушки.
За основу (int main() ) взят первый вопрос теста.
Жду критики и советов) Спасибо)
пы.сы. (синтаксических ошибок найдено не было).


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
// тест
 
#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
 
 
// 1 вопрос
void    Vopros1();
// 2 вопрос
void    Vopros2();
// 3 вопрос
void    Vopros3();
// 4 вопрос
void    Vopros4();
// 5 вопрос
void    Vopros5();
// 6 вопрос
void    Vopros6();
// 7 вопрос
void    Vopros7();
 
 
 
int main()
{
    system ("chcp 1251 > nul");
    
        // вопрос 1
        
    {
        string answer;
    
    do
        {   //ввод вопроса
            cout << "Вопрос 1: Вы летаете во сне? ";
            getline(cin, answer);  //answer - ответ
        }while(answer != "да" && answer != "нет");
 
    if(answer == "да")
        {
            Vopros2();
        }
    else
        {
            Vopros3();
        }
                
    }
        system ("pause");
}
 
        
        // вопрос 2
        void Vopros2()
    {
        string answer2;
    do
        {
            cout << "2. Это повторяется чаще 2 раз в месяц? ";
            getline(cin, answer2);
        }while(answer2 != "да" && answer2 != "нет");
 
    if(answer2 == "да")
        {
            Vopros4();
        }
    else
        {
            Vopros5();
        }
                
    }
        // вопрос 3
        void Vopros3()
    {
        string answer3;
    do
        {
            cout << "3.У Вас бывают цветные сны? ";
            getline(cin, answer3);
        }while(answer3 != "да" && answer3 != "нет");
    
    if(answer3 == "да")
        {
            Vopros6();
        }
    else
        {
            Vopros7();
        }
    }
 
        // вопрос 4
        void Vopros4()
        {
        cout << "Вопрос 4. " << endl;
        }
        // вопрос 5
        void Vopros5()
        {
        cout << "Вопрос 5. " << endl;
        }
        // вопрос 6
        void Vopros6()
        {
        cout << "Вопрос 6. " << endl;
        }
        // вопрос 7
        void Vopros7()
        {
        cout << "Вопрос 7. " << endl;
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2011, 21:13     Первый код на С++
Посмотрите здесь:

проверьте, пожалуйста, мой первый код на c++ - C++
Переучиваюсь с Delphi на C++ Посмотрите, пожалуйста, корректность, стиль программирования, и т.п. с точки зрения visual c++ Если бы...

Поменять местами первый и последний элемент массива (исправить код) - C++
Почему массив не не меняет первый и последний элемент местами? #include &lt;iostream&gt; #include &lt;locale.h&gt; using namespace std; ...

Почему функция putchar(); выводит только первый символ?(Короткий код) - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; int main() { int c; c=getchar(); putchar(c); getch(); }

Релизация очереди (первый пришел первый ушел) в классе - C++
Вот пытаюсь исправить ошибку в методе Рор(). Помоготе розобратся в чем проблема // Stack1.h #pragma once #include &lt;iostream&gt; ...

Очередь «первый вошел — первый вышел» (FIFO) - C++
Очередь — это устройство для хранения данных, похожее на стек. Отли-чие в том, что в стеке последний сохраненный элемент будет первым...

первый пришел, первый ушел - C++
Нужно реализовать очередь, первый пришел, первый ушел. Написал код, но чето перемудрил и не могу понять в чем проблема? ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KeyGen
383 / 290 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
06.10.2011, 01:33     Первый код на С++ #2
Мне кажется что функции тут лишние:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 1 вопрос
void    Vopros1();
// 2 вопрос
void    Vopros2();
// 3 вопрос
void    Vopros3();
// 4 вопрос
void    Vopros4();
// 5 вопрос
void    Vopros5();
// 6 вопрос
void    Vopros6();
// 7 вопрос
void    Vopros7();
Я бы столько не стал делать...
x1Mike7x
216 / 129 / 6
Регистрация: 06.11.2010
Сообщений: 234
06.10.2011, 02:06     Первый код на С++ #3
Эта куча однообразных функций-вопросов не очень-то и нужна.
Можно сделать, например, так: создаём 1 функцию "Вопрос" с целочисленным параметром, который будет отвечать за номер вопроса, а в самой функции объявить массив строк, который будет выдавать нам нужную строку-вопрос в зависимости от этого параметра.
Примерно вот-так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <string>
 
std::string Vopros( unsigned X )
{
    std::string S[] = { "Вопрос 1: Вы летаете во сне?",
                              "2. Это повторяется чаще 2 раз в месяц?",
                              "3.У Вас бывают цветные сны?" };
    std::string answer;
    do
    {
         std::cout << S[X - 1] << std::endl;
         std::getline(std::cin, answer3);
    } while( answer != "да" && answer != "нет" );
    return answer;
}
 
int main()
{
    std::string ans, ans_next;
 
    ans = Vopros( 1 );
    if ( ans == "да" )
         ans_next = Vopros( 2 );
    else
         ans_next = Vopros( 3 );
 
    return 0;
}
Leg@
Сообщений: n/a
06.10.2011, 14:25     Первый код на С++ #4
Цитата Сообщение от x1Mike7x Посмотреть сообщение
Эта куча однообразных функций-вопросов не очень-то и нужна.
Можно сделать, например, так: создаём 1 функцию "Вопрос" с целочисленным параметром, который будет отвечать за номер вопроса, а в самой функции объявить массив строк, который будет выдавать нам нужную строку-вопрос в зависимости от этого параметра.
Примерно вот-так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <string>
 
std::string Vopros( unsigned X )
{
    std::string S[] = { "Вопрос 1: Вы летаете во сне?",
                              "2. Это повторяется чаще 2 раз в месяц?",
                              "3.У Вас бывают цветные сны?" };
    std::string answer;
    do
    {
         std::cout << S[X - 1] << std::endl;
         std::getline(std::cin, answer3);
    } while( answer != "да" && answer != "нет" );
    return answer;
}
 
int main()
{
    std::string ans, ans_next;
 
    ans = Vopros( 1 );
    if ( ans == "да" )
         ans_next = Vopros( 2 );
    else
         ans_next = Vopros( 3 );
 
    return 0;
}

Подскажите, а как быть тогда с последующими вопросами: 2 и 3 также разбиваются на "да/нет"... и так далее...?
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
06.10.2011, 14:27     Первый код на С++ #5
Leg@, нажми меня

вот и функции, и вопросы
x1Mike7x
216 / 129 / 6
Регистрация: 06.11.2010
Сообщений: 234
06.10.2011, 17:56     Первый код на С++ #6
Цитата Сообщение от Leg@ Посмотреть сообщение
Подскажите, а как быть тогда с последующими вопросами: 2 и 3 также разбиваются на "да/нет"... и так далее...?
Можно вот-так ( при этом если нам не важны предыдущие ответы, то можно обойтись 1 переменной ans ) :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
    std::string ans;
    int k = 1;
 
    ans = Vopros( k );
    while ( k < *Количество вопросов* ) 
    {
        if ( ans == "да" )
            k = 2 * k; 
        else
            k = 2 * k + 1;
        ans = Vopros( k );
    }
 
    return 0;
}
При этом стоит учитывать заполнение массива вопросов в функции "Vopros()" поярусно - т.е. именно так, как у Вас в приведенном коде.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2011, 21:03     Первый код на С++
Еще ссылки по теме:

первый курс. с++ - C++
1)Даны числа x, y, x1, y1, x2, y2. Проверить истинность высказывания: «Точка с координатами (x, y) лежит внутри прямоугольника, левая...

Первый калькулятор - C++
Помогите доделать калькулятор, выдает ошибку при компиляции: #include &quot;stdafx.h&quot; #include &lt;std_lib_facilities.h&gt; class calc...

Первый вопрос о C++ =) - C++
Привет всем форумчанам! Я занялся изучением программирования на C++. И вот появился первый вопрос! Значит так! Скачал я среду Dev...

Первый бит числа - C++
Пишу программу для сжатия файлов по алгоритму RLE. Чтобы программа понимала, что читаемое число отвечает за количество символов, я решил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
06.10.2011, 21:03     Первый код на С++ #7
Простенький концепт.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <string>
#include <iostream>
#include <vector>
 
class Answers {
 public:
  Answers() : choices_() {}
  Answers &addChoice(const std::string &choice) {
    choices_.push_back(choice);
    return *this;
  }
  std::string &operator[](size_t id) { return choices_[id]; }
  size_t size() { return choices_.size(); }
 private:
  std::vector<std::string>choices_;
};
 
class Question {
 public:
  explicit Question(const std::string &question, const Answers &answers,
    size_t correctAnswer)
    : question_(question), answers_(answers),
    correctAnswer_(correctAnswer), selectedAnswer_(0) {}
  int ask() {
    std::cout << question_ << std::endl;
    for (size_t i = 0; i < answers_.size(); ++i)
      std::cout << i << ": " << answers_[i] << std::endl;
    std::cout << "Enter answer: ";
    std::cin >> selectedAnswer_;
    return selectedAnswer_;
  }
 private:
  std::string question_;
  Answers answers_;
  size_t correctAnswer_;
  size_t selectedAnswer_;
};
 
int main(int argc, char *argv[]) {
  std::cout << Question("What is a frog?", Answers()
    .addChoice("An animal").addChoice("An insect")
    .addChoice("A flower"), 1).ask();
  return 0;
}
Yandex
Объявления
06.10.2011, 21:03     Первый код на С++
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru