Премини към съдържанието

Препоръчан отговор


Колеги имам една практика по която имам условие да направя курсова задача, въпросът ми е дали някои би могъл да ми помогне?

Ето я и нея - 

Да се реализира клас "точка" имащ за член данни координатите на точка в равнината. Да се реализира клас "елипса" зададен с точка - център на елипсата и две отсечки-малка и голяма полуос на елипсата. Елипсата да има член-функции:за извеждане на екрана,за лице , за обиколка за точка дали е вътре или вън от елипсата.Да се реализира клас "кръг" наследник на класа "елипса".Кръгът е елипса с две равни полуоси.За да се предефинарат член - функциите.В главната функция на програмата да се илюстрират всичките дейности с кръгове и елипси.

Предварително ви благодаря!!!

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Това е лесно. Прочети си лекциите. Да напишеш един клас не е сложно
 

class Point
{
private:
float x;
float y;
public:
...
}

В public секцията пишеш методи/функции за достъпване на променливите в private. Не може private да се достъпва директно, а се достъпва чрез public метод.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Аз клас Точка го направих, обаче клас елипса нещо ме затруднява.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
публикувано (редактирано)
class Ellipse
{
	private:

	Point centre;
	double smallLength;
	double bigLength;
	double bigDirection;

	public:
	................
};

 

Редактирано от Реджеп Иведик (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
публикувано (редактирано)

Отсечка в равнината се определя не от дължината и а от координатите на двете и крайни точки - в случая едната е центъра на елипсата, трябва само да зададем координатите и на другия и край. Така с кординатите на три точки определяш големината, ексцентритета, положението и как е завъртяна спрямо координатните оси елипсата.

Редактирано от ined (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Може и така да се каже.

Само че, в моя вариант, елипсата е еднозначно определена, докато в твоя е възможен неправилен вход, което изисква проверка на входните данни от конструктора и досадно за потребителя съобщение, че е глупак, а никой не обича да е глупак.

Ако се дадат център, дължини на диаметрите и наклон на големия диаметър, няма нужда от проверка за коректност на входните данни, с изключение на изродените случаи.

 

 

Плюс отрицателни дължини. Ся, то някой като е голям глупак, няма как да не му кажеш, че е глупак

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

И си прав и не си прав. Програмата ще го направи на глупак ако изкара някави резултати без изобщо да провери дали са коректни входините данни.

Да не говорим, че и самата програма може да се напише така че да помага с вкарването на данните.

1. Вкарваш X и Y координатите на центъра  О

2. Вкарваш X и Y координатите на края на едната полуос А

3. ако O.X = A.X и O.Y = A.Y точките са една върху друга и го връщай  към т.2

4. ако O.X = A.X отсечката е успоредна на оста Y и за втората полуос може да въведеш само B.X,  a  B.Y ще е равно на O.Y

    ако въведе B.X = O.X го връщаш да въведе отново B.X

5. ако О.Y = A.Y отсечката е успоредна на оста X и за втората полуос може да въведеш само B.Y,  a  B.X ще е равно на O.X

    ако въведе B.Y = O.Y го връщаш да въведе отново B.Y

6. ако отсечката не е успоредна нито на X нито на Y, пак може да се въведе само едната кордината примерно B.X (трябва да е различна от О.X) B.Y програмата може да я изчисли така че втората полуос да се получи под прав ъгъл спрямо първата.

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.