27.12.2011, 03:15. Просмотров 1088. Ответов 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;
} |
|
в чём беда??исправьте кто может...