Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Лото Problem 2 (0 / 0)
- Да се креира класата за опишување на уплатено ливче за лото. За едно лото ливче се чуваат информации за име и презиме на играчот на лото (низа од знаци), лото комбинацијата на играчот (низа од 7 цели броеви кои се сортирани во растечки редослед) и цена на уплата (цел број). **(5 поени)**
- Цената за уплатата за едно лото ливче е иста за сите играчи и изнесува 50 денари. Оваа вредност може да се смени од страна на Лотарија на Македонија и ќе се однесува за сите лото ливчиња. (5 поени)
- За оваа класа да се имплементира функција со потпис
- bool daliIstaKombinacija (int c[])
- Во која се проверува дали комбинацијата во даденото лото ливче е иста со предадената комбинација c (низа од 7 цели броеви кои се сортирани во расречки редослед). (5 поени)
- Забелешка: Во оваа задача секогаш ќе важи дека комбинациите претставуваат низи од 7 цели броеви кои се сортирани во растечки редослед.
- Да се креира класата LotoKolo во која се чуваат информации за добитната лото комбинација (низа од 7 цели броеви кои се сортирани во растечки редослед), низа од уплатени лото ливчиња (динамички алоцирана) и број на лото ливчиња. (5 поени)
- Во класата LotoKolo да се имплементират функции со потпис:
- operator += за додавање ново лото ливче во низата. (5 поени) Не смее да се дозволи додавање на невалидно ливче. Ливчето е валидно ако во комбинацијата не постојат два исти броја. Ако се направи обид за додавање на невалидно ливче, треба да се генерира исклучок NevalidnoLivce. (10 поени)
- void dobivkaKolo() - во која се печатат информации за добитниците на колото и тоа:
- Ако не постои добитник се печати: Nema Dobitnik.
- Ако има еден добитник во првиот ред се печати: Dobivkata е X. Во вториот ред се печати името и презимето на добитникот .
- Ако има повеќе добитници во првиот ред се печати: Dobivkata е X. Во следните редови се печатат имињата на добиниците по редослед како што се појавуваат во низата на лото ливчиња.
- Нека вкупната можна добивка на колото е еднаква на 50% од вкупната уплата на сите ливчња во колото. На пример ако има уплатено 2 ливчиња кои чинат по 50 денари, вкупната можна добивка е 50 (50% од 2*50=100). X при печатењето ја означува добивката на секој од добитниците. Ако има еден добивник неговата добивка е еднаква на вкупната можна добивка. Ако има повеќе добитници вкупната можна добивка подеднакво е поделена на сите добитници. (10 поени)
- Да се обезбедат сите дополнителни методи потребни за правилно функционирање на програмата. (5 поени) */
- #include<iostream>
- #include<string.h>
- using namespace std;
- //vashiot kod treba da bide tuka
- //citanje podatoci za edno loto kolo
- //se vrakja objekt od klasata LotoKolo
- LotoKolo readLotoKolo(){
- int dobitnakombinacija[7];
- //se cita dobitnata kombinacija na koloto kombinacija
- for (int i=0;i<7;i++) cin>>dobitnakombinacija[i];
- //se kreira objekt od klasata LotoKolo
- LotoKolo kolo(dobitnakombinacija);
- int broj;
- cin>>broj;
- for (int j=0;j<broj;j++){
- char imeiprezime[40];
- int kombinacija[7];
- std::cin.get();
- std::cin.getline(imeiprezime,40);
- for (int i=0;i<7;i++) cin>>kombinacija[i];
- //kreiranje na loto livce
- LotoLivce l(imeiprezime,kombinacija);
- //dodavanje na loto livce vo koloto
- kolo+=l;
- }
- return kolo;
- }
- int main(){
- int caseid;
- cin>>caseid;
- if (caseid==1){
- char imeiprezime[40];
- int kombinacija[7];
- std::cin.get();
- std::cin.getline(imeiprezime,40);
- for (int i=0;i<7;i++) cin>>kombinacija[i];
- LotoLivce l(imeiprezime,kombinacija);
- cout<<"TEST CASE 1: Klasa LotoLivce."<<endl;
- cout<<l.getImeIPrezime()<<":";
- for (int i=0;i<7;i++)
- cout<<l.getKombinacija()[i]<<" ";
- return 0;
- }
- if (caseid==2){
- char imeiprezime[40];
- int kombinacija[7];
- std::cin.get();
- std::cin.getline(imeiprezime,40);
- for (int i=0;i<7;i++) cin>>kombinacija[i];
- LotoLivce l(imeiprezime,kombinacija);
- cout<<"TEST CASE 2: Funkcija daliIsttaKombinacija."<<endl;
- //se cita druga kombinacija
- for (int i=0;i<7;i++) cin>>kombinacija[i];
- if (l.daliIstaKombinacija(kombinacija))
- cout<<"Isti se";
- else cout<<"Ne se isti";
- return 0;
- }
- if (caseid==3){
- int dobitnakombinacija[7];
- cout<<"TEST CASE 3: Loto Kolo."<<endl;
- //se cita dobitnata kombinacija na koloto kombinacija
- for (int i=0;i<7;i++) cin>>dobitnakombinacija[i];
- LotoKolo kolo(dobitnakombinacija);
- cout<<"Dobitnata kombinacija na koloto e:";
- for (int i=0;i<7;i++)
- cout<<kolo.getDobitna()[i]<<" ";
- return 0;
- }
- if (caseid==4){
- cout<<"TEST CASE 4: Loto Kolo i operator +=."<<endl;
- LotoKolo kolo=readLotoKolo();
- cout<<"OK";
- return 0;
- }
- if (caseid==5){
- cout<<"TEST CASE 5: Funkcija dobivkaKolo "<<endl;
- LotoKolo kolo=readLotoKolo();
- kolo.dobivkaKolo();
- return 0;
- }
- if (caseid==6){
- cout<<"TEST CASE 6: Promena na cena na uplata "<<endl;
- //postavi nova cena na uplata
- int cena;
- cin>>cena;
- LotoLivce::setCenaUplata(cena);
- LotoKolo kolo=readLotoKolo();
- kolo.dobivkaKolo();
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement