Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> счетчики, наследование и так по мелочи 
:(
    Опции темы
dgolukas
  Дата 20.9.2009, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 30.8.2009

Репутация: нет
Всего: нет



видимо, скоро буду тащить сюда ящиками пиво)
снова случился ступор(
вопросов несколько:
-надо сделать счетчик в конструктор в эмплоии, который будет выдавать табельные номера сотрудникам. в коде обозван tabnumb. вот вопрос как его лучше реализовать
-для установки даты приема сотрудника подключила хиддер класса дата и объявила переменную этого же класса priem в эмплои. но почему-то компилятор на инициализации переменной в конструкторе эмплои очень ругается. не пойму почему, точнее как эту инициализацию реализовать(
-надо реализовать метод индексации зп. я предполагала, что буду сравнивать дату приема с настоящей датой и автоматически увеличивать уровень зп на 10%. но что-то совсем не пойму как это сделать.
код недоделанный, не успела еще перегрузить операторы ввода и вывода.
и еще куча вопросов по наследникам, но я до них еще не добралась пока с базовым классом не разберусь окончательно(
вот, вобщм айнидхелп!
вот все мое очередное художество:
Код

#include <iostream>
#include <cstring>
#include "stdafx.h"
#include "data.h"

class data;
class employee
{
public:
    employee(void);
    employee(char*,char*,char*,int,int, data);
    ~employee(void);
    employee(employee&);
    static int set_tabnumb();
    employee& operator=(employee&);
    employee& new_firstname(employee&);
    employee& new_name(employee&);
    employee& index_zp(employee&);
    friend std::ostream& operator <<(std::ostream&, const employee&);
    friend std::istream& operator >>(std::istream&, employee&);
private:
    char* name; 
    char* firstname;
        int age;  
    char* position;  
        int zp;      
    static int tabnumb;
    int buff;
    data priem;
    data uvoln;
    employee* next;
};

#include "stdafx.h"
#include "employee.h"
#include "data.h"

employee::employee(void)
{
}
employee::employee(char *n, char *fn, char *p, int zzp, int a, data dd):zp(zzp), age(a) 
{
    priem.day=dd.day;              
    priem.month=dd.month;      
    priem.year=dd.year;          
    buff=128;
    tabnumb=0;
    tabnumb=tabnumb+1;
    name=new char[buff];
    name=n;
    firstname=new char[buff];
    firstname=fn;
    position=new char[buff];
    position=p;
}
employee::~employee(void)
{
        delete [] name;
        delete [] firstname;
        delete [] position;
    
}
employee& employee::operator =(employee &ee)
{
    if (this == &ee)
        return *this;
    else 
    {
        age=ee.age;
        zp=ee.zp;
        delete [] name;
        delete [] firstname;
        delete [] position;
        name= new char[buff];
        firstname = new char [buff];
        position= new char [buff];
    }
strcpy(name,ee.name);
strcpy(firstname,ee.firstname);
strcpy(position,ee.position);
return *this;
}
employee& employee::new_firstname(employee &fn)
{    
    if (firstname == fn.firstname)
    {
        return *this;
    }
    else
    {
        firstname=fn.firstname;
        return *this;
    }
}
employee& employee::new_name(employee &fn)
{
    if (name == fn.name)
    {
        return *this;
    }
    else
    {
        name=fn.name;
        return *this;
    }
}
employee& employee::index_zp(employee &ee)
{
    employee temp;
    if ()
    return temp;
}
/*static int set_tabnumb()
{
     tabnumb++;
}*/


PM MAIL   Вверх
GoldFinch
Дата 20.9.2009, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 6
Всего: 26



я бы удалил этот код и написал по-новой
количество лишних строк зашкаливает

Добавлено через 9 минут и 10 секунд
Код

#include "data.h"

class data;

..........
#include "data.h"

вот это не надо

Код

class employee
{
public:
    employee(void);
..........
employee::employee(void)
{
}

и это незачем

Код

    employee& new_firstname(employee&);
    employee& new_name(employee&);
    employee& index_zp(employee&);

employee& employee::new_name(employee &fn)
{
    if (name == fn.name)
    {
        return *this;
    }
    else
    {
        name=fn.name;
        return *this;
    }
}

вот это вообще что-то странное, хз зачем оно возвращает employee&, зачем берет новые данные из employee&
и тело можно было бы переписать как
Код

    if (name != fn.name)
        name=fn.name;
    return *this;

но смысл этого кода всеравно непонятен
PM MAIL ICQ   Вверх
dgolukas
Дата 21.9.2009, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 30.8.2009

Репутация: нет
Всего: нет



Цитата(GoldFinch @ 20.9.2009,  22:16)
Код

class employee
{
public:
    employee(void);
..........
employee::employee(void)
{
}

и это незачем


вот это вообще что-то странное, хз зачем оно возвращает employee&, зачем берет новые данные из employee&
и тело можно было бы переписать как
Код

    if (name != fn.name)
        name=fn.name;
    return *this;

но смысл этого кода всеравно непонятен


1) там где повторяются инклюды- начало нового файла. 
т.е. я объединила в файле с кодом хиддер, где описан класс и файл сипп, где реализация методов

2) у меня по заданию написано, что должен быть метод, который заменяет старую фамилию на новую, и подобный для имени. 
поэтому реализовала вот так как я могу в эмплои вернуть одно имя? я в эмплоии обновляю данные и возвращаю обратно весь объект класса. криво да( 
спасибо исправила
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1013 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.