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

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

06.11.2015, 22:35. Показов 2405. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2015, 22:35
Ответы с готовыми решениями:

Обработка стека с информацией об автомобилях
Есть следующее задание : 1. Создать запись для хранения следующей информации: – код владельца,...

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

Пишу программу хранение данных об автомобилях
Вообщем, уже на финише, не могу разобраться что не так с записью из файла. void ZasisatIzFile()...

Пишу программу хранение данных об автомобилях
&quot;С трудом, но программа подходит к концу, дальше осталась фигня&quot; - подумал я, но как увидил...

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

Добавлено через 21 секунду
Если не сложно наберите цельный код программы, может я не правильно собираю по кускам(
0
7167 / 6142 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
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
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 101
07.11.2015, 20:39  [ТС] 9
nmcf, Спасибо, а куда это добавить то? В начале кода?
0
40 / 60 / 8
Регистрация: 16.11.2012
Сообщений: 459
Записей в блоге: 7
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
7167 / 6142 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
07.11.2015, 22:38 11
Цитата Сообщение от EdHaker Посмотреть сообщение
а куда это добавить то?
После 17-й строки в программе из твоего первого сообщения. И допилить, как сказал Крюгер.
0
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 101
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
7167 / 6142 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
09.11.2015, 23:22 13
Какая именно ошибка? У меня компилируется.
0
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 101
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2015, 23:25
Помогаю со студенческими работами здесь

Пишу программу хранение данных об автомобилях - С++
Вообще так, хотел чисто для себя написать программу, которая сохраняет данные об автомобилях, пол...

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

Обработка файлов с информацией об автомобилях
1)Разработать программу, которая должна в диалоговом режиме позволять: а) создать файл, каждая...

Создать файл данных об автомобилях
Создать файл данных об автомобилях(фамилия владельца, марка, номер автомобиля).Найти количество...


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

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

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