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

Объектно ориентированное программирование - C++

Восстановить пароль Регистрация
 
sheill
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 54
18.05.2011, 14:36     Объектно ориентированное программирование #1
Нужно решить задачи. Помогите кому это не сложно, очень нужно. Вот задачи:
1) Создание и редактирование классов. Нужно создать класс "арифметическое выражение" с компонентными данными: 1-й аргумент, 2-й аргумент, знак арифметического выражения(перечислимого типа +, -, *,/). Определить компонентные функции: получение каждого элемента класса по отдельности, изменение значения операндов,вычисление значения выражения, вывод на экран в формате "арг1 операция арг2 = результат".
2)Перегрузка стандартных операций. Нужно описать класс "квадрат" с компонентными данными: координаты центра,длина стороны. Перегрузить операции: <<, префиксный --(декремент длины стороны), !=(проверка на неравенство длин сторон квадратов), +=(увеличение на n координат центра).
3)Наследование и полиморфизм.Виртуальные функции. Нужно создать базовый класс - работник и производные классы - служащий с почасовой оплатой, служащий в штате и служащий с процентной ставкой. Определить функцию начисления зарплаты.
4)Шаблоны классов. Нужно разработать шаблон класса где поля могут иметь различные типы данных(некоторые поля могут быть статическими)Предусмотреть наличие в классе указанных методов и перегруженных операций.Название класса - линейное уравнение; поля - коэффициенты, корень; методы - изменение значений полей, вывод в формате (ax+b=0), решение уравнения; перегружаемые операции - <=(сравнение корней двух уравнений), префиксный ++(инкремент каждого коэффициента).
5)Обработка исключений. Необходимо создать три массива a,b и c размерами соответственно n1, n2, n3 (размеры массивов не равны). В массив a занести значения f(x)= 1/(x^2-1), x принадлежит отрезку от -2 до 0, дельта x равен 0,1. Массив b заполнить случайными числами среди них должны быть и отрицательные числа и нули. Массив c формируется согласно правилу ci=ai-!-2/(bi-1+1). Предусмотреть и обработать возникающие при этом исключительные ситуации( деление на ноль, выход за диапазон индексов массива и т.п.).
6)Разработка приложений с использованием типа string. Дана строка слов. Подсчитать,какая из букв встречается наибольшее(наименьшее) количество раз, а так же, общее количество разных букв в строке.
7)Использование стандартной библиотеки шаблонов STL. Сформировать стек из записей: наименование продукта, калорийность единицы продукта, количество продукта. Найти самый калорийный продукт, найти сумму калорийности всех продуктов. В массив перенести только те продукты чья калорийность ниже средней.
Вот все задачи...кто может посмотрите, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2011, 14:36     Объектно ориентированное программирование
Посмотрите здесь:

C++ ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
Объектно-ориентированное программирование C++
C++ Объектно-ориентированное программирование
C++ Объектно ориентированное программирование.
C++ Объектно-ориентированное программирование C++
C++ Объектно-ориентированное программирование в С++ ?
Объектно-ориентированное программирование C++
Функции Объектно-ориентированное программирование C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
18.05.2011, 16:49     Объектно ориентированное программирование #2
4.
Какой тип результата у сравнения корней (a <= b)?
Как сравнить корни, если у одного уравнения нет корней?
Как сравнить корни, если у одного уравнения бесконечное количество корней?
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 <iostream>
#include <cmath>
#include <exception>
 
template <typename Argument, typename RootType = float>
class LinearEquation {
 public:
  class ExceptionA0: public std::exception {
    virtual const char* what() const throw() {
      return "Both parameters are zero. Equation has infinit number of roots.";
    }
  };
  class ExceptionNoRoots: public std::exception {
    virtual const char* what() const throw() {
      return "First parameter is zero. Equation has no roots.";
    }
  };
  LinearEquation(const Argument &a, const Argument &b) : a_(a), b_(b) {}
  LinearEquation() : a_(Argument()), b_(Argument()) {}
  RootType Root() const {
    if (a_ == 0 && b_ == 0) throw(ExceptionA0());
    if (a_ == 0) throw(ExceptionNoRoots());
    return -(b_ / RootType(a_));
  }
  void A(const Argument &value) { a_ = value; }
  void B(const Argument &value) { b_ = value; }
  Argument A() const { return a_; }
  Argument B() const { return b_; }
  LinearEquation &operator++() {
    ++a_;
    ++b_;
    return *this;
  }
  LinearEquation operator++(int) {
    LinearEquation result(a_, b_);
    ++a_;
    ++b_;
    return result;
  }
  friend std::ostream &operator<<(std::ostream &stream,
                                  const LinearEquation &equation) {
    return stream << equation.A() << " * x "
                  << ((equation.B() < 0) ? "- " : "+ ")
                  << fabs(equation.B())
                  << " = 0";
  }
 private:
  Argument a_;
  Argument b_;
};
 
int main(int argc, char *argv[]) {
  LinearEquation<float> a(0, 0);
  std::cout << ++a;
  try {
    std::cout << "; x = " << std::fixed << a.Root() << std::endl;
  } catch(std::exception &e) {
    std::cout << "; " << e.what() << std::endl;
  }
  return 0;
}
Добавлено через 12 минут
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
#include <iostream>
#include <cmath>
 
class Square {
 public:
  Square() : side_(0), x_(0), y_(0) {}
  explicit Square(float side) : side_(side), x_(0), y_(0) {}
  Square(float side, float x, float y) : side_(side), x_(x), y_(y) {}
  void Side(float value) { side_ = value; }
  void X(float value) { x_ = value; }
  void Y(float value) { y_ = value; }
  float Side() const { return side_; }
  float X() const { return x_; }
  float Y() const { return y_; }
  Square &operator--() {
    --side_;
    return *this;
  }
  Square &operator+=(float value) {
    x_ += value;
    y_ += value;
    return *this;
  }
  bool operator!=(const Square &other) {
    return fabs(other.Side() - Side()) > 0.00001; // some 'epsilon' value
                                                  // for float comparision
  }
  friend std::ostream &operator<<(std::ostream &s, const Square &square) {
    return s << std::fixed << "(" << square.X() << ", " << square.Y()
             << ") side: " << square.Side();
  }
 private:
  float side_;
  float x_;
  float y_;
};
 
int main(int argc, char *argv[]) {
  Square a(10), b(5, 1, 1);
  --a;
  a += 1;
  std::cout << a << std::endl << b << std::endl
            << ((a != b) ? "a != b" : "a == b") << std::endl;
  return 0;
}
sheill
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 54
18.05.2011, 18:26  [ТС]     Объектно ориентированное программирование #3
lemegeton, Все что было в задании написал( вот такое задание что ничего не понятно(((
Yandex
Объявления
18.05.2011, 18:26     Объектно ориентированное программирование
Ответ Создать тему
Опции темы

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