Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2010, 15:04   #1
Lovelesska
 
Регистрация: 24.11.2010
Сообщений: 4
По умолчанию Структуры

Помогите исправить ошибку пожалуйста, задание такое:

Описать структуру с именем WORKER, содержащую следующие поля:

- фамилия и инициалы работника;

- название занимаемой должности;

- год поступления на работу.

Написать программу, выполняющую следующие действия:

- ввод с клавиатуры данных в массив, состоящий из десяти структур

типа WORKER; записи должны быть размещены по алфавиту.

- вывод на дисплей фамилий работников, чей стаж работы в организации

превышает значение, введенное с клавиатуры;

- если таких работников нет, вывести на дисплей соответствующее сообщение.

Код: #include <iostream.h>
#include <string.h>
struct worker
{
int YEAR;
char DOL;
char NAME;
};
int main (){
int n;
int DATA;
worker TABL[10];
for (n=0;n<10;n++)
{
cout<<endl;
cout<<"vvedite name";
cin>>TABL[n].NAME;
cout<<"vvedite dolgnost";
cin>>TABL[n].DOL;
cout<<"vvedite year";
cin>>TABL[n].YEAR;
}
cout<<endl;
int sort=TABL[n].NAME.compare(0,1,TABL[n].NAME,1,1);
cout<<"vvedite date";
cin>>DATA;
for(n=0;n<10;n++)
{
if (TABL[n].YEAR<=DATA)
{
cout<<""<<TABL[n].NAME;
cout<<""<<TABL[n].DOL;
cout<<""<<TABL[n].YEAR<<endl;
}
else
{
int clrscr();
cout<<"RABOTNIKOV NET";
}
}
for (n=0;n<10;n++)
{
cout<<""<<TABL[n].NAME;
cout<<""<<TABL[n].DOL;
cout<<""<<TABL[n].YEAR;
}
return 0;
}


выдаёт такую ошибку error C2228: left of '.compare' must have class/struct/union type
Lovelesska вне форума Ответить с цитированием
Старый 30.11.2010, 15:55   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Вам зачем метод compare? Просто он классу String относится вот поэтому и ошибка!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 30.11.2010, 16:01   #3
Lovelesska
 
Регистрация: 24.11.2010
Сообщений: 4
По умолчанию

А чем можно заменить её?
Lovelesska вне форума Ответить с цитированием
Старый 30.11.2010, 16:03   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

А тебе она зачем вообще?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 30.11.2010, 16:08   #5
Lovelesska
 
Регистрация: 24.11.2010
Сообщений: 4
По умолчанию

Если бы я знала, просто программу писала не я *я чайник в этом во всем*
сначала работала и не выдавала этой ошибки, а теперь ругается на неё
Lovelesska вне форума Ответить с цитированием
Старый 30.11.2010, 16:29   #6
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Ну как я понял compare проверяет расположение объектов в сортировке
Поэтому можно отсортировать так
Код:
#include <iostream.h>
#include <string.h>
struct worker
{
int YEAR;
char DOL;
char NAME;
};
int main (){
int n;
int flag = 1;
char Temp;
int DATA;
worker TABL[10];
for (n=0;n<10;n++)
{
cout<<endl;
cout<<"vvedite name";
cin>>TABL[n].NAME;
cout<<"vvedite dolgnost";
cin>>TABL[n].DOL;
cout<<"vvedite year";
cin>>TABL[n].YEAR;
}
cout<<endl;
//сортировка
do
{
     flag = 1;
     for (n=0; n< 9; n++)
     {
          if (TABL[n].NAME > TABL[n+1].NAME)
          {
              Temp = TABL[n].NAME;
              TABL[n].NAME = TABL[n+1].NAME;
              TABL[n+1].NAME = Temp;
              flag = 0;
          }
     }
} while (flag = 0);
cout<<"vvedite date";
cin>>DATA;
for(n=0;n<10;n++)
{
if (TABL[n].YEAR<=DATA)
{
cout<<""<<TABL[n].NAME;
cout<<""<<TABL[n].DOL;
cout<<""<<TABL[n].YEAR<<endl;
}
else
{
int clrscr();
cout<<"RABOTNIKOV NET";
}
}
for (n=0;n<10;n++)
{
cout<<""<<TABL[n].NAME;
cout<<""<<TABL[n].DOL;
cout<<""<<TABL[n].YEAR;
}
return 0;
}
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры masha.dongyz Помощь студентам 2 19.12.2011 20:29
Структуры C++ Irino4ka-LOL Помощь студентам 1 15.02.2010 08:44
Структуры С++ atenon Общие вопросы C/C++ 2 23.12.2009 14:59
Структуры в C++ Wia Помощь студентам 7 18.04.2009 15:51