Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
8
Добавлен:
12.02.2016
Размер:
25.88 Кб
Скачать

10. Створити клас – ціле число. У закритій частині визначити поля – система числення і рядок символів, що відповідає числу. Визначити необхідні конструктори, методи доступу, деструктор.Перевантажити потокові операції введення і виведення, вважаючи що слід вводити десяткові числа і систему числення, а виводити – число у обраній системі.

#include<iostream>//підключаєм бібліотеку

/////////////////////////////////

usingnamespacestd;//підключаєм простір імен

/////////////////////////////////

#define MAX 10//максимальна довжина числа

/////////////////////////////////

class cile

{//закрита частина

private:

int s;//система числення

char c[MAX];//число

public://відкрита частина

cile();//кноструктор без параметрів

cile(int, char[]);//конструктор з параметрами

~cile();//деструктор

void sustema();//перевід з десяткового в сисетму числення

//перевизначаєм потокове введення і виведення

friend istream& operator >> (istream&, cile&);

friend ostream& operator << (ostream&, cile&);

};

/////////////////////////////////

istream& operator >> (istream& is, cile& x)

{

//Виводим повідомлення користувачу

//і зчитуємо дані

cout << "Vvedit sustemy chuslennya: ";

is >> x.s;

cout << "Vvedit chuslo: ";

is >> x.c;

cout << endl;

return is;

}

/////////////////////////////////

ostream& operator << (ostream& os, cile& x)

{

//переводим число в задану систему координат

x.sustema();

//виводим на екран

os << "Chuslo v " << x.s << " sustemi chuslennya = " << x.c << endl;

return os;

}

/////////////////////////////////

cile::cile()

{

s = 0;//онулюєм

c[0] = '1';//робим число 1

c[1] = '\0';

}

/////////////////////////////////

cile::cile(int s, char c[MAX])

{

//переприсвоюєм значення параметрам

this->s = s;

//копіюєм рядок

strcpy(this->c, c);

}

/////////////////////////////////

cile::~cile()

{

//пустий бо не виділяли динамічної памя'ті

}

/////////////////////////////////

void cile::sustema()

{

int i = 0, k, z, n;

char mas[MAX * 2];//додаткровий масив для тимчасового збереження результату

k = atoi(c);//перетворюєм речення в число

while(k)//поки к недорівнює 0

{

z = k % s;//берем остачу від ділення

if(z < 10)//якщо вона менша за 10

mas[i++] = z + '0';//записуєм її СИМВОЛ в масив

else//якщо більша записуєм з деякою відмінністю

mas[i++] = z + 'A' - 10;

k /= s;//ділим число на систему числення

}

n = i;//запамятовуєм кількість

int j = 0;

while(i > 0)//поки не дойдем до початку додаткового масиву

{

c[j] = mas[i - 1];//копіюєм в дані класу

j++;//збільшуєм

i--;//зменшуєм

}

c[j] = '\0';//в кінці ставим нуль символ

}

/////////////////////////////////

int main()

{

//оголошуєм обєкт класу

cile a;

//зчитуємо дані

cin >> a;

//виводим результат

cout << a;

//очищуємбуфер

fflush(stdin);

//затримка

getchar();

//вертаєм 0

return 0;

}

Соседние файлы в папке Операційні системи Зербіно Д.Д.