С++ объекты и классы

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Шиншилка
Сообщения: 3
Зарегистрирован: 22 апр 2011, 12:45

Составить программу для подсчёта количества сотрудников компании, у которых стаж работы больше 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: :p rint()
{
        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();
}
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Вопросы:
- Где delete для new? За мемори ликами не следишь?
- Почему не используешь конструктор? Я бы ожидал увидеть вместо set как раз конструктор.
- Зачем локальные переменные в начале main? Они же не используются.
- Почему класс называется Company, но при этом содержит такие данные, что создаётся впечатление, что он описывает сотрудника?


Предлагаю модифицировать программу так, чтобы всё стало на свои места, тогда и поиск можно будет организовать.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Шиншилка
Сообщения: 3
Зарегистрирован: 22 апр 2011, 12:45

Помогите мне это сделать.Пожалуйста.
Ответить