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

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

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

Работа с файлом (Создать структуру студент) - C++

25.03.2013, 16:20. Просмотров 825. Ответов 6
Метки нет (Все метки)

помогите пожалуйста сделать( у меня не получается(

Создать структуру студент(Фамилия, возраст, номер группы, средний балл). Считать из файла список студентов и вывести его на экран, отсортировав по фамилии.
Отсортировать студентов по группам, а внутри группы по возрастанию среднего балла
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2013, 16:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Работа с файлом (Создать структуру студент) (C++):

Создать структуру: студент - C++
Доброго времени суток! Возникла небольшая проблема, которая поставила меня в тупик. Нужно создать структуру : студент(Фамилия, возраст,...

Создать структуру "Студент": Ф.И.О. домашний адрес, группа, рейтинг. Организовать ввод, вывод, поиск - C++
Помогите, пожалуйста) На турбо С++. совсем не разбираюсь:help:

Создать класс "Студент" и классы "Бюджетный студент" и "Коммерческий студент" - C++
Доброго времени суток. Помогите с задачкой. Наследование. Создать класс студент и классы бюджетный студент и коммерческий студент.

Работа с бинарным файлом (Создать новый текстовый файл, в котором числа будут отсортированы в порядке возрастания.) - C++
Аларм! Срочно прошу помощи! Есть задача: Записать бинарный файл с массивом целых чисел. Создать новый текстовый файл, в котором числа...

Используя структуру для определения понятия студент, распечатать фамилии и имена отличников. - C++
14. Используя структуру для определения понятия студент (состоящую из полей ФИО, курс, группа, оценки в сессию) распечатать фамилии и имена...

Как создать структуру-список, поля которой — ссылка на такую же структуру - C++
Суть вопроса в том, как создать структуру-список, поля которой - ссылка на сл. элемент(такую же структуру) и ссылка на объект, относящийся...

6
chizz
982 / 499 / 54
Регистрация: 19.03.2013
Сообщений: 3,094
Записей в блоге: 18
Завершенные тесты: 1
25.03.2013, 16:51 #2
Каким образом в файле будет храниться студент?

Фамилия:возраст:номер группы:средний балл
Шишкин:19:01:4.2

Так например?
0
Kirochka
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 6
25.03.2013, 17:15  [ТС] #3
угу
0
chizz
982 / 499 / 54
Регистрация: 19.03.2013
Сообщений: 3,094
Записей в блоге: 18
Завершенные тесты: 1
25.03.2013, 18:01 #4
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
#include <cstdlib>
#include <iostream>
#include <fstream>
 
#include <list>
#include <string>
#include <sstream>
 
using namespace std;
 
 struct STUDENT
{
    std::string name;
    int age;
    int  group;
    float   yspev;
}stud1[30];
 
int main(int argc, char *argv[])
{
//    system("PAUSE");
   
    
    char s[256], c;  
    
    
  cout << "File name? "; cin >> s;
  ifstream f;  
  
  f.open(s);
 
  int curStudN=0;
  // заполним массив студентов из файла
    while (!f.eof())
    
   {    f.getline(s, 256);
   
    std::istringstream stream(s);
    std::string str;
    char delim = ':';
    int i = 0;
    while (std::getline(stream, str, delim))
    {
        if (i==0) stud1[curStudN].name = str;
        if (i==1) stud1[curStudN].age =  atoi(str.c_str());
        if (i==2) stud1[curStudN].group = atoi(str.c_str());
        if (i==3) stud1[curStudN].yspev = atof(str.c_str());
    }
    
    curStudN++;
     
}
    system("PAUSE");
    return EXIT_SUCCESS;
}
Осталось только отсортировать и вывести на экран )
0
Kirochka
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 6
25.03.2013, 18:04  [ТС] #5
а как произвести двойную сортировку?
0
chizz
982 / 499 / 54
Регистрация: 19.03.2013
Сообщений: 3,094
Записей в блоге: 18
Завершенные тесты: 1
25.03.2013, 18:11 #6
Сначала произвести сортировку по группе - результат сохранить например в массив groups[] типа Students.
Потом пройтись по этому массиву groups и в каждом просортировать по возрастанию среднего балла.

Советую написать дополнительную функцию/процедуру, которая сортирует по определенному полю массив, состоящий из структур типа Student в нужном порядке.

ЗЫ.
Можно наверное гораздо проще, если знать, как в C++ сортировать лист типа std::list<std::string> если он содержит сложные структуры.

Тогда можно было бы создать что-то вроде
std::list<STUDENT> students;
students.push_back(stud1);

и потом уже сортировать как хочешь этот лист.
0
Kirochka
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 6
25.03.2013, 18:16  [ТС] #7
спасибо большое)
0
25.03.2013, 18:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2013, 18:16
Привет! Вот еще темы с ответами:

Создать расширенный класс СТУДЕНТ - C++
Здраствуйте, есть довольно не малое задание, код которого почти полностью представлен ниже: Задание: 1. Создать класс СТУДЕНТ,...

Создать базовый класс «Учащийся» и производные классы «Школьник» и «Студент» - C++
Создать базовый класс «Учащийся» и производные классы «Школьник» и «Студент». Создать массив объектов базового класса и заполнить этот...

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

работа с файлом - C++
объясните, пожалуйста, что тут происходит. особенно строчку, где ofs.write(reinterpret_cast&lt;char const*&gt;(arr), n * sizeof(*arr)); ...


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

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

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