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

Структура - C++

Восстановить пароль Регистрация
 
duden
0 / 0 / 0
Регистрация: 05.01.2010
Сообщений: 42
17.05.2010, 23:23     Структура #1
Написать программу записи к файлу элементов типа структура для реестрации автомобилей с полями:
Марка автомобиля,
год выпуска,
цвет,
номер.

Распечатать информацию из файла про автомобили , с годом выпуска не поже 2005 года
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2010, 23:23     Структура
Посмотрите здесь:

C++ Структура
C++ структура
C++ структура
структура в Си++ C++
структура c++ C++
C++ структура
C++ структура

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
18.05.2010, 14:03     Структура #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
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
#include <fstream>
#include <iostream>
#include <functional>
 
#include <vector>
 
template<typename T> void write(std::ofstream &ofs, T &t) {
   ofs.write(reinterpret_cast<char*>(&t), sizeof(T)); }
 
template<typename T> void read (std::ifstream &ifs, T &t) {
   ifs.read (reinterpret_cast<char*>(&t), sizeof(T)); }
 
template<typename T> void write_v(std::ofstream &ofs, std::vector<T> &v) 
{
   std::vector<T>::size_type size = v.size();
   write(ofs, size);
 
   for(std::vector<s>::iterator it = v.begin(); it != v.end(); ++it)
      write(ofs, *it);
}
 
template<typename T> void read_v (std::ifstream &ifs, std::vector<T> &v)
{
   std::vector<T>::size_type size = 0;
   read(ifs, size);
 
   v.reserve(size);
   while(size--)
   {
      s t;
      read(ifs, t);
      v.push_back(t);
   }
}
 
struct s
{
   char mark [16];
   char color[16];
   int  year;
   int  num;
};
 
void input (s * str)
{
   std::cout << "mark: ";
   std::cin  >> str->mark;
 
   std::cout << "color: ";
   std::cin  >> str->color;
 
   std::cout << "year: ";
   std::cin  >> str->year;
 
   std::cout << "num: ";
   std::cin  >> str->num;
}
 
void output(s * str)
{
   std::cout << str->mark << '.' << str->color << '.' << str->year << '.' << str->num << std::endl;
}
 
bool predicate(s * str)
{
   if(str->year >= 2005)
      return true;
   else
      return false;
}
 
int main()
{
   int nstructs = 0;
 
   std::cout << "enter amount autos for write data to file (0 - base not created): ";
   std::cin  >> nstructs;
 
   if(nstructs != 0)
   {
      std::ofstream out("file.dat");
      if(out.fail())
      {
         std::cerr << "could not open file for write";
         return -1;
      }
 
      std::vector<s> vstructs(nstructs);
      for(std::vector<s>::iterator it = vstructs.begin(); it != vstructs.end(); ++it)
         input(&(*it));
 
      write_v(out, vstructs);
 
      out.close();
   }
 
   std::cout << "read data from file (0 - no, 1 - yes): ";
   std::cin  >> nstructs;
 
   if(nstructs != 0)
   {
      std::ifstream in("file.dat");
 
      if(in.fail())
      {
         std::cerr << "could not open file for read";
         return -1;
      }
 
      std::vector<s> vstructs;
      
      read_v(in, vstructs);
      for(size_t i = 0; i < vstructs.size(); ++i)
         if(predicate(&(vstructs[i])))
            output(&(vstructs[i]));
 
      in.close();
   }
 
   system("pause");
   return 0;
}
Yandex
Объявления
18.05.2010, 14:03     Структура
Ответ Создать тему
Опции темы

Текущее время: 19:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru