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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нерекурсивный обход дерева http://www.cyberforum.ru/cpp-beginners/thread208482.html
я не могу понять как сделать не рекурсивный обход дерева. понятно что надо добавлять элементы куда-то.в стек например. но я не знаю как в смысле по какому правилу и т.п. как обойти все элементы...
C++ Выяснить, можно ли из строки st1 сделать строку st2 путем перестановки символов Ребят помогите пожалуста) Даны две строки st1 и st2. Выяснить можо ли из строки st1 сделать строку st2 путем перестановки символов. http://www.cyberforum.ru/cpp-beginners/thread208472.html
Цикл и вектор C++
Проблема в том, что оно входит в цикл ака for(i=0;i<-1;i++) Сразу даю кусок кода =) В функцию передаем координаты вершин фигуры, прямоугольник, по которому отсекаем ее и цвет points -...
массивы C++
решить задачу с помощью одномерного массива: Дан целочисленный массив А. Если массив А упорядочен по убыванию, то переставить местами элементы массива в каждой паре соседних элементов: А и A, А и A,...
C++ Массив структур http://www.cyberforum.ru/cpp-beginners/thread208452.html
Информация о дисциплине содержит название, количество часов лекций, количество часов практических занятий, фамилию преподавателя. Вывести информацию о дисциплинах, которые читаются заданным...
C++ Текстовые файлы Добрый день! Мне необходимо обработать текстовый файл, подсчитав в нем количество слов, предложений и абзацев. В каждой строчке не более 20000 символов. Пишу программу #include <stdio.h> #include... подробнее

Показать сообщение отдельно
Мария91
7 / 6 / 0
Регистрация: 10.01.2010
Сообщений: 57

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

12.12.2010, 19:24. Просмотров 342. Ответов 0
Метки (Все метки)

всем доброго времени суток!

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

Дан текстовой файл,содержащий неупорядоченные записи элементов (фамилия студента, год рождения, средний бал успеваемости). Необходимо:
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 минуту
тоесть получается -
петров
иванов
баранов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru