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

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

21.05.2009, 10:50. Показов 2175. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru