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

Программа нахождения площади круга или сектора. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.61
Offset
0 / 0 / 0
Регистрация: 30.11.2010
Сообщений: 13
22.05.2011, 15:53     Программа нахождения площади круга или сектора. #1
Давно как-то писали с другом, потом забросили, а сейчас она потребовалась, но выдает ошибку, что не находит конструктор класса...Подредактируйте, пожалуйста!

Условие: Напишите программу позволяющую находить площади круга или сектора. В конструкторе класса должно происходить инициализация переменных, а вычисление значений, а также вывод результата в соответствующих методах класса. Пользователь вначале вводит название фигуры, площадь которой хочет вычислить, а затем параметры данной фигуры.


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
#include <iostream.h>
#include <math.h>
#include <string.h>
using namespace std;
class myclass {
double s;  //площадь
double r;  //радиус
double l;  //угол
public:
myclass(double);  //конструктор
double S_sector();
double S_krug();};
myclass::myclass(double x){r=x;};
double myclass::S_sector(){s=(l*pow(r,2))/2;};
double myclass::S_krug(){s=3.14*pow(r,2);};
int main(){
int r,l;
char a[10], *sec="sector", *kr="krug";
cout<<"Enter name of a figure"<<endl;
cin>>a;
if(strstr(a,kr)){
cout<<"Vvedite radius"<<endl;
cin>>r;
myclass(r);  //конструктор с параметром
myclass ob1;
ob1.S_krug();
cout<<ob1.S_krug();
if(strstr(a,sec)){
cout<<"Vvedite radius i ugol">>endl;
cin>>r>>l;
myclass(r);
myclass ob2;
ob2.S_sector();
cout<<ob2.S_sector();
int t;
cin>>t;}}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yekka
384 / 148 / 8
Регистрация: 12.05.2011
Сообщений: 450
22.05.2011, 20:09     Программа нахождения площади круга или сектора. #2
C++
1
2
3
4
5
public:
myclass(){};//<------------------------------------------добавь эту строку
myclass(double);  //конструктор
double S_sector();
double S_krug();};
Offset
0 / 0 / 0
Регистрация: 30.11.2010
Сообщений: 13
22.05.2011, 20:15  [ТС]     Программа нахождения площади круга или сектора. #3
Спасибо, ушла ошибка, но теперь ругается еще:
[BCC32 Error] Unit1.cpp(31): E2094 'operator>>' not implemented in type 'istream' for arguments of type 'myclass'
yekka
384 / 148 / 8
Регистрация: 12.05.2011
Сообщений: 450
22.05.2011, 20:18     Программа нахождения площади круга или сектора. #4
в 29-й строке << и >> перепутаны
Offset
0 / 0 / 0
Регистрация: 30.11.2010
Сообщений: 13
22.05.2011, 21:16  [ТС]     Программа нахождения площади круга или сектора. #5
заменил на
C++
1
cout<<"Vvedite radius i ugol"<<endl;
проблема не исчезла.

Добавлено через 53 минуты
заменил оператор cin на scanf и начала программа запускаться... но что-то после введения радиуса, вылазит сообщение с надписью: invalid floating point operation
WatsOne
 Аватар для WatsOne
36 / 36 / 3
Регистрация: 10.10.2010
Сообщений: 115
23.05.2011, 07:39     Программа нахождения площади круга или сектора. #6
C++
1
myclass(double);  //конструктор
не знаю наверняка (может разницы и нет) но может стоит написать:

C++
1
myclass(double x);  //конструктор
да и практика отступов вам не повредит.
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
23.05.2011, 08:15     Программа нахождения площади круга или сектора. #7
В 27 строке не закрыта фигурная скобка после блока if.

Откуда в методе:
C++
1
double myclass::S_sector(){s=(l*pow(r,2))/2;};
берётся переменная l? Она никак не передаётся из main в объект, сделайте тогда уж конструктор с 2 параметрами.

И зачем вообще конструктор без параметров? И что это такое:
C++
1
2
myclass(r);
myclass ob1;
Может уж тогда:
C++
1
myclass ob1(r);
Ну а самое главное, посмотрите внимательнее на ваши ф-ции вычисления площадей. Что они возвращают? И что вы ожидаете увидеть на печати?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2011, 16:22     Программа нахождения площади круга или сектора.
Еще ссылки по теме:

C++ Вычисление площади круга
Класс для нахождения площади круга C++
C++ Известны площади круга и квадрата Уместится ли круг в квадрате или квадрат в круге?

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

Или воспользуйтесь поиском по форуму:
Offset
0 / 0 / 0
Регистрация: 30.11.2010
Сообщений: 13
23.05.2011, 16:22  [ТС]     Программа нахождения площади круга или сектора. #8
Спасибо за замечания, сегодня разобрались с задачей. Тему можно закрыть.
Yandex
Объявления
23.05.2011, 16:22     Программа нахождения площади круга или сектора.
Ответ Создать тему
Опции темы

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