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

Векторный калькулятор на классах - C++

Восстановить пароль Регистрация
 
ArtBrytkov
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 26
29.05.2014, 16:13     Векторный калькулятор на классах #1
Привет всем. Преподаватель дал задание, написать векторный калькулятор на классах.
На массивах в консоли я сделал для 4 операций, но как теперь переписать его на классы, используя перегрузку функций итд, не могу понять.
Прошу помощи от сообщества. Буду признателен, если будет готовое решение хотя бы для одной операции или хотя бы подсказки, что загонять в классы
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2014, 16:13     Векторный калькулятор на классах
Посмотрите здесь:

программа в классах C++
C++ Ошибка в классах
C++ Исключения в классах
константы в классах C++
C++ дана матрица А(5,5). Получить векторный столбец, элементы которого являются наибольшими по модулю элементов исходной матрицы
Двумерный динамический массив (Получить векторный столбец, элементы которого являются наименьшим по модулю столбцов исходной матрицы) C++
C++ функции в классах
Стандартный векторный контейнер C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
29.05.2014, 16:47     Векторный калькулятор на классах #2
где код?
ArtBrytkov
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 26
29.05.2014, 16:54  [ТС]     Векторный калькулятор на классах #3
Kuzia domovenok, кода на классах нету. Предыдущий вариант что сам писал мог скинуть.
.h файл
Кликните здесь для просмотра всего текста
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
#pragma once
#include <stdio.h>      //Подключение библиотеки стандартного ввода-вывода; 
#include <conio.h>      //Подключение библиотеки консольного ввода-вывода; 
#include <iostream>     //Подключение библиотеки потокового ввода-вывода;
#include <stdlib.h>
#include <windows.h>
 
using namespace std;
//---------------------------------------------------------
//-----------Создание структуры данных
typedef struct
{
    double x, y, z;
}vector;                // Возвращает вектор (x,y,z)
//----------------------------------------------------------
//-----------Создание класса "Векторы"
class vectors           // Класс векторов
{
private:
    vector c1, c2, sum, proizved, vec;  //
    double composit;    // Переменная, хранит произведение векторов
//-----------------------------------------------------------
//-----------Для ввода данных
public:
    void init (vector a, vector b); // Инициализация координат двух векторов
    void inita (vector a);          // Инициализация для одного вектора
//-----------Для операций
    vector add ();                  // Суммирование векторов
    double proizv ();               // Скалярное произведение
    vector vectorn ();              // Векторное произведение
    vector proizvch (int k);        // Умножение вектора на число
//-----------Для вывода данных
    void printV (vector z1);        // Вывод суммы векторов или произведение вектора на число
    void printN (double nn);        // Вывод произведения векторов
 
};
//-------------------------------------------------------------

Файл для ввода вывода
Кликните здесь для просмотра всего текста
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 "Calc.h"
//-----------Файл для ввода/вывода данных
 
//-----------Инициализация координат двух векторов
void vectors::init (vector a, vector b) 
{
    c1.x=a.x; c2.x=b.x; // Координаты x
    c1.y=a.y; c2.y=b.y; // Координаты y
    c1.z=a.z; c2.z=b.z; // Координаты z
 
}
//-----------Инициализация координат одного вектора
void vectors::inita (vector a)
{
    c1.x=a.x;           // Координата x
    c1.y=a.y;           // Координата y
    c1.z=a.z;           // Координата z
}
//-----------Вывод результата в виде (x,y,z).
//Для вывода суммы, векторного произведения и произведения вектора на число
void vectors::printV (vector z1)
{
    cout<<"> Результат = {"<<z1.x<<","<<z1.y<<","<<z1.z<<"}"<<endl;
}
//-----------Вывод результата в виде числа
//Для вывода скалярного произведения
void vectors::printN (double nn)
{
    cout<<"> Результат = "<<nn<<endl;
}
//-------------------------------------------------------------

Файл для расчётов
Кликните здесь для просмотра всего текста
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
#include "Calc.h"
//-----------Файл операций
//-----------Сложение векторов
vector vectors::add ()  
{
    sum.x=c1.x+c2.x;    // Суммируем x
    sum.y=c1.y+c2.y;    // Суммируем y
    sum.z=c1.z+c2.z;    // Суммируем z
    return sum;         // Сохраняем результат
}
//-----------Умножение вектора на число
vector vectors::proizvch (int k)
{
    proizved.x=c1.x*k;
    proizved.y=c1.y*k;
    proizved.z=c1.z*k;
    return proizved;
}
//-----------Векторное произведение
vector vectors::vectorn ()
{
    vec.x=c1.y*c2.z-c1.z*c2.y;
    vec.y=c1.z*c2.x-c1.x*c2.z;
    vec.z=c1.x*c2.y-c1.y*c2.x;
    return vec;
}
//-----------Скалярное произведение
double vectors::proizv ()
{
    composit=c1.x*c2.x+c1.y*c2.y+c1.z*c2.z; 
    return composit;    
}
//-------------------------------------------------------------

Ну и main.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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include "Calc.h"
//----------- Основной рабочий файл
int main ()
{
    system("title Калькулятор векторов");   // Заголовок окна консоли
    system("color F0");  // Установка белого фона и черного текста
    setlocale( LC_ALL,"Russian" );          // Великий и могучий
    int ch;                                 // Для выбора операции через свитч кейс
    // Сообщения о выборе операций
    cout << "\tКакие действие вы будете выполнять." << endl;
    cout << ">1. Сложение двух векторов. " << endl;
    cout << ">2. Скалярное произведение. " << endl;
    cout << ">3. Векторное произведение. " << endl;
    cout << ">4. Умножение вектора на число.\n" << endl;
    cout << "Введите цифру для выбора действия" << endl;
 
    cin>>ch;
    while (ch<1 || ch>4)                            // Выполняется пока условие истинно
        {
        cout<<"Введите корректное число (1-4): ";   // Выводим если ввели что-то не то из цифр
        cin>>ch;                                    // Берем число, введенное пользователем
        }
    switch(ch)  
    {
    case 1: 
        {
            vector b1, d1;
            vectors a1;
            cout<<"Введите координаты первого вектора через пробел:"<<endl;
            cin>>b1.x>>b1.y>>b1.z; // Ввод координат первого
            cout<<"Введите координаты второго вектора через пробел:"<<endl;
            cin>>d1.x>>d1.y>>d1.z; // // Ввод координат второго
            a1.init (b1, d1);
            a1.printV(a1.add ());
            break;  
        }
 
    case 2:
        {
            vector b1, d1;
            vectors a1;
            cout<<"Введите координаты первого вектора через пробел:"<<endl;
            cin>>b1.x>>b1.y>>b1.z; // Ввод координат первого
            cout<<"Введите координаты второго вектора через пробел:"<<endl;
            cin>>d1.x>>d1.y>>d1.z; // // Ввод координат второго
            a1.init (b1, d1);
            a1.printN(a1.proizv());
            break;  
        }
    case 3:
        {
            vector b1, d1;
            vectors a1;
            cout<<"Введите координаты первого вектора через пробел:"<<endl;
            cin>>b1.x>>b1.y>>b1.z; // Ввод координат первого
            cout<<"Введите координаты второго вектора через пробел:"<<endl;
            cin>>d1.x>>d1.y>>d1.z; // // Ввод координат второго
            a1.init (b1, d1);
            a1.printV(a1.vectorn());
            break;  
        }
    case 4:
        {
            vector b1;
            vectors a1;
            int k;
            cout<<"Введите координаты вектора через пробел:"<<endl;
            cin>>b1.x>>b1.y>>b1.z;  // Ввод координат первого
            cout<<"Введите число, на которое умножим вектор"<<endl;
            cin>>k;                 // Ввод числа   
            a1.inita (b1);          // 
            a1.printV(a1.proizvch(k));
        }
 
    }
            system("pause");
}

Не пинайте за быдлокод
Yandex
Объявления
29.05.2014, 16:54     Векторный калькулятор на классах
Ответ Создать тему
Опции темы

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