Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2013, 18:15   #1
V1rus.25
Пользователь
 
Аватар для V1rus.25
 
Регистрация: 09.04.2012
Сообщений: 62
Вопрос Чтение из файла

Язык С++
Дан файл содержащий фамилии студентов и оценки по трем предметам. Определить какой предмет был сдан лучше
ПРИМЕР ВЫВОДА
ФАМИЛИЯ ПРЕДМЕТ1 ПРЕДМЕТ2 ПРЕДМЕТ3
Иванов 5 4 4
Петров 5 4 5
Сидоров 4 4 5
Средний бал 11,4 9,4 11,4
СДАН ЛУДШЕ: ПРЕДМЕТ1 ПРЕДМЕТ3

ФАМИЛИЯ ПРЕДМЕТ1 ПРЕДМЕТ2 ПРЕДМЕТ3
Иванов 5 4 4
Петров 5 4 5
Сидоров 4 4 3
Средний бал 11,4 9,4 10
СДАН ЛУДШЕ: ПРЕДМЕТ1

Последний раз редактировалось V1rus.25; 10.04.2013 в 19:01.
V1rus.25 вне форума Ответить с цитированием
Старый 15.04.2013, 12:45   #2
Ghost3
Ученик в c++
Форумчанин
 
Аватар для Ghost3
 
Регистрация: 28.02.2011
Сообщений: 162
По умолчанию

Чтение из файла в c++ я обычно делаю вот так:
Код:
#include <fstream>

int main()
{
ifstream infile ("file.txt"); //имя файла, откуда будем читать
ofstream outfile ("outfile.txt"); //имя файла куда будем записывать
infile >> x;
outfile << x;
}
Вообще тут не чат, быстро не помогут.

Есть идея, что при чтении файла надо считывать по символу в цикле, с условием, if (char>='1' && char<='5'), то записать там в переменную означающую баллы первого/второго/N-го предмета. Потом в конце вывести те, у которых балл равен и он наибольший.

Последний раз редактировалось Ghost3; 15.04.2013 в 12:52.
Ghost3 вне форума Ответить с цитированием
Старый 15.04.2013, 12:53   #3
V1rus.25
Пользователь
 
Аватар для V1rus.25
 
Регистрация: 09.04.2012
Сообщений: 62
По умолчанию

Мне нужно только чтение, данные в файле есть.
А как посчитать все остальное как в примере?
V1rus.25 вне форума Ответить с цитированием
Старый 15.04.2013, 13:08   #4
Ghost3
Ученик в c++
Форумчанин
 
Аватар для Ghost3
 
Регистрация: 28.02.2011
Сообщений: 162
По умолчанию

Ну, например, считываешь пока не конец строки символами, поищи в интернете "Пока не конец строки в c++", сам сейчас точно не подскажу как пишется.
Когда считываешь, используй мини-хитрости (хотя что тут хитрого?) например, while (c!=' ') , означает, пока символ "c" не равен пробелу... и условие дальше. И так считываешь данные и записываешь в другие переменные.
Ghost3 вне форума Ответить с цитированием
Старый 15.04.2013, 13:15   #5
V1rus.25
Пользователь
 
Аватар для V1rus.25
 
Регистрация: 09.04.2012
Сообщений: 62
По умолчанию

В файле содержатся данные как в примере:
ФАМИЛИЯ ПРЕДМЕТ1 ПРЕДМЕТ2 ПРЕДМЕТ3
Иванов 5 4 4
Петров 5 4 5
Сидоров 4 4 5

и нужно после считывания посчитать средний бал каждого предмета и вывести какой предмет сдан лучше
V1rus.25 вне форума Ответить с цитированием
Старый 15.04.2013, 13:29   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Код:
string s;
int a, b, c, as = 0, bs = 0, cs = 0, n = 0;
while (cin >> s >> a >> b >> c) {
    as += a;
    bs += b;
    cs += c;
    ++n;
}
cout << as / n << endl;
cout << bs / n << endl;
cout << cs / n << endl;
Заготовка. Больше помочь не могу (набирать с планшета, то ещё веселье).
Вместо cin подставьте файловый поток.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 15.04.2013, 13:33   #7
V1rus.25
Пользователь
 
Аватар для V1rus.25
 
Регистрация: 09.04.2012
Сообщений: 62
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
[CODE]
Вместо cin подставьте файловый поток.
Это что такое?
V1rus.25 вне форума Ответить с цитированием
Старый 15.04.2013, 13:34   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Цитата:
Сообщение от V1rus.25 Посмотреть сообщение
Это что такое?
То, о чем выше писал Ghost3.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 15.04.2013, 13:59   #9
V1rus.25
Пользователь
 
Аватар для V1rus.25
 
Регистрация: 09.04.2012
Сообщений: 62
По умолчанию

Если честно я не совсем понимаю что нужно делать, с таким сталкиваюсь впервые
V1rus.25 вне форума Ответить с цитированием
Старый 15.04.2013, 17:10   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Все бывает в первый раз
Нужно разобраться и работать с этим.
http://shatalov.su/ru/articles/cpp_primer/file_0.php
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение файла PastoriXx C++ Builder 8 23.02.2012 08:13
Чтение из файла trance-boy Общие вопросы C/C++ 3 09.11.2010 23:22
чтение файла legendary Общие вопросы Delphi 5 26.08.2010 07:32
Чтение из файла DimOn4Ik PHP 1 02.01.2010 22:41
Чтение из файла Need_Help Паскаль, Turbo Pascal, PascalABC.NET 5 19.05.2007 05:37