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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2011, 22:14   #1
Шиншилка
Пользователь
 
Регистрация: 20.04.2011
Сообщений: 11
По умолчанию С++ объекты и классы

Составить программу для подсчёта количества сотрудников компании, у которых стаж работы больше 15 лет.
использовать функций инициализации set() и вывода результатов print()
У меня не получается написать метод посчёта количества сотрудников.Напишите пожалуйста примерный код.Спасибо.
Код:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <string.h>
 
 
 
class Company
{
        char *fio;
        int staj, value;
 
public:
        void set(char *, int, int);
        void print();
        
};
 
 
void Company::set(char *c_fio, int c_staj, int c_value) 
{
        
        fio   = new char[strlen(c_fio)+1];
        
        strcpy(fio,c_fio);
        staj=c_staj;
        value=c_value;
 
}
void Company::print()
{
        printf("\nInfo :  %s\t%d\n", fio, staj);//информация
        printf("\n");
        
}
void main(void)
{ 
        char  input_fio[50];
        int input_staj, input_value;
 
Company AB2;
AB2.set("Ivanov I.I.", 16,1);
AB2.print();
 
Company AB3;
AB3.set("Sidorov S.S.", 10,1);
AB3.print();
 
        getch();
}
Шиншилка вне форума Ответить с цитированием
Старый 20.04.2011, 23:20   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Стоит для начала сделать возможность получать значение поля 'стаж' не из методов класса. А потом в цикле проверить все объекты.
Son Of Pain вне форума Ответить с цитированием
Старый 21.04.2011, 13:36   #3
Шиншилка
Пользователь
 
Регистрация: 20.04.2011
Сообщений: 11
По умолчанию

Как в цикле проверить все объекты?
Напишите пример.
Шиншилка вне форума Ответить с цитированием
Старый 21.04.2011, 15:53   #4
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Смотря как они хранятся ) Если в массиве, то, например,
Код:
int how_many=0;
for (int i=0; i<count; i++)
   if (arr[i].get_staj()>15) how_many++;
Son Of Pain вне форума Ответить с цитированием
Старый 22.04.2011, 13:28   #5
Шиншилка
Пользователь
 
Регистрация: 20.04.2011
Сообщений: 11
По умолчанию

А если объекты хранятся не в массиве?
Шиншилка вне форума Ответить с цитированием
Старый 22.04.2011, 13:31   #6
Billy txt
Новичок
Джуниор
 
Регистрация: 22.04.2011
Сообщений: 1
По умолчанию

Помогите найти операторы для описания одномерных массивов на visual basic
Billy txt вне форума Ответить с цитированием
Старый 22.04.2011, 19:24   #7
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

Цитата:
А если объекты хранятся не в массиве?
а как они еще могут хранится?
Цитата:
Помогите найти операторы для описания одномерных массивов на visual basic
я думаю там 1 оператор - []
onewho вне форума Ответить с цитированием
Старый 22.04.2011, 19:53   #8
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ну, вот мой вариант кода для С++ Builder 6:
Код:


#pragma hdrstop

#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <vcl.h>
#define string String

class Staff
{
    public:
       Staff() {}
       ~Staff() {}
       void SetName(string fN)
       {
            fullName = fN;
       }
       void SetAge(int a)
       {
            experience = a;
       }
       int getExp()
       {
            return experience;
       }
       String getName()
       {
           return String(fullName);
       }
    protected:
       string fullName;
       int experience;
};

int main(int argc, char* argv[])
{
        Staff myA[5];
        for (int i = 0;i<5;i++)
        {
                myA[i].SetAge(i*5);
        }
        for (int i = 0;i<5;i++)
        {
                if (myA[i].getExp() >= 15)
                {
                        std::cout<<i+1<<std::endl;
                }
        }
        getch();
        return 0;
}
P.S. C++ Builder 6 не признаёт тип string, ему видите ли String больше нравится - приходится извращаться, делая так
Код:
#define string String
_-Re@l-_ вне форума Ответить с цитированием
Старый 22.04.2011, 20:11   #9
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Цитата:
P.S. C++ Builder 6 не признаёт тип string, ему видите ли String больше нравится - приходится извращаться, делая так
Код:

#define string String
А вы часом namespace не забыли указать?

Код:
using namespace std;
.................
string str="Ok";

//=================== Или ===============

std::string str="Ok";
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 22.04.2011, 20:19   #10
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Хе-хе, интересно, работает...
Раньше такое не проканывало - хотя, возможно, я раньше что-то не так делал.
_-Re@l-_ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Классы, объекты,поля объектов Mr_skiner Общие вопросы Delphi 9 10.03.2011 23:07
Как в дефли в функцию передаются объекты (классы) TwiX Общие вопросы Delphi 5 13.12.2010 23:17
Инкапсуляция. Классы и их компоненты. Объекты gessi Общие вопросы C/C++ 0 09.09.2010 16:05
TurboPascal: объекты и классы, прямоугольник с рамочкой ulala Помощь студентам 0 05.11.2009 17:28
TurboPascal: объекты и классы ulala Помощь студентам 1 28.10.2009 17:20