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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
dr2210
Сообщений: n/a
#1

Описать класс для хранения строк - C++

29.01.2011, 11:03. Просмотров 1191. Ответов 3
Метки нет (Все метки)

Доброго всем времени суток. Помогите пожалуйста.
получил задание:
Описать класс для хранения строк, в котором могут присутствовать только символы десятичных чисел. При попытке записи других символов генерировать исключение. Разработать тестовую рограмму.

сам я в с++ полный ноль....а задание на экзамен(((

Заранее спасибо. вы мне очень поможете))

спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2011, 11:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Описать класс для хранения строк (C++):

Реализуйте класс для хранения ФИО и номера телефона человека, класс для хранения даты рождения человека, а также класс для хранения ФИО и почтового ад - C++
Реализуйте класс для хранения ФИО и номера телефона человека, класс для хранения даты рождения человека, а также класс для хранения ФИО и...

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

Описать класс,содержащий переменную для хранения текстовой строки. - C++
Описать класс,содержащий переменную для хранения текстовой строки.Вне класса притв функцию,которая определит какое слово встречается в...

Описать структуру для хранения следующей информации - C++
Нужно срочно написать, а не выходит(((( Описать структуру для хранения следующей информации (при необходимости используйте перечисления):...

Класс для хранения массива данных - C++
Описать класс для хранения массива данных. Реализовать для него операцию индексации с контролем выходы индексов за пределы массива. В...

Класс для хранения пары значений - C++
Есть ли какой нибудь класс для хранения пары значений: <char *key, some_struc *s>. Чтобы можно было по ключу получить элемент: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
29.01.2011, 12:09 #2
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
62
63
64
65
66
67
68
69
70
71
72
73
#include <cstddef>
#include <cstdio>
#include <cstring>
#include <exception>
 
class String {
 public:
 
  class WrongCharacterExcpetion : public std::exception {
   public:
    WrongCharacterExcpetion(const size_t position, const char symbol) throw()
        : position_(position), symbol_(symbol) {
      sprintf(error_string_, "Incorrect symbol '%c' at position %d.\n",
              symbol_, position_);
    }
    virtual const char* what() const throw() {
      return error_string_;
    };
    size_t position() const {
      return position_;
    }
    char symbol() const {
      return symbol_;
    }
  private:
    size_t position_;
    char symbol_;
    char error_string_[80];
  };
 
  String() : size_(0), data_(NULL) {}
  explicit String(const char* string)
      : size_(0), data_(NULL) {
    SetString(string);
  }
  ~String() {
    delete data_;
  }
  void SetString(const char* new_string) {
    size_t new_string_length = strlen(new_string);
    char *string_buffer = new char[new_string_length + 1];
    size_t position = 0;
    while (new_string[position] != '\0') {
      if (new_string[position] >= '0' && new_string[position] <= '9') {
        string_buffer[position] = new_string[position];
      } else {
        delete string_buffer;
        throw WrongCharacterExcpetion(position, new_string[position]);
      }
      ++position;
    }
    string_buffer[position] = new_string[position];
    size_ = new_string_length;
    delete data_;
    data_ = string_buffer;
  }
  size_t Length() const { return size_; }
  char *CString() const { return data_; }
 private:
  size_t size_;
  char *data_;
};
 
int main(int argc, char *argv[]) {
  String a("12345");
 
  try {
    String b("125a12");
  } catch (String::WrongCharacterExcpetion &exception_rised) {
    printf("%s\n", exception_rised.what());
  }
  return 0;
}
igorrr37
1646 / 1274 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
29.01.2011, 16:29 #3
lemegeton, вроде как delete[] data_?
sandye51
программист С++
682 / 584 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
29.01.2011, 17:02 #4
igorrr37, угу
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2011, 17:02
Привет! Вот еще темы с ответами:

Класс для хранения персональной информации - C++
Из 5 пунктов должна получится программа. (можно с#) 1. Объявите класс CPerson, используемый для хранения информации о конкретном...

Написать класс, для хранения строки символов - C++
Написать класс, для хранения строки символов. Перегрузить операторы «+» и «+=» для соединения двух строк в одну.

Создать класс для хранения размеров четырехугольника - C++
Создать класс для хранения размеров четырехугольника. Реализовать методы класса для вычисления площади и периметра ...

Реализовать класс для хранения квадратного многочлена - C++
Спроектировать и реализовать класс для хранения квадратного многочлена. Написать методы для нахождения дискриминанта, корней многочлена и...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.01.2011, 17:02
Ответ Создать тему
Опции темы

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