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

Организовать массив из всех элементов из файла - C++

Восстановить пароль Регистрация
 
Мария91
7 / 6 / 0
Регистрация: 10.01.2010
Сообщений: 57
12.12.2010, 19:24     Организовать массив из всех элементов из файла #1
всем доброго времени суток!

задали такую задачу:

Дан текстовой файл,содержащий неупорядоченные записи элементов (фамилия студента, год рождения, средний бал успеваемости). Необходимо:
1)Организовать массих всех элементов из файла.
2)Создать упорядоченный по фамилии, году, баллу список.
3)Вывести на печать элементы исзодного массива.
4)Вывести упорядоченный список

1) и 3) я вроде как сделала. Он у меня читает из файла что написано и выдает на экран.

Вопросы,естественно остаются по 2 и 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
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
#include <fstream.h>
#include <iostream.h>
#include <conio.h>
struct stud
{
        char *name;
        int year;
        float mark;
};
void print(stud*m,int i)
{
        for(int j=0;j<i;j++)
                cout<<m[j].name<<" "<<m[j].year<<" "<<m[j].mark<<endl;
}
int main()
{
        ifstream file("stud.txt");
        char name[20];
        stud mas[30];
        int i=0;
        while(1)
        {
                file>>name;
                if(file.eof())
                        break;
                mas[i].name=new char[strlen(name)+1];
                strcpy(mas[i].name,name);
                file>>mas[i].year>>mas[i].mark;
                i++;
        }
        print(mas,i);
        getch();
        return 0;
}
//---------------------------------------------------------------------------
Добавлено через 57 секунд
Ах,да,и как видите, здесь надо чтобы были задействованы структуры(ну начало у меня уже есть)

Добавлено через 17 часов 51 минуту
в файле текст такого типа:
"petrov 1993 4.3
ivanov 1991 3.7
baranov 1992 4.8"

Сначала надо чтоб выдал отсортированный список по фамилии, затем отдельный список по году и отдельно по оценке.

По идее, чтобы отсортировать по фамилии, надо прочесть только первый символ фамилии. Это нужно сделать в цикле for, да? и обращаться к элементам типа .name? только я не пойму, а как он будет перемещать целые строки?, не сделается ли тогда допустим так:


"baranov 1993 4.3
ivanov 1991 3.7
petrov 1992 4.8" т.е. фамилии переместит, а год рождения и отметка останутся на месте?

Добавлено через 9 часов 13 минут
я вот сделала такую ф-ю:

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void sort(stud*m,int i)
{
 
        for(int j=0; j<i; j++)
        {
                for(int k=(j+1); k<i; k++)
                {
                        if(m[j].name<m[k].name)
                        {
                        char *temp;
                        temp=m[j].name;
                        m[j].name=m[k].name;
                        m[k].name=temp;
 
                        }
                }
        }
}
почему то проходит только один круг

Добавлено через 1 минуту
тоесть получается -
петров
иванов
баранов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2010, 19:24     Организовать массив из всех элементов из файла
Посмотрите здесь:

Создать новый файл, содержащий квадраты всех элементов исходного файла C++
Определить произведение всех положительных элементов и сумму всех отрицательных элементов. C++
C++ Задан одномерный массив, содержащий n элементов, определить сумму всех чётных элементов
массив Найти номера всех отрицательных элементов C++
Массив: Сосчитать сумму всех элементов массива C++
Написать программу, вычисляющую среднее арифметическое всех элементов массива из 200 элементов. Массив заполняется случайными числами C++
Дано одномерный массив Р, который состоит из 12 элементов. Вычислить сумму модулей всех от "объемных элементов * превышающих числа А (А = 1.25) C++
Ввести c клавиатуры массив из 5 элементов, найти среднее арифметическое всех элементов массива C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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