Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
2 / 2 / 1
Регистрация: 21.11.2010
Сообщений: 43

Создать класс с именем ZARPLATA

27.12.2011, 03:15. Показов 2236. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
№1.
1. Создать класс с именем ZARPLATA, содержащий следующие поля:
• табельный номер;
• фамилия И.О. работника;
• оплата за один час работы;
• количество обработанных дней;
• премия.
2. Написать программу, реализующую следующие методы, определенные вне класса:
• ввод с клавиатуры данных в массив, состоящий из десяти объектов (работников) класса ZARPLATA;
• рассчитать зарплату каждого работника за месяц;
• вывести на экран ведомость начисления заработной платы. Записи должны быть размещены в алфавитном порядке по фамилиям.
3. Предусмотреть конструктор без аргументов и деструктор (для двух последних объектов конст-руктор с аргументами).

Разработайте алгоритм и создайте программу с применением множественного наследования. При выполнении данного задания необходимо создать не менее 2-х базовых классов и класс, наследующий их поля.

№2.
Создайте программу с классом Dancer, который включает в себя следующие данные-эле-менты о парах-уастниках соревнований по спортивным бальным танцам:
► ФИО партнера;
► год рождения партнера;
►ФИО партнерши;
Номер для каждой пары запрашивается, а массив оценок создается в динамической памяти операцией new.
В состав класса входят следующие функции-члены класса:
► конструктор с параметрами;
► деструктор;
► функция инициализации текущего состояния объектов;
► функция просмотра текущего состояния объектов PRINT ();
Производный класс Dancer_l содержит следующие элементы:
►название категории пары (юниоры, молодежь, профессионалы);
► количество соревнований, в которых пара приняла участие в текущем году;
► функцию вывода всех данных о паре-участнике соревнований.
Добавьте в состав класса виртуальную функцию просмотра текущего объекта print (), а в производный класс Dancer_l - переопределенную функцию вывода всех данных о паре-участнике соревнований.

№1.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <iostream>
#include<cstring>
using namespace std;
 
struct zarplata
{
char name [20];
int nomer;
int oplata;
int dni;
int prem;
};
 
int main ()
{
zarplata *m;
int i,n,j;
char *temp;
int e[1];
printf ("\n Vvedite kolichestvo chelovek :\n\n n=");
scanf ("%d",&n);
 
m=(zarplata*)malloc(n*sizeof(zarplata));
temp = (char*)malloc(20*sizeof(char));
 
for (i=0; i<n; i++)
{
cout<<" Premiya - "<<endl;
cin>>m[i].prem;
cout<<" nomer - "<<endl;
cin>>m[i].nomer;
cout<<" Oplata - "<<endl;
cin>>m[i].oplata;
cout<<" Dni - "<<endl;
cin>>m[i].dni;
cout<<" FIO - "<<endl;
cin>>m[i].name;
 
}
 
for (i=0; i<n-1; i++)
{
for(j=i; j<n; ++j)
if (strcmp(m[j].name,m[i].name)<0)
{
strcpy (temp,m[i].name);
strcpy (m[i].name,m[j].name);
strcpy (m[j].name,temp);
}
}
 
for(int i = 0;i<n;i++)
{
e[i]=m[i].oplata*8*m[i].dni+m[i].prem;
}
for (i=0; i<n; i++)
{
 
cout<<"FIO: "<<m[i].name<<" | Zarplata: "<<e[i]<<endl;
}
free (m);
free(temp);
getch ();
return 0;
}
№2.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// 2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
const int n=5;
 
class dancer
{public:
char MenName[20];
char WomenName[20];
char data[10];
bool state;
 
 void incilizacion(int temp,dancer par[]){
 par[temp].state=true;
}
 
 virtual void vivod(int temp,dancer par[]){
 cout<<par[temp].MenName<<endl<<par[temp].data<<endl<<par[temp].WomenName<<endl;
 
 }
};
 
