Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Slavytuch
0 / 0 / 0
Регистрация: 29.09.2013
Сообщений: 92
#1

Считывание одномерного массива - C++

21.05.2014, 17:39. Просмотров 215. Ответов 0
Метки нет (Все метки)

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
134
#include "stdafx.h"
#include "stdio.h"
#include <clocale>
#include <iomanip>
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
 
class sotrydnik
{//класс содержит поля:
    //name - имя,surname - фамилия,number - рабочий номер
private:
    string surname;
    string name;
    int number;
public:
    string get_surname()
    {//получение фамилии сотрудника
        return surname;
    }
    string get_name()
    {//получение фамилии сотрудника
        return name;
    }
    int get_number()
    {//получение номера сотрудника
        return number;
    }
    void set_data(string newsurname, string newname, int newnumber)
    {
        surname = newsurname;
        name = newname;
        number = newnumber;
    }
    friend ifstream &operator >> (ifstream &inp, sotrydnik & one);
    friend ostream &operator << (ostream &out, sotrydnik one);
};
class members
{public:
    string name1;
    sotrydnik * comrade;
    int number_of_coverents;
    friend ifstream &operator >> (ifstream &inp, members &one);
    friend ostream &operator << (ostream &out, members one);
    int shortest_number()
    {
        int num = comrade[0].get_number();
        for (int i = 1; i < number_of_coverents;++i)
        if (comrade[i].get_number()<num)
            num = comrade[i].get_number();
        return num;
    }
    int* same_name()
    {
        int rez[5];
        int c = 0;
        for (int i = 0; i < number_of_coverents;++i)
        if (comrade[i].get_name() == name1)
        {
            rez[c++] = i;
        }
        c++;
        rez[c] = -1;
        for (int i = 0; i < c; ++i)
        {
            rez[i];
        }
        system("pause");
        return rez;
    }
 
};
 ifstream &operator >> (ifstream &inp, sotrydnik & one)
{
    string newsurname, newname;
    int newnumber;
    inp >> newsurname;
    inp >> newname;
    inp >> newnumber;
    one.set_data(newsurname, newname, newnumber);
    return inp;
}
 ostream &operator <<(ostream& out, sotrydnik one)
 {
     out << setw(10) << one.get_surname() << setw(10) << one.get_name() << setw(10) << one.get_number() << endl;
     return out;
 }
 
 ifstream &operator >> (ifstream &inp, members & one)
 {
     
     inp >> one.number_of_coverents;
     one.comrade = new sotrydnik[one.number_of_coverents];
     for (int i = 0; i < one.number_of_coverents; ++i)
     {
         inp>>one.comrade[i];
     }
     inp >> one.name1;
     return inp;
 }
 
 ostream &operator <<(ostream &out, members one)
 {
     for (int i = 0; i < one.number_of_coverents; ++i)
         out << one.comrade[i];
     return out;
 }
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
    members Men;
    cout << "Начальные данные сотрудников:" << endl;
    int num, c = 0;
    string name1;
    ifstream read("C:\\Logan\\InputFile.txt");
    read >> Men;
    ofstream outp("C:\\Logan\\OutputFile.txt");
    cout << setw(10) << "Фамилия" << setw(10) << "Имя" << setw(10) << "Номер" << endl << endl;
    cout << Men;
    read.close();
    cout << "Самый котороткий рабочий номер = ";
    cout << Men.shortest_number();
    cout << "Фамилии сотрудников с именем " << name1 << ":" << endl;
    int *rez = Men.same_name();
    for (int i = 0; rez[i]!= -1; ++i)
        cout << Men.comrade[rez[i]].get_surname();
       system("pause>>end");
     
   return 0;
}
При выводе на экран массива в ф-ции same_names ничего не пишет, а при дальнейшей работе программы выходит вообще за пределы. Дин. массивы не хотят создаваться - выделяется не более 1 ячейки. Чё не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2014, 17:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание одномерного массива (C++):

Считывание одномерного массива из файла - C++
Доброго времени суток! Проблема в следующем: 1. Кусочек кода из main() case 2: { file(data); delete data; ...

Считывание одномерного массива из файла. Оценка о-сложности алгоритма - C++
Добрый вечер. Есть программа, собственно что она делает не так уж и важно, но в ней я задаю массив вручную, просьба переделать ее так, что...

Считывание элементов массива из файла, где в первой строке можно задавать размерность массива - C++
Разработать программу для работы с одномерным массивом. Ее функции: - считывание элементов массива из файла (txt), где в первой строке...

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

Найти столбец массива с наибольшей суммой элементов и записатьегох в виде одномерного массива - C++
1 Для произвольного двумерного массива найти столбец с наибольшей суммой элементов и записать их в виде одномерного массива.

Функция, которая удаляет из целочисленного одномерного массива все, и возвращает новый размер массива - C++
Разработать и испытать функцию, которая удаляет из целочисленного одномерного массива все, и возвращает новый размер массива. #include...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2014, 17:39
Привет! Вот еще темы с ответами:

запись массива в строку - считывание массива из строки. - C++
Под unix на си(не с++). Посоветуйте, как можно реализовать(меня интересуют функции, которые можно использовать для этого)): Есть...

Метод-член класса для создания одномерного массива из отрицательных элементов двумерного динамического массива - C++
Помогите, пожалуйста, нужно разработать метод-член класса для создания одномерного массива из отрицательных элементов двумерного...

Переставить значение элементов заданного одномерного массива, так чтобы все нулевые оказались в конце массива - C++
А не нулевые в начале, не нарушая порядок, в котором они были

Составить программу сортировки одномерного числового массива от начала массива к элементу с заданным номером по убыванию (методом выбора) - C++
Помогите составить программу на С++. Заданный номер - 28.


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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