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

Выбрать машину с наибольшим пробегом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Формирование матрицы из файла http://www.cyberforum.ru/cpp-beginners/thread1193291.html
Здравствуйте, помогите пожалуйста. Нужно, что бы в программе, матрица вводилась не в ручную, а бралась из фаила. Вот сама программа: #include "stdafx.h" #include <iostream> #include...
C++ Построить график функции, вывести на экран значения аргумента х и соответствующего значения функции у Вычислить функцию y=sinx, x принадлежит области с шагом изменения аргумента h=0,1. Построить график функции, вывести на экран значения аргумента х и соответствующего значения функции у. http://www.cyberforum.ru/cpp-beginners/thread1193289.html
Записать в массив элементы массива C++
Дан массив B(15). Записать в массив элементы массива B>5. Помогите, пожалуйста, составить программу, до завтра нужно для зачёта
Написать программу, которая рисует произвольный график C++
мне нужно сделать программу которая рисует произвольный график (синусоиды, но только что-то поинтереснее). В двумерном пространстве, задается шарик-птичка например в координате (0;5) . Ей задается...
C++ Записать в массив элементы другого массива http://www.cyberforum.ru/cpp-beginners/thread1193266.html
Дан массив B(15). Записать в массив элементы массива B>5. Помогите, пожалуйста, составить программу, до завтра нужно для зачёта.
C++ Ошибка "C2065: cout: необъявленный идентификатор" Пишу заголовочный файл. В нем используются cout. Подключены библиотеки и пространство имен. Не понятно, почему возникает 2065 #include <iostream> #include <stdlib.h> using namespace std; ... подробнее

Показать сообщение отдельно
Бедел
233 / 29 / 4
Регистрация: 04.06.2010
Сообщений: 286

Выбрать машину с наибольшим пробегом - C++

30.05.2014, 01:44. Просмотров 235. Ответов 2
Метки (Все метки)

Приветствую вас, уважаемые форумчане.

Запускаю одну и ту же программу в CodeBlocks(mingw) и в VS2010, результат разный..
Привожу код программы:

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
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
 
class Country
{
public:
    Country()  // Конструктор без параметров
    {
        cout << "\nИспользован конструтор без параметров !" << "\n";
    }
    Country (string nameC) // Конструктор с параметрами
    {
        cout << "\nИспользован конструтор c параметрами !" << "\n";
        nameCountry = nameC;
    }
    void set_N(string nameC) {nameCountry = nameC;}  // метод для ввода названия страны
    string get_N() { return nameCountry; } // метод для возвращения названия страны
    void show_N() // метод для вывода названия страны
        {
            cout << "Название страны: " << nameCountry << "\n";
        }
private:
    string nameCountry;
};
class Car : public Country
{
public:
    Car () : Country() // конструктор класса Car вызывает конструктор класса Country без параметров
    {}
    Car (string nameC) : Country(nameC) // конструктор класса Car вызывает конструктор класса Country c параметрами
    {
        nameCountry = nameC;
    }
    void NameCar (int i) // метод для ввода и вывода названия машины, её марки, потребляемого горючего и объёма бензобака
    {
        cout << "Введите название марки №" << i+1 << ": ";
        cin >> carName;
        cout << "Введите название модели №" << i+1 << ": ";
        cin >> modelName;
        cout << "Введите потребление горючего л/км для модели №" << i+1 << ": ";
        cin >> liters;
        cout << "Введите  объем бензобака(л) для модели №" << i+1 << ": ";
        cin >> bulk;
        cout << "Название марки: " << carName << "\n";
        cout << "Название модели: " << modelName << "\n";
        cout << "Потребление горючего л/км: " << liters << "\n";
        cout << "Объём бензобака: " << bulk << "\n";
    }
    void Probeg(int i) // метод для вычисления пробега машины
    {
        pr[i]=bulk/liters;
        cout << "Пробег машины: " << pr[i] << "км." << "\n";
    }
    void MaxProbeg(int kol) // метод для выбора машины с наибольшим пробегом
    {
        cout << "Это функция, вызванная объектом, который передан в функцию !" << "\n";
        cout << "Используем её для выбора машины с наибольшим пробегом.";
        double maxProbeg=pr[0];
        int indexCar=0;
        for (int i=0; i<kol; i++)
        {
            if (maxProbeg <= pr[i])
            {
                maxProbeg = pr[i];
                indexCar = i;
            }
        }
        cout << "\nМашина с максимальным пробегом №" << indexCar+1 << ", её пробег составляет: " << maxProbeg << "км." << "\n";
    }
private:
    string nameCountry, carName, modelName;
    double liters, bulk, pr[10];
};
void display (Car ob, int k) // Функция вне класса для передачи функции объекта
{
    ob.MaxProbeg(k);
    cout << "\n";
}
int main()
{
    setlocale(LC_ALL, "Russian");
    string nameC;
    double kol;
    Car p1;
    cout << "Введите страну: ";
    cin >> nameC;
    p1.set_N(nameC);
    p1.show_N();
    cout << "Введите количество машин: ";
    cin >> kol;
    for (int i=0; i<kol; i++)
    {
        Car p2(nameC);
        p2.NameCar(i);
        p2.Probeg(i);
    }
    if (kol>1) // функция определения максимального пробега вычисляется только в том случае, когда количество машин больше 1
    {
        Car ob;
        display(ob, kol);
    }
    system("PAUSE");
    return 0;
}
После выполнения этого кода в VS2010, программа неправильно считает максимальный пробег, берёт значение из "мусора". В случае с CodeBlocks всё нормально. Прилагаю два скрина:
Выбрать машину с наибольшим пробегом

Выбрать машину с наибольшим пробегом

Понимаю, что код не маленький, и копаться в нём станет не каждый, но прошу всё же в свободное время кого-нибудь посмотреть(проблема не такая уж и большая, просто хочется понять, почему так). Заранее спасибо всем за уделённое внимание.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru