Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 26.07.2012
Сообщений: 5
1

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

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

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

Создайте класс employee, который содержит имя (объект класса string) и номер (типа long) служащего
Создайте класс employee, который содержит имя (объект класса string) и но- мер (типа long)...

Создать класс Name, который принимает имя и фамилию в качестве аргументов при конструировании
Помогите с написанием класса по следующим условиям: Создать класс Name, который принимает имя и...

Определить класс с именем NOTE, содержащий имя, фамилию, номер телефона и дату рождения
Описать структуру с именем NOTE, содержащую следующие поля: • фамилия, имя; • номер телефона; •...

Определить класс с именем NOTE, содержащий имя, фамилию, номер телефона и дату рождения
1. Определить класс с именем NOTE, содержащий следующие поля: - фамилия, имя; - номер телефона;...

20
Каратель
Эксперт С++
6593 / 4014 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
26.07.2012, 15:27 2
Цитата Сообщение от melery_fire50 Посмотреть сообщение
В первую очередь затруднения возникают с понятием условия задачи из которого вытекает то, что я не могу понять как это реализовать. Так что прошу подсказок и напутствий. Пожалуй, выберу задачу где есть работа и текстом и с числами.
так как конкретных вопросов нет, первое напутсвие - перечитай главу ещё раз!
0
Эксперт С++
8302 / 6056 / 602
Регистрация: 10.12.2010
Сообщений: 28,148
Записей в блоге: 26
26.07.2012, 15:28 3
Ну так а в чем проблема?
Задача вроде детская.
0
0 / 0 / 0
Регистрация: 26.07.2012
Сообщений: 5
26.07.2012, 15:51  [ТС] 4
Ну хорошо. Попрбую конкретизировать.
1. Повышение % должно быть уже написано в коде или его должен ввести пользователь?
2. Где нужно указать положительность или отрицательность зарплаты и её проверку (в конструкторе или в элемент-функции? И также опять, нужно ли чтобы её указывал пользователь?
...
Ну вот основные вопросы
0
Эксперт С++
8302 / 6056 / 602
Регистрация: 10.12.2010
Сообщений: 28,148
Записей в блоге: 26
26.07.2012, 15:53 5
1. Повышение % должно быть уже написано в коде или его должен ввести пользователь?
А какая разница? Как реализуешь так и будет...
2. Где нужно указать положительность или отрицательность зарплаты и её проверку (в конструкторе или в элемент-функции? И также опять, нужно ли чтобы её указывал пользователь?
Везде где можно изменить значение (и в конструкторе,и в set-ерах)
2
0 / 0 / 0
Регистрация: 26.07.2012
Сообщений: 5
26.07.2012, 16:02  [ТС] 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);
?
0
Эксперт С++
8302 / 6056 / 602
Регистрация: 10.12.2010
Сообщений: 28,148
Записей в блоге: 26
26.07.2012, 16:09 7
Не понял а в чем вопрос?
C++
1
2
void setZar(const int& i);
int getZar()const;
0
373 / 320 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
26.07.2012, 16:40 8
C++
1
2
void setFam(string const&); // А то нафига нам копировать лишний раз.
string getFam() const; // И, да, как подсказал Avazart get-методы в общем случае не меняют объект, поэтому константные
А вот в передаче по константной ссылке int не вижу смыла.
0
0 / 0 / 0
Регистрация: 26.07.2012
Сообщений: 5
26.07.2012, 16:48  [ТС] 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;
    }
Не могу вот доделать до ума. Туплю...
0
Эксперт С++
8302 / 6056 / 602
Регистрация: 10.12.2010
Сообщений: 28,148
Записей в блоге: 26
26.07.2012, 16:51 10
А вот в передаче по константной ссылке int не вижу смыла.
Это почему же?
Во первых для приличия, во вторых для того же "не копирования"
0
373 / 320 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
26.07.2012, 16:56 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&.
0
Эксперт С++
8302 / 6056 / 602
Регистрация: 10.12.2010
Сообщений: 28,148
Записей в блоге: 26
26.07.2012, 16:59 12
А для чего в данном случае int const&? Память не экономит, в х32 передаются те же 4 байта.
Эта от куда такая уверенность? да и не все машины сейчас 32
0
0 / 0 / 0
Регистрация: 26.07.2012
Сообщений: 5
26.07.2012, 17:05  [ТС] 13
Мдя сегодня не везёт
Главу, кстати, я уже второй раз перечитал.
И что ж теперь просит кого-то написать столь простой код?
Всё же...
Ладно . Покажите мне недальновидному как написать в заголовочном файле код правильно и также для исходника с классом.
____
А пока я повожусь ещё с тем что у меня есть
0
Jupiter
26.07.2012, 17:06
  #14

Не по теме:

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

0
bigredcat
26.07.2012, 17:08
  #15

Не по теме:

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

0
Эксперт С++
8302 / 6056 / 602
Регистрация: 10.12.2010
Сообщений: 28,148
Записей в блоге: 26
26.07.2012, 17:14 16
потому что ссылки могут быть реализованы через указатели
А могут и не быть
Но вряд ли это тот случай.
Но мы ведь не обсуждаем конкретную машину, мы говорим о конкретном коде.

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

Не по теме:

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

0
Эксперт С++
8302 / 6056 / 602
Регистрация: 10.12.2010
Сообщений: 28,148
Записей в блоге: 26
26.07.2012, 17:20 18
даЁшь идею возможной реализции не через указатели?
Для меня достаточно самой возможности.
0
bigredcat
26.07.2012, 17:23
  #19

Не по теме:

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

1
Эксперт С++
8302 / 6056 / 602
Регистрация: 10.12.2010
Сообщений: 28,148
Записей в блоге: 26
26.07.2012, 17:27 20
А в чем суть придерживани стандарта если он "не практичен" ?
Ориентируемся на IDE, машину и что нибудь ещё...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.07.2012, 17:27

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Создайте структуру с именем employee с двумя полями
Создайте структуру с именем employee с двумя полями: 1.Номер сотрудника int 2.зарплата float....

Создайте класс employee. Как написать программу?
Создайте класс employee. Класс должен включать поле (массив) типа char для хранения фамилии...

Создать класс angle, включающий указанные три поля - проверить правильность кода
Здравствуйте! Я изучаю С++ по учебнику Лафоре, столкнулся с задачей: &quot;В морской навигации...

С++ класс (создайте класс с именем Complex для выполнения в арифмитических операий с комплексными числами))
Кто сможет помогите пожалуйста! (Класс Complex). Создайте класс с именем Complex для выполнения...

Создайте страницу, которая предоставляет пользователю возможность ввести свое имя и фамилию
Создайте страницу, которая предоставляет пользователю возможность ввести свое имя и фамилию, а при...

Фамилию, имя и отчество из TextBox разнести в три Label
Добрый день. Помогите решить задачу... На форуму нужно кинуть 1 текстовое поле и 3 объекта lable...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.