dancer_1::dancer_1(){
 par[0].state=false;
 par[1].state=false;
 par[2].state=false;
 par[3].state=false;
 par[4].state=false;
 
 strcpy(par[0].data,"01.01.01");
 strcpy(par[1].data,"02.01.01");
 strcpy(par[2].data,"03.01.01");
 strcpy(par[3].data,"04.01.01");
 strcpy(par[4].data,"05.01.01");
 
 strcpy(par[0].MenName,"Fio");
 strcpy(par[1].MenName,"Fio1");
 strcpy(par[2].MenName,"Fio2");
 strcpy(par[3].MenName,"Fio3");
 strcpy(par[4].MenName,"Fio4");
 
 strcpy(par[0].WomenName,"wmFio");
 strcpy(par[1].WomenName,"wmFio1");
 strcpy(par[2].WomenName,"wmFio2");
 strcpy(par[3].WomenName,"wmFio3");
 strcpy(par[4].WomenName,"wmFio4");
 
 strcpy(par[0].categoria,"union");
 strcpy(par[1].categoria,"molodie");
 strcpy(par[2].categoria,"profi");
 strcpy(par[3].categoria,"profi");
 strcpy(par[4].categoria,"union");
 
}
 
class dancer_1:public dancer{public: char categoria[10];
int col;
dancer_1::dancer_1();
void dancer_1::vivod(int temp,dancer_1 par[]){dancer::vivod(temp,par);
cout<< par[temp].categoria<<endl<<par[temp].col;
 
}};
dancer_1 par[n];
int main()
{dancer_1 *unicycle; 
 int temp=0;
cout<<"vvedite # comandi:\n1)prosmotr\n2)vizov";
cin>>temp;
if (temp==2){
cout<<"vvedite №pari";
cin>>temp;
temp= temp-1;
unicycle->incilizacion(temp,par);
 
if(par[temp].state==true) {cout<<"para uje vistupala"<<endl;}
else{
int* mark =new int [n]; 
cout<<"vvedite 5 otcenoc";
cin>>mark[0]>>mark[1]>>mark[2]>>mark[3]>>mark[4];
unicycle->vivod(temp,par);
cout<<"Mark:"<<mark[0]<<" "<<mark[1]<<" "<<mark[2]<<" "<<mark[3]<<" "<<mark[4];
}}
if(temp==1){cout<<"vvedite №pari";
cin>>temp;
temp= temp-1;
unicycle->vivod(temp,par);
if(par[temp].state==true) cout<<"para uje vistupala/n";
else cout<<"paraesche ne vistupal\n";}
 return 0;
}
в чём беда??исправьте кто может...
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.12.2011, 03:15
Ответы с готовыми решениями:

Помогите создать класс с именем ZARPLATA
1.Создать класс с именем ZARPLATA, содержащий следующие поля: •табельный номер; •фамилия И.О. работника; •оплата за один час...

Класс: Создать класс с именем MARSH
Всем привет! Есть условие задачи: 1. Создать класс с именем MARSH, содержащий следующие поля: • название начального пункта...

Создать класс с именем TRAIN
Динамическое выделение памяти под объекты Создать класс с именем TRAIN, содержащий следующие закрытые поля: • название пункта...

4
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
27.12.2011, 04:18
Лучший ответ Сообщение было отмечено как решение

Решение

Оба задания лютый бред. Бессмысленный и беспощадный.

Первое задание.

Цитата Сообщение от DareDeviL Посмотреть сообщение
в чём беда??
Беда в бредовом задании. Беда в изначально хреново спроектированной структуре классов.

Цитата Сообщение от DareDeviL Посмотреть сообщение
2. Написать программу, реализующую следующие методы, определенные вне класса:
• ввод с клавиатуры данных в массив, состоящий из десяти объектов (работников) класса ZARPLATA;
• рассчитать зарплату каждого работника за месяц;
Вводить десять объектов из пяти полей с клавиатуры?! R u kidding me?
Бессмысленно выносить подобный расчет из класса.
Цитата Сообщение от DareDeviL Посмотреть сообщение
Предусмотреть конструктор без аргументов и деструктор
Бессмысленный гемор.
Цитата Сообщение от DareDeviL Посмотреть сообщение
(для двух последних объектов конст-руктор с аргументами)
Эээ... Речь же шла об одном классе?!
Цитата Сообщение от DareDeviL Посмотреть сообщение
создайте программу с применением множественного наследования
Да куда-ж его тут запихать-то?!

Вот так еще может-быть.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
 
class Worker {
 public:
  Worker(size_t id, const std::string &name, size_t hourlyWage)
    : id_(id), name_(name), hourlyWage_(hourlyWage) {}
  const std::string &getName() const { return name_; }
  const size_t &getHourlyWage() const { return hourlyWage_; }
  const size_t &getId() const { return id_; }
 private:
  size_t id_;
  std::string name_;
  size_t hourlyWage_;
};
 
std::ostream &operator<<(std::ostream &stream, const Worker &worker) {
  return stream << worker.getId() << ": " << worker.getName() <<
    ", hourly wage: " << worker.getHourlyWage() / 100. << " rub";
}
 
class Payment {
 public:
  Payment(const Worker &worker, size_t workedHours, size_t bonus)
    : worker_(worker), workedHours_(workedHours), bonus_(bonus) {}
  const Worker &getWorker() const { return worker_; }
  const size_t &getWorkedHours() const { return workedHours_; }
  const size_t &getBonus() const { return bonus_; }
  const size_t getPayment() const {
    return getWorkedHours() * getWorker().getHourlyWage() + getBonus();
  }
 private:
  Worker worker_;
  size_t workedHours_;
  size_t bonus_;
};
 
std::ostream &operator<<(std::ostream &stream, const Payment &payment) {
  return stream << payment.getWorker().getId() << ": " <<
    payment.getWorker().getName() <<
    ", payment: " << payment.getPayment() / 100. << " rub";
}
 
bool operator<(const Payment &a, const Payment &b) {
  return a.getWorker().getName() < b.getWorker().getName();
}
 
int main(int argc, char *argv[]) {
  std::vector<Payment> payments;
  payments.push_back(Payment(Worker(0, "Ivan Ivanov", 23073), 21 * 8, 20000));
  payments.push_back(Payment(Worker(1, "Vasiliy Vasilyev", 22611), 20 * 8, 10026));
  payments.push_back(Payment(Worker(2, "Petr Petrov", 18987), 21 * 9, 31238));
  std::sort(payments.begin(), payments.end());
  for (std::vector<Payment>::iterator i = payments.begin();
    i != payments.end(); ++i)
    std::cout << *i << std::endl;
  return 0;
};
3
2 / 2 / 1
Регистрация: 21.11.2010
Сообщений: 43
27.12.2011, 11:27  [ТС]
Цитата Сообщение от lemegeton Посмотреть сообщение
Вводить десять объектов из пяти полей с клавиатуры?! R u kidding me?
Бессмысленно выносить подобный расчет из класса.
10 раз нужно будет вводить фамилию,номер,премию,оплату и дни.

Добавлено через 1 час 40 минут
как здесь наследование то добавить?
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
27.12.2011, 18:55
Цитата Сообщение от DareDeviL Посмотреть сообщение
как здесь наследование то добавить?
В том-то и дело, что оно в таком задании не уперлось вообще. Разве что что-нибудь бессмысленное.

Вроде замены класса Worker иерархией классов.
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
class AbstractWorker {
 public:
  virtual const std::string &getName() const = 0;
  virtual const size_t &getId() const = 0;
};
 
class WorkerBase : public AbstractWorker {
 public:
  WorkerBase(size_t id, const std::string &name) : id_(id), name_(name) {}
  const std::string &getName() const { return name_; }
  const size_t &getId() const { return id_; }
 private:
  size_t id_;
  std::string name_;
};
 
class Worker : public WorkerBase {
 public:
  Worker(size_t id, const std::string &name, size_t hourlyWage)
    : WorkerBase(id, name), hourlyWage_(hourlyWage) {}
  const size_t &getHourlyWage() const { return hourlyWage_; }
 private:
  size_t hourlyWage_;
};
Цитата Сообщение от DareDeviL Посмотреть сообщение
10 раз нужно будет вводить фамилию,номер,премию,оплату и дни
Мне лень.
0
2 / 2 / 1
Регистрация: 21.11.2010
Сообщений: 43
27.12.2011, 19:05  [ТС]
пасиб
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.12.2011, 19:05
Помогаю со студенческими работами здесь

Создать класс с именем Date
Создайте класс Date, включающий в качестве элементов данных три информационных пункта: месяц (тип int), день (тип int) и год (тип int). Ваш...

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

Создать класс с именем time
Я в программировинии (более-менее знаю только Turbo Pascal) ещё совсем профан, в универе задание дали написать программу на ООП, т.е. С++,...

Создать класс, допустим, с именем Number
Нужно создать класс, допустим с именем Number. Далее создать одномерный массив из 10 элементов типа Number. Помогите, пожалуйста... С++...

конструкторы, деструкторы(Создать класс с именем ZNAK)
1. Создать класс с именем ZNAK, содержащий следующие поля: • фамилия, имя; • знак Зодиака; • день рождения (массив из трех чисел). ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru