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

Создать текстовый файл с информацией об успеваемости студентов - C++

Восстановить пароль Регистрация
 
Bulding
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 47
23.03.2013, 22:01     Создать текстовый файл с информацией об успеваемости студентов #1
Создать текстовый файл с информацией об успеваемости студентов
мОЖНО ЛИ КАК-НИБУДЬ ПОПРОЩЕ ЭТОТ КОД НАПИСАТЬ

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
#include <iostream>
#include <algorithm>
#include <functional>
#include <iterator>
#include <sstream>
#include <string>
#include <stdexcept>
#include <exception>
 
#include <boost/regex.hpp>
#include <boost/token_iterator.hpp>
 
template <typename T>
struct IsGoodScore {
   double good_value = 4.0;
   
   bool operator()(const T & val) {
      auto temp = GenerateValues(val);
      return
         std::stod(std::accumulate(
            temp.begin(),
            temp.end(),
            std::string("0.0"),
            [](const std::string & first, const std::string & second) -> std::string {
               return std::to_string(std::stod(first) + std::stod(second));
            }
            )) / temp.size() >= this->good_value;
   }
   
   std::vector <std::string> GenerateValues(const std::string & str) {
      std::istringstream stream(str);
      std::vector <std::string> temp;
      std::copy_if(
         std::istream_iterator <std::string>(stream),
         std::istream_iterator <std::string>(),
         std::back_inserter(temp),
         [](const std::string & str) -> bool {
            return boost::regex_match(str, boost::regex("\\-?\\d+(\\.\\d+)"));
         }
      );
      
      return temp;
   }
};
 
int main() {
   try {
      std::string input_string = 
         "Jonh 4.0 3.8 5.0 3.9 4.3 4.0\n" \
         "Fred 3.1 3.3 4.0 3.6 3.4 3.0\n" \
         "Jonh 4.0 4.2 5.0 4.5 4.8 5.0";
         
      std::istringstream stream(input_string);
      std::vector <std::string> vec_strings;   
      
      boost::char_separator <char> delim("\n");
      std::copy_if(
         boost::make_token_iterator <std::string>(
            std::istreambuf_iterator <char>(stream),
            std::istreambuf_iterator <char>(),
            delim
         ),
         boost::make_token_iterator <std::string>(
            std::istreambuf_iterator <char>(),
            std::istreambuf_iterator <char>(),
            delim
         ), 
         std::ostream_iterator <std::string>(std::cout, "\n"),
         IsGoodScore <std::string>()
      );
   } catch (std::exception & exc) {
      std::cerr << exc.what() << std::endl;
   }
}
Миниатюры
Создать текстовый файл с информацией об успеваемости студентов  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 22:01     Создать текстовый файл с информацией об успеваемости студентов
Посмотрите здесь:

Текстовый файл: вывести фамилии и инициалы студентов в алфавитном порядке C++
Создать текстовый файл с информацией об успеваемости студентов C++
Программа выводит неверный ответ (дан массив структур, содержащий сведения об успеваемости студентов - вывести список неуспевающих студентов) C++
C++ Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла
C++ Составить файл об информаций студентов в группе. Найти самый высокий и самый низкий уровень успеваемости студентов в группе
Создать файл с информацией типа 00000000 = 0 C++
Учёт успеваемости студентов C++
C++ Текстовый файл с информацией об автомобилях

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
23.03.2013, 22:04     Создать текстовый файл с информацией об успеваемости студентов #2
Скажи, что ты не понимаешь - исправим
Yandex
Объявления
23.03.2013, 22:04     Создать текстовый файл с информацией об успеваемости студентов
Ответ Создать тему
Опции темы

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