Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Двунаправленное кольцо задание: 1. Реализовать с использованием массива двунаправленное кольцо (просмотр возможен в обе стороны, от последнего элемента можно перейти к первому). 2. Распечатать полученный массив, начиная с К-ого элемента и до К-1 ( по кольцу влево). 3. Удалить из кольца первый и последний элементы 4. Распечатать полученный массив, начиная с К-ого элемента (и до К+1 по кольцу вправо). есть... https://www.cyberforum.ru/ cpp-beginners/ thread403852.html Строку в массив C++
Суть: нужно ввести строку скажем hello, так чтобы каждый символ загнать в массив. Помогите пожалуйста!
C++ Инициализировать массив быстро? https://www.cyberforum.ru/ cpp-beginners/ thread403847.html
Возможно ли инициализировать все элементы массива каким-то числом быстрее, чем через цикл? Как это можно сделать? Если нельзя, то как лучше это сделать в цикле-помещать локальные переменные счетчика и числа в процессорные регистры?
C++ Сортировка линейного однонаправленного списка Всем привет) Нужно отсортировать линейный однонаправленный список. Как это можно сделать? Причем нужно менять местами не данные, а указатели.. Вот код программы, список структур. Помогите плиз с сортировкой #include "stdafx.h" #include <clocale> #include <iostream> https://www.cyberforum.ru/ cpp-beginners/ thread403820.html
[C++] Арканоид C++
Здравствуйте, я самый на то есть начинающий программист,поэтому сразу прошу прощения, если вопросы будут не очень коректными.Очень расчитываю на вашу помощь. Задача состоит в следующем. Нужно написать Арканоид на VisualС++(в игре должна присутствовать простая минюшка и хотябы два, три уровня.Причём написание нового уровня не должно сводиться к переписанию половины кода).Нужно использовать движок...
C++ Найти и вывести координаты центра окружности https://www.cyberforum.ru/ cpp-beginners/ thread403801.html
Друзья, нужна помощь. Девушке задали лабы по СИ, она не шарит. Знакомых всех спросил, никто не может помочь. Вот она: 1. Диаметр окружности начинается в точке М1(x1,y1) и кончается в точке M2(x2,y2). Найти и вывести координаты её центра. 2. Числа X1 и X2 являются корнями приведенного квадратного уравнения. Найти и выве-сти наибольшее из чисел: sin(p) и cos(q), где p и q являются его вторым и...
C++ system("") https://www.cyberforum.ru/ cpp-beginners/ thread403781.html
Хотел узнать, есть справочник хотя бы о большинстве команд в system("")? Сам искал, ничего хорошего не нашел.
C++ Геометрические задачи
Составить программу вычисления сторон треугольника, если известны радиус описанного вокруг него круга и градусные меры двух его углов. #include <iostream.h> #include <conio.h> #include <math.h> main() { float a, b, c, R, x, y, z; cout<<"Vvedit qradysny miry dvoh kytiv i radiys opusanogo kola: ";
C++ Минимальное количество монет Есть такая задача: Денежная система некоторой страны предоставляет монеты номиналом с, = 1, с2, ..., сN. Как выдать сумму S с помощью минимального числа монет? Вход. В первой строке — сумма S и количество номиналов N, во второй — значения номиналов: 1<N≤20, 1=с1<с2<...< сN≤50000, S≤100000. Выход. В первой строке — минимальное количество монет, во второй — N чисел (количества... https://www.cyberforum.ru/ cpp-beginners/ thread403778.html C++ Блок-схема Помогите составить блок-схему #include<iostream.h> #include<math.h> main(){ float a,b,m,h,x,y; setlocale(LC_ALL,"Russian"); cout<<"Начало отрезка a="; cin>>a; cout<<"Конец отрезка b="; cin>>b; https://www.cyberforum.ru/ cpp-beginners/ thread403776.html
Проблема с do-while C++
проблемка в том что надо зделать после }while (otvet != 'd'); выход если не правельный ввод а у меня получается вы проиграли и не выдает нажмите энтер! #include <iostream> #include <clocale> using namespace std; void main() { setlocale(LC_ALL, "Russian"); char otvet;
C++ Определить, есть ли в массиве повторяющиеся значения.CBuilder Составить программу обработки элементов массива, которые вводит Массив оформить в виде динамической структуры.Определить, есть ли в массиве повторяющиеся значения https://www.cyberforum.ru/ cpp-beginners/ thread403760.html
3 / 3 / 1
Регистрация: 08.10.2011
Сообщений: 45
0

наследование-нужна помощь - C++ - Ответ 2269650

14.12.2011, 17:33. Показов 1186. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Помогите пожалуйста дописать производный класс. Осталось дописать конструктор, принимающий в качестве параметра Си-строку (заканчивается нулевым байтом); метод, преобразующий данную строку в целое десятичное число, сложение (+) — арифметическая сумма строк; операция (==) — проверка на равенство.
Само задание: Описать базовый класс CStr – строка Описать производный от СStr класс CSStr – шестнадцатеричная строка. Строки данного класса могут содержать только шестнадцатиричные символы. Если в составе инициализирующей строки будут встречены любые символы, отличные от допустимых, строка принимает нулевое значение. Содержимое данной строки рассматривается как знаковое шестнадцатеричное число.. Класс CSStr содержит следующие методы: конструктор без параметров; конструктор, принимающий в качестве параметра Си-строку (заканчивается нулевым байтом); конструктор копирования; деструктор, метод, преобразующий данную строку в целое десятичное число. Переопределить следующие операции: присваивание (=); сложение (+) — арифметическая сумма строк; операция (==) — проверка на равенство. Написать демонстрационную программу.

Вот моя прога:
Str.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once
#include <iostream>
class CStr
{protected: 
int len;//Поле для хранения длины сроки 
        char* s;//Поле для хранения строки
        
public:
        CStr();//Kонструктор без параметров
        CStr( const char*);//Конструктор создания строки, равной заданной С- строке
        CStr(const CStr&);//Kонструктор копирования
        CStr& operator=(const CStr&);// Операция присваивания
        bool operator ==(CStr &);//сравниваем объект  класса с произвольной символьной строкой
        void empty();// Метод, делающий строку пустой
        ~CStr(){delete[]s;}//Деструктор
        const char * get_str()  const {return s;} //Метод  получения строки
        int get_len() const {return len;}// Метод получения длины строки
        void vivod ();
};
bool operator ==( const CStr &, const CStr & );//сравниваем объект  класса с произвольной символьной строкой

Str.cpp
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
#include "StdAfx.h"
#include "Str.h"
#include <iostream>
#include <iomanip>
using namespace std;
 
// Конструктор создания пустой строки
CStr::CStr():len(0), s( new char[1] )
{
   *s='\0'; cout<<"\nContructor1";
}
 
// Конструктор создания строки, равной заданной С- строке
CStr::CStr(const char* a) : len( strlen( a ) ), s( new char[len+1] )
{
        strcpy(s,a);
        cout<<"\nContructor2";
}
 
// Конструктор копирования
CStr::CStr(const CStr& a) : len( a.len ), s( new char[len+1] )
{
   strcpy(s,a.s);
   cout<<"\nContructor3 ";
}
// Операция присваивания
CStr& CStr::operator = (const CStr & a)
{
        if (&a==this)  return *this;
        delete []s;
        
        s=new char [a.len];
        strcpy(s,a.s);
        cout<<" \nDONE == ";
        return *this;
}
 
// Метод, делающий строку пустой
void CStr::empty()
{ if (len)   
        { len = 0; delete []s; s = new char; *s= '\0';} 
}
 
// Операция записи в поток вывода на экран
 ostream& operator<<(ostream& a, CStr& x)
 {a << x.get_str();
 return a;}
 
 //сравниваем объект  класса с произвольной символьной строкой
bool operator ==(const CStr & lhs, const CStr &rhs)
{
   return ( strcmp( lhs.get_str(), rhs.get_str() ) == 0 );
}
 
//вывод
void CStr::vivod ()
{    int n=strlen(s);
    for (int i=0; i<n; i++)
    cout<<s[i];    
}
SStr.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma once
#include <iostream>
#include "Str.h"
using namespace std;
 
 
class CSStr:public CStr
{public:
CSStr(); //конструктор без параметров !
int get_len() {return len;}; // получение длины строки
~CSStr (){delete []s; cout<<"\ndestructor\n";} //деструктор!
CSStr(const CSStr &); // конструктор копирования!
CSStr (char* a);//конструктор, принимающий в качестве параметра Си-строку 
CSStr & operator=(CSStr &); // присваивание (=)!
operator int();//метод, преобразующий данную строку в целое десятичное число. 
CSStr & operator+( const CSStr& );//сложение (+) — арифметическая сумма строк; 
void vivod();// вывод
};
SStr.cpp
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
#include <string>
#include <cctype>
#include <conio.h>
#include <stdio.h>
using namespace std;
 
 
CSStr::CSStr() // конструктор без параметров
{    s = new char;
    *s = '\0'; 
    len = 0;
    cout<<"contructor bez parametra\n";
}
 
CSStr::CSStr(const CSStr & a) // конструктор копирования
{     s=new char[len=a.len];
    strcpy(s,a.s);
    cout<<"contructor kopirovanija\n";
}
 
CSStr& CSStr::operator = (CSStr & a) //присваивание (=)
{  CStr::operator=(a);
    return *this;
}
 
 
void CSStr::vivod () //вывод
{    int n=strlen(s);
    for (int i=0; i<n; i++)
    cout<<s[i];    
}
Добавлено через 32 секунды

Добавлено через 6 часов 37 минут
сделала для производного класса //конструктор принимающий в качестве параметра Си-строку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CSStr::CSStr (char* a)  
{int k=0;
    len=strlen(a);
    if (a[0]>='0'&& a[0]<='9'||a[0]>='A'&& a[0]<='F' )  //проверяем первый символ, является ли он буквой
        {s=new char[len+1];
         s[k]=a[0];
        for (int i=1; i<len; i++) //просматриваев выражение cлева направо
        {if (a[0]>='0'&& a[0]<='9'|| a[0]>='A'&& a[0]<='F') {k++; s[k]=a[i];}   //isalpha(x), функция описанная в сtype.h, проверяет,является ли x латинской буквой
                else {int atoi(a[i]); //перевод в тип int;
                if (a[0]>='0'&& a[0]<='9'|| a[0]>='A'&& a[0]<='F') {k++; s[k]=a[i];}
                else {if (a[i]=='_') {k++; s[k]=a[i];} 
                else "Введено не верно"; } 
}
}
 s[len]='\0';
}
else  {cout<<" \n Не шестнадцатеричная строка \n";}
}
Добавлено через 5 часов 54 минуты
все разобралась помощь больше не нужна)))

Вернуться к обсуждению:
наследование-нужна помощь C++
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2011, 17:33
Готовые ответы и решения:

НУЖНА ПОМОЩЬ
:help: Я нуб :help: У меня есть код (ну примерно то,что я хочу).Я не могу разобраться в visual...

Нужна помощь Строки.
Составить программу вывода последовательности символов ZYYXXX...AA..AA Y на экран.

Нужна помощь с программой
Добрый день!! Помогите пожалуйста с программой, задача состоит в следующем: Все задания...

нужна помощь по л.р. (вопросы)
значит ниже задания, в 3. и 4. нужно найти ошибки а рядом написать правильный вариант : 2. Чему...

0
14.12.2011, 17:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2011, 17:33
Помогаю со студенческими работами здесь

Нужна помощь начинающему (while).
Собствено вот код: //While DEMO //прога выводит количество выполненых цыклов while #include...

Нужна помощь с классом
Вот напечатал это: #include &lt;iostream&gt; #define maxN 10 //количество вершин using namespace...

Нужна помощь с ассемблером.
Пыталась сама написать, да что-то не очень у меня получается. Задание состоит в том, чтобы найти...

Нужна помощь с комментариями.
Нужны комментарии и сделать так, чтобы вводилось только пятизначное число. #include &quot;stdafx.h&quot;...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru