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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
steve09
1 / 1 / 0
Регистрация: 26.04.2009
Сообщений: 216
#1

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

21.05.2009, 10:50. Просмотров 1337. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2009, 10:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Структуры... Задача: "База сотрудников небольшой фирмы" (C++):

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

Чтения структуры из файла (описать структуру с именем "ORDER": "счет плательщика"; "счет получателя"; "сумма, переводится банковской операцией") - C++
Описать структуру с именем &quot;ORDER&quot;, содержащий следующие поля: &quot;Счет плательщика&quot;; &quot;Счет получателя&quot;; &quot;Сумма, переводится банковской...

Даны три слова - "мама", "мыла", "раму". Задача - напечатать всевозможные варианты построения слов - C++
Я записал код, однако эту часть надо автоматизировать, поможете? КОД: } #include &lt;iostream&gt; using namespace std; int main()...

Необработанное исключение в "0x76f015de" в "контрольная 1 задача 2.exe": 0xC0000005: Нарушение прав доступа при чтении "0x334e2c64" - C++
доброго времени суток. Необработанное исключение в &quot;0x76f015de&quot; в &quot;контрольная 1 задача 2.exe&quot;: 0xC0000005: Нарушение прав доступа при...

Задача на создание структуры "Багаж пассажира" в С++ - C++
Есть такая задача: Багаж пассажира характеризуется его фамилией , количеством вещей и общим весом вещей . вывести на экран перечень и...

Задача на структуры ("Контроль успеваемости группы") - C++
Помогите решить задачу. Условие: Напишите программу &quot;Контроль успеваемости группы&quot;. Информация организуется в виде структур....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
21.05.2009, 11:58 #2
под переменную "pol" выделен один символ,он же и читается из входного потока.
0
Extsm
73 / 73 / 5
Регистрация: 15.04.2009
Сообщений: 126
21.05.2009, 17:17 #3
steve09, у тебя после "cout<<"Vvedite pol:"<<endl; cin>>wk.pol;" сразу перескакивает все остальные?
0
steve09
1 / 1 / 0
Регистрация: 26.04.2009
Сообщений: 216
21.05.2009, 17:49  [ТС] #4
Цитата Сообщение от Extsm Посмотреть сообщение
steve09, у тебя после "cout<<"Vvedite pol:"<<endl; cin>>wk.pol;" сразу перескакивает все остальные?
да...

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

теперь когда ввожу пследний элемент структуры выскакивает ошибка...
http://s56.***********/i152/0905/2c/9986b1d66b11.jpg

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
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
22.05.2009, 15:38 #5
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2009, 15:38
Привет! Вот еще темы с ответами:

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Создание структуры "префиксное дерево". Ошибка "Access violation writing location". - C++
Есть структура данных - бор или префиксное дерево. class trie { char value; // символ узла trie** pointers; // ссылки на...

Заполнить структуры "Прямоугольник" и "Треугольник" и найти площади и периметры фигур - C++
Доброго времени суток! Начали изучать структуры, сижу над задачкой, да вот не идет она у меня. Нужно создать две структуры : -...

Структуры "Студент" и "Дата": с чем связана данная ошибка? - C++
С чем связана данная ошибка? //--------------------------------------------------------------------------- /* Составить список группы...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.05.2009, 15:38
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru