BG Development


Страници: (2) [1] 2   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> задача по ООП
Даритоо
  Публикувано на: 24-06-2022, 10:39
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 2
Регистриран на: 24.06.22




Здравейте,трябва ми помощ за задача дадена на дъщеря ми.Тя не може да се справи ,а аз не мога да и помогна icon_confused.gif .Дано да намеря съдействие тук ,при хора които разбират от програмиране.Задачата е по ООП,а именно:

В състезание по петобой,в което са взели участие 15 спортиста.Всеки спортист описват чрез:

-пореден номер,

-име на спортиста до 40 символа.

-отбор за който се състезава.

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

Да се състави файлова система с пряк достъп,която реализира следните операции:

-регистриране на спортист

-коригиране на информация за определен спортист

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

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

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

-класира спортистите по общия им резултат

Благодаря на всички включили се.
PMEmail Poster
Top
thrawn
Публикувано на: 24-06-2022, 15:35
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3347
Регистриран на: 17.01.17



А проблемът в какво точно се състои?
Като не може да се справи, пита за това което не разбира, отваря си учебниците и чете, или в края на краищата прекъсва - явно избраната специалност не е за нея.

Гледам вървят рклами на кауфланд, предлагат 1.5К стартова заплата...

Това мнение е било редактирано от DarkOne на 27-06-2022, 11:44
PMEmail Poster
Top
PxL
Публикувано на: 25-06-2022, 02:52
Quote Post


Group Icon
Име: Димитър Т. Димитров
Група: VIP
Ранг: Почетен член

Мнения: 3544
Регистриран на: 26.04.05



То и моят малкият (на 5) каза, че ще става зъболекар. Аз на @thrawn му разправям, един мъдрец му подскажи само как да извади, той ще се оправи с останалите, той.. не та не... ма'ни ги в тоя форум само се заяждат.

ПП. И, да! Същото е! Може да пробваш тея "програмистите" във facebook, малко ще те "разнесат" по текущите политически проблеми или футболни мероприятия, но има шанс някой по-ментално изостанал реален програмист да подскаже. Няма да помогне нито на дъщеря ти, нито на бъдещите ползватели на нейните творения.


Иначе ако реално търсиш помощ, без да бъда саркастичен, прати код, който можем да обсъдим. Тук има хора, които биха помогнали, просто не във вариант "Решете ми курсовата задача", и определено не "Решете курсовата задача на дъщеря ми." Ще бъде в пъти по-добре за нея от колкото някой просто да прати решение.


Това мнение е било редактирано от PxL на 25-06-2022, 03:30


--------------------
void putchar(char c);int main(){int x,c=1,i;for(i=0;(x="PxLY2H4:2E;7231?=68255A5S5P9N:N9O84111H861I85111G9N:O811O812M<G33911EAEDBECE22169D1=2k"[i+++3]);)while(x-->'0')putchar((!(++c%'('))?0x0a:33^(i&1));}
PMEmail PosterUsers Website
Top
relax4o
Публикувано на: 25-06-2022, 11:49
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2667
Регистриран на: 04.04.07



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

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

Аз така забогатях в университета.


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
Bender++
Публикувано на: 25-06-2022, 21:03
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 334
Регистриран на: 18.04.21



От цялата драма не разбрах дъщерята има ли онлифенс,че сега е модерно ?


--------------------
Ваксините са лъжа и НЕ работят! Не на ковид фашизма!
Слава на Цар Путин! Долу украинските фашисти!
Слава на героите - Z V
PMEmail Poster
Top
Даритоо
Публикувано на: 26-06-2022, 19:23
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 2
Регистриран на: 24.06.22



Благодаря на всички включили се,определено няма да продължи с програмиране.Четеме и преглеждаме всичко което е взето до сега .Ще се постъраем да напишем задачата колко можем,в крайна сметка това ще са реалните и възможности .
PMEmail Poster
Top
PxL
Публикувано на: 27-06-2022, 03:04
Quote Post


Group Icon
Име: Димитър Т. Димитров
Група: VIP
Ранг: Почетен член

Мнения: 3544
Регистриран на: 26.04.05



QUOTE (Даритоо @ 26-06-2022, 20:23)
Благодаря на всички включили се,определено няма да продължи с програмиране.Четеме и преглеждаме всичко което е взето до сега .Ще се постъраем да напишем задачата колко можем,в крайна сметка това ще са реалните и възможности .

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


Това мнение е било редактирано от PxL на 27-06-2022, 03:05


--------------------
void putchar(char c);int main(){int x,c=1,i;for(i=0;(x="PxLY2H4:2E;7231?=68255A5S5P9N:N9O84111H861I85111G9N:O811O812M<G33911EAEDBECE22169D1=2k"[i+++3]);)while(x-->'0')putchar((!(++c%'('))?0x0a:33^(i&1));}
PMEmail PosterUsers Website
Top
samolet4e
Публикувано на: 03-07-2022, 15:20
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 11
Регистриран на: 16.03.22



Вижте дали този код върши работа!

Header:
CODE

#ifndef DEFS_HPP
#define DEFS_HPP

#include <string>
#include <iostream>
#include <vector>

class Sportsman {

   public:
       Sportsman();
       ~Sportsman();
       void fillIn();
       void getData();
       int getSport(std::string foo);

   private:
       std::string ID, name, team;
       int fencing, freestyle_swimming, equestrian_show_jumping, pistol_shooting, cross_country_running;
       int scoreT;
};

void displayMenu();
void sortByDiscipline(std::vector<Sportsman> &foo, std::string sport);

#endif // DEFS_HPP


Lib:
CODE

#include "defs.hpp"

void displayMenu() {

   std::cout << "===================================================== \n";
   std::cout << " \t\tMENU \t \n ";
   std::cout << "===================================================== \n";
   std::cout << " 1. Add a new sportsman\n";
   std::cout << " 2. Remove a sportsman\n";
   std::cout << " 3. List sportsmen\n";
   std::cout << " 4. Edit a sportsman\n";
   std::cout << " 5. Sort by fencing\n";
//    std::cout << " 3. Update student records \n";
//    std::cout << " 5.Find a student by ID \n";

   return;
} // displayMenu

Sportsman::Sportsman() {}
Sportsman::~Sportsman() {}

void Sportsman::fillIn() {

   std::string ID, name, team;

   std::cout << "ENTER BIO!" << std::endl;
   std::cout << "ID: ";
   std::cin >> ID;

   std::cout << "Name: ";
   std::cin >> name;

   std::cout << "Team: ";
   std::cin >> team;

   (*this).ID = ID;
   (*this).name = name;
   (*this).team = team;

   int fencing, freestyle_swimming, equestrian_show_jumping, pistol_shooting, cross_country_running;

   std::cout << "ENTER SCORES!" << std::endl;
   std::cout << "Fencing: ";
   std::cin >> fencing;

   std::cout << "Freestyle swimming: ";
   std::cin >> freestyle_swimming;

   std::cout << "Equestrian show jumping: ";
   std::cin >> equestrian_show_jumping;

   std::cout << "Pistol shooting: ";
   std::cin >> pistol_shooting;

   std::cout << "Cross country running: ";
   std::cin >> cross_country_running;

   (*this).fencing = fencing;
   (*this).freestyle_swimming = freestyle_swimming;
   (*this).equestrian_show_jumping = equestrian_show_jumping;
   (*this).pistol_shooting = pistol_shooting;
   (*this).cross_country_running = cross_country_running;

   (*this).scoreT = fencing + freestyle_swimming + equestrian_show_jumping + pistol_shooting + cross_country_running;

   return;
} // fillIn

void Sportsman::getData() {

   std::cout << std::endl;
   std::cout << (*this).ID << "\t" << (*this).name << "\t" << (*this).team << std::endl;
   std::cout << "Fencing\tSwimming\tRiding\tShooting\tRunning\tTotal" << std::endl;
   std::cout << (*this).fencing << "\t" << (*this).freestyle_swimming << "\t\t" << (*this).equestrian_show_jumping << "\t" << (*this).pistol_shooting << "\t\t" << (*this).cross_country_running << "\t" << (*this).scoreT << std::endl;

   return;
} // getName

int Sportsman::getSport(std::string str) { // get access to private members

   int t = 0;

        if (str == "fencing") t = (*this).fencing;
   else if (str == "freestyle_swimming") t = (*this).freestyle_swimming;
   else if (str == "equestrian_show_jumping") t = (*this).equestrian_show_jumping;
   else if (str == "pistol_shooting") t = (*this).pistol_shooting;
   else if (str == "cross_country_running") t = (*this).cross_country_running;
   else {}

   return t;
} // getSport

// https://www.tutorialspoint.com/Sorting-a-vector-of-custom-objects-using-Cplusplus-STL#
#include<algorithm>
void sortByDiscipline(std::vector<Sportsman> &foo, std::string sport) {

   // Using lambda expressions in C++11
   std::sort(foo.begin(), foo.end(), [sport](Sportsman& lhs, Sportsman& rhs) { return lhs.getSport(sport) > rhs.getSport(sport); });

   return;
} // sortByDiscipline


Entry point:
CODE

#include "defs.hpp"

int main() {

   int i;
   std::vector<Sportsman> sportsMen;

   displayMenu();
   int yourChoice;

   for (;;) {
       std::cout << "Enter your choice(1-5): ";
       std::cin >> yourChoice;
       switch (yourChoice) {
           case 1: {
                   Sportsman foo;
                   foo.fillIn();
                   sportsMen.push_back(foo);
                   foo.~Sportsman();
                   } continue;
           case 2: {
                   if (sportsMen.size() > 0 ) {
                       std::string el;
                       std::cout << "Element number: ";
                       std::cin >> el;
                       sportsMen.erase(sportsMen.begin() + stoi(el));
                   } // if
                   } continue;
           case 3: {
                   for (i = 0; i < (int)sportsMen.size(); i++) sportsMen.at(i).getData();
                   } continue;
           case 4: {
                   std::string el;
                   std::cout << "Element number: ";
                   std::cin >> el;
                   Sportsman foo;
                   foo.fillIn();
                   sportsMen.at(stoi(el)) = foo;
                   foo.~Sportsman();
                   } continue;
           case 5: {
                   sortByDiscipline(sportsMen, "fencing");
           } continue;
           default: std::cout << "Invalid" << std::endl; break;
       } break; // switch
   } // for

   for (i = 0; i < (int)sportsMen.size(); i++) sportsMen.at(i).~Sportsman();
   sportsMen.clear();

   return 0;
} // main


Прикачена картинка (Кликнете на картинката, за да я увеличите!)
Прикачена картинка
PMEmail Poster
Top
PxL
Публикувано на: 10-07-2022, 22:36
Quote Post


Group Icon
Име: Димитър Т. Димитров
Група: VIP
Ранг: Почетен член

Мнения: 3544
Регистриран на: 26.04.05



QUOTE (samolet4e @ 03-07-2022, 16:20)
Вижте дали този код върши работа!
...


Защо реши, че трябва да дереференцираш this в имплементацията?

Tова... defs.hpp. lib.cpp ? Няма ли да е по-ясно ако е athlete.h, athlete.cpp например?

Не съм го гледал цялото, но само като го видях това:
CODE

...
       if (str == "fencing") t = (*this).fencing;
  else if (str == "freestyle_swimming") t = (*this).freestyle_swimming;
  else if (str == "equestrian_show_jumping") t = (*this).equestrian_show_jumping;
  else if (str == "pistol_shooting") t = (*this).pistol_shooting;
  else if (str == "cross_country_running") t = (*this).cross_country_running;
  else {}
...


Имам съмнения по цялостното решение.

Това мнение е било редактирано от PxL на 10-07-2022, 23:02


--------------------
void putchar(char c);int main(){int x,c=1,i;for(i=0;(x="PxLY2H4:2E;7231?=68255A5S5P9N:N9O84111H861I85111G9N:O811O812M<G33911EAEDBECE22169D1=2k"[i+++3]);)while(x-->'0')putchar((!(++c%'('))?0x0a:33^(i&1));}
PMEmail PosterUsers Website
Top
samolet4e
Публикувано на: 11-07-2022, 15:44
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 11
Регистриран на: 16.03.22



Ако името на формална променлива от метода съвпада с това на член на класа, тогава (*this). е задължителен. Случаят не е такъв и затова указател this с препратка може да се пропусне.

Имената на заглавния файл и библиотеката не са толкова важни.

Програмата работи, както е показано на конзолата. Цялата задача се свежда до основни операции над вектор.

Молбата ми е ако не си съгласен с нещо в кода да предложиш алтернатива. Полза от твоите съмнения няма.
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) [1] 2  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0