Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
melery_fire50
0 / 0 / 0
Регистрация: 26.07.2012
Сообщений: 5
#1

Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату - C++

26.07.2012, 15:20. Просмотров 1389. Ответов 20
Метки нет (Все метки)

Дело обстоит так:
Прочитав и, как я думал, поняв 3ю главу книги "Как программировать на с++" Дейтелов пришло время задачек. Немного собравшись я решил задачи 3.11 и почти правильно сделав 3.12 (потом я нашёл где же я сделал промах, благодаря этому форуму и ошибка оказалась совсем мелкой ). Казалось бы всё, остальные пойдут хорошо и мне не прийдётся задалбывать кого-либо тупыми вопросами, но...
Пришлось
Я не прошу сразу "решите мне задачу!!1!". Нет. Если понадобиться всё же тогда так и напишу
В первую очередь затруднения возникают с понятием условия задачи из которого вытекает то, что я не могу понять как это реализовать. Так что прошу подсказок и напутствий. Пожалуй, выберу задачу где есть работа и текстом и с числами.
______________________________________________________________
Задача 3.14
Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя(string), фамилию(string) и месячную зарплату(int). Ваш класс должен иметь конструктор, инициализирующий три элемента данных. Предусмотрите set- и get-функции для каждого элемента данных. Если зарплата не положительна, устанавливайте её равной 0. ... . Создайте два объекта Employee и выведите годовую зарплату для каждого объекта. Затем поднимите зарплату на 10% и снова выведите их годовую зарплату
______
Конечно там есть ещё непонятные до конца задачи(3.13 и 3.15), но я всё же решил выбрать эту.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2012, 15:20     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату
Посмотрите здесь:

Определить фамилию женщины, имеющей самую маленькую зарплату C++
C++ Строка S содержит фамилию, имя, отчество. Необходимо преобразовать ее в строку, содержащую фамилию и инициалы
C++ Считывание из файла (узнать максимальный балл за три теста и вывести фамилию и имя...)
C++ Создать класс angle, включающий указанные три поля - проверить правильность кода
C++ Создайте класс с именем Rational для выполнения действий с дробями
C++ Создайте класс с именем Complex для выполнения арифметических действий с комплексными числами
C++ Класс name, включающий в себя данные (имя, фамилия, отчество и номер работника). Зацикливание при чтении файла
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
26.07.2012, 15:27     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #2
Цитата Сообщение от melery_fire50 Посмотреть сообщение
В первую очередь затруднения возникают с понятием условия задачи из которого вытекает то, что я не могу понять как это реализовать. Так что прошу подсказок и напутствий. Пожалуй, выберу задачу где есть работа и текстом и с числами.
так как конкретных вопросов нет, первое напутсвие - перечитай главу ещё раз!
Avazart
7045 / 5222 / 259
Регистрация: 10.12.2010
Сообщений: 22,962
Записей в блоге: 17
26.07.2012, 15:28     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #3
Ну так а в чем проблема?
Задача вроде детская.
melery_fire50
0 / 0 / 0
Регистрация: 26.07.2012
Сообщений: 5
26.07.2012, 15:51  [ТС]     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #4
Ну хорошо. Попрбую конкретизировать.
1. Повышение % должно быть уже написано в коде или его должен ввести пользователь?
2. Где нужно указать положительность или отрицательность зарплаты и её проверку (в конструкторе или в элемент-функции? И также опять, нужно ли чтобы её указывал пользователь?
...
Ну вот основные вопросы
Avazart
7045 / 5222 / 259
Регистрация: 10.12.2010
Сообщений: 22,962
Записей в блоге: 17
26.07.2012, 15:53     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #5
1. Повышение % должно быть уже написано в коде или его должен ввести пользователь?
А какая разница? Как реализуешь так и будет...
2. Где нужно указать положительность или отрицательность зарплаты и её проверку (в конструкторе или в элемент-функции? И также опять, нужно ли чтобы её указывал пользователь?
Везде где можно изменить значение (и в конструкторе,и в set-ерах)
melery_fire50
0 / 0 / 0
Регистрация: 26.07.2012
Сообщений: 5
26.07.2012, 16:02  [ТС]     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #6
Avazart, Спасибо
Employee.h
C++
1
2
void setFam(string);
    string getFam();
это с текстом.

а для числа:
C++
1
2
void setZar(int);
    int getZar();
или
C++
1
void setZar(int);
?
Avazart
7045 / 5222 / 259
Регистрация: 10.12.2010
Сообщений: 22,962
Записей в блоге: 17
26.07.2012, 16:09     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #7
Не понял а в чем вопрос?
C++
1
2
void setZar(const int& i);
int getZar()const;
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
26.07.2012, 16:40     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #8
C++
1
2
void setFam(string const&); // А то нафига нам копировать лишний раз.
string getFam() const; // И, да, как подсказал Avazart get-методы в общем случае не меняют объект, поэтому константные
А вот в передаче по константной ссылке int не вижу смыла.
melery_fire50
0 / 0 / 0
Регистрация: 26.07.2012
Сообщений: 5
26.07.2012, 16:48  [ТС]     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #9
Employee.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <string>
 
using namespace std:
 
class Employee
{
public:
    Employee(string name, string fam, int vozr);
 
    void setName(string);
    string getName():
 
    void setFam(string const&);
    string getFam() const;
 
    void setZar(int);
    int getZar();
 
    void displayMessage();
 
private:
    string Name;
    string Fam;
    int Zar;
}
__________________________________________________________________
Employeeh.cpp
А теперь польётся бред
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include "UN.h" 
//NE ZABIVAI!!!
 
using namespace std;
 
    Employee::Employee(string name, string fam, int zar)
 
//
//
    void Employee::setName(string name)
    {
        Name = name;
    }
    string Employee::getName()
    {
        return Name;
    }
//
    void Employee::setFam(string fam)
    {
        Fam = fam;
    }
    string Employee::getFam()
    {
        return Fam;
    }
//
 
    void displayMessage()
    {
        cout << "Sotrudnik: " << name << " " << fam << " \n" << "Zarplata - \n" << zar << " Zarplata za god - " << godZarp << endl;
    }
Не могу вот доделать до ума. Туплю...
Avazart
7045 / 5222 / 259
Регистрация: 10.12.2010
Сообщений: 22,962
Записей в блоге: 17
26.07.2012, 16:51     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #10
А вот в передаче по константной ссылке int не вижу смыла.
Это почему же?
Во первых для приличия, во вторых для того же "не копирования"
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
26.07.2012, 16:56     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #11
Тип такой конструктор
C++
1
2
3
4
5
Employee::Employee(string name, string fam, int zar) :
Name(name), Fam(fam), Zar(zar) // такой синтаксис инициализации
{
    if (Zar < 0) Zar = 0;
}
Но я бы сделал все string константными ссылками
C++
1
Employee(string const& name, string const& fam, int zar)
Добавлено через 2 минуты
Цитата Сообщение от Avazart Посмотреть сообщение
Это почему же?
А для чего в данном случае int const&? Память не экономит, в х32 передаются те же 4 байта.
Я бы сказал, что в качестве параметра либо int, либо int const, либо int& имеют смыл, но не int const&.
Avazart
7045 / 5222 / 259
Регистрация: 10.12.2010
Сообщений: 22,962
Записей в блоге: 17
26.07.2012, 16:59     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #12
А для чего в данном случае int const&? Память не экономит, в х32 передаются те же 4 байта.
Эта от куда такая уверенность? да и не все машины сейчас 32
melery_fire50
0 / 0 / 0
Регистрация: 26.07.2012
Сообщений: 5
26.07.2012, 17:05  [ТС]     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #13
Мдя сегодня не везёт
Главу, кстати, я уже второй раз перечитал.
И что ж теперь просит кого-то написать столь простой код?
Всё же...
Ладно . Покажите мне недальновидному как написать в заголовочном файле код правильно и также для исходника с классом.
____
А пока я повожусь ещё с тем что у меня есть
Jupiter
26.07.2012, 17:06
  #14

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
Эта от куда такая уверенность? да и не все машины сейчас 32
потому что ссылки могут быть реализованы через указатели, и на x64 будет скопировано 8 байт указателя вместо 4-х байт инта

bigredcat
26.07.2012, 17:08
  #15

Не по теме:

Уверенность в чем? Да, не все машины x32. И даже может даже на каких-то машинах sizeof (int) не равно 4. Но вопрос в том, для чего передавать в параметре int const&? Это, возможно, экономило бы память в x16. Но вряд ли это тот случай.

Avazart
7045 / 5222 / 259
Регистрация: 10.12.2010
Сообщений: 22,962
Записей в блоге: 17
26.07.2012, 17:14     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #16
потому что ссылки могут быть реализованы через указатели
А могут и не быть
Но вряд ли это тот случай.
Но мы ведь не обсуждаем конкретную машину, мы говорим о конкретном коде.

Цитата Сообщение от Я
Во первых для приличия....
Jupiter
26.07.2012, 17:17
  #17

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
А могут и не быть
даЁшь идею возможной реализции не через указатели?

Avazart
7045 / 5222 / 259
Регистрация: 10.12.2010
Сообщений: 22,962
Записей в блоге: 17
26.07.2012, 17:20     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #18
даЁшь идею возможной реализции не через указатели?
Для меня достаточно самой возможности.
bigredcat
26.07.2012, 17:23
  #19

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
А могут и не быть
Да, совершенно верно, в теории. А на практике? Существуют другие реализации (кроме того, что можно и вовсе обойтись без ссылки)?
Цитата Сообщение от Avazart Посмотреть сообщение
Но мы ведь не обсуждаем конкретную машину, мы говорим о конкретном коде.
Да, тоже совершенно верно. Но какую пользу несет конкретный код int const& для какой-то там машины?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2012, 17:27     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату
Еще ссылки по теме:

C++ Создайте класс employee, который содержит имя (объект класса string) и номер (типа long) служащего
C++ Класс Employee
C++ Создайте класс time, содержащий три поля, предназначенные для хранения часов, минут и секунд
C++ Создайте класс employee. Как написать программу?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Avazart
7045 / 5222 / 259
Регистрация: 10.12.2010
Сообщений: 22,962
Записей в блоге: 17
26.07.2012, 17:27     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату #20
А в чем суть придерживани стандарта если он "не практичен" ?
Ориентируемся на IDE, машину и что нибудь ещё...
Yandex
Объявления
26.07.2012, 17:27     Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату
Ответ Создать тему
Опции темы

Текущее время: 22:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru