Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
«Оренбургский государственный университет»
Факультет информационных технологий
Кафедра программного обеспечения вычислительной техники
и автоматизированных систем
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
К УЧЕБНО-ВЫЧИСЛИТЕЛЬНОЙ ПРАКТИКЕ
Рекомендовано к изданию Редакционно-издательским советом государственного образовательного учреждения высшего профессионального образования «Оренбургский государственный университет»Оренбург 2008 Содержание Введение …………………………………………………………….. Цель и задачи учебной практики …………………………………..
1 Требования к разрабатываемым программам ……………………..
2 Общие требования к программе…………………………………… 2.1 Примерные разрабатываемые функции …………………………… 2.2 Примерное содержание отчета ……………………………………..
2.3 Список использованных источников ……………………………… Приложение А Пример оформления отчета ……………………… Приложение Б Варианты заданий …………………………………. Введение Учебно-вычислительная практика студентов, обучающихся по специальности 230105.65 – Программное обеспечение вычислительной техники и автоматизированных систем является составной частью образовательной программы и представляет собой форму профессиональнопрактической подготовки студентов на базах практики.
Практика имеет целью закрепление полученных на первом курсе теоретических знаний и практических знаний.
В методических указаниях представлены цель, задачи практики, примерный план работы, требования к разрабатываемым приложениям примерное оформление отчета по практике, варианты заданий.
1 Цель и задачи учебной практики Целью учебной практики является приобретение первичных профессиональных умений и навыков путем самостоятельного решения задач алгоритмизации, конструирования и практической реализации программ на ЭВМ с использованием современных технологий программирования.
В процессе учебной практики студенты должны разработать обобщенную схему алгоритма по словесному описанию задачи, провести детализацию отделочных блоков обобщенной схемы, выделить необходимые процедуры и функции, определить наборы логически связанных между собой данных (потоки данных), ввести различные дополнительные средства для обеспечения наглядности и повышения уровня сервиса проектируемой программы, разработать и отладить программу, реализующую спроектированный алгоритм, выполнить на ЭВМ сконструированную программу.
Отчет по учебной практике оформляется в виде пояснительной записки согласно правилам ЕСПД. В качестве приложений разрабатывается «Руководства программиста» по каждой сконструированной программе.
Практика завершается защитой отчета.
Для успешного выполнения учебной практики студент должен обладать подробными сведениями о работе в операционной системе, уметь пользоваться библиотеками Турбо Паскаля, владеть знаниями особенностей алгоритмического языка в области модульного программирования, обработки сложных структур данных (файлы, динамические списковые структуры).
Учебная практика базируется на курсах «Информатика», «Алгоритмические языки и программирование» и проводится во 2-м семестре 1-го курса по завершению указанных предметов.
В качестве базы практики используются лаборатории университета, кафедры.
В ходе учебной практики студент должен выполнить одно комплексное задание или три задания по темам:
1 Не рекурсивные алгоритмы повышенной сложности.
2 Рекурсивные алгоритмы (синтаксические анализаторы, алгоритмы поиска с возвратом и т. д.).
3 Начала объектно-ориентированного программирования.
В таблице 1 приведен примерный план работы студента на учебновычислительной практике.
Таблица 1 - Примерный план работы ПН 03.07.06 Вводная лекция. Получение задания СР 05.07.06 Детальная разработка основных ПТ 07.07.06 Доработка процедур.
ПН 10.07.06 Разработка интерфейса СР 12.07.06 Корректировка основной программы ЧТ 13.07.06 Отладка всей программы.
ПН 17.07.06 Оформление отчета.
ВТ 18.07.06 Оформление отчета.
СР 19.07.06 Оформление отчета.
ЧТ 20.07.06 Оформление отчета. Защита работы.
ПТ 21.07.06 Защита работы.
2 Требования к разрабатываемым программам 2.1 Общие требования к программе При разработке программы применить технологию нисходящего проектирования. Логически законченные фрагменты оформить в виде подпрограмм, которым все необходимые данные передаются через список параметров. Использования глобальных переменных следует избегать. Все подпрограммы описываются в отдельных модулях.
В программе предусмотреть меню, содержащее команды для проверки всех возможных действий с заданными в конкретном варианте данными. Само меню также оформляется в виде подпрограммы.
Необходимо предусмотреть защиту от некорректного ввода данных.
Разработать удобный пользовательский интерфейс.
2.2 Примерные разрабатываемые функции 1. Наборы данных (согласно заданному варианту) оформить в виде записей (тип record). Создать одномерный массив указателей на запись 2. Написать функцию для формирования одномерного массива записей, значения которых вводятся с клавиатуры. При вводе записей можно реализовать один из следующих механизмов:
ввод заранее заданного количества записей;
ввод до появления записи с заданным признаком;
диалог с пользователем о необходимости продолжать ввод 3. Написать функцию для записи в файл массива записей 4. Написать функцию чтения в массив записей из файла 5. Написать функцию дополнения уже существующего массива записей новыми записями 6. Написать функцию поиска записей с заданным значением выбранного элемента;
7. Написать функцию постраничного вывода на экран дисплея содержимого массива структур;
8. Написать функцию поиска записей с заданными признаками (например, выбор записей по заданному диапазону значений элемента);
9. Написать функцию упорядочивания массива записей по заданному полю (элементу).
10. Написать функцию полного обновления файла, например, массив записей переписывается в файл после упорядочения.
11. Сохранения данных в файле после завершения программы 2.3 Примерное содержание отчета Первый лист – титульный, второй - задание на учебновычислительную практику, третий – содержание, далее по пунктам:
1. Словесное описание алгоритма.
2. Спецификация глобальных констант и переменных.
3. Спецификация процедур и функций.
4. Руководство пользователя.
Список использованных источников.
Приложения: контрольный пример, схемы алгоритмов, исходные тексты программы.
1 Подбельский В.В. Программирование на Си Учебн. пос./ В.В.
Подбельский, С.С. Фомин.-2-е изд., доп.-М.:Финансы и статистика, 2002.с.:ил.
2 Березин Б.И. Начальный курс С и С++.-М.: ДИАЛОГ-МИФИ, 2004.-288с.
3 Иванова Г.С. Основы программирования Учеб. для вузов/ Г.С.Иванова.-М.МГТУ им Н.Э.Баумана, 2001 – 392с 4 Павловская Т.А. С/С++. Программирование на языке высокого уровня – СПб.: Питер, 2006.- 461с.: ил.
5 Подбельский В.В. Язык Си++ Учебн. пос./ -5-е изд., доп.-М.:
Финансы и статистика, 2003.-560с.:ил.
6 Подбельский В.В. Практикум по программированию на языке Си (+CD).: Учеб. пособие.-М.: Финансы и статистика, 2004.-576с.:ил.
7 С/С++. Структурное программирование: Практикум / Т.А.
Павловская, Ю.А. Щупак.- СПб.: Питер, 2007.- 239с.: ил.
8 Прата, Стивен Язык программирования С++. Лекции и упражнения. Учебник: Пер. с англ./Стивен Прата – СПб.: ООО «ДиаСофтЮП», 2003. – 1104 с.
Министерство образования и науки Российской Федерации Федеральное агентство по образованию Государственное общеобразовательное учреждение высшего профессионального образования «Оренбургский государственный университет»
Факультет информационных технологий по учебно-вычислительной практике Министерство образования и науки Российской Федерации Государственное общеобразовательное учреждение высшего профессионального образования «Оренбургский государственный университет»
Задание на учебно-вычислительную практику Исходные данные: текст задания а) Существует файл склад, в котором хранится информация об ассортименте продукции на складе:
- наименование продукции;
- цена единицы продукции;
- количество единиц наличия;
б) Имеется сеть магазинов, которые получают продукцию со склада. Информация хранится в файле расход:
- наименование продукции;
- количество единиц отпущено;
Программа следит за движением продукции со склада, обеспечивает ввод, удаление и просмотр информации, каждому потребителю выдат счт-накладную.
Разработать: 1) Алгоритм и программу;
Дата выдачи задания «_» 2008 г.
Руководитель А.Н.Калинин Исполнитель студент группы 03ПОВТ- С.В. Лежнев Срок защиты работы «_» 2008 г.
1 Постановка задачи ……………………………………….………………… 2 Обоснование выбора языка программирования …………………………. 3 Словесный алгоритм ………………………………………………………. 4 Спецификация переменных ………………………………………………. 5 Спецификация функций …………………………………………………... 6 Руководство пользователя..………………………………………………. Список использованных источников..……………………………………… Приложение А Схемы алгоритмов ………………………………………..... Приложение Б Тестовый пример …………………………………………… Приложение В Текст программы …………………………………………… Обоснование выбора языка программирования Для разработки программы использован язык С++, как наиболее популярный и имеющий достаточную функциональность для решения поставленной задачи. С++ постоянно находился в состоянии изменения, поскольку происходило его дополнение новыми функциональными возможностями. Этот язык совмещает несколько парадигм – объектноориентированное программирование, обобщенное программирование и традиционно-процедурное программирование.
Этот язык стал одним из основных языков программирования в 90-е годы и сохраняет свои позиции в первом десятилетии ХХI века.
Унаследовав от языка С такие свойства, как эффективность, компактность, быстроту выполнения и переносимость программ.
Описание разработки структуры программы Для облегчения и наглядности будем проводить обработку данных, находящихся в динамической памяти. При разработке программного комплекса был использован принцип модульного программирования (создан специальный модуль SKLADUNIT.H, который содержит в себе некоторые вспомогательные функции), а также стандартные библиотеки языка С++. Графический режим не использовался.
Для хранения и обработки данных используем структурированный тип, поэтому описываем его до описания функций. Исходный код программы состоит из главного файла (SKLAD.CPP), вспомогательного модулей (PRODUCT.H, POTREB.H, GRAPH.H). Для успешной компиляции необходимы стандартные библиотеки языка С++. В главном файле программы содержится функция main(). В модуле содержатся необходимые для работы программы функции. Программа начинается с вызова функции main().
Программа начинается с вызова функции main(). Первоначально на экране появляется меню, состоящее из 2 пунктов:
1. просмотр товаров на складе 2. просмотр потребителей.
Выбор какого-либо пункта осуществляется путм передвижения курсора вверх или вниз с помощью функции up() и down() соответственно.
При выборе первого пункта на экран выводится информация о товарах на складе. При нажатии клавиши «Del» происходит удаление выбранного товара с помощью функции del(), при нажатии «1» происходит добавление количества выбранного товара со склада с помощью функции add_prod(), при нажатии «2» - происходит редактирования выбранного товара на складе, программа просит ввести новое имя и количество, осуществляемое с помощью функции correct(), при нажатии «3» запускается функция buy(), которая осуществляет покупку магазином, выбранным из предоставленного списка, нажатие клавиши «4» дает возможность добавить новый товар на склад с помощью функции new_prod(), при нажатии клавиши «5» происходит поиск товара на складе с помощью функции seach(), при нажатии клавиши Esc программа возвращается к предыдущему пункту.
При выборе второго пункта на экране появляется список магазиновпотребителей. При нажатии клавиши Enter происходит выбор одного из них и появляется вся информация о выбранном магазине. Нажатие клавиши «1»
дает возможность добавить нового потребителя с помощью функции new_potr(), при нажатии клавиши «2» происходит удаление выбранного потребителя с помощью функции del_potr().
Спецификация переменных strmenu[30][30] Char Модуль Product.h Product[30] product Спецификация функций main() выбранного пункта меню вызывает соответствующую функцию: see_tov(), see_potr(). Параметры не flush(void) Меняет цвет экрана при выборе какого-либо пункта из new_menu(int меню.
cr,int old) Локальные переменные:
window1(int y1,int Локальные переменные:
x1,int x2,int y2) Функция ввода целых значений, которая возвращает vvod(void) M,c,cif,d Int Вспомогательные переменные *old,int Функция изменения позиции текущего указателя, т.е.
up(int *cr) Файл Product.h down(int *old,int Функция изменения позиции текущего указателя, т.е.
*cr,int n) int read_prod(void)) new_prod(void) del_prod(char number) corect(int number) p1,int Выводит на экран счт-накладную.
schet(int p2) buy(int Покупка товара на складе. Количество продукции int number) int seach(void) int see_tov(void) m,f,kol,u,d,l.p int Вспомагательная переменная Файл Potreb.h el_potr(int number) int read_potr(void) del_pok(int p,int Функция удаления текущей покупки number) see_potreb(int (информация о купленном товаре, дата покупки).
number) m,f,kol,u,d,l.p int Вспомагательная переменные new_potr(void) see_potr(void) (возможность добавления и удаления потребителя) Руководство пользователя Программа - простейшая база данных, использующая для хранения информации динамическую память компьютера. При запуске программы появится главное меню программы состоящее из 2 пунктов:
1) Просмотр товаров на складе 2) Просмотр потребителей Выбор какого-либо пункта осуществляется с помощью клавиш вверх и вниз.
При выборе первого пункта на экран выводится информация о товарах на складе. При нажатии клавиши «Del» происходит удаление выбранного товара, при нажатии «1» происходит добавление количества выбранного товара со склада При нажатии «2» - происходит редактирования выбранного товара на складе, программа просит ввести новое имя и цену.
При нажатии «3» - программа осуществляет покупку магазином, выбранным из предоставленного списка Нажатие клавиши «4» дает возможность добавить новый товар на склад При нажатии клавиши «5» происходит поиск товара на складе.
При нажатии клавиши Esc программа возвращается к предыдущему пункту.
При выборе второго пункта на экране появляется список магазиновпотребителей.
При нажатии клавиши Enter происходит выбор одного из них и появляется вся информация о выбранном магазине. Нажатие клавиши «1»
дает возможность добавить нового потребителя, при нажатии клавиши «2»
происходит удаление выбранного потребителя.
Список использованных источников 1 Франка, П. С++ Учебный курс, 2003.
2 Нейбауэр, А. Моя первая программа на C/C++, 2000.
3 Прата, Стивен Язык программирования С++. Лекции и упражнения.
Учебник: Пер. с англ./Стивен Прата – СПб.: ООО «ДиаСофтЮП», 2003. – 1104 с.
4 Подбельский, В.В. Язык СИ++ : Учеб. пособие. – 3-е изд., дораб. – М.: Финансы и статистика, 1998. – 560 с.: ил.
5 Страуструп, Б. Язык программирования С++.: Москва, 1999.
Приложение А Cхемы алгоритмов nprod=read_prod() nprod=read_potr() f=0;
cr=0;
old=0;
Функция del_potr(int number) strcpy(potreb[j].name,potreb[j+1].name);
strcpy(potreb[j].namepr,potreb[j+1].namepr);
potreb[j].kol=potreb[j+1].kol;
potreb[j].summa=potreb[j+1].summa;
potreb[j].day=potreb[j+1].day;
potreb[j].month=potreb[j+1].month;
potreb[j].year=potreb[j+1].year;
strcpy(potreb[j].namepr,"");
#include #include #include #include #include #include #include #include #include "graph.h" #include "product.h" #include "potreb.h" //////////////////////////////////////////////////////////// potr potreb[10];
int ntov;
int npotr;
char strmenu[30][30];
int color;
struct date da;
/////////////////////////////////////////////////////////// void flush(void) { FILE*SKLAD,*RASXOD;
SKLAD=fopen("SKLAD.txt","wt");