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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужно отбросить нули http://www.cyberforum.ru/cpp-beginners/thread823093.html
Вот смотрите. У меня стоит условие что если ввести больше 16 символов то попросит ввести заново. Как сделать так что если ввести 000000000000000000000045 то он отбросил нули и принял только 45, а то он просто берет первые 16 нулей и просит ввести заново. Вот код: #include <iostream> #include <stdio.h> #include <conio.h> #include <locale.h> int main() { setlocale(0,"rus");
C++ программа, Прокат автомобилей Задали задачку, и немогу ее реализовать. Помогите, хоть по самому простому способу Прокат автомобилей 1-Автомабили(марка, стоимость, стоимость проката, тип) 2-Клиенты(ФИО, адрес, тел) 3-выданые автомобили(автомобиль ,клиент, дата выдачи, дата возврата) http://www.cyberforum.ru/cpp-beginners/thread823088.html
Найти среднее арифметическое элементов списка C++
Написать программу с функциями, которая определяет: а) является ли список Р пустым; б)находит среднее арифметическое элементов списка Р (REAL); в)меняет местами первый и последний элементы непустого списка Р.
Выполнение программы C++
Привет, я только начал изучать C++. По книге "Язык программирования С" Кернигана Б., Ритчи Д. Первая программа, которую я пытался написать #include <studio.h> main () { printf("hello, world"); }
C++ Задать массив целых трёхзначных чисел с помощью датчика случайных чисел. Вывести на экран исходный массив в прямом и обратном порядке. http://www.cyberforum.ru/cpp-beginners/thread823044.html
Вот задача: Задать массив целых трёхзначных чисел с помощью датчика случайных чисел. Вывести на экран исходный массив в прямом и обратном порядке. С клавиатуры ввести число-эталон. Создать массив из индексов элементов, значение которых не превосходит эталон.
C++ Проверьте программу! Нагел программу в сети... я в Си полный 0. Прошу её переделать на С++. /*-------------------Управление клавиатурой---------------*/ /* Подключение стандартных заголовков */ #include <dos.h> void interrupt (*old9)(); /* Старый обработчик прерывания 9h */ void interrupt new9(); /* Новый обработчик прерывания 9h */ void *readvect (int in); /* Чтение вектора */ void... подробнее

Показать сообщение отдельно
K_a_t_t_y
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 6
30.03.2013, 18:16     Перегрузка операций для подмножества латинских букв
Помогите дописать программу,нужны функции по перегрузке операций,вот задание:

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

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

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
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru