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

Переписать массив структур в бинарный файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Взаимодействие с сайтами http://www.cyberforum.ru/cpp-beginners/thread888061.html
Подскажите пожалуйста, где можно найти нужную литературу для достижения следующей задачи. Мне нужно чтобы программно выполнялись действия с конкретным сайтом. Хочу написать программу для игры, мне нужно чтобы программа сама выполняла действия: 1. Заходила на страничку по ссылке 2. На той страничке выбирала определённый тип кораблей в нужном количестве потом нажимала на кнопку "Далее" Мне...
C++ Упорядочить заданную последовательность чисел так, чтобы каждый элемент, стоящий на нечетном месте, был больше каждого из соседних Здесь совсем у меня вариантов нету.. не сталкивался с подобной сортировкой до этого. Нужно составить алгоритм, упорядочивающий заданную последовательность чисел так, чтобы каждый элемент, стоящий на нечетном месте, был больше каждого из соседних. Обеспечить ввод параметров и количество элементов массива с клавиатуры. http://www.cyberforum.ru/cpp-beginners/thread888057.html
C++ Как записать русские буквы в файл
Как записать русские буквы в файл именно через поток fstream, нижний код записывает только английские буквы setlocale(LC_ALL,"Russian"); ofstream book_file("BOOKINFO.DAT"); book_file <<str<<endl; book_file << str1<< endl; book_file << str2 << endl;
Шифр Виженера C++
Надо написать программу на С++, расшифровывающую сообщение, зашифрованное шифром Виженера. Слово-ключ не дано. То есть сначала надо подобрать еще и это слово. Желательно с комментариями, а то я новичок. Заранее спасибо:)
C++ Поиск по базе данных на основе txt -файла http://www.cyberforum.ru/cpp-beginners/thread888017.html
Здравствуйте, в файле хранится база данных в формате: "Предприятие; Форма собственности; Владелец; Продукция; Отрасль; Телефон Предприятие1; Форма собственности1; Владелец1; Продукция1; Отрасль1; Телефон1 ..." Все эти записи хранятся в "records basa;" Пытаюсь сделать поиск, но выходит дрянь. Если выбираю по полю (в строчном виде), то выводит постоянно вторую строку. Если по номеру телефона,...
C++ Дана строка символов и некоторый символ sym. Сформируйте новую строку, вставив после каждого вхождения символа sym пробел Помогите прокомментировать код задачки. Вот задачка: Дана строка символов и некоторый символ sym. Сформируйте новую строку, вставив после каждого вхождения символа sym пробел. Подсчитайте количество различных слов в образовавшейся строке. Вот код: #include "StdAfx.h" #include <iostream> #include <conio.h> using namespace std; int const SIZE=200; подробнее

Показать сообщение отдельно
itess
Сообщений: n/a

Переписать массив структур в бинарный файл - C++

02.06.2013, 14:18. Просмотров 335. Ответов 0
Метки (Все метки)

Условие программы:Описать структуру с именем WORKER, содержащую следующие поля:
□ фамилия и инициалы работника;
□ название занимаемой должности;
□ год поступления на работу.
Написать программу, выполняющую следующие действия:
□ ввести данные в массив, состоящий из десяти структур типа WORKER; записи должны быть размещены по алфавиту;
□ вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;
□ если таких работников нет, вывести на дисплей соответствующее сообщение.

1)Первоначально информация хранится в текстовом файле “baza.txt” в виде строк.
Прочитать информацию из файла в массив структур и вывести его на экран.
Выполнить задания вариантов и результат вывести на экран и в текстовый файл “otchet.txt”.
2)Переписать массив структур в бинарный файл “baza.dat”.
Используя функцию позиционирования прочитать 2 по счёту запись и 3 с конца и вывести их на экран и в файл “otchet.txt” (дописать - append).

1 часть:
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
#include <iostream> 
#include <fstream> 
#include <string>  
#include <cstring>
using namespace std; 
 
struct Worker // структура 
{  
    char FIO[20]; 
    string doljnost; 
    int year; 
};  
 
 
 
int main() 
{   ofstream output("otchet.txt");
    
    printf("\n pamjat = %7d\n",sizeof(Worker));
 
    const int size = 10;  // количесто работников
    Worker wok[size];   // массив работников
    int N; 
    int flag = 0;      // счётчик по стажу
 
    int n = 0; 
    int i, j, k;
    ifstream infile; 
    infile.open("baza.txt"); // открываем файл
 
    while(!infile.eof())   // считываем в массив до конца файла
    { 
        infile >> wok[n].FIO >> wok[n].doljnost >> wok[n].year; 
        n++; 
    } 
 
    for (i = 0; i < size; i++) 
        for ( j = i + 1; j < size; j++)  // сортируем по фамилиям
        { 
            if(strcmp(wok[i].FIO, wok[j].FIO) > 0) 
            {   
                Worker temp;
                strcpy(temp.FIO, wok[i].FIO);
                temp.doljnost = wok[i].doljnost; 
                temp.year = wok[i].year;  
 
                strcpy(wok[i].FIO, wok[j].FIO); 
                wok[i].doljnost = wok[j].doljnost; 
                wok[i].year = wok[j].year; 
 
                strcpy(wok[j].FIO, temp.FIO); 
                wok[j].doljnost = temp.doljnost; 
                wok[j].year = temp.year; 
            }
 
            } 
 
       for (  i = 0; i < size; i++) // выводим отсортированный список
        { 
        cout << wok[i].FIO << endl; 
        cout << wok[i].doljnost << " " << wok[i].year << endl;
        output << wok[i].FIO << endl; 
        output << wok[i].doljnost << " " << wok[i].year << endl;
        output << endl << endl;  
        }  
        cout<<"\nVsego "<<10<<" zapisei "<<"\n";
 
        cout << endl << endl;  
        cout << "Inter a year " << endl; 
        cin >> N;
        cout<<"\nRabotniki so stajem bolshe "<<N<<" let: "<<"\n"; 
 
        for ( i = 0; i < size; i++) 
            if( N < 2013 - wok[i].year) // сравниваем стаж от 2013
            { 
                cout << wok[i].FIO << " " << wok[i].doljnost << " " << wok[i].year << endl;
                output << wok[i].FIO << " " << wok[i].doljnost << " " << wok[i].year << endl;
                output.close(); 
                flag++; // если есть выполнение условия увеличиваем счётчик
            } 
 
            if(flag == 0)  // если счётчик равен 0
                cout << "there is no such workers " << endl; // таких работников нет
                output << "there is no such workers " << endl;
                output.close();
 
                system("pause");
                return 0;}
тут все работает, но как теперь переписать массив в бинарный файл?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru