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

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

Восстановить пароль Регистрация
 
K_a_t_t_y
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 6
30.03.2013, 18:16     Перегрузка операций для подмножества латинских букв #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
#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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2013, 18:16     Перегрузка операций для подмножества латинских букв
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 00:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru