Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

NerdyBurdy

Курсова работа по ООП С++

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


Да се напише програма на С++, която отработва данните за пътниците на едно летище и:

    1. Дефинира клас, който съдържа следните данни: номер на полет, номер на билета, име на пътник, пол, номер на място, направление, цена на застраховка и минимум следните методи:

- 2 конструктора (един по подразбиране, един с параметри)

- метод за отпечатване на информацията на обект от този клас.

   2. Дефинира клас, който съдържа минимум следните данни: име на летище,  масив, чиито са обекти от предишният клас(размерът на масива се променя динамично).

Класът притежава минимум следните методи:
-2 конструктора(един по подразбиране, един с параметри)

-метод пожелание.

-метод за отпечатване съдържание на масива.

-метода за добавяне на пътник.

-метод за изтриване(по номер на билета) данните на пътник.

- по номер на полет извежда данните за всички негови пътници.

 

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

  Опитах се със 2 for цикъла но нещо не става
 

fc11de79d97310fa.png
Редактирано от NerdyBurdy (преглед на промените)

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


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

Да се напише програма на С++, която данните за пътниците на едно летище и:

    1. Дефинира клас, който съдържа следните данни: номер на полет, номер на билета, име на пътник, пол, номер на място, направление, цена на застраховка и минимум следните методи:

- 2 конструктора (един по подразбиране, един с параметри)

- метод за отпечатване на информацията на обект от този клас.

   2. Дефинира клас, който съдържа минимум следните данни: име на летище,  масив, чиито са обекти от предишният клас(размерът на масива се променя динамично).

Класът притежава минимум следните методи:

-2 конструктора(един по подразбиране, един с параметри)

-метод пожелание.

-метод за отпечатване съдържание на масива.

-метода за добавяне на пътник.

-метод за изтриване(по номер на билета) данните на пътник.

 

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

  Опитах се със 2 for цикъла но нещо не става

Покажете кода, който сте написал, така по спомени на очевидци трудно ще ви помогнем :)

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


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

Покажете кода, който сте написал, така по спомени на очевидци трудно ще ви помогнем :)

готово ;)

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


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

Когато потребителя въвежда билет, запазваш въведеното в някаква temp променлива. Пускаш един цикъл, които да върти всички въведени билети и ако няма съвпадение тогава запазва временната променлива като верен билет. Цялото това въвеждане и проверка го вкарваш в един do while, който ти изписва грешка и иска ново въвеждане, докато не вкараш билет който не съществува.


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


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

@NerdyBurdy Не ти схващам логиката на тея цикли изобщо.Проверка на нещо вече съществуващо би трябвало да бъде

   for (int i=0; i<n_br; i++) {
      n_m[i].readпътник();
      do {
        flag=0;
        n_m[i].readбилет();
        for (int j=0; j<i; j++) 
           if (n_m[i].alabala()==n_m[j].alabala()) {
             cout<<"Съществува вече такъв билет";
             cout<<"Въведете отново билета";
             flag=1;
             break;
             }
       } while (flag);

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

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


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

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

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


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

 

@NerdyBurdy Не ти схващам логиката на тея цикли изобщо.Проверка на нещо вече съществуващо би трябвало да бъде

   for (int i=0; i<n_br; i++) {
      n_m[i].readпътник();
      do {
        flag=0;
        n_m[i].readбилет();
        for (int j=0; j<i; j++) 
           if (n_m[i].alabala()==n_m[j].alabala()) {
             cout<<"Съществува вече такъв билет";
             cout<<"Въведете отново билета";
             flag=1;
             break;
             }
       } while (flag);

       

Написах твоя код но пак не става

bd3762de4ed6aadb.pngкато пусна програмата излиза ето това:

при въвеждането на първият пътник не дава никакви проблеми но когато започна да въвеждам данните на вторият пътник и стигна до въвеждането на билета след като въведа нещо и там enter излиза тази грешка

3109811fdb737cff.png

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

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


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

Дава ви грешка не защото кода е сбъркан, ами защото грешно сте го преписали.

Увеличавате i вместо j във втория цикъл for, по този начин не само не проверявате вече въведените билети ами и стигате да проверка на пътници за които още няма въведени данни както и адреси от паметта които нямат нищо общо с масива n_m[]. 

 

И се престанете с тея картинки ако обичате, форума има таг за код <> не знам защо не го ползвате.

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

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


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

Дава ви грешка не защото кода е сбъркан, ами защото грешно сте го преписали.

Увеличавате i вместо j във втория цикъл for, по този начин не само не проверявате вече въведените билети ами и стигате да проверка на пътници за които още няма въведени данни както и адреси от паметта които нямат нищо общо с масива n_m[]. 

 

И се престанете с тея картинки ако обичате, форума има таг за код <> не знам защо не го ползвате.

Много ви благодаря, програмата тръгна и върви както трябва.Много ми помогнахте. :)

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


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

Здравейте моля помогнете ми за следният метод: 

  -извежда данните за най-възрастната пътничка, платила най-скъпата застраховка.

a1ed03c9d8d36fb8.pngпогледнете и кода който съм задал като коментар

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

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


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

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

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

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


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

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

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

Аз си мисля възрастта е с приоритет и ако има да кажем една жена на 80 години то тогава какво и да е нейната застраховка тя ще е най-скъпата застраховка

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


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

Трябват ми много спешно тези курсови задачи,почти не разбирам от програмиране :( .Благодаря предварително !! 

Съставете програма с функция на main() и избор чрез меню на функции за: 
1/ Въвеждане от клавиатура в масив до 20 реални числа 
2 /Определяне колко от тях са по-големи от съседните (предходния и следващия елемент от масива) и съхраняването на тези числа и поредния им номер в нов двумерен масив; 
3/ Презаписване на входния масив в нов и сортирането на този масив във низходящ ред; 
4/ Извеждане на екрана на входния масив и съответния нов масив с пояснителен текст. 

Съставете програма с функции за: 
1/ Въвеждане от клавиатурата във файл и в масив (чрез добавяне) данни за продажба на леки коли (до 40) от автокъщи: автокъща, автомобил номер, марка, година на производство, цена. Извеждане текущото съдържание на масива (файла) на екран; 
2/ Извеждане на екран справка за всички продавани леки коли от избрана автокъща(със запитване за нова справка); 
3/ Извеждане на екран данните за най-евтина кола по зададени от клавиатурата марка и година на производство. 

Главна функция main() с меню за избор на функциии проверка за състоянието на данните. Използване на глобални променливи или функции с предаване на параметри - по избор.

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


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

Това случакно да не беше бившия "бъдещ министър"?

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

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


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

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Добави ново...