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

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

Войти
Регистрация
Восстановить пароль
 
EdHaker
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 97
#1

Обработка данных об автомобилях - C++

06.11.2015, 22:35. Просмотров 316. Ответов 13
Метки нет (Все метки)

Здравствуйте, есть такое задание: Данные про автомобили включают в себя: модель, производителя, тип, год выпуска, дату регистрации и владельца(фио). Организовать массив для сохранения данных в виде заданной структуры и заполнить его данными с клавиатуры.(сделано). Вывести сведения об автомобилях, зарегистрированных на протяжение заданного пользователем периода времени.(частично, требуется проверка). Вывести данные об автомобилях для заданной пользователем модели.(не сделано). Определить, сколько автомобилей каждой модели было зарегистрировано каждый год.(не сделано). Разрешить вносить новые данные и изменять существующие данные в информационном массиве. (не сделано). Очень прошу помочь, вот уже готовый код с программой:
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
#include <iostream>
#include <cstring>
#include <conio.h>
using namespace std;
int main(){
struct formal{
    string model;
    string proizv;
    string type;
    int year;
    int datemonth;
    int dateday;
    int dateyear;
    string user;
} mas[100];
 
int x,d,m,y,d1,m1,y1;
cout<<"vvedite kol-vo avto: ";
cin>>x;
for (int i=0;i<x;i++){
cout<<"Vvedite model: ";
cin>>mas[i].model;
cout<<"Vvedite proizvoditelya: ";
cin>>mas[i].proizv;
cout<<"Vvedite type: ";
cin>>mas[i].type;
cout<<"Vvedite god: ";
cin>>mas[i].year;
cout<<"Vvedite datu reg: ";
cin>>mas[i].dateday>>mas[i].datemonth>>mas[i].dateyear;
cout<<"Vvedite usera: ";
cin>>mas[i].user;
}
cout<<"Vvedite period: ";
cin>>d>>m>>y>>d1>>m1>>y1;
 for (int i=0;i<x;i++){
 if (y<mas[i].dateyear && mas[i].dateyear<y1)
{cout<<mas[i].model;
cout<<endl;
cout<<mas[i].proizv;
cout<<endl;
cout<<mas[i].type;
cout<<endl;
cout<<mas[i].year;
cout<<endl;
cout<<mas[i].dateday<<"."<<mas[i].datemonth<<"."<<mas[i].dateyear;
cout<<endl;
cout<<mas[i].user;}}
 /*else
 {if month struct else day struct } */
 
cout<<endl;
getch();
return 0;
 }
ЖЕЛАТЕЛЬНО решение, как можно проще и понятнее, если не сложно с объяснением, буду очень благодарен, если поможете реализовать все условие!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4944 / 4282 / 1431
Регистрация: 14.04.2014
Сообщений: 16,804
07.11.2015, 08:33     Обработка данных об автомобилях #2
Каскадом условие надо делать:
C++
1
2
if ((mas[i].dateyear > y || ((mas[i].dateyear == y && mas[i].datemonth > m) || (mas[i].datemonth == m && mas[i].dateday >= d)))
    && (mas[i].dateyear < y1 || ((mas[i].dateyear == y1 && mas[i].datemonth < m1) || (mas[i].datemonth == m1 && mas[i].dateday <= d1))))
По годам:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
std::sort(mas, mas + x, [](const formal &a, const formal &b){ return a.dateyear < b.dateyear; });
 
int y = -1;
for (int i = 0; i < x; ++i)
{
    if (mas[i].year != y)
    {
        y = mas[i].year;
        cout << "Year: " << y << endl;
    }
cout<<mas[i].model;
cout<<endl;
cout<<mas[i].proizv;
cout<<endl;
cout<<mas[i].type;
cout<<endl;
cout<<mas[i].dateday<<"."<<mas[i].datemonth<<"."<<mas[i].dateyear;
cout<<endl;
cout<<mas[i].user << endl << endl;
}
EdHaker
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 97
07.11.2015, 10:54  [ТС]     Обработка данных об автомобилях #3
Спасибо большое, а как реализовать: Разрешить вносить новые данные и изменять существующие данные в информационном массиве. ?
nmcf
4944 / 4282 / 1431
Регистрация: 14.04.2014
Сообщений: 16,804
07.11.2015, 14:38     Обработка данных об автомобилях #4
Ну меню какое-то сделай, где можно действия выбирать: добавить запись, редактировать запись и т. п.
EdHaker
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 97
07.11.2015, 15:32  [ТС]     Обработка данных об автомобилях #5
nmcf, можете подсказать, как конкретно это реализовать и добавить в код программы? я не совсем понимаю(

Добавлено через 3 минуты
nmcf,
C++
1
 sort(mas, mas + x, [](const formal &a, const formal &b){ return a.dateyear < b.dateyear; })
- эта строка не работает в программе пишет ошибку: [Error] no matching function for call to 'sort(main()::formal [100], main()::formal*, main()::<lambda(const main()::formal&, const main()::formal&)>)'
nmcf
4944 / 4282 / 1431
Регистрация: 14.04.2014
Сообщений: 16,804
07.11.2015, 16:00     Обработка данных об автомобилях #6
В main() меню делают. Там где у тебя ввод элементов, должно быть меню. Пока пользователь не выберет, что хочет, программа ждёт.
Ты <algorithm> подключил?
EdHaker
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 97
07.11.2015, 16:44  [ТС]     Обработка данных об автомобилях #7
nmcf, ДА , конечно подключил. А как реализовывается меню то, как редактировать уже существуеющее?

Добавлено через 21 секунду
Если не сложно наберите цельный код программы, может я не правильно собираю по кускам(
nmcf
4944 / 4282 / 1431
Регистрация: 14.04.2014
Сообщений: 16,804
07.11.2015, 20:13     Обработка данных об автомобилях #8
По такому образцу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int ch;
 
do
{
    cout << "1 - вывод списка\n2 - добавить элемент\n3 - редактировать элемент\n0 - выход\n";
    cin >> ch;
 
    switch (ch)
    {
    case 1:
        //....
        break;
    case 2:
        //....
        break;
    case 3:
        //....
        break;
    }
}
while (ch != 0);
EdHaker
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 97
07.11.2015, 20:39  [ТС]     Обработка данных об автомобилях #9
nmcf, Спасибо, а куда это добавить то? В начале кода?
Крюгер
0 / 60 / 3
Регистрация: 16.11.2012
Сообщений: 418
Записей в блоге: 3
07.11.2015, 20:50     Обработка данных об автомобилях #10
EdHaker,

Не по теме:

ты такие странные вопросы задаешь.. я конечно извиняюсь, но ...



Добавлено через 1 минуту
EdHaker, может я огорчу но это лишь каркас кода. писать придется самому. (тут даже ребенок поймет как, просто надо въехать в тему)
Цитата Сообщение от nmcf Посмотреть сообщение
++Выделить код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int ch;
do
{
* * cout << "1 - вывод списка\n2 - добавить элемент\n3 - редактировать элемент\n0 - выход\n";
* * cin >> ch;
switch (ch)
* * {
* * case 1:
* * * * //....
* * * * break;
* * case 2:
* * * * //....
* * * * break;
* * case 3:
* * * * //....
* * * * break;
* * }
}
while (ch != 0);
nmcf
4944 / 4282 / 1431
Регистрация: 14.04.2014
Сообщений: 16,804
07.11.2015, 22:38     Обработка данных об автомобилях #11
Цитата Сообщение от EdHaker Посмотреть сообщение
а куда это добавить то?
После 17-й строки в программе из твоего первого сообщения. И допилить, как сказал Крюгер.
EdHaker
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 97
09.11.2015, 09:43  [ТС]     Обработка данных об автомобилях #12
nmcf, nmcf,
C++
1
 sort(mas, mas + x, [](const formal &a, const formal &b){return a.dateyear<b.dateyear;});
В этой строке опять ошибка, можете подсказать, что она делает и как пофиксить?
nmcf
4944 / 4282 / 1431
Регистрация: 14.04.2014
Сообщений: 16,804
09.11.2015, 23:22     Обработка данных об автомобилях #13
Какая именно ошибка? У меня компилируется.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2015, 23:25     Обработка данных об автомобилях
Еще ссылки по теме:

C++ Программа формирования данных об автомобилях. Найти ошибки
C++ Текстовый файл с информацией об автомобилях
Двоичная обработка данных C++
Обработка символьных данных C++
C++ Написать программу для обработки информации об автомобилях

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

Или воспользуйтесь поиском по форуму:
EdHaker
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 97
09.11.2015, 23:25  [ТС]     Обработка данных об автомобилях #14
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
#include <iostream>
#include <cstring>
#include <conio.h>
#include <algorithm>
#include <windows.h>
using namespace std;
int main(){
struct formal{
    string model;
    string proizv;
    string type;
    int year;
    int datemonth;
    int dateday;
    int dateyear;
    string user;
} mas[100];
system("chcp 1251");
int x,d,m,y,d1,m1,y1,y2;
cout<<"Введите количество машин: ";
cin>>x;
for (int i=0;i<x;i++){
cout<<"Введите модель: ";
cin>>mas[i].model;
cout<<"Введите производителя: ";
cin>>mas[i].proizv;
cout<<"Введите тип: ";
cin>>mas[i].type;
cout<<"Введите год: ";
cin>>mas[i].year;
cout<<"Введите дату регистрации: ";
cin>>mas[i].dateday>>mas[i].datemonth>>mas[i].dateyear;
cout<<"Введите имя пользователя: ";
cin>>mas[i].user;
}
 
cout<<"Введите период: ";
cin>>d>>m>>y>>d1>>m1>>y1;
 for (int i=0;i<x;i++){
 if ((mas[i].dateyear>y || ((mas[i].dateyear==y && mas[i].datemonth>m) || (mas[i].datemonth==m && mas[i].dateday>=d)))
    && (mas[i].dateyear<y1 || ((mas[i].dateyear==y1 && mas[i].datemonth<m1) || (mas[i].datemonth==m1 && mas[i].dateday<=d1))))
{cout<<"Модель: "<<mas[i].model;
cout<<endl;
cout<<"Производитель: "<<mas[i].proizv;
cout<<endl;
cout<<"Тип: "<<mas[i].type;
cout<<endl;
cout<<"Год: "<<mas[i].year;
cout<<endl;
cout<<"DD/MM/YY: "<<mas[i].dateday<<"."<<mas[i].datemonth<<"."<<mas[i].dateyear;
cout<<endl;
cout<<"Пользователь: "<<mas[i].user;} }
cout<<endl;
cout<<"Введите год для проверки: ";
cin>>y2;
for (int i=0; i<x; ++i)
{   if (mas[i].year==y2)
    {   y=mas[i].year;
        cout<<"Год: "<<y<<endl;
cout<<mas[i].model;
cout<<endl;
cout<<mas[i].proizv;
cout<<endl;
cout<<mas[i].type;
cout<<endl;
cout<<mas[i].dateday<<"."<<mas[i].datemonth<<"."<<mas[i].dateyear;
cout<<endl;
cout<<mas[i].user<<endl;}
else cout<<"Машин в этот год не было.";
} 
cout<<endl;
getch();
return 0;
}
- Вот весь код без, почему-то неправильно работает алгоритм и можете добавить sort в него? Заранее спасибо!
Yandex
Объявления
09.11.2015, 23:25     Обработка данных об автомобилях
Ответ Создать тему
Опции темы

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