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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
IIIa66uMEM6eP
заставил Бендера
435 / 291 / 10
Регистрация: 05.12.2010
Сообщений: 1,644
Записей в блоге: 6
#1

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

30.05.2011, 18:20. Просмотров 270. Ответов 0
Метки нет (Все метки)

Есть код и плохое решение задачи, прошу помочь до пилить.
Сама задача:
Дан файл, с банками, с их прибылью в указанных годах.
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++
В файле находятся только целые числа. Определить, имеет ли последовательность чисел, находящихся в файле, нечетную длину, и если да, то...

Почему тип "bool" работает в файле с расширением .cpp и не работает в файле с расширением .c? - C++
Объясните, пожалуйста, почему тип &quot;bool&quot; в одной и той же программе работает в файле с расширением .cpp и не работает в файле с...

Сравните пожалуйста операторы ветвления в скрипт-файле и файле-функции - Matlab
Приятного времени суток господа. Есть маленький вопрос, даже недоумение. Вот оно: Если я запускаю(компилирую) скрипт файл, то оператор...

Как переместить курсор в файле в читаемом файле на начало? - Pascal
Добрый день. Выполнил цикл &quot;while not eof(inputFile)&quot;. Теперь надо выполнить еще раз цикл с таким же условием, но другим содержимым. Я...

Сравнение слов в одном файле со словами в другом файле - MS Excel
Здравствуйте! Суть задачи такая: 1. Первый файл - запросы с городами, второй файл - база городов РФ. Оба txt (для Excel пусть не файлы,...

Найти в текстовом файле строку по заданному слову и заменить ей определённую часть строки в другом файле - CMD/BAT
Всех с Новым Годом! Наверное избитая тема, но все же... Задача такая: Существует два файла: log.txt и run.bat. Необходимо в log.txt...

Смена иконки в файле .res (ресурсном файле) - Delphi
Здравствуйте! Настигла меня задача сменить иконку в ресурсном файле. В программе есть так называемый билдер, нужно реализовать выбор...

Заменить ссылки в одном файле на ссылки, находящиеся в другом файле, если последние сегменты ссылок совпадают - CMD/BAT
Здравствуйте, подскажите, пожалуйста, как можно сделать замену ссылок в txt файле? Заменять нужно по именам файлов (после последней косой...

Удаление элементов списка, находящегося в одном файле, из списка, имеющегося в другом файле - CMD/BAT
По сути есть два списка, одни - файлы в папке, которые рекурсивно сканятся и в одну строчку складываются, а другой список файлов в...

Замена слов в одном текстовом файле словами, записанными в другом текстовом файле - VBScript/JScript
Кто-нибудь пожалуйста приведете пример реализации следующей программы имеются два тектовых файла - один с повторяющимися записями типа ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru