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

Файл о студентах - C++

Восстановить пароль Регистрация
 
Mr.Whittier
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 33
12.07.2011, 23:34     Файл о студентах #1
Здравствуйте, форумчане!

Дана такая задача:

Создать файл, содержащий сведения о том, какие из 5 предложенных дисциплин желает слушать студент. Структура записи:
фамилия студента; № группы; средний балл;
5 дисциплин, где '*' показывает выбранную дисциплину. Создать файл, содержащий данные о тех, кто желает прослушать дисциплину XX. Если желающих больше 10, то отобрать тех студентов, у которых более высокий средний балл.
До этого не работал с такими файлами, здесь получается надо считывать массивы разных типов. Я не пойму, как правильно занести данные ( в виде таблицы или в строчку) и как правильно считать.

Подскажите, пожалуйста!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
13.07.2011, 03:20     Файл о студентах #2
Mr.Whittier, создайте структуру (С) или класс (С++). Файл у Вас в стандартном формате csv (comma separated vector) - читайте из него по строке, делите на токены по разделителю ';' и присваивайте их полям объектов структуры/класса...
Mr.Whittier
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 33
13.07.2011, 10:44  [ТС]     Файл о студентах #3
со структурой другое задание, а здесь её не надо использовать, так преподаватель решил.
а можно же без структуры всё считать? и поподробней про считывание, пожалуйста.
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
13.07.2011, 12:08     Файл о студентах #4

Не по теме:

easybudda, поправлю: comma-separated values


Цитата Сообщение от Mr.Whittier Посмотреть сообщение
а можно же без структуры всё считать? и поподробней про считывание, пожалуйста.
куда уж подробнее? Вот смотри:

Цитата Сообщение от easybudda Посмотреть сообщение
читайте из него [файла] по строке
fgets

Цитата Сообщение от easybudda Посмотреть сообщение
делите на токены по разделителю ';'
strtok

Цитата Сообщение от Mr.Whittier Посмотреть сообщение
со структурой другое задание, а здесь её не надо использовать, так преподаватель решил
дурак твой преподаватель, так как без структур можно, но получится говнокод.

Цитата Сообщение от Mr.Whittier Посмотреть сообщение
а можно же без структуры всё считать?
можно, хотя и нежелательно (см. выше): создай массив соответсвующего типа под каждое поле, и записывай туда значения, полученные strtok'ом

в общем, как ты и предполагал:
Цитата Сообщение от Mr.Whittier Посмотреть сообщение
До этого не работал с такими файлами, здесь получается надо считывать массивы разных типов
Также вместо связки fgets + strtok можно использовать fscanf
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
13.07.2011, 14:28     Файл о студентах #5
Цитата Сообщение от Nameless One Посмотреть сообщение
easybudda, поправлю: comma-separated values
В разных источниках видел и так и эдак, но не принципиально, согласен на values
Цитата Сообщение от Nameless One Посмотреть сообщение
дурак твой преподаватель
А вот с этим точно не поспоришь!
Вместо простого и логичного решения получится быдлокода на порядок больше по объёму, да и ошибок в нём наделать гораздо проще. Действительно тогда прийдётся создавать несколько массивов, рулить ими с помощью единого индекса, и умудриться ничего не перепутать... А препод ваш хоть как-то такое своё смелое решение обосновал? Или по принципу "чтоб жизнь мёдом не казалась"?
Mr.Whittier
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 33
13.07.2011, 16:16  [ТС]     Файл о студентах #6
Цитата Сообщение от easybudda Посмотреть сообщение
"чтоб жизнь мёдом не казалась"?
ага, как раз поэтому принципу)
всем спасибо за помощь, не знал какие функции использовать, сейчас кодом займусь)
Yandex
Объявления
13.07.2011, 16:16     Файл о студентах
Ответ Создать тему
Опции темы

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