Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 2
Регистрация: 06.03.2015
Сообщений: 6
1

Структура "Безработный"

05.06.2015, 16:48. Показов 668. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В текстовом файле находится информация о безработных, стоящих на
учете на бирже труда. Каждый безработный характеризуется следующими данными:
фамилия, имя, отчество, профессия, стаж работы, год рождения, дата постановки на учет
(состоит из дня, месяца и года). Необходимо выполнить:
 считывание данных из текстового файла (в файле должно быть не менее 12 записей) и
их запись в структурированный файл (двоичный файл, содержащий структуры);
 сортировку данных в двоичном файле по фамилиям безработных (в алфавитном
порядке);
 вывод информации о безработных заданной профессии, возраст которых не превышает
30 лет (текущая дата вводится с клавиатуры);
 пункты 2-3 из предыдущей лабораторной работы.
вот что уже есть
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
139
140
141
142
143
144
145
146
147
148
149
150
# include <string>
# include <stdio.h>
# include <stdlib.h>
# include <windows.h>
# include <fstream>
# include <iostream>
# include <conio.h>
# include <iomanip>
typedef struct
{
    char familiya[30];
    char imya[30];
    char otchestvo[30];
    char professia[30];
    int stag;
    int godrogdenia;
    int datapostanovki;
} bezrabotniy;
using namespace std;
void showmenu()
{
cout<<"выберете 1,2,3,4 или 0: \n"
 "1) вывод информации о безработных заданной профессии, стаж работы которых превышает значение, заданное с клавиатуры \n"
 "2) вывод информации о безработных, вставших на учет ранее заданного года \n"
 "3) упорядочить данные о безработных по их фамилии \n"
 "0) Конец работы\n";
}
bezrabotniy vvod(fstream& istr) 
{
    bezrabotniy bez;
    istr>>bez.familiya>>bez.imya>>bez.otchestvo>>bez.professia>>bez.stag>>bez.godrogdenia>>bez.datapostanovki;
    return bez;
}
bezrabotniy vvodbin()
{
 
}
void vyvod(bezrabotniy& bez)
{
    cout<<setw(25)<<"фамилия"<<"\t|"<<setw(25)<<"имя"<<"\t|"<<setw(25)<<"отчество"<<"\t|"<<setw(25)<<"профессия"<<"\t|"
    <<setw(25)<<"стаж"<<"\t|"<<setw(25)<<"год рождения"<<"\t|"<<setw(25)<<"дата постановки на учет"<<endl;
    cout<<setw(25)<<bez.familiya<<"\t|"<< setw(25)<<bez.imya<<"\t|";
    cout<<setw(25)<<bez.otchestvo<<"\t|"<<setw(25)<<bez.professia<<"\t|"
    <<setw(25)<<bez.stag<<"\t|"<<setw(25)<<bez.godrogdenia<<"\t|"<<setw(25)<<bez.datapostanovki<<"\t|"<<endl;
}
void vyvodbin(bezrabotni& bez, fstream& ostr)
{
     ostr.write((char*)&bez, sizeof(bez));
}
void sortbez(fstream& fs)
{
    fs.seekg(0);
    bezrabotniy cur;
    bezrabotniy next;
    int i=1;
    for(i=1;i<n;++i)
    {
        fs.seekg((i-1)*sizeof(cur));
        vvodbin(fs, &cur);
        fs.seekg(i*sizeof(next));
        vvodbin(fs, &next);
        for(int j=i;j>0;--j)
        {
            fs.seekg(j*sizeof(next));
            vvodbin(fs, &next);
            fs.seekg((j-1)*sizeof(cur));
            vvodbin(fs, &cur);
            if(next.familiya>cur.familiya)
            {
                fs.seekg(j*sizeof(cur));
                vyvodbin(cur, fs);
                fs.seekg((j-1)*sizeof(cur));
                vyvodbin((next), fs);
            }
        }
    }
}
void stagiprofessia(char *a,int b,bezrabotniy *bez, int n)
{
    cout<<setw(25)<<"фамилия"<<"\t|"<<setw(25)<<"имя"<<"\t|"<<setw(25)<<"отчество"<<"\t|"<<setw(25)<<"профессия"<<"\t|"
    <<setw(25)<<"стаж"<<"\t|"<<setw(25)<<"год рождения"<<"\t|"<<setw(25)<<"дата постановки на учет"<<endl;
{
for (int i=0;i<n; i++)
    if ((strcmp(bez[i].professia,a)==0)&&(b>=bez[i].stag))
      {
        cout<<setw(25)<<bez[i].familiya<<"\t|"<< setw(25)<<bez[i].imya<<"\t|";
        cout<<setw(25)<<bez[i].otchestvo<<"\t|"<<setw(25)<<bez[i].professia<<"\t|"
        <<setw(25)<<bez[i].stag<<"\t|"<<setw(25)<<bez[i].godrogdenia<<"\t|"<<setw(25)<<bez[i].datapostanovki<<"\t|"<<endl;
      }
}
}
void data(bezrabotniy *bez,int n,int s)
{
    cout<<setw(25)<<"фамилия"<<"\t|"<<setw(25)<<"имя"<<"\t|"<<setw(25)<<"отчество"<<"\t|"<<setw(25)<<"профессия"<<"\t|"
    <<setw(25)<<"стаж"<<"\t|"<<setw(25)<<"год рождения"<<"\t|"<<setw(25)<<"дата постановки на учет"<<endl;
    {
for (int i=0;i<n; i++)
    if ((s<bez[i].datapostanovki))
      {
        cout<<setw(25)<<bez[i].familiya<<"\t|"<< setw(25)<<bez[i].imya<<"\t|";
        cout<<setw(25)<<bez[i].otchestvo<<"\t|"<<setw(25)<<bez[i].professia<<"\t|"
        <<setw(25)<<bez[i].stag<<"\t|"<<setw(25)<<bez[i].godrogdenia<<"\t|"<<setw(25)<<bez[i].datapostanovki<<"\t|"<<endl;
      }
    }
}
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    fstream in;
    fstream fs;
    fs.open("bezrabotniy.dat", ios_base::in | ios_base::out | ios_base::binary);
    in.open("bezrabotniy.txt", ios_base::in);
    int n=0;
    cin>>n;
    char a[30];
    int b;
    bezrabotniy *bez;
    bez = new bezrabotniy[n];
    vvod(bez,n);
    vyvod(bez,n);
    showmenu();
    int choice;
    cin>>choice;
    while (choice !=0)
     {
        switch(choice)
     { 
case 1:
          cout<<"Введите профессию и стаж работы:"<<endl;
     cin>>a>>b;
     stagiprofessia(a,b,bez,n);
          break;
        case 2:
 int s;
 cout<<"Введите год постановки на учет: "<<endl;
     cin>>s;
     data(bez,n,s);
          break;
case 3:
 cout<<"сортировка в алфовитном порядке"<<endl;
          sortbez(bez, n) ;
          break;
          default: cout<<"Не является выбором\n";
     }
    showmenu();
    cin>>choice;  
}
_getch();
}
Добавлено через 1 минуту
я и сам пишу но плохо понимаю
возможно с вами быстрее
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2015, 16:48
Ответы с готовыми решениями:

В текстовом файле структура – информация о компьютерах. Структура с полями: название, стоимость.
Ребят, помогите пожалуйста, 29 июня экзамен по &quot;Основы программирования&quot;,кто сколько сможет сделать...

Структура «База», сущности «Универсам» и «Продукты», структура «Товар»
1. Создать структуру «База», включающую не менее 3 полей. 2. Создать сущности «Универсам» и...

структура array предназначена для хранения строки типа char. Структура имеет функцию, которая позволяет изменить символ
структура array предназначена для хранения строки типа char. Структура имеет функцию, которая...

Структура DateTime, битовая структура
Условие: Структура содержит информацию о дате и времени некоторого события: struct datetime...

Структура, доступная из всех файлов проекта ("глобальная" структура)
Есть четыре структуры (body, gun, enemy, st), описанные в main.cpp. К main.cpp подключен хедер...

2
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
05.06.2015, 17:28 2
А в чём вопрос? Что не получается - и минимальный код примера, где показана ваша ошибка
0
0 / 0 / 2
Регистрация: 06.03.2015
Сообщений: 6
05.06.2015, 17:35  [ТС] 3
я пытаюсь переделать предыдущую задачу под новые условия но я не могу понять как добавить считывание с файла
хранение в бинарном файле
и завязать функции на бинарном файле

Добавлено через 30 секунд
пока пытаюсь но получается не очень

Добавлено через 3 минуты
вот прошлая
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
139
140
141
142
143
144
145
146
147
# include <string>
# include <stdio.h>
# include <stdlib.h>
# include <windows.h>
# include <iostream>
# include <conio.h>
# include <iomanip>
typedef struct
{
    char familiya[30];
    char imya[30];
    char otchestvo[30];
    char professia[30];
    int stag;
    int godrogdenia;
    int datapostanovki;
} bezrabotniy;
using namespace std;
void showmenu()
{
cout<<"выберете 1,2,3 или 0: \n"
 "1) вывод информации о безработных заданной профессии, стаж работы которых превышает значение, заданное с клавиатуры \n"
 "2) вывод информации о безработных, вставших на учет ранее заданного года \n"
 "3) упорядочить данные о безработных по их фамилии \n"
 "0) Конец работы\n";
}
void vvod(bezrabotniy *bez, int n) 
{
for (int i=0;i<n;i++)
{
cout<<"фамилия: ";
cin>>bez[i].familiya;
cout<<"имя: ";
cin>>bez[i].imya;
cout<<"отчество: ";
cin>>bez[i].otchestvo;
cout<<"профессия: ";
cin>>bez[i].professia;
cout<<"стаж: ";
cin>>bez[i].stag;
cout<<"год рождения: ";
cin>>bez[i].godrogdenia;
cout<<"дата постановки на учет: ";
cin>>bez[i].datapostanovki;
}
}
void vyvod(bezrabotniy *bez, int n)
{
    cout<<setw(25)<<"фамилия"<<"\t|"<<setw(25)<<"имя"<<"\t|"<<setw(25)<<"отчество"<<"\t|"<<setw(25)<<"профессия"<<"\t|"
    <<setw(25)<<"стаж"<<"\t|"<<setw(25)<<"год рождения"<<"\t|"<<setw(25)<<"дата постановки на учет"<<endl;
    for (int i=0;i<n;i++)
    {
        cout<<setw(25)<<bez[i].familiya<<"\t|"<< setw(25)<<bez[i].imya<<"\t|";
        cout<<setw(25)<<bez[i].otchestvo<<"\t|"<<setw(25)<<bez[i].professia<<"\t|"
        <<setw(25)<<bez[i].stag<<"\t|"<<setw(25)<<bez[i].godrogdenia<<"\t|"<<setw(25)<<bez[i].datapostanovki<<"\t|"<<endl;
    }
}
void sortbez(bezrabotniy *bez, int n)
{
     { 
  bezrabotniy k;
       bool fl;
       do
         {
            fl=1; 
            for (int i=0; i<n-1;i++)                      
            if(bez[i].familiya>bez[i+1].familiya)                                           
               {                                           
                    k=bez[i];
                    bez[i]=bez[i+1];
                    bez[i+1]=k;
                    fl=0; 
               }
         }
         while (!fl);
         vyvod(bez, n);
     }
}
void stagiprofessia(char *a,int b,bezrabotniy *bez, int n)
{
    cout<<setw(25)<<"фамилия"<<"\t|"<<setw(25)<<"имя"<<"\t|"<<setw(25)<<"отчество"<<"\t|"<<setw(25)<<"профессия"<<"\t|"
    <<setw(25)<<"стаж"<<"\t|"<<setw(25)<<"год рождения"<<"\t|"<<setw(25)<<"дата постановки на учет"<<endl;
{
for (int i=0;i<n; i++)
    if ((strcmp(bez[i].professia,a)==0)&&(b>=bez[i].stag))
      {
        cout<<setw(25)<<bez[i].familiya<<"\t|"<< setw(25)<<bez[i].imya<<"\t|";
        cout<<setw(25)<<bez[i].otchestvo<<"\t|"<<setw(25)<<bez[i].professia<<"\t|"
        <<setw(25)<<bez[i].stag<<"\t|"<<setw(25)<<bez[i].godrogdenia<<"\t|"<<setw(25)<<bez[i].datapostanovki<<"\t|"<<endl;
      }
}
}
void data(bezrabotniy *bez,int n,int s)
{
    cout<<setw(25)<<"фамилия"<<"\t|"<<setw(25)<<"имя"<<"\t|"<<setw(25)<<"отчество"<<"\t|"<<setw(25)<<"профессия"<<"\t|"
    <<setw(25)<<"стаж"<<"\t|"<<setw(25)<<"год рождения"<<"\t|"<<setw(25)<<"дата постановки на учет"<<endl;
    {
for (int i=0;i<n; i++)
    if ((s<bez[i].datapostanovki))
      {
        cout<<setw(25)<<bez[i].familiya<<"\t|"<< setw(25)<<bez[i].imya<<"\t|";
        cout<<setw(25)<<bez[i].otchestvo<<"\t|"<<setw(25)<<bez[i].professia<<"\t|"
        <<setw(25)<<bez[i].stag<<"\t|"<<setw(25)<<bez[i].godrogdenia<<"\t|"<<setw(25)<<bez[i].datapostanovki<<"\t|"<<endl;
      }
    }
}
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int n=0;
    cin>>n;
    char a[30];
    int b;
    bezrabotniy *bez;
    bez = new bezrabotniy[n];
    vvod(bez,n);
    vyvod(bez,n);
    showmenu();
    int choice;
    cin>>choice;
    while (choice !=0)
     {
        switch(choice)
     { 
case 1:
          cout<<"Введите профессию и стаж работы:"<<endl;
     cin>>a>>b;
     stagiprofessia(a,b,bez,n);
          break;
        case 2:
 int s;
 cout<<"Введите год постановки на учет: "<<endl;
     cin>>s;
     data(bez,n,s);
          break;
case 3:
 cout<<"сортировка в алфовитном порядке"<<endl;
          sortbez(bez, n) ;
          break;
          default: cout<<"Не является выбором\n";
     }
    showmenu();
    cin>>choice;  
}
_getch();
}
0
05.06.2015, 17:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2015, 17:35
Помогаю со студенческими работами здесь

Структура и вложенная структура
Подскажите как сделать задание, такого рода Иванов Математика 80 История 60...

Тип структура. Описать, используя тип структура
Описать, используя тип структура, данные на учеников (фамилия, улица, дом, квартира). Составить...

Безработный BreakPoint
Здравствуйте. Возникла проблема с правильностью значения, возвращаемого функцией, поэтому я решил...

Разработать класс Jobless (безработный)
Делаю для себя,чтобы закрепить знания.Взял наугад задание.Суть такая 1. Разработать класс на языке...

Структура современной связи как структура системы власти - как структура государственного управления
Структура современной связи всё больше становится структурой государственного управления, в...

Структура(ошибка в лабе(структура в структуре b чтение данных через txt)
Даны две структуры содержащие &quot;афоризмы&quot; и &quot;пословицы&quot;, которые объединяются в другой структуре,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru