Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 28.03.2012
Сообщений: 3

Отсортировать методом выбора текстовый файл

28.03.2012, 23:31. Показов 1873. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В текстовом файле содержатся сведения о группе студентов в формате: запись о каждом студенте группы, которая содержит следующие сведения: фамилия, имя, отчество, год рождения, оценки по пяти предметам.
Переписать данные файла в новый текстовый файл, отсортировав их по фамилии студентов и убыванию их года рождения посредством "выбора".

Добавлено через 1 час 8 минут
*********up
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.03.2012, 23:31
Ответы с готовыми решениями:

Первый массив отсортировать методом выбора, второй методом пузырька
Задание. Составить на одном из алгоритмических языков программу, запускается и выдает на экран меню из двух пунктов (табуляция, выход). ...

Отсортировать массив методом выбора
привет, помогите пожалуйста ... нужно отсортировать массив методом выбора (12 элем.) ... спасибо)

Отсортировать методом выбора массив
Имеется массив размерностью NxN, где N = 9. Отсортировать методом выбора так, чтобы элементы в них располагались по возрастанию. ...

4
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 13
28.03.2012, 23:53
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
85
86
87
/*
in_file.txt:
Фамилия Имя Отчество 1992 1 2 3 4 5
Амилия Имя Отчество 2991 5 4 3 2 1
Буслаев Сергей Антонович 1233 8 4 6 23 5
Буслаев Сергей Антонович 1232 8 4 6 23 5
Говоров Петя Петрович 1422 2 2 2 2 2
Иванов Иван Иванович 5692 5 5 5 5 5
*/ 
 
#include <fstream>
 #include <iostream>
 
using namespace std;
 
struct student
{
char family[20], name[20], otc[20];
int year;
int ball[5];
};
 
 
void main()
 {   
    student students[10]; //список из 10 студентов
    ifstream fin;  // Поток fin будем использовать для чтения
    ofstream fout; // Поток fout будем использовать для записи
    
    fin.open("in_file.txt");
    fout.open("out_file.txt");
 
    //Читаем
    for (int j=0; j<10; j++){
        fin >> students[j].family >> students[j].name >> students[j].otc >> students[j].year;
        for (int i=0; i<5; i++){
            fin >> students[j].ball[i];
        }
    }
 
    /*Сортировка методом простого выбора сводится к следующим шагам: 
    1. Установить номер наибольшего элемента массива. 
    2. Поменять местами наибольший и последний элементы массива. 
    3. Оставив в покое последний элемент, выполнить пункты 1 и 2 над 
    остатком массива (массивом без последнего элемента). Пункт 3 повторять, 
    пока остаток массива не сократится до одного элемента.*/
    
    student temp;
    int t;
    
    for (int i=9; i>-1; i--){
        //находим наибольший элемент
        student max = students[0];
        for (int j=0; j<10; j++){ 
            for (int z = 0; z < strlen(students[j].family); z++){
                if (students[j].family[z] > max.family[z]){
                        max = students[j];
                        t = j;
                }
            }
        }
        temp = students[i];
        students[i] = max;
        students[t] = temp;
    }
 
    //Если одинаковые фамилии, смотрим по году рождения
    for (int i=0; i<10; i++){
        if (students[i].family[strlen(students[i].family)] == students[i+1].family[strlen(students[i].family)]){ //т.к. уже отсортированы по фамилиям
                if (students[i].year > students[i+1].year){
                    temp = students[i+1];
                    students[i+1] = students[i];
                    students[i] = temp;
                }
        }   
    }
 
 
    //Вывод в файл
    for (int j=0; j<10; j++){
        fout << students[j].family << " " << students[j].name << " " << students[j].otc << " " << students[j].year;
        for (int i=0; i<5; i++){
            fout << " " << students[j].ball[i];
        }
        fout << endl;
    }
}
1
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
29.03.2012, 11:57
Цитата Сообщение от rush2331 Посмотреть сообщение
C++
1
2
3
4
5
for (int z = 0; z < strlen(students[j].family); z++){
                                if (students[j].family[z] > max.family[z]){
                                                max = students[j];
                                                t = j;
                                }
Это такой аналог strcmp, не понял?
0
0 / 0 / 0
Регистрация: 28.03.2012
Сообщений: 3
29.03.2012, 18:53  [ТС]
rush2331, огромное Вам спасибо!
0
4 / 4 / 2
Регистрация: 27.03.2012
Сообщений: 13
29.03.2012, 20:46
Kuzia domovenok
Да, просто я только учу С++ и не знаю кучу функций.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.03.2012, 20:46
Помогаю со студенческими работами здесь

Отсортировать список методом выбора по убыванию
Ввести число n. Сгенерировать список случайных чисел размера n. Отсортировать список следующим методом сортировки: Сортировка выбором по...

Отсортировать по возрастанию методом простого выбора
отсортировать по возрастанию методом простого выбора одномерного массива с проверкой рассматриваемой части массива на упорядоченность: если...

Отсортировать слова в файле методом выбора
//*Написать программу, которая читает все слова из текстового файла, формирует из них массив слов и сортирует их методом выбора.*/ ...

Отсортировать массив модифицированным методом простого выбора.
Помогите пожалуйста! Отсортировать массив модифицированным методом простого выбора.

Отсортировать одномерный массив методом простого выбора
Отсортировать одномерный массив методом простого выбора, с помощью ввода случайных чисел #include &lt;conio.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru