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

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

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

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

06.11.2015, 22:35. Просмотров 371. Ответов 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;
 }
ЖЕЛАТЕЛЬНО решение, как можно проще и понятнее, если не сложно с объяснением, буду очень благодарен, если поможете реализовать все условие!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2015, 22:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка данных об автомобилях (C++):

Структуры. База данных о автомобилях - C++
База данных содержит информацию о автомобилях. Модель (ключевое поле, имеющее уникальное неповторяющиеся значение), производитель (поле...

Программа формирования данных об автомобилях. Найти ошибки - C++
Составить программу формирования данных об автомобилях (марка, номер, цвет, год выпуска, фамилия владельца). Организовать выбор автомобилей...

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

Текстовый файл с информацией об автомобилях - C++
Данные в IN.txt написаны Проблема в том,что не выводит в OUT.txt ничего.. #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; ...

Связанный список из записей, содержащих сведения об автомобилях - C++
Доброго времени суток, подскажите пожалуйста, кто сможет накинуть код, такого задания. Заранее всем благодарен. Необходимо создать...

Написать программу для обработки информации об автомобилях - C++
Написать программу для обработки информации об автомобилях, сдаваемых на прокат (марка автомобиля, год выпуска, километраж). Программа...

13
nmcf
5544 / 4854 / 1647
Регистрация: 14.04.2014
Сообщений: 19,710
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;
}
0
EdHaker
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 97
07.11.2015, 10:54  [ТС] #3
Спасибо большое, а как реализовать: Разрешить вносить новые данные и изменять существующие данные в информационном массиве. ?
0
nmcf
5544 / 4854 / 1647
Регистрация: 14.04.2014
Сообщений: 19,710
07.11.2015, 14:38 #4
Ну меню какое-то сделай, где можно действия выбирать: добавить запись, редактировать запись и т. п.
0
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&)>)'
0
nmcf
5544 / 4854 / 1647
Регистрация: 14.04.2014
Сообщений: 19,710
07.11.2015, 16:00 #6
В main() меню делают. Там где у тебя ввод элементов, должно быть меню. Пока пользователь не выберет, что хочет, программа ждёт.
Ты <algorithm> подключил?
0
EdHaker
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 97
07.11.2015, 16:44  [ТС] #7
nmcf, ДА , конечно подключил. А как реализовывается меню то, как редактировать уже существуеющее?

Добавлено через 21 секунду
Если не сложно наберите цельный код программы, может я не правильно собираю по кускам(
0
nmcf
5544 / 4854 / 1647
Регистрация: 14.04.2014
Сообщений: 19,710
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);
0
EdHaker
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 97
07.11.2015, 20:39  [ТС] #9
nmcf, Спасибо, а куда это добавить то? В начале кода?
0
Крюгер
0 / 60 / 3
Регистрация: 16.11.2012
Сообщений: 430
Записей в блоге: 9
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);
0
nmcf
5544 / 4854 / 1647
Регистрация: 14.04.2014
Сообщений: 19,710
07.11.2015, 22:38 #11
Цитата Сообщение от EdHaker Посмотреть сообщение
а куда это добавить то?
После 17-й строки в программе из твоего первого сообщения. И допилить, как сказал Крюгер.
0
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;});
В этой строке опять ошибка, можете подсказать, что она делает и как пофиксить?
0
nmcf
5544 / 4854 / 1647
Регистрация: 14.04.2014
Сообщений: 19,710
09.11.2015, 23:22 #13
Какая именно ошибка? У меня компилируется.
0
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 в него? Заранее спасибо!
0
09.11.2015, 23:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2015, 23:25
Привет! Вот еще темы с ответами:

Программа для обработки информации об автомобилях, сдающихся на прокат - C++
#include&lt;stdio.h&gt; #include&lt;windows.h&gt; #include&lt;conio.h&gt; #include &lt;iostream.h&gt; #include&lt;string.h&gt; #include&lt;ctype.h&gt; struct zap ...

Обработка структур данных - C++
Здравствуйте.никак не могу понять задачу. подскажите решение. в голову ничего не лезит. (задача на языке СИ) вот условие: Сведения о...

Обработка текстовых данных - C++
Уважаемы форумчане, помогите с решением задачи. Сначала нужно ввести n кол-во строк в файл, потом открыть его, считать из него эти строки и...

обработка данных с rs232 - C++
Здравствуйте, появилась пару недель назад задумка собрать на AVR-ке простейшую схему и по СОМ порту покидать данные, аппаратная часть...


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

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

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