singlepost

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

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

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

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

//i010.radikal.ru/0905/d0/69978df9d0e1.jpg

#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аммы
}

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

  1. 3
    Сергей Варфоломеев ответил:

    char pol;
    char adres;
    char dolg;

  2. 2
    Леонид Максимов ответил:

    > помогите исправить, пожалуйста вот эту ошибку….
    //i010.radikal.ru/0905/d0/69978df9d0e1.jpg

    вам указать, в каком месте скриншота ошибка? так вот же она: //s60.radikal.ru/i168/0905/06/517fef470947.jpg

  3. 1
    Жека Кирпичев ответил:

    Ты сам писал программу? Если да, то почему ты считаешь, что она, согласно ее исходному коду, должна работать иначе?

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.