Advertisement
Guest User

Exam2013_Task1

a guest
Sep 8th, 2015
331
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.16 KB | None | 0 0
  1. /*
  2. lake.txt ფაილი შეიცავს ინფორმაციას ტბების შესახებ: სახელი, ადგილმდებარეობა, ფართობი, მაქს. სიღრმე.
  3. ტბების რაოდენობა არ აღემატება 45-ს. დაწერეთ პროგრამა, რომელიც sorted.txt ფაილში დაწერს სიღრმის კლებადობით
  4. დალაგებულ მონაცემებს.
  5.  
  6. ამოცანის ამოსახსნელა: შექმენით Lake კლასი. შემოიღეთ თქვენი აზრით საჭირო ფუნქციები. კლასის ობიექტისთვის გადატვირთეთ
  7. >> და << ოპერატორები. მონაცემების ფაილიდან წასაკითხად და ფაილში ჩასაწერად გამოიყენეთ გლობალური ფუნქციები.
  8.  
  9. main-ში გააკეთეთ განაცხადი ტბები დინამიკურ მასივზე (გამოიყენეთ new ოპერატორი). ჩაწერეთ მასში მონაცემები lake.txt
  10. ფაილიდან, დაალაგეთ მასივი მოთხოვნის შესაბამისად სტანდარტული ბიბლიოთეკის ალგორითმით. დალაგებული მასივი
  11. დაბეჭდეთ sorted.txt ფაილში და ბოლოს გაათავისუფლეთ დაკავებული დინამიკური მეხსიერება
  12. */
  13.  
  14. #include <iostream>
  15. #include <algorithm>
  16. #include <string>
  17. #include <fstream>
  18.  
  19. using namespace std;
  20.  
  21. class Lake{
  22. private:
  23.     string name, location;
  24.     double area, depth;
  25. public:
  26.     Lake();
  27.     ~Lake(){}
  28.     double getDepth(){ return depth; }
  29.     friend istream&  operator>> (istream&, Lake&);
  30.     friend ostream& operator<<(ostream&, Lake&);
  31. };
  32.  
  33. Lake::Lake(){
  34.     name = ""; location = "";
  35.     area = 0; depth = 0;
  36. }
  37.  
  38. istream&  operator>> (istream& in, Lake& lake){
  39.     return in >> lake.name >> lake.location >> lake.area >> lake.depth;
  40. }
  41.  
  42. ostream& operator<<(ostream& out, Lake& lake) {
  43.     return out << lake.name << " " << lake.location << " " << lake.area << " " << lake.depth << endl;
  44. }
  45.  
  46. int fillDate(Lake * lakes){
  47.     ifstream ifs("lake.txt");
  48.  
  49.     int count(0);
  50.     while (!ifs.eof()){
  51.         ifs >> lakes[count];
  52.         count++;
  53.     }
  54.  
  55.     return count;
  56. }
  57.  
  58. void writeToFile(Lake * lakes, int size){
  59.     ofstream ofs("sorted.txt");
  60.     for (int i = 0; i < size; i++){
  61.         ofs << lakes[i];
  62.     }
  63. }
  64.  
  65. bool compare(Lake& lake1, Lake& lake2){
  66.     return lake1.getDepth() > lake2.getDepth();
  67. }
  68.  
  69. int main(){
  70.  
  71.     Lake* lakes;
  72.     lakes = new Lake[45];
  73.  
  74.     int size = fillDate(lakes);
  75.  
  76.     sort(lakes, lakes + size, compare);
  77.  
  78.     writeToFile(lakes, size);
  79.  
  80.     delete[] lakes;
  81.     lakes = NULL;
  82.  
  83.     return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement