Форум программистов, компьютерный форум CyberForum.ru

Стурктура в файле. - C++

Восстановить пароль Регистрация
 
IIIa66uMEM6eP
заставил Бендера
 Аватар для IIIa66uMEM6eP
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
30.05.2011, 18:20     Стурктура в файле. #1
Есть код и плохое решение задачи, прошу помочь до пилить.
Сама задача:
Дан файл, с банками, с их прибылью в указанных годах.
1) Получить список банков, выдавших в 2000г ссуду более 5 млн. руб. - сделано
2) Определить какой из банков, и в каком году выдал наибольшую ссуду.
3) Удалить информацию о банке, который не выдавал ссуду хоть в одном из годов.
4) Упорядочить названия банков по убыванию суммарной выданной ссуды.
Занести результат работы в новый файл output.txt
файл input
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
#include <windows.h>
#pragma comment(lib,"kernel32.lib") 
using namespace std;
 
//структура содержимого
struct bank{
  std::string  bank_name_; // строка с именами банков
  double       money_2000y_, money_2001y_; 
 
  friend std::istream &operator>> (std::istream &is, bank &inf){
    string buf; // буферная строка
    getline(is, inf.bank_name_, ';'); // берем всю строку с именами банков и
    is >> buf;  // переносим в буферную строку
    // заменяем до конца пробелами после двоеточия с 1 позиции
    replace(buf.begin(), buf.end(), ';', ' ');
    //
    istringstream ist(buf); // считываем из потока строки
    //перенаправляем поток 
    ist >> inf.money_2000y_ >> inf.money_2001y_;
    return is;
  }
};
 
int main(){
        setlocale (LC_CTYPE, "rus");
// открываем файл
  ifstream ifs("C:\\input.txt");
  if(!ifs){
    cerr << "File Not Found" << endl;
    return 1;
  } 
  string tmp;
  ifs >> tmp; //передаем строке значения
  tmp.clear(); // вызов удаления всех символов
  const size_t count_banks_in_file(20);// так 20 строк банков
  vector<bank> v(count_banks_in_file);  //динамический массив
  //Открываем файл для записи
  ofstream fout ("C:\\output.txt");
  //
  
 // сначала ищем те у которых > 5 милионов рублей
  for(size_t i = 0; i < count_banks_in_file; ++i){ // поиск
    ifs >> v[i]; // передаем массиву
    if(v[i].money_2000y_ >= 5.0) // если найден элемент больший 5.0
     fout << v[i].bank_name_ << '\n'; // то вывести банки с такими элементами 
                                        // в строке (запишем в новый файл)
 // ---------------------------------------------------------
  }
  
  // теперь ищем самую большую суду
  fout << "Самая большая суда: " << endl;
 
  for(size_t i = 0; i < count_banks_in_file; ++i){
    ifs >> v[i];
  }
     bank _max = *std::max_element(v.begin(), v.end());
  fout << _max.bank_name_ << '\t' << (_max.money_2000y_ > _max.money_2001y_? "2000" : "2001");
  //--------------------------------------------
 
 // удаляем информацию о банке, который не выдавал ссуду хотябы в одном из годов (0)
   fout << "Удаляем все банки, которые в один из годов не выдавали суды.";
  
 
 //----------------------------------------------
 
 //Упорядочиваем названия банков по убыванию суммарной выданной ссуды.
 
 
 
 
 //-----------------------------------------------
  //закроем файл
  fout.close();
  //
cout << endl; 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2011, 18:20     Стурктура в файле.
Посмотрите здесь:

Прыжки в файле C++
C++ Прототипы ф-й в *.h файле
Дан файл F, компонентами которого являются целые числа. Получить в файле G все нечетные числа, входящие в файл F. Числа в файле G должны следовать C++
C++ Поиск в файле
C++ Консольное приложение. В файле находятся только целые числа. Определить, имеет ли последовательность чисел, находящихся в файле, нечетную длину
C++ Отступы в файле
C++ Почему тип "bool" работает в файле с расширением .cpp и не работает в файле с расширением .c?
Сравнение слов в одном файле со словами в другом файле C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 03:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru