Задача: Разработать объектно-ориентированную программу для перечисления всех латинских букв


Download 1.05 Mb.
Pdf ko'rish
Sana16.06.2023
Hajmi1.05 Mb.
#1514835


ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ
ТЕХНОЛОГИЙ МУХАММАДА АЛЬ-ХОРАЗМИ

 
5330300 - факультет вычислительной техники , 
M220-22
- группа
"Программирование 1" 

 

 
 
 
 
 
Делал: QUDRETOV BAXROM 
Проверено: АБДУРАХМАНОВ АББОС 


Задача: 
Разработать объектно-ориентированную программу для перечисления всех латинских букв 
кроме тех, которые совпадают в двух любых символьных строках, заданных аргументами 
команды ее вызова. Искомый результат должна отображать строка стандартного вывода, где 
все буквы перечислены в обратном алфавитному порядке. Программная реализация таких 
перечислений должна быть основана на разработке класса множества латинских букв с 
компонентными методами перегрузки операторов '*' и '~' для выполнения операций 
пересечения и дополнения двух множеств. Они должны быть ориентированы на обработку 
поля приватных данных, где состав множества фиксируется двоичными разрядами целого 
числа. Конструктор класса должен обеспечивать преобразование исходной символьной записи 
множества в двоичный целочисленный формат. Необходимо также предусмотреть перегрузку 
оператора класса потока стандартного вывода для отображения объектов класса множества 
латинских букв.
 
Программный код: 
#include  
#include  
using namespace std; 
class Alpha{ 
private: 
unsigned bin; 
public: 
Alpha() {bin=0;}; 
Alpha(Alpha& y) {bin=y.bin;}; 
Alpha(char*); 
Alpha operator -(Alpha&); 
Alpha operator ~();
operator char*(); 
friend ostream& operator << (ostream&,Alpha&); 
}; 
Alpha::Alpha(char* s){ 
bin=0; 
while(*s){ 
bin-=(1<<(tolower(*s)-'a'));s++;} 

Alpha Alpha::operator-(Alpha& x){ 


Alpha z; 
z.bin=bin-x.bin; 
return z;} 
ostream& operator << (ostream& out,Alpha& z){ 
unsigned bit=1; 
int i; 
for(i=0; i<26;i++){ 
if((z.bin& bit)>0) 
out<<(char)('a'+i); 
bit=bit<<1; 

return out;}//<< 
Alpha::operator char*(){ 
static char s[32]; 
unsigned b=bin; 
int i=0; 
int j=0; 
int w; 
while(w>0){ 
if(w & 1) 
s[j++]='a'+i; 
i++; 
w>>1; 

s[j]='\0'; 
return (s);

int main (int argc,char* argv[]){ 
Alpha x(argv[1]); 


Alpha y(argv[2]); 
Alpha z; 
z=y-x; 
cout<cout<<(char*)z; 
return (0); 

Результат: 
 
 



Download 1.05 Mb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling