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

Перегрузите операторы ввода и вывода - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Файловый ввод\вывод http://www.cyberforum.ru/cpp-beginners/thread799393.html
В программе я записывают информацию структуры в файл,а потом хочу вывести с записанного файла на экран. Но вот проблемка,смог реализовать вывод только одной строки...Подскажите пожалуйста,как вывести весь файл #include <iostream> #include <fstream> // ðàáîòà ñ ôàéëàìè #include <iomanip> // ìàíèïóëÿòîðû ââîäà/âûâîäà #include <conio.h> using namespace std;
C++ Сколько раз слово встречается в предложении Здравствуйте. Напишите программу пожалуйста, если не сложно. Задание: Для каждого из слов заданного предложения указать, сколько раз оно встречается в предложении. Инициализация строки с помощью char. Я очень очень не сильна в с++, поэтому помогите пожалуйста) http://www.cyberforum.ru/cpp-beginners/thread799392.html
Сортировка. Массив. Упорядочить по невозрастанию сумм цифр, входящих в запись числа C++
Даны целые числа. Упорядочить числа в последовательности по невозрастанию сумм цифр, входящих в запись числа Помогите пожалуйста решить.
C++ Структуры
Подскажите, пожалуйста, как написать функцию поиска: 1. По фамилии. 2. по успеваемости(результат должен вывести от минимального до максимального значения). у меня есть структура struct Students{ char name; char surname; char f_name; char adress; int day; int month;
C++ Двоичный поиск в map http://www.cyberforum.ru/cpp-beginners/thread799368.html
Здравствуйте. Помогите разобраться в следующей проблеме. В общем, мне нужно реализовать двоичный поиск в map по ключам. Понятное дело, тот факт, что ключи в map отсортированы, нас только радует. Ключи у меня - string. ; т.е. их сортировка идёт по алфавиту. Значения тоже string. У меня значение, которое нужно найти в mymap двоичным поиском по ключам. Основные вопросы: 1) Как получить доступ...
C++ Получить матрицу с использованием указателей Здравствуйте! Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя её блоки размера nxn. Программа есть, готова, только нужно сделать её с использованием указателей. Тут мне подсказали что вот это - *(*(a+i)+j) нужно куда то примостить, у меня вообще с указателями тяжко, можете подсказать чего? Ниже программа без указателей и как передвинуть блоки. #include... подробнее

Показать сообщение отдельно
asdasdasdasdgg
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 10

Перегрузите операторы ввода и вывода - C++

03.03.2013, 19:30. Просмотров 285. Ответов 1
Метки (Все метки)

Описание класса-шаблона должно включать операторы <<, >>, конструктор копирования, а также другие операторы и функции, необходимые для решения задачи.
Распределение памяти для хранения массивов должно осуществляться динамически (в конструкторе), а освобождение - в деструкторе.


>>>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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <iostream.h>
#include <stdlib.h>
#include <math.h>
#include <windows.h>
#include "func.h"
 
int main()
{
    SetConsoleOutputCP(1251);
        int a,choose;
    cout << "Размер массива: ";
    cin >> a;
        label:
        if (a>0) {
    isgood();
    int * arr_a = new int[a];
    double * arr_b = new double[a];
    cout << "Номер:\t\tМассив A:\tМассив B:" << endl;
    for (int i = 0; i < a; i++)
    {
        arr_a[i] = IntRand(100,0);
        arr_b[i] = DoubleRand(100,0);
        cout <<"№"<< i << "\t\t" << arr_a[i] << "\t\t" << arr_b[i] << endl;
    }
 
 
 
    cout << "----------------------Массив ГЂ---------------------" << endl;
    max_min_loc(arr_a, a);
    max_min_abs(arr_a, a);
    cout << "----------------------Массив B--------------------- " << endl;
    max_min_loc(arr_b, a);
    max_min_abs(arr_b, a);
            delete []arr_a;
    delete []arr_b;  }
    system("pause");
    return 0;
}
 
>>>func.h<<<
 
double DoubleRand(int max, int min) 
{ 
    return min + (double(rand())/RAND_MAX)*(max - min + 1); 
}
 
 
int IntRand(int max, int min) 
{ 
    return min + (int)floor((double(rand())/RAND_MAX)*(max - min + 1)); 
}
 
void isgood()
{
  if (cin.good() == 0)
     {
        cout <<"\n--------------ВНИМАНИЕ--------------" ;
        cout << "\n>>>>>>>>>>>>>Ошибка ввода<<<<<<<<<<<<<" << endl;
        cout <<"--------------!ВНИМАНИЕ!--------------\n\n" ;
        system ("pause");
        exit(1);
     }
}
template <class Type>
void search(Type * arr, int first, int last)
{
    int i = first, j = last;
    Type x = arr[(first+last)/2];
    do
    {
        while (arr[i] < x) i++;
        while (arr[j] > x) j--;
        if (i <= j)
        {
            if (i < j)
            {
                Type temp;
                temp = arr[j];
                arr[j] = arr[i];
                arr[i] = temp;
            }
            i++;j--;
        }
    } while (i <= j);
    if (i < last) search(arr, i, last);
    if (j > first) search(arr, first,j);
}
 
 
template <class Type>
void max_min_loc(Type arr[], int m)
{
    int first,last;
    cout <<"Введите индекс первого элемента промежутка: ";
    cin >> first ;
        cout <<"Введите индекс последнего элемента промежутка :" ;
        cin >> last;
    isgood();
        if (first <= last) {
    if (first < 0 || last < 0)
    {
        cout <<"\n!!!!!!!!!!!!!!!!!!!!!!!!!!ВНИМАНИЕ!!!!!!!!!!!!!!!!!!!!!!!!!!\n"<< "------------------выход за пределы------------------" <<"\n!!!!!!!!!!!!!!!!!!!!!!!!!ВНИМАНИЕ!!!!!!!!!!!!!!!!!!!!!!!!!!\n"<< endl;
        return;
    }
    else if (first > m-1 || last > m-1)
    {
        cout <<"\n!!!!!!!!!!!!!!!!!!!!!!!!!!ВНИМАНИЕ!!!!!!!!!!!!!!!!!!!!!!!!!!\n"<< "------------------выход за пределы------------------" <<"\n!!!!!!!!!!!!!!!!!!!!!!!!!!ВНИМАНИЕ!!!!!!!!!!!!!!!!!!!!!!!!!!\n"<< endl;
        return;
    }
    int n = last-first+1;
    Type * temp_array = new Type[n];
    for (int i = 0, j = first; i < n; i++, j++)
    {
        temp_array[i] = arr[j];
    }
    search(temp_array,0,n-1);
    cout <<"---------------------------------------------------\n"<< "Локальный минимум = " << temp_array[0] << endl << "Локальный максимум = " << temp_array[n-1] << endl<<endl;
    delete []temp_array;    }
        else cout <<"\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!ВНИМАНИЕ!!!!!!!!!!!!!!!!!!!!!!!!!!\n" <<"-----------ГЊминимум не может быть больше максимума-----------\n"<<"!!!!!!!!!!!!!!!!!!!!!!!!!!ВНИМАНИЕ!!!!!!!!!!!!!!!!!!!!!!!!!!"<<endl;
}
 
template <class Type>
void max_min_abs(Type arr[], int m)
{
    Type * temp_array = new Type[m];
    for (int i = 0; i < m; i++)
    {
        temp_array[i] = arr[i];
    }
    search(temp_array,0,m-1);
    cout << "Абсолютный минимум = " << temp_array[0] << endl << "Абсолютный максимумГ¬ = " << temp_array[m-1] << endl<<endl<<"---------------------------------------------------\n";
    delete []temp_array;
}
Добавлено через 26 минут
Помогите плз!

Добавлено через 3 часа 54 минуты
Знает кто?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru