Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. //============================================================================
  2. // Name : kolokvij3.cpp
  3. // Author :
  4. // Version :
  5. // Copyright : Your copyright notice
  6. // Description : Hello World in C++, Ansi-style
  7. //============================================================================
  8.  
  9. #include <iostream>
  10. #include <exception>
  11. #include <sstream>
  12. using namespace std;
  13.  
  14. class Mesto{
  15. private:
  16. string ime;
  17. int x;
  18. int y;
  19. public:
  20. Mesto(string i, int xIn, int yIn){
  21. ime = i;
  22. x = xIn;
  23. y = yIn;
  24. };
  25. Mesto(){
  26. ime = "NULL";
  27. x = 0;
  28. y = 0;
  29. }
  30. string getime(){
  31. return this->ime;
  32. };
  33. };
  34.  
  35. class myexception: public exception{
  36. private:
  37. Mesto* mesto1;
  38. Mesto* mesto2;
  39. Mesto* mesto3;
  40. Mesto* mesto4;
  41. public:
  42. myexception(Mesto* mesto1In,Mesto* mesto2In,Mesto* mesto3In,Mesto* mesto4In){
  43. mesto1 = mesto1In;
  44. mesto2 = mesto2In;
  45. mesto3 = mesto3In;
  46. mesto4 = mesto4In;
  47. };
  48. virtual const char* what() const throw()
  49. {
  50. stringstream string; string << mesto1->getime() << " " << mesto2->getime() << " " << mesto3->getime() << " " << mesto4->getime();
  51. const char* c = string.str().c_str();
  52. return c;
  53. }
  54. };
  55.  
  56. class Pot{
  57. private:
  58. double dolzina;
  59. Mesto* zacetno;
  60. Mesto* koncno;
  61. public:
  62. Pot(double d,Mesto* z, Mesto* k){
  63. dolzina = d;
  64. zacetno = z;
  65. koncno = k;
  66. };
  67. Pot(){
  68. dolzina = 0;
  69. zacetno = new Mesto();
  70. koncno = new Mesto();
  71. };
  72.  
  73. string toString(){
  74. stringstream sstring ; sstring << this->dolzina << "km " << this->zacetno->getime() << " " << this->koncno->getime();
  75. return sstring.str();
  76. };
  77.  
  78. Pot operator+(Pot& a){
  79. if(this->zacetno->getime() != a.zacetno->getime() && this->zacetno->getime() != a.koncno->getime() && this->koncno->getime() != a.koncno->getime()){
  80. throw myexception(this->zacetno,a.zacetno,this->koncno,a.koncno);
  81. Pot p3(0,new Mesto("NULL",0,0),new Mesto("NULL",0,0));
  82. return p3;
  83. }
  84. else if(this->zacetno == a.zacetno){
  85. Pot p3(this->dolzina + a.dolzina,this->koncno,a.koncno);
  86. return p3;
  87. }
  88. Pot p3(0,new Mesto("NULL",0,0),new Mesto("NULL",0,0));
  89. return p3;
  90. };
  91. };
  92.  
  93. int main() {
  94. cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
  95. Mesto* ce=new Mesto("Celje",3,1);
  96. Mesto* mb=new Mesto("Maribor",10,1);
  97. Mesto* lj=new Mesto("Ljubljana",15,2);
  98. Mesto* pr=new Mesto("Piran",0,0);
  99. Pot p1(50,ce,lj);
  100. Pot p2(60,mb,pr);
  101. Pot p3;
  102. try{
  103. p3 = p1 + p2;
  104. }
  105. catch(exception& myexception){
  106. cout << myexception.what() << endl;
  107. }
  108. cout << p3.toString() << endl;
  109. return 0;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement