Zadanie ze "Szkoły programowania" Praty – ocena rozwiązania

0

Jestem totalnym newbie jeśli chodzi o programowanie. Próbuje rozwiązać zadanie z „Szkoły programowania” Praty. W funkcjach i w ogóle c++ nie czuje się zbyt mocno. Moje wcześniejsze kody zostały słusznie skrytykowane przez bardziej doświadczonych użytkowników. Teraz wysyłam kolejne wypociny. Czy tak może być rozwiązane to zadanie? Niestety w książce nie ma odpowiedzi do zadań.Z góry dziękuję za każdą nawet najmniejszą pomoc. Pozdrawiam Krzysztof

Napisz program, który poprosi użytkownika o podanie liczby godzin i minut. Funkcja main() ma przekazać obie te wartości do funkcji typu void, która je wyświetli w formacie jak poniżej:
Podaj liczbę godzin:9
Podaj liczbę minut:28
Czas: 9:28

#include<iostream>
using namespace std;

void czas(int liczba_Godzin,int liczba_Minut)
    {

    cout<<"Czas zadania:"<<liczba_Godzin<<":"<<liczba_Minut<<endl;

    }
int main ()
{

int liczba_Minut;
int liczba_Godzin;

    cout<<"Podaj liczbe godzin:";
    cin>>liczba_Godzin;
    cout<<"podaj liczbe minut:";
    cin>>liczba_Minut;

czas (liczba_Godzin,liczba_Minut  ) ;

    return 0;
}
0

A co ma się stać, jak wprowadzisz 23 godzsiny i 75 minut?

0

Co do samgo kodu. Jeśli działa w oczekiwany sposób, to jest dobry.

Formatowanie jest tragiczne.
Nazewnictwo - preferuj angielskie.
Styl także, camelCase, PascalCase lub underscore_case (mieszanie ich utrudnia czytanie kodu).

0
Marcin.Miga napisał(a):

A co ma się stać, jak wprowadzisz 23 godzsiny i 75 minut?

Trochę zmodyfikowałem kod dodając następujące linijki/pogrubienie/:

#include<iostream>
using namespace std;



#include<iostream>
using namespace std;

void czas(int liczba_Godzin,int liczba_Minut)
    {


       ** if(liczba_Minut>=60)
   {
       liczba_Godzin=liczba_Godzin+(liczba_Minut/60);
       liczba_Minut=liczba_Minut-(liczba_Minut/60)*60;
   }
**

    cout<<"Czas zadania:"<<liczba_Godzin<<":"<<liczba_Minut<<endl;

    }
int main ()
{

int liczba_Minut;
int liczba_Godzin;

    cout<<"Podaj liczbe godzin:";
    cin>>liczba_Godzin;
    cout<<"podaj liczbe minut:";
    cin>>liczba_Minut;

czas (liczba_Godzin,liczba_Minut  ) ;

    return 0;

}

Teraz po wpisaniu godziny :23 i minuty 75 wyświetla 24:15
Pozdrawiam Krzysztof :)

0

Masz tutaj niemal identyczne zadanie https://4programmers.net/Forum/Newbie/315265-program_przeliczajacy_stopnie_celsjusza_na_stopnie_fahrenheita_poprawnosc_kodu ,tamtejsze uwagi odnośnie czytelności jak najbardziej możesz zastosować u siebie.
W twoim przypadku jednak powinieneś jeszcze uodpornić kod na różne dziwne wartości oprócz tych przykładów,co inni Bracia ci już pokazali,np:

  1. dupadupa
  2. -500
0

A co jeśli wpiszę 28h 15486 minut? :P - hit02 dziś, 00:39

Nie wiem czy o to chodzi, ale jeśli w programie wpiszę 28 godzin i 15 486 minut ,wyświetlą się następujące wartości: 286 godzin i 6 minut. Tu już powinny być doby , a nie godziny.
Dopiero na konkretnym przykładzie można przekonać się o ilu rzeczach trzeba pomyśleć w fazie projektowania rozwiązania nawet tak dla Was banalnego przykładu.
Serdecznie dziękuję za wszelkie rady i poświęcony czas. Pozdrawiam Krzysztof :)

0

W treści zadania nie widzę nic o konieczności przeliczania minut czy walidacji danych, więc po co komplikować? ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1