Advertisement
xTheEc0

2. Kelionė (2006m. ITVBE)

Jan 5th, 2015
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.72 KB | None | 0 0
  1. // duom2.txt
  2. 6 70 10 15
  3. Elektrėnai     50.5
  4. Žiežmariai     20
  5. Kaunas         22.35
  6. Raseiniai      80
  7. Kryžkalnis     20
  8. Klaipėda       100.8
  9.  
  10. #include <iostream>
  11. #include <cmath>
  12. #include <iomanip>
  13. #include <fstream>
  14. using namespace std;
  15. const char duomF[] = "duom2.txt";
  16. const char rezF[] = "rez2.txt";
  17. const int CMax = 100;
  18.  
  19. struct kelione
  20. {
  21.     string pav; //Stoteles pavadinimas
  22.     double km; // Atstumas tarp stoteliu
  23.     int val;
  24.     int min;
  25. };
  26.  
  27. void skaitymas(kelione A[], int &n, int &v, int &val, int &min)
  28. {
  29.     ifstream df(duomF);
  30.     df >> n >> v >> val >> min;
  31.     char eil[16];
  32.     df.ignore(80, '\n');
  33.     for (int i = 0; i < n; i++)
  34.     {
  35.         df.get(eil, 15);
  36.         A[i].pav = eil;
  37.         df >> A[i].km;
  38.         df.ignore(80, '\n');
  39.     }
  40.     df.close();
  41. }
  42.  
  43. int laikas(double atstumas, int greitis)
  44. {
  45.     return trunc(atstumas / greitis * 60);
  46. }
  47.  
  48. void rasti(kelione A[], int n, int v, int val, int min)
  49. {
  50.     double s = 0; // Atstumas nuo pradines stoteles iki tam tikros stoteles
  51.     int laikassk; // Minutes nuo pradines stoteles iki tam tikros stoteles
  52.  
  53.     for (int i = 0; i < n; i++)
  54.     {
  55.         s += A[i].km;
  56.         laikassk = laikas(s, v) + (val * 60) + min;   // trunc(s / v * 60)
  57.         A[i].val = laikassk / 60; A[i].min = laikassk % 60;
  58. }}
  59.  
  60. void iFaila(kelione A[], int n)
  61. {
  62.     ofstream rf(rezF);
  63.     for(int i = 0; i < n; i++) rf << A[i].pav << A[i].val << " val. " << A[i].min << " min." << endl;
  64.     rf.close();
  65. }
  66.  
  67. int main ()
  68. {
  69.     kelione A[CMax]; int n;
  70.     int v; // Autobuso greitis
  71.     int val, min; // Isvykimo is Vilniaus laikas
  72.  
  73.     skaitymas(A, n, v, val, min);
  74.     rasti (A, n, v, val, min);
  75.     iFaila(A, n);
  76.  
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement