Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
K_a_t_t_y
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 6
#1

Перегрузка операций для подмножества латинских букв - C++

30.03.2013, 18:16. Просмотров 525. Ответов 0
Метки нет (Все метки)

Помогите дописать программу,нужны функции по перегрузке операций,вот задание:

Написать объектно-ориентированную программу вычисления дополнения до полного алфавита разности двух заданных подмножеств латинских букв, которые передаются ей аргументами командной строки. Результатом операции должны быть все латинские буквы, кроме тех, которые есть только в первом аргументе. Они должны отображаться строкой стандартного вывода, где все буквы перечислены в алфавитном порядке. Программа должна быть основана на разработке класса множества латинских букв с компонентными методами перегрузки операторов '~' и '-' для выполнения операций дополнения и разности. Они должны быть ориентированы на обработку поля приватных данных, где состав множества фиксируется двоичными разрядами целого числа. Конструктор класса должен обеспечивать преобразование исходной символьной записи множества в двоичный целочисленный формат. Необходимо также предусмотреть перегрузку оператора класса потока стандартного вывода << для отображения объектов класса множества латинских букв.

Текст программы:

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
#include <cctype>
#include <iostream>
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 Alpha::operator-(Alpha& x){
    Alpha z;
    z.bin=bin-x.bin;
    return z;}//operator-
//Alpha Alpha::operator ~(){
 
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;
    }//while
    s[j]='\0';
    return (s); 
}//operator char*()
 
int main (int argc,char* argv[]){
    Alpha x(argv[1]);
    Alpha y(argv[2]);
    Alpha z;
        //z=~(y-x);
        z=y-x;
    cout<<z;
    cout<<(char*)z;
    return (0);
}//main
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2013, 18:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка операций для подмножества латинских букв (C++):

Перегрузка операций для работы с временем - C++
Доброго времени суток. Задача состоит вот в чем. Нужно от одного времени отнять другое время методом перегрузки операции с помощью классов....

Перегрузка арифметических операций для работы с объектами классов. - C++
Создать класс Animal, содержащий следующие элементы: - поле «вес» float Mass; - поле «пол» char* Sex; - поле «окрас» char* Color; ...

Класс Money, перегрузка арифметических операций для работы с денежным форматом - C++
//Ñîçäàéòå êëàññ Money, â êîòîðîì ïåðåãðóçèòå àðèôìåòè÷åñêèå //îïåðàöèè äëÿ ðàáîòû ñ äåíåæíûì ôîðìàòîì. Ïåðåãðóçèòå äâà îïåðàòîðà ...

Перегрузка операций для класса целых двоичных чисел в виде строк - C++
нужна ваша помощь, пожалуйста Создать класс, который запоминает целые двоичные числа в виде строк. Перегрузить операции +, ++ и +=.

Написать программу для сортировки методом прямых включений латинских букв по алфавиту - C++
Здравствуйте! Помогите написать программу для сортировки методом прямых включений латинских букв по алфавиту. Сортировка простыми...

Подсчитать, сколько было введено: латинских прописных букв, кириллических прописных букв, цифр, знаков переноса, прочих символов. - C++
Помогите, пожалуйста, написать программу :scratch: Подсчитать, сколько было введено: латинских прописных букв, кириллических прописных...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2013, 18:16
Привет! Вот еще темы с ответами:

Перегрузка операций - C++
Здравствуйте. Объясните механизма операции инкремента. Как работают эти строки: Counter(int c) : count(c) { } return Counter(count); ...

Перегрузка операций - C++
Добрый вечер, имеется код нахождения параллельности двух прямых или же угла между ними, который нужно разбить на библиотеку, которая будет...

Перегрузка операций - C++
Доброго времени суток. Очень нужна помощь программистов. Есть такое задание: Создать класс, который запоминает римские числа в виде...

ПЕРЕГРУЗКА ОПЕРАЦИЙ - C++
Всем добрый день.Нужна помощь по перегрузкам операций.Написать программу.Кто сможет помочь,буду очень признательна.Спасибо. 1. Выбрать...


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

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

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