Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
1 / 1 / 6
Регистрация: 26.04.2009
Сообщений: 234

Структуры... Задача: "База сотрудников небольшой фирмы"

21.05.2009, 10:50. Показов 2206. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По каждому сотруднику вводится следующая информация:
• Фамилия, имя, отчество;
• год и дата рождения;
• пол;
• стаж работы по специальности;
• домашний адрес;
• телефон;
• должность;
• оклад.

Информация о сотрудниках фирмы хранится в файле workers.dat.

помогите исправить, пожалуйста вот эту ошибку....
[img]http://i010.***********/0905/d0/69978df9d0e1.jpg[/img]

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
#include "stdafx.h"
#include "iostream"
#include<conio.h>
#include<stdio.h>
 
using namespace std;
 
struct WK 
{
    char fio[30];
    int year;
    char pol;
    int stag;
    char adres;
    int phone;
    char dolg;
    int oklad;
};
WK mas[10];//массив типа WK
 
//Пpоцедуpа ввода в базу
WK init (WK wk)
{
    cout<<"Vvedite familiyu, imya, otchestvo:"<<endl;
    cin.getline(wk.fio,30);//считать стpоку длиной 30 символов
 
    cout<<"Vvedite god i datu rozhdeniya:"<<endl;
    cin>>wk.year;
 
    cout<<"Vvedite pol:"<<endl;
    cin>>wk.pol;
 
    cout<<"Vvedite stag raboty po specialnosti:"<<endl;
    cin>>wk.stag;
 
    cout<<"Vvedite domashniy adres:"<<endl;
    cin>>wk.adres;
 
    cout<<"Vvedite telefon:"<<endl;
    cin>>wk.phone;
 
    cout<<"Vvedite dolgnost:"<<endl;
    cin>>wk.dolg;
    
    cout<<"Vvedite oklad:"<<endl;
    cin>>wk.oklad;
 
return wk;//функция возвpащает заполненную стpуктуpу
 
}
 
//Пpоцедуpа ввода информации в базу
void writeBase(FILE *f, WK wk)
{
 
fprintf(f, "%s ", wk.fio);
fprintf(f, "%s ", wk.year);
fprintf(f, "%s ", wk.pol);
fprintf(f, "%d ", wk.stag);
fprintf(f, "%s ", wk.adres);
fprintf(f, "%d ", wk.phone);
fprintf(f, "%s ", wk.dolg);
fprintf(f, "%f ", wk.oklad);
 
}
 
//Вывод массива из файла
void foutmas(FILE *f, WK wk)
{
 
//Считываем значение из файла
fscanf(f, "%s", wk.fio);
//Выводим его на экpан
cout<<"Familia, imya, otchestvo: "<<wk.fio<< endl;
 
fscanf(f, "%d", wk.year);
cout<<"God i data rozhdeniya: "<<wk.year<< endl;
 
fscanf(f, "%s", wk.pol);
cout<<"Pol: "<<wk.pol<< endl;
 
fscanf(f, "%d", wk.stag);
cout<<"Stag: "<<wk.stag<< endl;
 
fscanf(f, "%s", wk.adres);
cout<<"Dom. adres: "<<wk.adres<< endl;
 
fscanf(f, "%d", wk.phone);
cout<<"Stag: "<<wk.phone<< endl;
 
fscanf(f, "%s", wk.dolg);
cout<<"Dolgnost: "<<wk.dolg<< endl;
 
fscanf(f, "%f", wk.oklad);
cout<<"Oklad: "<<wk.oklad<< endl;
 
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    WK wk;//Экземпляp стpуктуpы workers
 
int i=0;
 
FILE *f=fopen("workers.dat", "w+"); //Создаем файл
 
do 
{
mas[i]=init(wk); //Заполняем элемент массив
writeBase(f, mas[i]); //Записываем элемент в файл
i++;
fseek(f, 1, SEEK_CUR); //Пеpеходим на в файле на один символ
}
while(i<10);
 
i=0; //Обнуляем пеpеменную цикла
 
printf("Nazhmite klavishu dlya vyvoda bazy na ekran...\n");
getch();
do 
{
foutmas(f, mas[i]); //Считываем массив из файла и выводим на экpан
i++;
}
while(i<10);
 
fclose(f); //Закpываем файл
return 0; //Пpизнак удачного завеpшения пpогpаммы
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.05.2009, 10:50
Ответы с готовыми решениями:

Структуры: база данных сотрудников фирмы
Добрый вечер. Помогите пожалуйста найти ошибку в программе. Вот код: #include &lt;stdio.h&gt; #include &lt;conio.h&gt; typedef...

Помочь директору фирмы развезти сотрудников фирмы по домам на такси
После затянувшегося совещания директор фирмы решил заказать такси, чтобы развезти сотрудников по домам. Он заказал N машин - ровно столько,...

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

4
Эксперт С++
 Аватар для XuTPbIu_MuHTAu
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
21.05.2009, 11:58
под переменную "pol" выделен один символ,он же и читается из входного потока.
0
74 / 74 / 10
Регистрация: 15.04.2009
Сообщений: 126
21.05.2009, 17:17
steve09, у тебя после "cout<<"Vvedite pol:"<<endl; cin>>wk.pol;" сразу перескакивает все остальные?
0
1 / 1 / 6
Регистрация: 26.04.2009
Сообщений: 234
21.05.2009, 17:49  [ТС]
Цитата Сообщение от Extsm Посмотреть сообщение
steve09, у тебя после "cout<<"Vvedite pol:"<<endl; cin>>wk.pol;" сразу перескакивает все остальные?
да...

я это исправил...

теперь когда ввожу пследний элемент структуры выскакивает ошибка...


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
// ЛП.cpp : Defines the entry point for the console application.
 
#include "stdafx.h"
#include "iostream"
#include<conio.h>
#include<stdio.h>
 
using namespace std;
 
struct WK 
{
    char fio[30];
    int year;
    char pol[30];
    int stag;
    char adres[50];
    int phone;
    char dolg[30];
    char oklad[30];
};
WK mas[10];
WK init (WK wk)
{
cout<<"Vvedite familiyu, imya, otchestvo:"<<endl;
    cin.getline(wk.fio,30);
 
    cout<<"Vvedite god i datu rozhdeniya:"<<endl;
    cin>>wk.year;
 
    cout<<"Vvedite pol:"<<endl;
    cin>>wk.pol;
 
    cout<<"Vvedite stag raboty po specialnosti:"<<endl;
    cin>>wk.stag;
 
    cout<<"Vvedite domashniy adres:"<<endl;
    cin>>wk.adres;
 
    cout<<"Vvedite telefon:"<<endl;
    cin>>wk.phone;
 
    cout<<"Vvedite dolgnost:"<<endl;
    cin>>wk.dolg;
    
    cout<<"Vvedite oklad:"<<endl;
    cin>>wk.oklad;
 
return wk;
}
 
//Пpоцедуpа ввода информации в базу
void writeBase(FILE *f, WK wk)
{
 
fprintf(f, "%s ", wk.fio);
fprintf(f, "%s ", wk.year);
fprintf(f, "%s ", wk.pol);
fprintf(f, "%d ", wk.stag);
fprintf(f, "%s ", wk.adres);
fprintf(f, "%d ", wk.phone);
fprintf(f, "%s ", wk.dolg);
fprintf(f, "%s ", wk.oklad);
 
}
 
//Вывод массива из файла
void foutmas(FILE *f, WK wk)
{
 
//Считываем значение из файла
fscanf(f, "%s", wk.fio);
//Выводим его на экpан
cout<<"Familia, imya, otchestvo: "<<wk.fio<< endl;
 
fscanf(f, "%d", wk.year);
cout<<"God i data rozhdeniya: "<<wk.year<< endl;
 
fscanf(f, "%s", wk.pol);
cout<<"Pol: "<<wk.pol<< endl;
 
fscanf(f, "%d", wk.stag);
cout<<"Stag: "<<wk.stag<< endl;
 
fscanf(f, "%s", wk.adres);
cout<<"Dom. adres: "<<wk.adres<< endl;
 
fscanf(f, "%d", wk.phone);
cout<<"Stag: "<<wk.phone<< endl;
 
fscanf(f, "%s", wk.dolg);
cout<<"Dolgnost: "<<wk.dolg<< endl;
 
fscanf(f, "%s", wk.oklad);
cout<<"Oklad: "<<wk.oklad<< endl;
 
}
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    WK k;//Экземпляp стpуктуpы workers
 
int i=0;
 
FILE *f=fopen("workers.dat", "w+"); //Создаем файл
 
do 
{
mas[i]=init(k); //Заполняем элемент массив
writeBase(f, mas[i]); //Записываем элемент в файл
i++;
fseek(f, 1, SEEK_CUR); //Пеpеходим на в файле на один символ
}
while(i<10);
 
i=0; //Обнуляем пеpеменную цикла
 
printf("Nazhmite klavishu dlya vyvoda bazy na ekran...\n");
getch();
do 
{
foutmas(f, mas[i]); //Считываем массив из файла и выводим на экpан
i++;
}
while(i<10);
 
fclose(f); //Закpываем файл
return 0; //Пpизнак удачного завеpшения пpогpаммы
}
0
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
22.05.2009, 15:38
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void writeBase(FILE *f, WK wk)
{
 
fprintf(f, "%s ", wk.fio);
fprintf(f, "%s ", wk.year);//Замени %s на %d
fprintf(f, "%s ", wk.pol);
fprintf(f, "%d ", wk.stag);
fprintf(f, "%s ", wk.adres);
fprintf(f, "%d ", wk.phone);
fprintf(f, "%s ", wk.dolg);
fprintf(f, "%s ", wk.oklad);
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.05.2009, 15:38
Помогаю со студенческими работами здесь

Структуры:задача про несчастных сотрудников
Информация о сотрудниках фирмы включает ФИО, табельный номер, количество отработанных часов за месяц, почасовой тариф. Рабочее время свыше...

Настройка сети небольшой фирмы
Здравствуйте! Мне нужна помощь в создание сети в небольшой фирме. Начну по порядку. Итак, есть антенна Yota, начинка антенны такая -...

Сервер для небольшой фирмы c GIT
Доброго времени суток! Помогите определиться с сервером пожалуйста и дайте пару советов на счет сервера. Сервер должен выполнять...

Выбор СУБД для небольшой фирмы
Доброго времени суток! Уважаемые форумчане, подскажите по такому вопросу. Есть небольшая фирма, на данный момент вся отчетность...

Cisco оборудование для небольшой фирмы
Нужно подобрать оборудование для небольшой фирмы(20-30 комп). Сеть будет построена на основе Cisco SAFE-SCF Т.е. вопрос какой серии...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru