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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Priorzivil
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 11
#1

Переписать данные файла input.txt в файл output.txt, отсортировать их в алфавитном порядке по фамилии - C++

11.03.2013, 18:07. Просмотров 1624. Ответов 2
Метки нет (Все метки)

Народ меня тут 11 задач мне нужно их подробно прокомментировать какая строчка что делает(пример первая задача) помогите плиз кому не сложно хотя бы по одной задачке буду очень благодарен

Задание 1 Сортировка 1
В файле input.txt содержатся сведения о группе студентов в формате:
номер группы;
запись о каждом студенте группы содержит следующие сведения: фамилия, имя, отчество, год рождения, оценки по пяти предметам.
Переписать данные файла input.txt в файл output.txt, отсортировать их в алфавитном порядке по фамилии
методом выбора.
input
Код
Колинин Вячеслав Васильевич
1990
3 5 4 5 5
Калинин Вячеслав Васильевич
1990
3 5 4 5 5
Когинин Вячеслав Васильевич
1990
3 5 4 5 5
Авдеев Виктор Васильевич
1991
3 5 3 4 4
Голубцова Валерия Алексеевна
1989
5 5 4 5 4
Барсуков Владимир Сергеевич
1991
3 4 4 3 5 
Веденеев Николай Денисович
1993
5 4 5 4 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
51
52
53
54
55
56
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
struct Student //структура студент
{
    string Name, Marks, Date;
};
 
int DateToInt(string Str) //функция для перевода даты рождения из строки в число
{
    stringstream stream(Str); //загоняем в стингстрим
    int date; //числовое представление даты
    stream >> date; //получаем в числовом виде
    return date; //возвращаем дату в числовом виде
}
 
int main()
{
    setlocale(LC_ALL, "Russian"); //включаем кириллицу
    Student arr[10]; //массив структур
    int n = 0; //счетчик количества структур в файле
    ifstream fin("input.txt"); //файл
    if(fin.is_open())//если октрыт
        while(!fin.eof())//пока нет конца файла
        {
            getline(fin, arr[n].Name); //считываем ФИО
            fin.sync();//синхронизируем поток (убираем из него мусор)
            getline(fin, arr[n].Date); //считываем дату
            fin.sync();
            getline(fin, arr[n].Marks); //считываем оценки
            fin.sync();
            n++; //увеличиваем счетчик
        }
    fin.close(); //закрыли входной файл
    for(int i = 0; i < n - 1; i++) //внешний цикл сортировки по ФИО  (методом выбора)
        for(int j = i + 1; j < n; j++) //внутренний цикл сортировки по ФИО
            if(arr[i].Name > arr[j].Name) //если 1 буква 1 структуры больше за 1 букву следующей структуры
            {
                Student tmp; //меняем местами структуры через дополнительную переменную
                tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
            }
    ofstream fout("output.txt");    // выходной файл
    for(int i = 0; i < n; i++) //цикл
    {
        fout<<arr[i].Name<<endl<<arr[i].Date<<endl<<arr[i].Marks<<endl; //записываем данные в файл
        cout<<arr[i].Name<<endl<<arr[i].Date<<endl<<arr[i].Marks<<endl;
    }
    fout.close();   //закрыли выходной файл
    
    system("pause");
    return 0;
}
output
Код
Авдеев Виктор Васильевич
1991
3 5 3 4 4
Барсуков Владимир Сергеевич
1991
3 4 4 3 5 
Веденеев Николай Денисович
1993
5 4 5 4 3
Голубцова Валерия Алексеевна
1989
5 5 4 5 4
Калинин Вячеслав Васильевич
1990
3 5 4 5 5
Когинин Вячеслав Васильевич
1990
3 5 4 5 5
Колинин Вячеслав Васильевич
1990
3 5 4 5 5
 Комментарий модератора 
Первым делом, зайдя на форум, нужно читать правила, а не постить темы.
Используйте тэги форматирования текста для удобства восприятия ваших сообщений другими пользователями.
Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе.
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2013, 18:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переписать данные файла input.txt в файл output.txt, отсортировать их в алфавитном порядке по фамилии (C++):

В файле input.txt содержатся сведения о группе студентов. переписать данные файла в файл output.txt, отсортировав их по возрастанию - C++
Добрый вечер!!! Я - новичок по работе с С++, помогите, пожалуйста, написать программу на этом языке. В файле input.txt содержатся сведения...

Переписать данные файла input.txt в output.txt, отсортировав их - C++
Прошу помочь с заданием. В файле input.xtx содержатся сведения о группе студентов в формате: 1.номер группы; 2. запись о каждом...

Переписать данные файла input.txt в output.txt, отсортировав их - C++
Прошу помочь с заданием. В файле input.xtx содержатся сведения о группе студентов в формате: номер группы; запись о каждом студенты...

Переписать данные файла input.txt в файл output, отсортировав их по возрастанию средней оценки методом выбора - C++
В файле input.txt содержатся сведения о группе студентов в формате: номер группы; запись о каждом студенте группы содержит следующие...

Исправить программу, чтоб считывала текст из файла Input.txt и выводит в файл Output.txt - C++
Даны координаты центра и радиус R окружности, координаты точки. Найти точки пересечения касательных с окружностью input.txt 1 1 1 2 2...

Найти минимальное и максимальное числа из input.txt и записать его в файл output.txt - C++
Еще раз приветствую дорогие программисты.Надеюсь на вашу помощь. Найти минимальное и максимальное числа из input.txt и записать его в...

2
srg_btl
34 / 34 / 2
Регистрация: 21.02.2013
Сообщений: 90
11.03.2013, 18:57 #2
C++
1
2
3
int a[255];
 
for(int i=0; i<255; i++)
Не надо магических чисел... Лучше задефайни

C++
1
2
3
4
5
#define ARRAY_COUNT 255
...
int a[ARRAY_COUNT];
 
for(int i=0; i<ARRAY_COUNT; i++)
есть ещ ошибка
C++
1
2
r=NULL;
delete r;
сначала удаляй а потом зануляй

C++
1
for (int j = 0; j < g[i].size(); j++)
не эфективно так как каждый раз при прохождении цыкла вызываеться функция сайз которая возвращает то самое значение. Лучше поммести в отдельную переменную
C++
1
2
int size =  g[i].size();
for (int j = 0; j < size; j++)
И посоветую тебе книгу Ален И. Голуб, Верёвка достаточной длины, чтобы... выстрелить себе в ногу. Правила программирования на С и C++ и статьи Криса Касперского в корне найдешь продолжение. Но не следует после его статей забывать о читабельности кода

И еще одна книга: МакКоннелл "Совершенный код" по моему лучший вариант
1
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.03.2013, 20:33 #3
Цитата Сообщение от Priorzivil Посмотреть сообщение
fin.sync();//синхронизируем поток (убираем из него мусор)
Это лишнее, нет там никакого мусора.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2013, 20:33
Привет! Вот еще темы с ответами:

Посчитать сколько в файле input.txt символов и записать их количество в output.txt - C++
Поступил на информатику, задали рассказать что и как делает программа, я напишу как считаю правильно, а вы пожалуйста поправьте если где ...

Дан одномерный массив из n (n≤104) элементов, осортировать его по возрастанию методом выбора через input.txt, output.txt - C++
Дан одномерный массив из n (n≤104) элементов a1,a2,…,an.( |ai|≤2×109). Сортировать по возрастанию методом выбора через input.txt, output.txt

Переписать все числа из файлов 1.txt и 2.txt в файл 3.txt - C++
Здравствуйте! Нужна помощь. Есть два текстовых файла 1.txt и 2.txt в них есть числа. реализовать консольное приложение которое...

отладить программу на языке С++, которая считывает из файла a.txt строку и записывает её в файл b.txt в обратном порядке - C++
я это взяла из книги полностью готовый код, а он не идёт.Помогите отладить, пожалуйста #include &lt;string.h&gt; #include &lt;stdlib.h&gt; ...


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

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

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