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

Определить пользовательский класс. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вектор структур, как заполнить определенное поле http://www.cyberforum.ru/cpp-beginners/thread283132.html
Есть вектор структур. В структуре несколько элементов. Заполнил вектор нужными мне элементами, теперь нужно у одного элемента изменить значение только одного поля структуры. Вот структура: struct sk{ char m; int f; char t; }; Вот вектор с итератором: std::vector<sk> max;
C++ ТЗЛП: метод минимального элемента hi all! Мне нужна помощь в решении транспортной задачи линейного программирования методом минимального элемента в строке. Прикладываю свой вариант алгоритма, который пока "не контачит". Некоторый однородный продукт, сосредоточенный у m поставщиков Ai в количестве ai(i=1..m) единиц соответственно, необходимо доставить n потребителям Bj в количестве bj (j=1..n) единиц. Известна стоимость сij... http://www.cyberforum.ru/cpp-beginners/thread283127.html
C++ обработка одномерного массива
упорядочить по возрастанию только элементы больше 2, а остальные оставить на месте, т.е. их не трогать например, вводим: 1 13 17 -7 14 2 15 получаем: 1 13 14 -7 15 2 17
C++ ребят,посмотрите пожалуйста,мне очень надо решить *(
1. Написать функцию, которая cдвигает циклически столбцы матрицы так, что первый столбец переходит на место второго, второй – на место третьего и т. д., а последний столбец перемещается на место первого. Использовать ее для обработки матрицы заданной размерности. 2.Написать и отладить программу, которая использует заданный в первой части вариант функции. Определение функции поместить в...
C++ "Простые" циклы http://www.cyberforum.ru/cpp-beginners/thread283088.html
Помогите, пожалуйста, сделать Лаб.роботу по С++. Вычислить и вывести значение функции при изменении значения аргумента от А к В с шагом С и определить минимальное и максимальное значение функции на отрезке. Создать три разных типа программы: создание цикла FOR; создание цикла WHILE; создание цикла DO-WHILE. Вот, что-то сделал по примерам, которые нашел в Интернете. Это на цикл FOR. #include...
C++ Статические и динамические объекты Используя объекты, классы, конструкторы и деструкторы необходимо разработать программу по следующим заданиям. Создать динамический массив объектов класса. Используя статическую переменную в конструкторе определять количество созданных объектов. Задача: Составить программу для подсчёта количества сотрудников компании, у которых стаж работы больше 15 лет. Количество сотрудников для ввода... подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
26.04.2011, 02:52     Определить пользовательский класс.
1) Коль скоро ты вводишь страну и форму с помощью cin, то, наверное, правильно было бы их объявить как:
C++
1
        string Name,Form; double Square;
Быть может, cin умеет работать и c char* я щас не смотрел но, по крайней мере, ты должен тогда уже под Name и Form выделять память, чего ты не делаешь.

2)Далее, соответственно исправил вот так:
C++
1
         CTPAHA C3((char*)Name.c_str(),(char*)Form.c_str(),Square);
3) Поисправляй везде формат вывода площади
C++
1
 ("%f", square);

Наконец, совет. В функции Set я бы всё-таки воспользовался функцией strcpy потому, что ты НЕ КОПИРУЕШЬ строки, ты просто присваиваешь указателям name и form ДРУГОЕ значение. А смысл? В конструкторе под имя и форму у тебя выделяется достаточно памяти, так используй её на полную катушку. Тем более, может потом ты name будешь менять, так может не получиться.
C++
1
strcpy (name, s);
...В общем, как-то так:
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
#include <windows.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <iostream>
#include "CTPAHA.h"
using namespace std;
 
CTPAHA::CTPAHA(){
        square=1700000;
        name=new char[255];
        strcpy(name,"Россия");
        form=new char[255];
        strcpy(form,"Федерация");
        printf("Имя: %s \n",name);
        printf("Форма правления: %s \n",form);
        printf("Площадь: %f \n",square);
        printf("Конструктор был вызван без параметров\n");
        printf("--------------------------------------\n");}
 
 
CTPAHA::CTPAHA(char* n, char* f, double s){
        name=new char[strlen(n)+1];
        strcpy(name,n);
        form=new char[strlen(f)+1];
        strcpy(form,f);
        square=s;
        printf("Имя: %s \n",name);
        printf("Форма правления: %s \n",form);
        printf("Площадь: %f \n",square);
        printf("Конструктор был вызван с параметрами\n");
        printf("--------------------------------------\n");}
 
CTPAHA::CTPAHA(CTPAHA &c){
        name=new char[strlen(c.name)+1];
        strcpy(name,c.name);
        form=new char[strlen(c.form)+1];
        strcpy(form,c.form);
        square=c.square;
        printf("Имя: %s \n",name);
        printf("Форма правления: %s \n",form);
        printf("Площадь: %f \n",square);
        printf("Объект был создан с помощью конструктора копирования\n");
        printf("--------------------------------------\n");}
 
void CTPAHA::Show(void){
        printf("Имя: %s \n",name);
        printf("Форма правления: %s \n",form);
        printf("Площадь: %f \n",square);
        printf("--------------------------------------\n");
}
CTPAHA::~CTPAHA(){
        delete [] name;
        delete [] form;
        printf("Вызван деструктор - данные уничтожены\n");
}
int main(){
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
        setlocale(LC_ALL,"rus_rus.1251");
        string Name,Form; double Square;
        CTPAHA C1;
        CTPAHA C2;
        C1.Show();
        C2.Show();
        cout<<"Введите название страны: "<<endl;
        cin>>Name;
        cout<<"Введите форму правления: "<<endl;
        cin>>Form;
        cout<<"Введите площадь: "<<endl;
        cin>>Square;
        CTPAHA C3((char*)Name.c_str(),(char*)Form.c_str(),Square);
        C3.Show();
        _getch();
        return 0;
}
 
Текущее время: 13:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru