Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Arina
0 / 0 / 0
Регистрация: 26.04.2012
Сообщений: 14
#1

Записи.Работа с текстовыми файлами - C++

03.05.2012, 10:00. Просмотров 512. Ответов 3
Метки нет (Все метки)

В деканате хранится информация о зимней сессии на 1 курсе(фамилия,номер группы,оценка 1 по геометрии,оценка 2 по алгебре,оценка 3 по информатике).Составить программу считывающую данные из текстового файла,печатающую название предмета,который был сдан лучше всего
помогите решить пожалуйста..очень нужно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2012, 10:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Записи.Работа с текстовыми файлами (C++):

Работа с текстовыми файлами - C++
Есть текстовый файл в котором существует последовательность чисел. Нужно создать текстовый файл содержащий все числа в обратном порядке. ...

Работа с текстовыми файлами - C++
Дан текстовый файл F. Добавить в его конец символы E,N,D (если необходимо, использовать файл Q). Выручите - очень надо1!

Работа с текстовыми файлами - C++
Добрый вечер. Дан текстовый файл. Найти количество строк, которые начинаются с данной буквы.

Работа с текстовыми файлами - C++
Функция копирует с одного файла в другой, не подскажите как улучшить ее? И есть недостаток нужно подсчитывать количество элементов в файле...

Работа с текстовыми файлами - C++
Пожалуйста, помогите с задачей: Дан файл f, компоненты которого являются действительными числами. Найти: 1.наибольшее из значений...

Работа с текстовыми файлами. - C++
Здравствуйте)) Не могли бы Вы мне помочь с такой задачей:создать текстовый файл. Найти номер самой длинной строки. Создавать файлы я...

3
amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 240
03.05.2012, 12:43 #2
код
#include <cstdio>

const int n=80;

struct student
{
char name[n]; //фамилия
int group;
int mark[3]; // массив оценок за 3 предмета
} st[6]; // 6 студентов

int main()
{
FILE* file;
if ((file = fopen("file.txt","r")) == NULL)
{
printf ("Error in opening file for reading! \n");
return 1;
}
// считываем информацию из файла
for (int i=0; i<6; i++)
{
fscanf (file, "%s %d", st[i].name, &st[i].group); //сначала фамилию и номер группы
for (int j=0; j<3; j++)
fscanf (file, "%d ", &st[i].mark[j]); //затем - 3 оценки
}
fclose(file);

//для проверки - выводим файл в консоль
for (int i=0; i<6; i++)
{
printf ("%s %d ", st[i].name, st[i].group);
for (int j=0; j<3; j++)
printf ("%d ", st[i].mark[j]);
printf ("\n");
}

int total_mark[3] = {0};

//суммируем все оценки за каждый предмет
for (int j=0; j<3; j++)
for (int i=0; i<6; i++)
total_mark[j] += st[i].mark[j];

//ищем предмет с наибольшей суммой оценок за экзамен по нему
int max_mark = total_mark[0];
char subj[3][80] = {"Geometry", "Algebra", "Informatics"};
total_mark[1] >= max_mark ? ( total_mark[1]>=total_mark[2] ? max_mark = total_mark[1] : max_mark = total_mark[2]) : (max_mark>=total_mark[2] ? max_mark = total_mark[1]: max_mark = total_mark[2]);

//выводим нужный предмет
for (int j=0; j<3; j++)
if (max_mark == total_mark[j])
printf ("\n\nThe subject which have passed with the best marks: %s \n\n", subj[j]);
return 0;
}


Результат работы - во вложении.

Содержание файла file.txt:
file.txt
Ivanov 111 3 4 5
Petrov 112 4 4 5
Sidorov 113 5 4 4
Ivanova 211 4 4 4
Petrova 212 3 3 4
Sidorova 213 5 5 5
0
Миниатюры
Записи.Работа с текстовыми файлами  
ForEveR
В астрале
Эксперт С++
7992 / 4751 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
03.05.2012, 13:40 #3
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
#include <vector>
#include <iterator>
#include <algorithm>
#include <fstream>
 
struct student_t
{
   student_t():
      group(0), alg_note(0), geom_note(0), inf_note(0)
   {
   }
   std::string name;
   int group;
   int alg_note;
   int geom_note;
   int inf_note;
};
 
std::istream& operator >> (std::istream& is, student_t& student)
{
   is >> student.name >> student.group >> student.alg_note >> student.geom_note >> student.inf_note;
   return is;
}
 
std::ostream& operator << (std::ostream& os, const student_t& student)
{
   os << "Student: " << student.name << "/" << student.group << std::endl;
   os << "Notes. alg note: " << student.alg_note << " geom note: " << student.geom_note << 
      " inf note: " << student.inf_note << std::endl;
   return os;
}
 
int main()
{
   std::ifstream ifs("students.txt");
   if (!ifs)
   {
      return 1;
   }
   std::vector<student_t> vec((std::istream_iterator<student_t>(ifs)), std::istream_iterator<student_t>());
   std::copy(vec.begin(), vec.end(), std::ostream_iterator<student_t>(std::cout));
   double alg_all = 0, geom_all = 0, inf_all = 0;
   std::for_each(vec.begin(), vec.end(), [&alg_all, &geom_all, &inf_all](const student_t& stud)
   {
      alg_all += stud.alg_note; geom_all += stud.geom_note; inf_all += stud.inf_note;
   });
   double alg_middle = alg_all / vec.size(), geom_middle = geom_all / vec.size(), inf_middle = inf_all / vec.size();
   double max = std::max(alg_middle, std::max(geom_middle, inf_middle));
   std::cout << (max == alg_middle ? "Alg" : max == geom_middle ? "Geom" : "Inf") << std::endl;
}
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
forever@pterois:~/My_pro1/cpp_pro$ ./new
Student: Ivanov/111
Notes. alg note: 3 geom note: 4 inf note: 5
Student: Petrov/112
Notes. alg note: 4 geom note: 4 inf note: 5
Student: Sidorov/113
Notes. alg note: 5 geom note: 4 inf note: 4
Student: Ivanova/211
Notes. alg note: 4 geom note: 4 inf note: 4
Student: Petrova/212
Notes. alg note: 3 geom note: 3 inf note: 4
Student: Sidorova/213
Notes. alg note: 5 geom note: 5 inf note: 5
Inf
1
Arina
0 / 0 / 0
Регистрация: 26.04.2012
Сообщений: 14
04.05.2012, 10:14  [ТС] #4
спасибо большое....очень приятно что помогаете....
0
04.05.2012, 10:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2012, 10:14
Привет! Вот еще темы с ответами:

Работа с текстовыми файлами - C++
Дай текстовы файл F. Группы символов, розделены пропусками (одним или нескольками) или вообще их не имеют (будем как и раньше называть их...

Работа с текстовыми файлами - C++
Помоготи , пожалуйста : Создать текстовый файл и выполнить обработку текста в файле ... Пример : 2) Создать текстовый файл,...

работа с текстовыми файлами, C++ - C++
Дан текстовый файл. Напечатать все строки, длина которых меньше заданного числа.

Работа с текстовыми файлами - C++
Прошу помощи! Необходимо что б программа считывала данные из обычного текстового файла и записывала в нужные переменные. Текстовый файл...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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