mituri

[C++](p) przeksztalc czas, wyjatki

Jan 12th, 2016
336
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. // zad8Hawryl.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. /*
  5. Napisz program, który przekształca czas podany w notacji 24 godzinnej na czas podany w notacji 12 godzinnej.
  6. Zdefiniuj klasę wyjątku o nazwie NiepoprawnyCzas. Gdy użytkownik wpisze nieistniejącą godzinę program wyrzuci ten wyjątek.
  7. Przykład działania programu:
  8.  
  9. Wpisz godzine w notacji 24-godzinnej:
  10. 9:00
  11. Jest to 9:00 rano
  12. Jeszcze raz? (t/n)
  13. t
  14. Wpisz godzine w notacji 24-godzinnej:
  15. 13:05
  16. Jest to 1:05 po poludniu
  17. Jeszcze raz? (t/n)
  18. n
  19. Koniec programu
  20. */
  21. #include "stdafx.h"
  22. #include <iostream>
  23. #include <cstdlib>
  24. #include <string>
  25.  
  26.  
  27. using namespace std;
  28.  
  29. bool funkcja(char charTmp){
  30.  
  31. bool jeszczeRaz = false;
  32. while( !(charTmp == 't' || charTmp == 'n') ){
  33. cout << "Nie rozpoznano polecenia!" << endl;
  34. cin >> charTmp;
  35. }
  36. if(charTmp == 't') jeszczeRaz = true;
  37. else if(charTmp == 'n'){
  38. jeszczeRaz = false;
  39. }
  40. return jeszczeRaz;
  41. }
  42.  
  43.  
  44. int _tmain(int argc, _TCHAR* argv[])
  45. {
  46.  
  47. bool jeszczeRaz = false, jeszczeRazCalosc = false;
  48. string czas24;
  49. char charTmp;
  50. int pierwszyCzlon;
  51. int drugiCzlon;
  52. char tabTmp[1024];
  53.  
  54. do{
  55. do{
  56. cout << "Wpisz godzine w notacji 24-godzinnej:"<< endl;
  57. try{
  58. cin >> czas24;
  59. strncpy(tabTmp, czas24.c_str(), sizeof(tabTmp));
  60. pierwszyCzlon = atoi(&tabTmp[0]);
  61. drugiCzlon = atoi(&tabTmp[3]);
  62.  
  63. if( !(pierwszyCzlon>=0 && pierwszyCzlon<24) )throw 0;
  64. if( !(drugiCzlon>=0 && drugiCzlon<60) )throw 0;
  65.  
  66. if(pierwszyCzlon > 12)
  67. {
  68. cout << "Jest to " << pierwszyCzlon - 12<< ":" << drugiCzlon << " po poludniu" << endl;
  69. }
  70.  
  71. }catch(int e){
  72. cout << "Podany czas jest w zlym formacie!!! <[godziny] : [minuty]>"<<endl;
  73. }
  74.  
  75. cout << "Jeszcze raz? (t/n)" << endl;
  76. cin >> charTmp;
  77.  
  78. jeszczeRaz = funkcja(charTmp);
  79.  
  80. }while(jeszczeRaz == true);
  81.  
  82.  
  83. if(jeszczeRaz == true)
  84. {
  85. cout << "Jeszcze raz? (t/n)" << endl;
  86. cin >> charTmp;
  87. jeszczeRazCalosc = funkcja(charTmp);
  88. }
  89.  
  90. }while(jeszczeRazCalosc == true);
  91.  
  92. cout << "koniec programu"<< endl;
  93.  
  94. getchar();
  95. getchar();
  96. return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment