1 / 1 / 0
Регистрация: 15.09.2015
Сообщений: 87
1

Структура «Автобусный тур»

22.06.2016, 16:25. Показов 1580. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Структура «Автобусный тур» с полями «пункт назначения», «дата начала тура», «дата окончания тура», «количество человек в группе». Функция - расчёт количества автобусов (42 места), необходимых для перевозки группы.

Мне нужно сделать типа как вот эта программа по такому же образу
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
int f(int p,string k)
    {
    int l;
    if(k=="1"){
        l=150*p;
    }
    if(k=="2"){
        l=200*p;
    }
    if(k=="3"){
        l=250*p;
    }
    return(l);
    }
 
    struct r{
        string fio;
        string staj;
        string kategory;
        int nagruzka;
    };
 
 
 int _tmain(int argc, _TCHAR* argv[])
{
    int t;string h;
    cout<<"vvedite kol-vo prepodovatelei - ";cin>>t;
    r*prepod=new r[t];
    for(int i=0;i<t;i++)
        {
        cout<<i+1<<endl;
        cout<<"family prepodavatelya - ";cin>>prepod[i].fio;
        cout<<"standing prepodavatelya - ";cin>>prepod[i].staj;
        cout<<"category prepodavatelya - ";cin>>prepod[i].kategory;
        cout<<"workload prepodavatelya - ";cin>>prepod[i].nagruzka;
        }
    cout<<"Vvedite famili desired prepodavatelya - ";cin>>h;
    for(int i=0;i<t;i++)
        {
            if (h==prepod[i].fio)
                {
                    cout<<"ego zarplata=";
                    cout<<f(prepod[i].nagruzka,prepod[i].kategory)<<endl;
                }
        }
    system("pause");
    return 0;
}
Помогите пожалуйста
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2016, 16:25
Ответы с готовыми решениями:

Автобусный парк
Информация о каждом автобусе в автобусном парке: номер автобуса фамилия и инициалы водителя...

Назовем шестизначный автобусный билет удачным, если сумма его цифр
Назовем шестизначный автобусный билет удачным, если сумма его цифр делится на 7. Распечатайте все...

Назовем шестизначный автобусный билет удачным, если сумма его цифр делится на 7
Назовем шестизначный автобусный билет удачным, если сумма его цифр делится на 7. Могут ли два...

Никита и Илья как-то возвращаясь домой из школы нашли автобусный билет, на котором был шестизначный номер
Никита и Илья как-то возвращаясь домой из школы нашли автобусный билет, на котором был шестизначный...

14
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
22.06.2016, 16:41 2
Название структур и т.д. изменяйте сами
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
#include <string>
#include <iostream>
using namespace std;
 
 
int f(int p)
{
    double l;
    l = p / 42;
    return(l);
}
 
struct r 
{
    string pnazn;
    string datanach;
    string dataokonch;
    int kolvochel;
};
 
 
int main()
{
    setlocale(LC_ALL, "rus");
    int t; string h;
    cout << "Количество туров - "; cin >> t;
    r *prepod = new r[t];
    for (int i = 0; i<t; i++)
    {
        cout << i + 1 << endl;
        cout << "Кол-во человек -  "; cin >> prepod[i].pnazn;
        cout << "Пункт назначения -  "; cin >> prepod[i].pnazn;
        cout << "дата начала тура - "; cin >> prepod[i].datanach;
        cout << "дата окончания тура - "; cin >> prepod[i].dataokonch;
    }
    cout << "Введите Пункт назначения - "; cin >> h;
    for (int i = 0; i<t; i++)
    {
        if (h == prepod[i].pnazn)
        {
            cout << "Кол-во автобусов = " << f(t) << "." << endl;
        }
    }
    system("pause");
    return 0;
}
1
1 / 1 / 0
Регистрация: 15.09.2015
Сообщений: 87
22.06.2016, 16:59  [ТС] 3
nstwf, Спасибо все так как надо, но я стал ее проверять и кол-во автобусов выдает =0
Миниатюры
Структура «Автобусный тур»  
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
22.06.2016, 17:16 4
Цитата Сообщение от RuslanBogd Посмотреть сообщение
nstwf, Спасибо все так как надо, но я стал ее проверять и кол-во автобусов выдает =0
Извиняюсь, вот так пробуйте:
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
#include <string>
#include <iostream>
using namespace std;
 
 
double f(int p)
{
    double l;
    l = p / 42;
    return(l);
}
 
struct r
{
    string pnazn;
    string datanach;
    string dataokonch;
    int kolvochel;
};
 
 
int main()
{
    setlocale(LC_ALL, "rus");
    int t; string h;
    cout << "Количество туров - "; cin >> t;
    r *prepod = new r[t];
    for (int i = 0; i<t; i++)
    {
        cout << i + 1 << endl;
        cout << "Кол-во человек -  "; cin >> prepod[i].kolvochel;
        cout << "Пункт назначения -  "; cin >> prepod[i].pnazn;
        cout << "дата начала тура - "; cin >> prepod[i].datanach;
        cout << "дата окончания тура - "; cin >> prepod[i].dataokonch;
    }
    cout << "Введите Пункт назначения - "; cin >> h;
    for (int i = 0; i<t; i++)
    {
        if (h == prepod[i].pnazn)
        {
            cout << "Кол-во автобусов = " << f(prepod[i].kolvochel) << "." << endl;
        }
    }
    system("pause");
    return 0;
}
Добавлено через 9 минут
Работает?
1
1 / 1 / 0
Регистрация: 15.09.2015
Сообщений: 87
22.06.2016, 18:11  [ТС] 5
nstwf, Да работает, спасибо))
Но тут еще проблема
Вот тут

C++
1
2
3
4
5
6
double f(int p)
{
    double l;
    l = p / 42;
    return(l);
}
Число типа p(double f(int p)) а надо объект, не понял какой но преподу так надо
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
22.06.2016, 18:31 6
Цитата Сообщение от RuslanBogd Посмотреть сообщение
Число типа p(double f(int p)) а надо объект, не понял какой но преподу так надо
Я что-то тоже вашего преподавателя не понял.
0
1 / 1 / 0
Регистрация: 15.09.2015
Сообщений: 87
22.06.2016, 18:36  [ТС] 7
nstwf, я вот посмотрел еще сделанные работы и тут как бы вот так

C++
1
2
3
4
5
6
7
8
9
10
struct vkredit{
       int razmer;
       int time;
       float procent;
       string fam;
 
};
float f(vkredit a) {
        return ((a.razmer*(a.procent/100)+a.razmer)/a.time);
}
Вот такая вот хрень до мэйна
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
22.06.2016, 18:38 8
Цитата Сообщение от RuslanBogd Посмотреть сообщение
Вот такая вот хрень до мэйна
Это не хрень, а функции
Мою можно точно так же написать, я просто расписал вам:
C++
1
2
3
4
double f(int p)
{
    return(p/42);
}
0
1 / 1 / 0
Регистрация: 15.09.2015
Сообщений: 87
22.06.2016, 18:42  [ТС] 9
nstwf, Я так да уже пробовал, но нет, привели пример, что мол они как бы не объединены, вот что я показал выше они объединены вот тут вот "float f(vkredit a) {", в моем коде надо так же объединить.
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
22.06.2016, 19:17 10
Цитата Сообщение от RuslanBogd Посмотреть сообщение
Я так да уже пробовал, но нет, привели пример, что мол они как бы не объединены, вот что я показал выше они объединены вот тут вот "float f(vkredit a) {", в моем коде надо так же объединить.
Покажи полный код этого примера:
C++
1
2
3
4
5
6
7
8
9
10
struct vkredit{
       int razmer;
       int time;
       float procent;
       string fam;
 
};
float f(vkredit a) {
        return ((a.razmer*(a.procent/100)+a.razmer)/a.time);
}
Добавлено через 25 минут
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>
using namespace std;
 
 
 
struct r
{
    string pnazn;
    string datanach;
    string dataokonch;
    int kolvochel;
};
 
double f(r kolvo)
{
    return (kolvo.kolvochel / 42);
}
 
int main()
{
    setlocale(LC_ALL, "rus");
    int t; string h;
    cout << "Количество туров - "; cin >> t;
    r *prepod = new r[t];
    for (int i = 0; i<t; i++)
    {
        cout << i + 1 << endl;
        cout << "Кол-во человек -  "; cin >> prepod[i].kolvochel;
        cout << "Пункт назначения -  "; cin >> prepod[i].pnazn;
        cout << "дата начала тура - "; cin >> prepod[i].datanach;
        cout << "дата окончания тура - "; cin >> prepod[i].dataokonch;
    }
    cout << "Введите Пункт назначения - "; cin >> h;
    for (int i = 0; i<t; i++)
    {
        if (h == prepod[i].pnazn)
        {
            cout << "Кол-во автобусов = " << f(*prepod) << "." << endl;
        }
    }
    system("pause");
    return 0;
}
2
1 / 1 / 0
Регистрация: 15.09.2015
Сообщений: 87
24.06.2016, 13:14  [ТС] 11
nstwf, Спасибо, все круто, но как еще добавить функцию где будет правильно высчитывать автобусы, например у меня 80 туристов, а автобусов дается 1
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
24.06.2016, 13:31 12
Цитата Сообщение от RuslanBogd Посмотреть сообщение
nstwf, Спасибо, все круто, но как еще добавить функцию где будет правильно высчитывать автобусы, например у меня 80 туристов, а автобусов дается 1
Думал, сами доделаете такие случаи
C++
1
2
3
4
5
6
7
8
9
double f(r kolvo)
{
    if (kolvo.kolvochel <= 42)
    {
        return 1;
    }
    double c = kolvo.kolvochel / 42;
    return int(c + 1);
}
Добавлено через 5 минут
Немного неверно, вот окончательный вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
double f(r kolvo)
{
    if (kolvo.kolvochel <= 42)
    {
        return 1;
    }
    double c1 = kolvo.kolvochel % 42;
    if (c1 != 0)
    {
        return int(kolvo.kolvochel / 42+1);
    }
    else
    {
        return int(kolvo.kolvochel / 42);
    }
}
1
1 / 1 / 0
Регистрация: 15.09.2015
Сообщений: 87
24.06.2016, 13:44  [ТС] 13
nstwf, nstwf, первым способом я делал так будет больше чем надо, сейчас вторым попробую

Добавлено через 1 минуту
nstwf, А можно округлить число через библиотеку <math.h>, с функцией ceil?
0
92 / 81 / 57
Регистрация: 19.02.2016
Сообщений: 336
24.06.2016, 13:53 14
Лучший ответ Сообщение было отмечено RuslanBogd как решение

Решение

Цитата Сообщение от RuslanBogd Посмотреть сообщение
А можно округлить число через библиотеку <math.h>, с функцией ceil?
Конечно, я просто думаю, что не стоит прикручивать библиотеку из-за 1-й строчки, но если вы хотите - дело ваше.
2-й вариант рабочий, там все предусмотрено

Добавлено через 4 минуты
Цитата Сообщение от RuslanBogd Посмотреть сообщение
А можно округлить число через библиотеку <math.h>, с функцией ceil?
Не забудьте в объявлении структуры только переделать int на double.
C++
1
2
3
4
5
6
7
struct r
{
    string pnazn;
    string datanach;
    string dataokonch;
    double kolvochel;
};
1
1 / 1 / 0
Регистрация: 15.09.2015
Сообщений: 87
24.06.2016, 14:31  [ТС] 15
nstwf, Спасибо большое, все круто, все хорошо работает))
0
24.06.2016, 14:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.06.2016, 14:31
Помогаю со студенческими работами здесь

Структура современной связи как структура системы власти - как структура государственного управления
Структура современной связи всё больше становится структурой государственного управления, в...

Класс "Автобусный маршрут" с наследником от него
Нужна помощь по лабе с# Задание 1: Создать класс &quot;Автобусный маршрут&quot;. Маршрут задавать...

Связные списки. "Автобусный парк"
Всем доброго времени суток! Требуется помощь в написании следующей программы: Составить...

Тур коня
Знаю, задачу кучу раз уже разобрали, перерешали, но в последний момент кто-то в документе поменял...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru