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

Сортировка массива экземпляров класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чтение строки из файла http://www.cyberforum.ru/cpp-beginners/thread986973.html
Задание: Считать из входного файла строку символов; переписать ее в выходной файл Проблема такая: В входном документе прописал Я выполнил третье задание. Долго думал, однако получилось. В выходном файле печататется все без пробелов, к тому же заполняется все буквами М, т.е. Явыполнилтретьезадание.Долгодумал,однакополучилось.МММММММММММММММММММММММММММММММММММММММММММММММММ
C++ std::cin Debug Access failed Решил начать программировать в visual studio 2012 и сразу наткнулся на какую-то непонятную ошибку вот код: #include "stdafx.h" #include "iostream" using namespace std; int _tmain(int argc, _TCHAR* argv) { char *a = NULL; http://www.cyberforum.ru/cpp-beginners/thread986955.html
C++ Не знаю как исправить ошыбку в коде
Выбивает вот-это error C2679: бинарный "=": не найден оператор, принимающий правый операнд типа "flower (__cdecl *)(void)" (или приемлемое преобразование отсутствует). Ошыбка в этой строчке A=kvit_1. Друзья, помогите, пожалуйста. main #include "flower.h" #include <fstream> #include <sstream> #include <string> #include <algorithm> #include <iostream>
Вычисление суммы ряда с заданной точностью C++
Не используя стандартные функции (за исключением abs), вычислить сумму ряда с заданной точностью e: (см.вложение) Входные данные Вещественное число e (0 < e < 1). Выходные данные Сумма ряда точностью до шести знаков после запятой. Пример входных данных:
C++ Чтение из файла http://www.cyberforum.ru/cpp-beginners/thread986868.html
Здравствуйте! Подскажите пожалуйста, правильное ли это условие на открытие файла? std::ifstream fout1(strok_name.c_str(),std::ios_base::in); if (!fout1.is_open()) // если файл небыл открыт { std::cout << "Файл не может быть открыт\n"; }
C++ В исходном предложении поставить между словами вместо пробела вставьте символ '*', вывести полученный текст и количество звездочек Здравствуйте! Помогите с написанием кода. Задача: В исходном предложении поставить между словами вместо пробела вставьте символ '*', вывести полученный текст и количество звездочек. подробнее

Показать сообщение отдельно
Оксана 1234
4 / 4 / 0
Регистрация: 10.04.2013
Сообщений: 165

Сортировка массива экземпляров класса - C++

24.10.2013, 19:38. Просмотров 217. Ответов 0
Метки (Все метки)

У меня есть почти готовая программа,проблема в main,программа не совсем коректно выдает результат в сортировке и ничево не выводит при выводе. Мне надо в главной программе продемонстрировать ввод / вывод и сортировку массива экземпляров класса с помощью перегруженных операций. Друзья, пожалуйста, помогите. Спасибо.

main
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
#include "flower.h"
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <cctype>
 
using namespace std;
 
void main()
{//konstryctoru
    flower kvit_1, kvit_2("rosa","red",2), kvit_3(kvit_2), kvit_4;
    
    flower *A = new flower[4];
    cout << endl;
   //.........................................................
    cout <<kvit_1 << "\n" << kvit_2 << endl;
    cin >> kvit_3 ;
    cout << kvit_3 << endl;
    kvit_4.read_file();
    cout << kvit_4 << endl;
    A[0]=kvit_1;
    A[1] = kvit_2;
    A[2] = kvit_3;
    A[3] = kvit_4;
    
    //.........................................................
    //......сортування методом пошуку найменшого елемента......
    int N = 4;
    int max, i;
    flower temp;
    while(N >0)
    {
        max = 0;
    for(int i = 0; i < N; i++)
    {
        if(A[i] > A[max])
            max = i;
         temp = A[N-1];
         A[N-1] = A[max];
         A[max] = temp;
         N--;
        }
    cout << A[N] << endl; 
    }
    cout << "vuvid vidsortovanoho masuvy: \n";
    for(int i = 0; i < N; i++)
    cout << A[i] << endl;
   //..........................................................
 
   cout<<endl;  
 
 
 
system("pause");
}
flower.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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <algorithm>
#include <iterator>
#include <iostream>
 
#include <cctype>
#include "flower.h"
FILE*out;
FILE*Text;
using namespace std;
 const int size = 12; 
  string a[size]={"january", "february", "mart", "april", "may", "june", "july", "ougest", "september", "october", "november", "december"};
 
int flower::count = 0;
 
 
 
bool flower::month(int n)
{   if((n<=0)||(n>=12)) return false;
    name_month=a[n-1];
    return true;
}
/*
int flower::GetCount()
{
    return count;
}*/
 
bool flower::month(string s)
{
    for(int i=0; i<12;i++)
    {   if(s==a[i])
    {numb_month=i+1;
    return true;}
    
    } 
int j=0;
        for(int k=0; k<12;j=0,k++ )
    {for(int i=0; i<3;i++)
    {if ((a[k])[i]==s[i])
    {j++;
        if(j==3) return true;}}}
        
    return false;
}
 
string flower::month()
{
    return name_month;
}
 
void flower::set_color(char*s)
{
    color=s;
}
 
char* flower::get_color()
{
    return color;
}
 
void flower::set_number(int s)
{
    number=s;
}
 
int flower::get_number()
{
    return number;
}
 
flower::flower()
{cout<<"Konstryktor\n";
    cout<< "flower() {"<< hex << this << "}" <<endl;
    number=13;
name="marguerite";
color="blue";
 
count ++;
}
 
void flower::read_file()
{
    
    char *s = new char [10];
    char *n = new char [10];
    ifstream f("out.txt");
    f >> s >> number >> n;
    name = s; color = n;
    f.close();
 
    }
 
    void flower::write_in_file()
{
 ofstream f("Text.txt", ios::out | ios::app);
  f<<name<<' '; 
    f<<number<<' '<<color; 
    f.close();
}
 
void flower::vvid()
{
    char*s=new char[12];
    char*b=new char[12];
    int a;
    cout<<"Nazva kvitku "; cin>>s; cout<<"K-st pelustok "; cin>>a;
    cout<<"Color "; cin>>b;
    this->name=s;
    this->set_number(a);
    this->set_color(b);
};
 
void flower::show()
{
    cout<<"Nazva kvitku "<<name<<endl; cout<<"K-st pelustok "<<number<<endl;
    cout<<"Color "<<color<<endl;
};
 
 
 
flower::flower(flower &m)
{
    cout<<"Konstructor kopiyvannia\n";
    name=new char[strlen(m.name)+1];
    color=new char[strlen(m.color)+1];
    number=m.number;
    strcpy(name, m.name );
    strcpy(color,m.color);
    count ++;
}
 
flower::flower(char*ptr,char*l, int d)
{cout<<"Konstryktor z parrametramu\n";
int len=strlen(ptr);
int dow=strlen(l);
name=(char*) malloc(len+1);
color=(char*) malloc(dow+1);
number=d;
strcpy(name,ptr);
strcpy(color,l);    
count ++;
}
 
flower::~flower()
{cout<<"Robota destructora\n";
    count --;
}
flower.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
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
#ifndef flower_h_
#define flower_h_
 
 
 
#include<fstream>
#include<iostream>
#include <string>
using namespace std;
 
 
class flower
{
private:
    int number;
    static int count;
    
protected:
    char *color;
public:
    char *name;
string name_month;
    int numb_month;
static int GetCount;
 
    
 
    void set_color(char*);
    char*get_color();
    void set_number(int);
    int get_number();
    bool month(int );
    bool month(string);
    string month ();
    void show ();
    void vvid();
    
    
 
    static int get_count()
{
    return count;
};
 
 
    //addition methods
    friend istream& operator >>(istream& in, flower& C)
    {
        char *s = new char[10];
        char *v = new char[10];
        cout<<"\nPlease enter the number: "; 
        in>>C.number;
        cout<<"\nPlease enter the name : ";  in >> s; C.name = s;
        cout<<"\nPlease enter the color: ";    in >> v; C.color = v;
        return in;
    }
 
    friend ostream& operator <<(ostream& out, flower& C)
    {
        return out << "\n\nnumber = " << C.number << "\nname is: " << C.name << "\ncolor is: " << C.color;
    }
 
    void read_file();
    void write_in_file();
//.........................................................
    bool operator >(flower &C)
{
    if(number > C.number) return true;
    return false;
}
//............................................//
    bool operator <(flower &C)
{
    if(number < C.number) return true;
    return false;
}
//............................................//
    bool operator ==(flower &C)
{
    if(number == C.number) return true;
    return false;
}
 
    flower& operator = (flower& C)
    {
        if(&C == this) return *this;
        
        if(C.name)
        {
            name = new char [strlen(C.name)+1];
            strcpy (name, C.name);
        }
        else name = 0;
        
        if(C.color)
        {
            color = new char [strlen(C.color)+1];
            strcpy (color, C.color);
        }
        else color = 0;
        number = C.number;
        return *this;
    }
    
 
        flower();
    flower(char*,char*, int);
    flower(flower &);
    ~flower();
 
};
 
#endif
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru