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

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

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

Помогите дописать программу на использование структур - C++

21.11.2013, 14:05. Просмотров 190. Ответов 1
Метки нет (Все метки)

Здравствуйте. Есть у меня такая програмка, которая запоминает, сохраняет и считывает данные. Я не знаю как это все обобщить. В ней есть меню, в котором вводится:
1.Марка машины.
2.Модель.
3.Цена.
4.Скорость.
5.Сохранить авто
6.Загрузить авто
7.Удалить все авто
0.Выход.

Нужно доделать следующие пункты:
8.Удаление одной машины
9.Сделать поиск по: марке, моделе, цене, скорости. (Каждый поиск по отдельности. По цене и скорости в промежутке.)
10. Осуществить загрузку и сохранение из/в тхт.

Отдельная проблема со 101 машиной. Как реализовать ввод стольких машин, скольких нам нужно, а не ограниченное кол-во. У меня это реализовано как Car cars[100];

Собственно вот сам код:
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
using namespace std;
 
long get_size(char filename[])
{
    //Открываем файл для чтения
    FILE* f=fopen(filename, "rb");
 
    if(f==0)
        return -1;
    //Перемещаем указатель для чтения в конец файла
    fseek(f,0,SEEK_END);
 
    // Получаем номер байта, в котором находится курсор
    long size = ftell(f);
 
    //Закрываем файл
    fclose(f);
    return size;
}
 
struct Car 
{
    char marka[40]; 
    char model[40]; 
    int price; 
    int speed;
};
 
void enterCar(Car cars[], int pos)
{
    cout << "Введите марку автомобиля: "; 
    cin >> cars[pos].marka; 
    cout << "Введите модель автомобиля: ";
    cin >> cars[pos].model; 
    cout << "Введите цену автомобиля: "; 
    cin >> cars[pos].price; 
    cout << "Введите скорость автомобиля: "; 
    cin >> cars[pos].speed;
    cout << endl;
}
 
void printCars(Car cars[], int count)
{
    for(int i=0;i<count;i++)
    {
        cout << "Марка: " << cars[i].marka << endl; 
        cout << "Модель: " << cars[i].model << endl; 
        cout << "Скорость: " << cars[i].speed << endl; 
        cout << "Цена: " << cars[i].price << endl; 
        cout << endl;
    }
}
 
void saveCars(char filename[], Car cars[],int count)
{
    FILE* file=fopen(filename, "wb");
    fwrite(cars, sizeof(Car), count, file);
    fclose(file);
}
 
int loadCars(char filename[], Car cars[])
{
    // Получаем размер файла с записями
    int size = get_size(filename);
 
    // Вычислить количество записей в файле
    int count = size / sizeof(Car);
 
    //Открываем файл для чтения
    FILE* file=fopen(filename, "rb");
 
    //Перемещаем указатель для чтения в конец файла
    fread(cars, sizeof(Car), count, file);
 
    //Закрываем файл
    fclose(file);
    return count;
}
 
void printmenu()
{
    cout<<"+-----------------+---+\n"
        <<"| Добавить авто   | 1 |\n"
        <<"+-----------------+---+\n"
        <<"| Просмотр авто   | 2 |\n"
        <<"+-----------------+---+\n"
        <<"| Сохранить авто  | 3 |\n"
        <<"+-----------------+---+\n"
        <<"| Загрузить авто  | 4 |\n"
        <<"+-----------------+---+\n"
        <<"| Удалить все авто| 5 |\n"
        <<"+-----------------+---+\n"
        <<"| Выход           | 0 |\n"
        <<"+-----------------+---+\n";
    cout << endl;
}
 
void run()
{
    Car cars[100];
    int count=0;
    char action;
    while(true)
    {
        printmenu();
        cin >> action;
        switch(action)
        {
        case '1':
            enterCar(cars, count++);
            break;
        case '2':
            printCars(cars, count);
            break;
        case '3':
            saveCars("d:\\cars.dat", cars, count++);
            break;
        case '4':
            count = loadCars("d:\\cars.dat", cars);
            break;
        case '5':
            count = 0;
            break;
        case '0':
            exit(0);
            break;
        }
    }
}
 
void main ()
{
    SetConsoleOutputCP (1251);
    run();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2013, 14:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помогите дописать программу на использование структур (C++):

Помогите дописать программу - C++
вот код программы, но работает только первая часть из файла в массив, как теперь собрать её чтобы вся работала? может с помощью классов иил...

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

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

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

Помогите пожалуйста дописать программу перевода чисел 5->7 с.с - C++
Всем привет. Помогите пожалуйста дописать программу перевода чисел из пятеричной системы счисления в семеричную. Данная программа переводит...

Помогите дописать программу для вычисления квадратного уравнения - C++
Привет всем! Я студент и мне задали написать программу для вычисления квадратного уравнения, я написал но у меня не вычисляет х1 и х2. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
21.11.2013, 14:27 #2
Цитата Сообщение от trinkle69 Посмотреть сообщение
Отдельная проблема со 101 машиной. Как реализовать ввод стольких машин, скольких нам нужно, а не ограниченное кол-во. У меня это реализовано как Car cars[100];
Вам нужно использовать динамическое создание массива. Что-то типа
C++
1
2
3
4
5
6
7
8
int n;
cin >> n;
 
char *cars = new char[n];
 
 
 
delete [] cars;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2013, 14:27
Привет! Вот еще темы с ответами:

Помогите пожалуйста дописать программу по теме ООП, Классы - C++
Помогите новичку в программирование подогнать программу под требования,выручите пожалуйста вот требования: Класс Паспорт Скрытые...

массив структур, не могу дописать... макс и мин одновременно... - C++
массив структур. Дана информация о пяти рабочих цеха. Структура имеет вид: фамилия, размер зарплаты, стаж работы. Вывести данные о...

Использование строк.Использование структур - C++
Задачка: Дана строка,состоящая из групп нулей и едениц. Найти и вывести на экран группы с нечетным количеством символов. И еще одна: ...

использование структур - C++
помогите пожалуйся с программой : В программе должна быть реализована система меню, включающая функции для создания двоичного файла с...


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

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

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