Методические указания к лабораторным работам по курсу «Информатика»




Скачать 235.42 Kb.
НазваниеМетодические указания к лабораторным работам по курсу «Информатика»
страница6/6
Дата публикации30.07.2013
Размер235.42 Kb.
ТипМетодические указания
lit-yaz.ru > Информатика > Методические указания
1   2   3   4   5   6
^

Лабораторная работа № 6

Алгоритмы сортировки


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

  1. Bubble (метод пузырька)

  2. Exchange (метод обмена)

  3. Insertion (метод вставки)

  4. Shell (метод Шелла)


Программа должна отсортировать по возрастанию и вывести на экран в отсортированном виде значения, загружаемые из исходного файла. Имя файла должно передаваться в виде первого параметра командной строки. Второй параметр командной строки должен определять тип файла:

  • -n – числовые значения с плавающей точкой, разделённые символом перевода строки.

  • -s – строковые значения, разделённые символом перевода строки.


Например, команда prog.exe numbers.txtn должна запустить сортировку числовых значений, считываемых из файла numbers.txt. Команда prog.exe strings.txts должна запустить сортировку строковых значений, считываемых из файла strings.txt.

Размер файла считать заранее неизвестным, память под его содержимое распределять динамически. Также необходим контроль ошибок при работе с файлами и выдача предупреждающих сообщений в случае ошибки.

При запуске программы с неправильным набором параметров программа должна выводить предупреждение и краткую информацию (справку) о формате параметров командной строки.
^ Методические указания

В отладочном режиме параметры командной строки можно задавать в диалоге Project Settings (меню Project \ Settings), закладка Debug, поле Program Arguments.

Для финального тестирования запустите программу из режима командной строки Windows (Start \ Programs \ Accessories \ Command Prompt) или же создайте для неё ярлык (Shortcut) и впишите в его свойствах после имени .exe файла параметры командной строки, разделённые пробелом. После этого запустите программу, используя ярлык.
Литература: материалы лекций «Указатели»(6), «Массивы»(7), «Особенности работы с функциями»(9), «Функции работы с файлами»(11), «Методы сортировки данных»(13). Справочный материал MSDN ("string manipulation routines" и др.).

^

Лабораторная работа № 7

Картотека.




Вариант №1


Написать программу-картотеку для служащих некоторого предприятия. Каждая хранимая в ней карточка должна содержать информацию с набором общих полей и набором полей специфичных для каждого отдела.
Общие поля:

Поле

Имя поля в структуре

Тип / Размер

Имя

Name

char[255]

Фамилия

LastName

char[255]

Возраст

Age

int

Отдел

Department

enum (4 байта по умолчанию)

Задача

Task

Индивидуально, в зависимости от отдела (реализовать в виде union)


Поле «Отдел» может принимать одно из 3 значений, перечисленных с помощью enum:

DEPT_PROGRAMMERS

DEPT_MANAGEMENT

^ DEPT_ SHIPPING
Поле «Задача» зависит от отдела и должно быть реализовать в виде union:

Поле

Имя поля в структуре

Тип / Размер

^ Программисты (Programmers)

Проект

Project

char[255]

Рабочее место: CPU

CPU

char[127]

Рабочее место: память (МБайт)

Memory

int

^ Менеджмент (Management)

Проект

Project

char[255]

Заказчик

Customer

char[255]

Количество программистов

ProgrammersNum

int

^ Доставка (Shipping)

Адрес

Address

char[255]

Заказчик

Customer

char[255]

Вес

Weight

int

Тип транспорта

Transport

enum (4 байта по умолчанию)

Поле «Тип Транспорта» может принимать одно из 4 значений, перечисленных с помощью enum:

TRANSP_TRAIN

TRANSP_AUTO

TRANSP_AERO

TRANSP_SHIP

^

Вариант №2


Написать программу - телефонную книжку. Каждая запись с информацией об абоненте должна содержать следующий набор полей:


Поле

Имя поля в структуре

Тип / Размер

ФИО

Name

char[50]

Телефон

Phone

int

Возраст

Age

int

Раздел

Group

enum (4 байта по умолчанию)

Дополнительные сведения

Misc

Индивидуально, в зависимости от раздела (реализовать в виде union)


Поле «Раздел» может принимать одно из 3 значений, перечисленных с помощью enum:

GROUP_FRIENDS

GROUP_COLLEAGUES

GROUP_APPLICANTS
Поле «Дополнительные сведения» зависит от раздела и должно быть реализовать в виде union:

Поле

Имя поля в структуре

Тип / Размер

^ Друзья (Friends)

День Рождения

Birthday

char[32]

Домашний адрес

Address

char[127]

Комментарии

Comments

char[255]

^ Коллеги (Colleagues)

Отдел

Department

enum (4 байта по умолчанию)

Номер рабочего места

CubicNo

int

Проект

Project

char[255]

^ Соискатели (Applicants)

Дата подачи заявления

ApllicationDate

char[32]

Язык программирования

Language

char[127]

Уровень знаний

Grade

int

Требуемая зарплата

Salary

int

Поле «Отдел» может принимать одно из 4 значений, перечисленных с помощью enum:

DEPARTMENT_SOFTWARE

DEPARTMENT_HARDWARE

DEPARTMENT_FIRMWARE

DEPARTMENT_MANAGEMENT

^

Требования к программе


Программа должна:

  • выводить весь список на экран.

  • предлагать простейшее меню действий в виде:

    1. Добавить

    2. Удалить

    3. Записать

    4. Считать

  • в режиме добавления программа должна запросить последовательно все поля, причём в зависимости от введённого номера отдела (раздела) необходимо запрашивать соответствующие специфичные поля. В конце ввода информации она должна запросить номер записи, перед которой нужно добавить новую запись (0 – в самое начало; номер записи – после записи с этим номером; номер, превышающий количество записей – в самый конец картотеки).

  • в режиме удаления программа должна запросить номер удаляемой записи, после чего удалить запись с таким номером.

  • в режиме записи программа записывает всю картотеку в файл, предварительно запросив имя файла.

  • в режиме чтения программа считывает всю картотеку из файла, предварительно запросив имя файла.



^

Методические указания


Программа должна быть полностью оформлена в соответствии с принципами структурного программирования: программа должна быть разбита на функции, каждая из которых выполняет свою логически законченную задачу (не следует писать весь код полностью в функции main()). Для функций и логически завершённых участков кода необходимо расставить комментарии.

Для хранения данных обязательно используйте связанный список. Память для нового элемента должна выделяться и очищаться динамически. При загрузке списка из файла он должен загружаться в память полностью, и только после этого с ним разрешается работать (выводить на экран и т.п.)

Все перечисляемые параметры (например, тип отдела и тип транспорта), должны быть оформлены с помощью перечислений (enum).

Для описания информации, хранимой в одном элементе картотеки или записной книжки, необходимо создать структуру, включающую в себя как общие поля, так и наборы специфичных полей, объединённых с помощью union. Также в эту структуру должен входить указатель на следующий элемент для организации связанного списка.

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

Данные должны выводиться на экран в форматированном виде в виде таблицы, выделяя по 10 позиций для каждого поля. Слишком длинные значения должны обрезаться. Длина одной строки равна 80 символам. Поля, заданные с помощью перечислений, должны выводиться на экран не в числовом виде, а в виде соответствующих строковых значений (см. пример). В самом начале должен выводиться заголовок таблицы. Разделение колонок производите комбинацией символов “ | “.

Пример:
# | Имя | Фамилия | Возраст | Отдел П || Проект | CPU | Memory |

| | | | М || Проект | Заказчик | Прогр-сты |

| | | | Д || Адрес | Заказчик | Вес | Транспорт

----------------+------------+------------+------------++------------+------------+------------+----------

^ 01 | Андрей | Смирнов | 26 | Прогр. || TimeWarp | Athlon 2.4 | 512 |

02 | Алексей | Гагарин | 26 | Менеджмент || TimeWarp | Evil, Inc. | 3 |

03 | Андрей | Комягин | 26 | Доставка || Москва, 3 | Evil, Inc. | 24 | Авто

Ниже приведён этот же пример в увеличенном виде:
# | Имя | Фамилия | Возраст | Отдел П || Проект

| | | | М || Проект

| | | | Д || Адрес

----------------+------------+------------+------------++---------01 | Андрей | Смирнов | 26 | Прогр. || TimeWarp 02 | Алексей | Гагарин | 26 | Менеджмент || TimeWarp 03 | Андрей | Комягин | 26 | Доставка || Москва,3
| CPU | Memory |

| Заказчик | Прогр-сты |

| Заказчик | Вес | Транспорт

+------------+------------+----------

| Athlon 2.4 | 512 |

| Evil, Inc. | 3 |

| Evil, Inc. | 24 | Авто
Литература: материалы лекций «Функции форматированного ввода-вывода»(10), «Функции работы с файлами»(11), «Структуры. Объединения. Перечисления»(12), «Структуры данных»(14). Справочный материал MSDN.


1   2   3   4   5   6

Похожие:

Методические указания к лабораторным работам по курсу «Информатика» iconМетодические указания к лабораторным наборам предназначены для студентов,...
Металлургическая гидроаппаратура: Методические указания к лабораторным работам / Санкт-Петербургский государственный горный институт...

Методические указания к лабораторным работам по курсу «Информатика» iconМетодические указания и задания к лабораторным работам по курсу "основы...
Методические указания к курсу "Основы автоматизации проектирования сложных объектов и систем" (для студентов специальности 22. 04)...

Методические указания к лабораторным работам по курсу «Информатика» iconМетодические указания к лабораторным работам по дисциплине «Теория электрической связи»
Методические указания предназначены для студентов дневной формы обучения по специальности «Телекоммуникационные системы и сети»

Методические указания к лабораторным работам по курсу «Информатика» iconМетодические указания и задания к лабораторным работам по курсам “
Дискретные структуры“, “Теория алгоритмов и вычислительных процессов“ (для студентов специальностей 050102 “Программное обеспечение...

Методические указания к лабораторным работам по курсу «Информатика» iconПрактикум по компьютерному моделирования ядерных процессов с использованием...
Практикум по компьютерному моделирования ядерных процессов с использованием библиотеки geant4

Методические указания к лабораторным работам по курсу «Информатика» iconМетодические указания и задания к выполнению курсовой работы по курсу «базы данных»
Методические указания и задания к выполнению курсовой работы по курсу «Базы данных» (направление подготовки 050103 ”Программная инженерия”)....

Методические указания к лабораторным работам по курсу «Информатика» iconМетодические указания по анализу финансового 12 состояния организации 12
Методические указания предназначены для выполнения курсовых работ по дисциплине «Анализ хозяйственной деятельности» для студентов...

Методические указания к лабораторным работам по курсу «Информатика» iconМетодические указания к курсу История русской литературы XIX века...
Методические указания разработаны на кафедре истории русской литературы заведующим кафедрой доктором филологических наук профессором...

Методические указания к лабораторным работам по курсу «Информатика» iconМетодические рекомендации Распределение часов по видам занятий Предложения...
Географические атласы (в наличие 7 на подгруппу), космические снимки (в наличие 14 на подгруппу) и т д. Для эффективности проведения...

Методические указания к лабораторным работам по курсу «Информатика» iconМетодические указания Нижний Новгород 2011 ббк 620. 9 Ж 87 Транспортная...
Методические указания предназначены для студентов заочного отделения, обучающихся по специальности 190701. 65 Организация перевозок...



Образовательный материал



При копировании материала укажите ссылку © 2013
контакты
lit-yaz.ru
главная страница