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

Задача на классы - C++

Восстановить пароль Регистрация
 
kokoz9br
0 / 0 / 0
Регистрация: 01.05.2012
Сообщений: 42
14.11.2012, 22:40     Задача на классы #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
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
115
116
117
118
119
120
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
class sredstvo
{
private:
    char nazv[20];
    int power;
    int maxspeed;  
 
 
public:
        void vvod();
        void vivod();
        void vivodnazvanie();
        void vivodpower();
        void vivodspeed();
        int averspeed(int s);
        void vivodzadannoimischnisti(int m);
};
void sredstvo::vvod() 
{
    cout<<"\n Vvedite nazvanie: ";
    cin>>nazv;
    cout<<"\n Vvefite moschnost: ";
    cin>>power;
    cout<<"\n Vvedite maxspeed: ";
    cin>>maxspeed;
}
void sredstvo::vivod()
{  
    cout<<"\n nazvanie : "<<nazv;
    cout<<"\n moschnost: "<<power;
    cout<<"\n maxspeed : "<<maxspeed;
    cout<<"\n";
}
void sredstvo::vivodnazvanie()
{
    cout<<"Nazvanie: "<<nazv;
}
void sredstvo::vivodpower()
{
    cout<<"power: "<<power;
}
void sredstvo::vivodspeed()
{
    cout<<"maxspeed: "<<maxspeed;
}
int sredstvo::averspeed(int s)
{
    s+=power;   
    return s;
}
void sredstvo::vivodzadannoimischnisti(int m)
{
 if(power>m)
    {
    cout<<"\n nazvanie : "<<nazv;
    cout<<"\n moschnost: "<<power;
    cout<<"\n maxspeed : "<<maxspeed;
    cout<<"\n";
    }
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    sredstvo mas[10];
    cout<<"Input data n: ";
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    mas[i].vvod();
    system("cls");
    for(int i=0;i<n;i++)
    {
        cout<<"\n Informacija o "<<i+1<<" transpertnom sredste:";
        mas[i].vivod();
    }
    cout<<"\n Informacija o nazvanii TC:";cout<<"\n";
    for(int i=0;i<n;i++)
    {
        cout<<i+1<<".";
        mas[i].vivodnazvanie();cout<<"\n";
    }
    cout<<"\n Informacija o moschnosti:";cout<<"\n";
    for(int i=0;i<n;i++)
    {
        cout<<i+1<<".";
        mas[i].vivodpower();cout<<"\n";
    }
    cout<<"\n Informacija o max.skorosti:";cout<<"\n";
    for(int i=0;i<n;i++)
    {
        cout<<i+1<<".";
        mas[i].vivodspeed();cout<<"\n";
    }
    int s=0;
    int S;
    float Sr;
     for(int i=0;i<n;i++)
    {
        S=s+mas[i].averspeed(s);
    }
     Sr=S/n;
     cout<<"Srednaja skorost = "<<Sr;
     cout<<"\n";cout<<"\n";
     int m;
     cout<<"Vvedite m = ";
     cin>>m;
    cout<<"Nazvanija TC,skorost kotorih bolshe "<<m<<":\n ";
    for(int i=0;i<n;i++)
    {
    mas[i].vivodzadannoimischnisti(m);
    }
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2012, 22:40     Задача на классы
Посмотрите здесь:

C++ Классы, задача с классами
C++ [C++]Задача на классы
C++ [C++]Задача на классы
C++ Массивы и классы C++. Задача.
Задача на классы в C++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
polyaKIDze
63 / 63 / 12
Регистрация: 16.07.2012
Сообщений: 147
14.11.2012, 22:49     Задача на классы #2
Может я что-то не понял, но мне не нравится строчка 105:
1. на каждой итерации S не прибавляется к предыдущему результату, а заново переопределяется как 0+mas[i].averspeed(s)
2.функция averspeed() на каждой итерации также принимает 0
3. функция их п.2 зачем-то суммирует мощность
kokoz9br
0 / 0 / 0
Регистрация: 01.05.2012
Сообщений: 42
14.11.2012, 23:20  [ТС]     Задача на классы #3
Цитата Сообщение от polyaKIDze Посмотреть сообщение
Может я что-то не понял, но мне не нравится строчка 105:
1. на каждой итерации S не прибавляется к предыдущему результату, а заново переопределяется как 0+mas[i].averspeed(s)
2.функция averspeed() на каждой итерации также принимает 0
3. функция их п.2 зачем-то суммирует мощность
ой,ой,ой,я напутал,не ту переменную написал.

Добавлено через 22 минуты
По поводу 105 строки.Я в этой функции хочу,чтобы значение s прибавлялось с ккаждым считыванием maxspeed. Но не знал как сделать и написал так.
Буду благодарен,если поможете.
polyaKIDze
63 / 63 / 12
Регистрация: 16.07.2012
Сообщений: 147
14.11.2012, 23:37     Задача на классы #4
kokoz9br,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
...
int sredstvo::vivodspeed1()
{
    return maxspeed;
}
...
int S = 0;
float Sr;
for(int i=0;i<n;i++)
  {
  S=S+mas[i].vivodspeed1();
  }
Sr=S/n;
Функцию averspeed замените на vivodspeed1.
Не факт, что поможет. Нет времени подробнее разбираться с вашим кодом. Могут быть и другие ошибки.
kokoz9br
0 / 0 / 0
Регистрация: 01.05.2012
Сообщений: 42
14.11.2012, 23:38  [ТС]     Задача на классы #5
Цитата Сообщение от polyaKIDze Посмотреть сообщение
kokoz9br,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
...
int sredstvo::vivodspeed1()
{
    return maxspeed;
}
...
int S = 0;
float Sr;
for(int i=0;i<n;i++)
  {
  S=S+mas[i].vivodspeed1();
  }
Sr=S/n;
Функцию averspeed замените на vivodspeed1.
аааа,все намного проще,чем я думал.Благодарю.
Yandex
Объявления
14.11.2012, 23:38     Задача на классы
Ответ Создать тему
Опции темы

Текущее время: 12:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru