Реферат по предмету "Информатика, программирование"


Написание программы для удаления элементов и очистки внешних таблиц

/>/>РЕФЕРАТ
Пояснительная записка:43c, 6 рис, 28 табл, 3 источника, 4 приложения.
Целью создания курсовойработы является разработка программы, которая выполняет удаление элементоввнешних таблиц, а также очистку файлов, вывод таблиц на экран.
Входными даннымиявляются: таблица различной структуры и размера в файле. Выходными даннымиявляется файл с данными, либо полностью очищенный файл. Так же выводитсятекстовый файл с информацией об внешних таблицах.

СОДЕРЖАНИЕ
Введение
1 Постановка задачи
1.1 Цель разработки
1.2 Функциональныетребования
2. Методы и алгоритмы
3 Выбор языкапрограммирования
4 Описание программногопродукта
4.1 Входные данные
4.2 Выходные данные
4.3 Схема информационныхпотоков
4.4 Метод решения
4.5 Функционально –логическая схема
5 Комплект поставки иинсталляция
5.1 Комплект поставки
5.2 Порядок инсталляции
5.3 Запуск программы
6 Тестированиепрограммного продукта
Выводы
Перечень использованныхисточников
Приложение А Техническоезадание
Приложение Б Руководствопользователя
Приложение В Экранныеформы
Приложение Г Листингпрограммы

ВВЕДЕНИЕ
 
Внешние таблицы –таблицы, хранящиеся в файлах. Как правило, такие файлы велики, и для операцийнад ними, в частности удаление или добавление элементов, требуется большойобъем оперативной памяти, поэтому для экономии памяти используютсядополнительные или временные файлы, которые после произведения операций надними переименовываются или удаляются.
Внешние таблицы – этотаблицы любой структуры. Для работы с ними необходимо определить количество итип полей (символьный или строковый). Примером внешних таблиц могут бытьразличные прайс-листы, информация об абонентах кабельного телевидения,телефонный справочник и т.д. Внешние таблицы активно используются в различныхбазах данных.
1         ПОСТАНОВКАЗАДАЧИ
 
1.1    Цель разработки
Целькурсового проекта – написание программы, которая загружала бы из файлов таблицыразличной структуры и объема, имела понятный графический интерфейс, определялатип полей (строковый или символьный), а также выводила данную таблицу на экран.Если файл велик, должен быть предусмотрен вертикальный скроллинг со сдвигом поодному элементу. Программный продукт предусматривает выполнение операцийудаления и очистки внешних таблиц. Также должна быть разработана система помощипользователю (информация о внешних таблицах, об использовании программы, атакже краткие сведения об авторе).
1.2   Функциональныетребования
Исходныеданные хранятся в файлах. Это очень удобно. Таким способом можно загружатьнужную информацию частично, что и требуется осуществить в программе. Оченьудобно менять информацию, хранящуюся в файлах.

2 МЕТОДЫ ИАЛГОРИТМЫ
Внешние таблицы могутбыть очень велики, поэтому для работы с ними принципиально неправильноиспользовать только оперативную память, необходимы различные дополнительные(вспомогательные) структуры, например файлы. Приведем пример удаления элементавнешних таблиц по порядковому номеру и интервалу. Необходимо удалить с пятогопо двенадцатый элемент. Вначале считываем заголовок таблицы и без измененийзаносим в дополнительный файл.
Исходная таблица
N
п/п
/>
(Hz)
E1
(B)
E2
(B)
L1
(mG) 1 100 30j 40 100 2 50 50j 36j 200 3 150 80 47j 50 4 100 40j 20j 220 5 50 60 30j 550 6 50 100j 24 150 7 100 50j 50 150 8 75 60 30j 270 9 100 30 80j 200 10 50 90j 60 400 11 100 100 75j 150 12 75 60j 40 120 13 100 90 75j 300 14 50 50 40j 120 15 50 70j 45 150
Вначале считываемзаголовок таблицы и без изменений заносим в дополнительный файл.

Исходная таблица                                    Дополнительнаятаблица
N
п/п
/>
(Hz)
E1
(B)
E2
(B)
L1
/>(mG)
N
п/п
/>
(Hz)
E1
(B)
E2
(B)
L1
(mG)
 
Затем начинаем считыватьпо одному элементу из исходной таблицы, и если условие выполняется (считываетсяс первого по пятый и с тринадцатого по последний элементы), заносим вдополнительную таблицу.1 100 30j 40
/>100 1 100 30j 40 100 2 50 50j 36j
/>200 2 50 50j 36j 200
 3 150 80 47j
/>50 3 150 80 47j 50 4 100 40j 20j
/>220 4 100 40j 20j 220
 
Пропускаем элементы дотринадцатого, затем аналогично считываем по одному, и заносим в дополнительныйфайл13 100 90 75j
/>300 5 100 90 75j 300 14 50 50 40j
/>120 6 50 50 40j 120
 15 50 70j 45
/>150 7 50 70j 45 150 Дополнительнаятаблица в дополнительном файле
N
п/п
/>
(Hz)
E1
(B)
E2
(B)
L1
(mG) 1 100 30j 40 100 2 50 50j 36j 200 3 150 80 47j 50 4 100 40j 20j 220 5 100 90 75j 300 6 50 50 40j 120 7 50 70j 45 150
Теперь удаляем исходныйфайл, запомнив при этом его название, и переименовываем дополнительный.
Сложнее обстоит дело судалением элементов по заданному значению ключа. Необходимо определить типполей таблицы и самого ключа, затем сравнивать поэлементно числа или строки (взависимости от ключа) в записях внешних таблиц, и таким же образом, как былорассмотрено выше, заносить во временный файл и произвести переименовкудополнительного файла.
Исходная таблицаВид таблицы Плотность заполнения
/>
/>
/> упорядоченный 100 % 80 1 12 неупорядоченный 100 % 40 1 15 Хеш-таблица 50 % 400 1.2 20
Введем ключ “1”
Исходная таблица                                           ДополнительнаятаблицаВид Плотность зап.
/>
/>
/>/> Вид Плотность зап
/>
/>
/>
Считываем 1-й элемент
/>
упорядоченный 100 % 80 1 12
Элемент не заносится вдополнительную таблицу

Считываем 2-й элемент
/>
неупорядоченный 100 % 40 1 15
Элемент не заносится вдополнительную таблицу
Считываем 3-й элемент/> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> /> />
1  
1  
1   /> /> /> /> /> /> /> /> /> /> /> /> /> />
Хеш-таблица 50 % 400 1.2 20
Элемент заносится вдополнительную таблицу
Дополнительная таблицаВид таблицы Плотность заполнения
/>
/>
/> Хеш-таблица 50 % 400 1.2 20
Теперь удаляем исходныйфайл, запомнив при этом его название, и переименовываем дополнительный.
3 ВЫБОР ЯЗЫКА ПРОГРАММИРОВАНИЯ
Процесс работы компьютерасостоит в выполнении программы, набора вполне определённых команд в вполне определённомпорядке. Машинный код команды, состоящий из нулей и единиц, указывает, какоеименно действие должен выполнить процессор. Т.е. чтобы создать программу длякомпьютера, необходимо записать последовательность нулей и единиц. Однакопрограммирование в машинных кодах – занятие утомительное и малопродуктивное.Для упрощения процесса программирования были созданы специальные средства –языки программирования. Они стали появляться с 50-х годов и не перестаютпоявляться и сегодня. Огромное количество языков говорит об ещё большем числезадач, которые приходится решать с помощью компьютера.
Вообще, одну и ту жезадачу обычно можно решить с использованием разных языков. Но применениенеподходящего языка программирования может заметно усложнить процесс программированияили ухудшить результат работы.
Для реализации данногопрограммного продукта был выбран язык C и компилятор Borland C++3.1.
Это решение было принятопо следующим причинам:
–         программныйпродукт слишком велик для того, чтобы быть написанным на языке низкого уровня,таком как ассемблер;
–         система требуетвысокого быстродействия и доступа к низкоуровневому оборудованию;
–         языкпрограммирования должен содержать библиотеку для работы в графическом режиме;
–         язык должен иметьсредства работы со строками;
–         язык долженсодержать средства работы с файлами;
–         необходимысредства динамического распределения памяти;
–         желательноналичие отладчика, позволяющего исполнять программу в пошаговом режиме,просматривать значения переменных и регистров процессора в процессе исполненияпрограммы.
Язык C отвечает всем этим требованиям. Хотьон и не является языком низкого уровня, скорость программ написанных на C довольно высока в сравнении сдругими высокоуровневыми языками. Тем не менее, он обладает всеми чертамиязыков высокого уровня: обладает мощными управляющими структурами, являетсятипизированным языком, позволяет структурировать программу. Библиотеки языка C предоставляют средства работы вграфическом режиме, множество функций работы со строками и файлами. В C реализована система динамическогораспределения памяти. Он позволяет обращаться к любым адресам оперативнойпамяти, к портам ввода вывода, прерываниям операционной системы. Естьвозможность делать ассемблерные вставки. Так что наиболее критичные участкипрограммы могут быть написаны на языке ассемблера. Наконец, в состав системы Borland C++ 3.1 входит мощный отладчик, позволяющий расставлять втексте программы контрольные точки, исполнять программу в пошаговом режиме,просматривать значения переменных, регистров и областей оперативной памяти походу исполнения программы.
Кроме того, программы,написанные на C, отличаются компактностью какисходного, так и машинного кода. Они легко переносятся на другие операционныесистемы.
Язык C обладает также и некоторыминедостатками: некорректное использование указателей может привести к серьёзнымошибкам в программе; компактность языка в сочетании с большим количествомоператоров даёт возможность создавать код, понимание которого чрезвычайнозатруднительно. Эти недостатки связаны с тем, что C ориентирован на опытных программистов, которые хорошо знают,что они делают.
Таким образом, наиболееудобным для реализации данного программного продукта является языкпрограммирования C.

4 ОПИСАНИЕ ФУНКЦИОНИРОВАНИЯ ПРОГРАММНОГО ПРОДУКТА
 
4.1     Входные данные
Входнымиданными является любой файл, содержащий таблицу любой структуры (тип полей –символьный или строковый).
4.2     Выходные данные
Выходнымиданными является тот же файл, но с изменениями, зависящими от действий пользователя,структура таблицы при этом не нарушается.
4.3 Схема информационных потоков
Существует главная программа. В неёпоступают Входные данные, вводимые пользователем с клавиатуры (имя файладанных, ключ), а также из внешних текстовых файлов (теория по ВТ, исходныеданные). В ответ на вводимые данные главная программа выводит на экран монитораВыходные данные – теоретический материал, справку, таблицы с данными.Схематически работа программы изображена на рисунке 1.6.

/>

                            /> /> /> /> /> /> /> /> /> /> /> /> /> /> />

                           
/>                                     
Рисунок 4.3 Схема информационныхпотоков.
4.4 Методрешения
После запуска программыпроисходит прорисовка экрана затем и самого главного меню. Из меню вызываютсяфункции: файл, вывод окошка-запроса о загрузке, либо очистке файла, либозапросе о выходе из программы; таблица, вывод окошка-запроса об удаленииэлементов внешних таблиц; Справка — в этом пункте меню пользователь узнает, какправильно работать с программой, как корректно выйти; выход.
Удаление элементовпроисходит по такой схеме: считываем в цикле по одному элементы из заданногофайла, проверяем, входит ли этот элемент в заданный диапазон: если нет, тозаписываем в цикле по одному элементы во временный файл, если да, топропускаем. Затем удаляем начальный файл и переименовываем временный.

4.5 Функционально – логическая схема
/>

Рисунок 4.5 – функционально – логическая схема
Работа программы начинается с загрузки главного менюпрограммы. Он состоит из строки меню и двух окон вывода. Строка «Файл» состоитиз трех пунктов. Пользователь выбирает нужный ему пункт. Назначение пунктовстроки следующее:
1)     новый – созданиенового файла с таблицей;
2)        загрузка –загрузка из внешней памяти уже существующего файла;
3)        удаление –удаление существующего файла из памяти ЭВМ;
Меню «Удаление» состоит из трех пунктов:
1) по номеру – удаление из загруженной таблицы записи под соответствующимномером (значение задает пользователь).
Просмотр меню «Справка» приведет к выводу справочнойинформации по эксплуатации программы на экран.
Меню «Выход» выполняет освобождение используемой памяти,закрытие используемых файлов и завершение работы алгоритма.
Схематично работа программы представлена на рисунке 4.5.
5 КОМПЛЕКТ ПОСТАВКИ И ИНСТАЛЛЯЦИИ
 
5.1Комплект поставки
В комплект поставкипрограммного продукта входят следующие файлы:
kursovoi.exe – файл запускает программу;
start.bat — файл запускает русификатор, а потом программу;
1.in, 2.in, 3.in –файлы-примеры, содержащие некоторые таблицы;
help.dat – файл содержит текст справки;
keyrus.com – русификатор;
egavga.bgi – файл содержит драйвер видеоадаптера;
5.2Порядок инсталляции
Процедура инсталляцииочень проста:
1) на жестком дискенеобходимо создать новую папку;
2) в эту папкускопировать файлы, входящие в комплект поставки.
5.3 Запускпрограммы
Загружается файл start.bat. Программа запущена. В случае отсутствия каких-либофайлов не гарантируется правильность работы программы.

6ТЕСТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА
Тестирование программногопродукта можно произвести, загружая различные файлы, производя над нимиоперации удаления элементов или очистки таблиц, просмотр справочного материла,а также удаляя из папки различные файлы, необходимые для корректной работыпрограммы, и наблюдая за реакцией программы.
На тестовом примерепокажем действие программы.
Загружаем файл:
После выбора пункта меню “Удаление”→”Поинтервалу” и введя от 4-х до 13-ти, получим:
После загрузки того жефайла и выбрав: “Удаление”→”По ключу”, введя ключ “250”, получим:n Индекс Продукт Стоимость 1 30/121 Печенье 210 2 15/124 Конфеты 150 3 12/212 Зефир 140 6 10/376 Картофель 480 7 35/564 Арбузы 700 10 20/341 Морковь 800 11 10/343 Лук 750 12 15/123 Орехи 210 13 30/121 Айва 450 14 15/124 Капуста 150
Тестируя данныйпрограммный продукт можно определить его плюсы и минусы. К положительнымкачествам можно отнести простой и понятный интерфейс, внизу экрана на нижнейкнопке находится подсказка к использованию, все, что нужно узнать поэксплуатации программы находится в пункте меню “Помощь”. В “логической” частипрограммы главными плюсами является возможность редактирования файлов стаблицами без применения самой программы, также создание новых файлов сразличными структурами и конструкциями. Типы полей загружаемой таблицы могутбыть либо символьными, либо числовыми, вне зависимости от их порядка иликонфигурации (т.е. рассмотрены различные варианты представления структурытаблицы). Рассмотрено также удаление элементов по заданному значению ключа, поинтервалу. Но в программе имеются и свои недостатки: удаление элементов по сложномузначению ключа (из-за возможных сложных конструкций), добавление элементов вфайл (по той же причине), 16-ти-цветный интерфейс, также отсутствие горячих клавиш.

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

ПЕРЕЧЕНЬ ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1.   В. В. Подбельский, С. С. Фомин“Программирование на языке Си”,2-е издание – Москва: “Финансы и статистика”,2002г. — 600с.
2.   Герберт “Шилдт Полный справочник поС”, 4-е издание – К.: Вильямс, 2002 — 700с.
3.   Джефф Элджер “C++” – Санкт-Петербург: “Библиотекапрограммиста”, 2000г. – 320с.

Приложение А
 
ТЕХНИЧЕСКОЕЗАДАНИЕ
 
А.1 Общиесведения
Полное наименованиепроектируемой системы: “Удаление элементов и очистка внешних таблиц”. Системупроектирует студент 2-го курса Донецкого государственного институтаискусственного интеллекта (ДонГИИИ), факультета современных компьютерныхинформационных технологий Климов В. А.
А.2Основания для разработки
Основанием для разработкиявляется задание к курсовому проектированию по курсу “Структуры и организацияданных в ЭВМ”, выданное кафедрой программного обеспечения интеллектуальныхсистем, факультета СКИТ.
А.3 Цельразработки
Цель разработки –создание программного продукта, предназначенного для удаления элементов внешнихтаблиц по заданным значениям ключа, вывод таблиц на экран, возможностьсохранения результатов в файл.
А.4Требования к ПП
 
А.4.1Требования к ПП в целом
К ПП предъявляютсяследующие требования:
-          наличие удобногоинтерфейса в виде меню с системой подсказок, позволяющих пользователю управлятьпрограммой;
-          наличие контролявводимых данных (проверка на существование файла);
-          вывод на экранрезультата выполнения операций над файлом.
А.4.2Требования к задачам и функциям, выполняемым ПП
Программный продуктдолжен реализовывать следующие функции:
-          считываниеинформации из файла;
-          удалениеэлементов внешних таблиц;
-          очистка файлов;
-          сохранениерезультатов в файл;
-          вывод текстовойинформации о внешних таблицах.
А.4.3Требования к техническому обеспечению
Программный продуктдолжен нормально функционировать на ПК со следующими характеристиками:
— процессор с частотой нениже 66 MHz;
— 4MB памяти;
— VGA- монитор с поддержкой расширения 640x480.
А.4.4Организационные требования
Программный продуктдолжен:
-          быть разработанна языке С;
— функционировать под ОС MS-DOS 5.0 и выше;
-          быть снабжённымпояснительной запиской объёмом не менее 30 страниц и руководством пользователя.
Этапы разработки иплановые сроки выполнения указаны в таблице А.1
Таблица A.1 – График выполнения курсовогопроекта№ Этапы работы Срок выполнения (недели) 1 Постановка задачи: формулировка, исходные данные, результаты, определение требований к программному продукту. 1 1. Составление технического задания 1-2 2. Техническое проектирование. Изучение метода решения задачи. 2-3 3.
Рабочее проектирование.
Определение структур входных и выходных данных. Оценки структур данных и ал­горитмов. 4 4.  Написание алгоритмов удаления элементов по различных значениях ключа. 5 5. Написание алгоритмов очистки внешних таблиц 6-8 6. Создание файлов помощи по алгоритму и по программе 9 7. Отладка и тестирование. 10 8. Написание пояснительной записки 10-14 9. Защита курсового проекта. 28.12.2003
Приложение Б
 
РУКОВОДСТВОПОЛЬЗОВАТЕЛЯ
 
Б.1 Меню
Передвижение по меню осуществляется с помощью клавиш “↑”и “↓”. Для выбора пункта меню нужно нажать Enter. Для выхода из меню нужно нажать ESC. Передвижение по пунктам подменюосуществляется с помощью клавиш “↑” и “↓”. Для выбора пунктаподменю нужно нажать клавишу Enter.Для выхода из подменю нужно нажать клавишу ESC. Из основного меню путем нажатия клавиши Esc осуществляется вызов пункта меню“Выход”.
Б.1.1 Пункт «Файл»
На экран выводится вертикальное меню, состоящее из трехподпунктов: “Загрузка”, “Очистка”, “Выход”. Хождение по меню осуществляется спомощью нажатия клавиш и . Для выбора одного изпунктов необходимо нажать клавишу Enter.
Б.1.1.1 Подпункт «Загрузка»
На экран выводится окошко с запросом о вводимом файле, послечего нужно ввести имя файла, нажать клавишу Enter. Далее произойдет загрузка и вывод содержимого файлана экран, либо окошко, оповещающее о том, что загрузка не удалась по какой-либопричине. Для экстренной остановке выполнения какой-нибудь команды, используйтеклавишу Esc.
Б.1.1.2 Подпункт «Очистка»
На экран выводится окошко с запросом о вводимом файле, послечего нужно ввести имя файла, нажать клавишу Enter. Далее произойдет очистка содержимого файла и выводокна об успешном выполнении очистки, либо окошко, оповещающее о том, чтозагрузка не удалась по какой-либо причине. Для экстренной остановке выполнения какой-нибудькоманды, используйте клавишу Esc.
Б.1.1.3 Подпункт «Выход»
Смотри пункт “Выход”.
Б.1.2 Пункт «Удаление»
На экран выводится вертикальное меню, состоящее из трехподпунктов: “По номеру”, “По интервалу”, “По ключу”. Хождение по менюосуществляется с помощью нажатия клавиш и . Длявыбора одного из пунктов необходимо нажать клавишу Enter.
Б.1.2.1 Подпункт «По номеру»
На экран выводится окошко с запросом о вводимом удаляемомпорядковом номере элемента, после чего нужно ввести число, нажать клавишу Enter. Далее произойдет удаление элементатаблицы под заданным номером и вывод содержимого файла на экран. Для экстреннойостановке выполнения какой-нибудь команды, используйте клавишу Esc.
Б.1.2.2 Подпункт «По интервалу»
На экран выводится окошко с запросом о вводимом интервалеудаляемых элементов, после чего нужно ввести 2 числа (начального и конечногоудаляемого элемента), нажать клавишу Enter. Далее произойдет удаление элементов таблицы под заданным номером ивывод содержимого файла на экран. Для экстренной остановке выполнениякакой-нибудь команды, используйте клавишу Esc.

Б.1.2.3 Подпункт «По ключу»
На экран выводится окошко с запросом о вводимом удаляемомзначении ключа, после чего нужно ввести значение ключа, нажать клавишу Enter. Далее произойдет удаление элементаили элементов таблицы под заданным значением ключа и вывод содержимого файла наэкран. Для экстренной остановке выполнения какой-нибудь команды, используйтеклавишу Esc.
Б.1.3 Пункт «Помощь»
На экран выводится справка об эксплуатации программы.
Б.1.4 Пункт «Выход»
При выборе этого пункта программа завершит свою работу.

ПриложениеВ
ЭКРАННЫЕФОРМЫ
/>
Рисунок В.1 – Начальныйвид экрана
/>
Рисунок В.2 – Вид экранапосле выбора пункта меню “Файл”-“Загрузка”
/>
Рисунок В.3 – Реакцияпрограммы на отсутствие загружаемого файла
/>
Рисунок В.4 – Вид экранапосле выбора пункта меню “Удаление”-“По номеру”
/>
Рисунок В.5 – Загрузкафайла справки
/>
Рисунок В.6 – Запрос овыходе из программы

ПриложениеГ
 
ЛИСТИНГПРОГРАММЫ
#include
#include
#include
#include
#include
#include
#include
inta,b,d=1,d2=1,i,j,m,l=0,x=0,z=0,n,p=0,r=0,k=0,nomer=0,nom;
intmode=VGAHI;
intdriver=VGA;
charkluch[10];
int nach, con;
FILE *in;
charch,*v,h[10],cd[50],*str,c[5],s[50],cf[50],cb;
void*buf,*buf1, *buf2, *buf3;
struct type
 {
 charnazv[10];
 char kol[10];
 char sum[10];
 char kl[10];
 }tablica[15],*ukz;
void imya();
void del()
{FILE *in;
 charfname[11];
setfillstyle(SOLID_FILL,0);
bar(200,100,500,300);
setcolor(4);
outtextxy(300,152,"‚ўҐ¤ЁвҐ Ё¬п д ©« !!!(*.in)");
outtextxy(315,162,«max2 бЁ¬ў®« :_»);
rectangle(301,174,463,185);
imya();
in =fopen(s,«w»);
fclose(in);
outtextxy(300,152,"” ©«®зЁйҐ­!!!");
}
voidrecord(void)
{ charch,name[11];
 FILE *out;
 int j=0;
 clrscr();
 printf("•®вЁвҐ б®еа ­Ёвм Ё­д®а¬ жЁо ў д ©«(y — ¤ , Ё­ зҐ ­Ґв):");
 ch=getch();
 if (ch=='y')
 {
 do
 {
         clrscr();
         printf("‚ўҐ¤ЁвҐ Ё¬п д ©« (*.out):");
         scanf("%s",name);
         out=fopen(name,«w»);
 }while(out==NULL);
 for(j=0;j
 {
 fprintf(out,"%s\n",tablica[j].nazv);
 fprintf(out,"%s\n",tablica[j].kol);
 fprintf(out,"%s\n",tablica[j].sum);
 fprintf(out,"%s\n",tablica[j].kl);}
 clrscr();
 gotoxy(32,13);
 printf("‡ ЇЁбм Їа®Ё§ўҐ¤Ґ­ гбЇҐи­®!");
 getch();
 fclose(out);
 }
}
voidinterval()
{
 setfillstyle(SOLID_FILL,0);
 setcolor(4);
 outtextxy(300,202,"‚ўҐ¤ЁвҐ ­Ё¦­оо Ја ­Ёжг!!!(*.in)");
 outtextxy(315,212,«max2 бЁ¬ў®« :_»);
 rectangle(301,224,463,235);
p=0;
do{
 a=getch();
 if((a!=13)&&(a!=8)&&(a!=27))
 { s[p]=a;p++; s[p]='\x0';}
 bar(302,225,302+textwidth(s),226+textheight(s));
 if (a==8) if(p>0) s[--p]='\x0';
 outtextxy(302,225,s);
 if(strlen(s)>15)
 {
 outtextxy(250,220,"Ѓ®«миҐ бЁ¬ў®«®ў ўўҐбвЁ ­Ґ«м§п!!!!");
 outtextxy(250,230,"„«п Їа®¤®«¦Ґ­Ёп ­ ¦¬ЁвҐ Enter");
 do
 {
 a=getch();
 }while(a!=13);
 }
 }while(a!=13);
 setfillstyle(SOLID_FILL,0);
 bar(300,202,600,235);
 nach=atoi(s);
setfillstyle(SOLID_FILL,0);
setcolor(4);
outtextxy(300,202,"‚ўҐ¤ЁвҐ ўҐае­оо Ја ­Ёжг!!!(*.in)");
outtextxy(315,212,«max2 бЁ¬ў®« :_»);
rectangle(301,224,463,235);
p=0;
do{
 a=getch();
 if((a!=13)&&(a!=8)&&(a!=27))
 { s[p]=a;p++; s[p]='\x0';}
 bar(302,225,302+textwidth(s),226+textheight(s));
 if (a==8) if(p>0) s[--p]='\x0';
 outtextxy(302,225,s);
 if(strlen(s)>15)
 {
 outtextxy(250,220,"Ѓ®«миҐ бЁ¬ў®«®ў ўўҐбвЁ ­Ґ«м§п!!!!");
 outtextxy(250,230,"„«п Їа®¤®«¦Ґ­Ёп ­ ¦¬ЁвҐ Enter");
 do
 {
 a=getch();
 }while(a!=13);
 }
 }while(a!=13);
 setfillstyle(SOLID_FILL,0);
 bar(164,24,606,446);
 con=atoi(s);
 i=0;j=0;x=0;k=0;
 outtextxy(175,30,"Ќ®¬ €­¤ҐЄб Ќ §ў ­ЁҐ ‘㬬 Љ«оз");
 do
 {
 i++;x+=10;j++;
 if (i==nach)
 {
 do
 {
 i++;
 }
 while(i>=con);
 }
 itoa(j,c,10);
 outtextxy(180,50+x,c);
 outtextxy(220,50+x,ukz[i].nazv);
 outtextxy(290,50+x,ukz[i].kol);
 outtextxy(390,50+x,ukz[i].sum);
 outtextxy(460,50+x,ukz[i].kl);
 }while(i!=n);
getch();
}
voidload(void)
{
 FILE *in;
 charfname[11];
 int i=1;
 setfillstyle(SOLID_FILL,0);
setcolor(4);
outtextxy(300,152,"‚ўҐ¤ЁвҐ Ё¬п д ©« !!!(*.in)");
outtextxy(315,162,«max20 бЁ¬ў®«®ў:_»);
rectangle(301,174,463,185);
 imya();
 in =fopen(s,«r»);
 do
 {fgets(ukz->nazv,10,in);
 fgets(ukz->kol,10,in);
 fgets(ukz->sum,10,in);
 fgets(ukz->kl,10,in);
 i++;
 k++;
 }while(!feof(in));
 rewind(in);
 i=1;
 outtextxy(175,30,"Ќ®¬ €­¤ҐЄб Ќ §ў ­ЁҐ ‘㬬 Љ«оз");
 ukz=(structtype *)malloc(sizeof(struct type)*k);
 do
 {i++;
 itoa(i-1,c,10);
 x+=10;
 outtextxy(180,50+x,c);
 fscanf(in,"%s",ukz[i-1].nazv);
 outtextxy(220,50+x,ukz[i-1].nazv);
 fscanf(in,"%s",ukz[i-1].kol);
 outtextxy(290,50+x,ukz[i-1].kol);
 fscanf(in,"%s",ukz[i-1].sum);
 outtextxy(390,50+x,ukz[i-1].sum);
 fscanf(in,"%s",ukz[i-1].kl);
 outtextxy(460,50+x,ukz[i-1].kl);
 n=i;
 }while(!feof(in));
 fclose(in);
 }
 openf (chars[20])
{
                                               setfillstyle(SOLID_FILL,0);
                                               bar(164,24,606,446);
                                               z=0;
                                               k=0;
                                               in=fopen(s,«r»);
                                               setviewport(164,24,606,446,0);
                                               rewind(in);
                                               while(fgets(cd,53,in)!=NULL)
                                                        {
                                                        a=strlen(cd);
                                                        if(cd[a-1]=='\n')
                                                        cd[a-1]='';
                                                        setcolor(7);
                                                        outtextxy(10,10+x,cd);
                                                        x+=10;
                                                        k++;
                                               }
                                       a=getch();
                                      while(a!=27)
                                       {
                                       a=getch();
                                       }
                                      k=0;
                                      x=0;
                                      clearviewport();
                                      setviewport(0,0,639,479,0);
                                      fclose(in);
 return(0);
}
void imya()
{
 p=0;
 do{
 a=getch();
 if((a!=13)&&(a!=8)&&(a!=27))
 { s[p]=a;p++; s[p]='\x0';}
 bar(302,175,302+textwidth(s),176+textheight(s));
 if (a==8) if(p>0) s[--p]='\x0';
 outtextxy(302,175,s);
 if(strlen(s)>19)
 {
 outtextxy(250,200,"Ѓ®«миҐ бЁ¬ў®«®ў ўўҐбвЁ ­Ґ«м§п!!!!");
 outtextxy(250,210,"„«п Їа®¤®«¦Ґ­Ёп ­ ¦¬ЁвҐ Enter");
 do
 {
 a=getch();
 }while(a!=13);
 }
 }while(a!=13);
 setfillstyle(SOLID_FILL,0);
 bar(164,24,606,446);
}
 liniya (intk,int m,int n)
{ setcolor(n);
 line(130,20+k*60,130,50+k*60);
 line(20,50+k*60,130,50+k*60);
 setcolor(m);
 line(20,20+k*60,20,50+k*60);
 line(20,20+k*60,130,20+k*60);
return 0;
}
liniya2(inti,int m,int n)
{
 setcolor (m);
 line(20,300+i*60,20,330+i*60);
 line(20,300+i*60,130,300+i*60);
 setcolor (n);
 line(130,300+i*60,130,330+i*60);
 line(20,330+i*60,130,330+i*60);
 return 0;
}
void nomer1()
{
setfillstyle(SOLID_FILL,0);
setcolor(4);
outtextxy(300,202,"‚ўҐ¤ЁвҐ ­®¬Ґа § ЇЁбЁ!!!(*.in)");
outtextxy(315,212,«max2 бЁ¬ў®« :_»);
rectangle(301,224,463,235);
p=0;
do{
 a=getch();
 if((a!=13)&&(a!=8)&&(a!=27))
 { s[p]=a;p++; s[p]='\x0';}
 bar(302,225,302+textwidth(s),226+textheight(s));
 if (a==8) if(p>0) s[--p]='\x0';
 outtextxy(302,225,s);
 if(strlen(s)>15)
 {
 outtextxy(250,220,"Ѓ®«миҐ бЁ¬ў®«®ў ўўҐбвЁ ­Ґ«м§п!!!!");
 outtextxy(250,230,"„«п Їа®¤®«¦Ґ­Ёп ­ ¦¬ЁвҐ Enter");
 do
 {
 a=getch();
 }while(a!=13);
 }
 }while(a!=13);
 setfillstyle(SOLID_FILL,0);
 bar(164,24,606,446);
 nom=atoi(s);
 i=0;j=0;x=0;
 outtextxy(175,30,"Ќ®¬ €­¤ҐЄб Ќ §ў ­ЁҐ ‘㬬 Љ«оз");
 m=n;
 do
 { x+=10;
 i++; j++;
 if((i==nom)&&(i==n))break;
 if(i==nom){i++;m-=1;}
 itoa(j,c,10);
 outtextxy(180,50+x,c);
 outtextxy(220,50+x,ukz[i].nazv);
 outtextxy(290,50+x,ukz[i].kol);
 outtextxy(390,50+x,ukz[i].sum);
 outtextxy(460,50+x,ukz[i].kl);
 }while(i!=m);
 getch();
}
void kluchik()
{
setfillstyle(SOLID_FILL,0);
setcolor(4);
outtextxy(300,202,"‚ўҐ¤ЁвҐ Є«оз (*.in)");
outtextxy(315,212,«max2 бЁ¬ў®« :_»);
rectangle(301,224,463,235);
p=0;
do{
 a=getch();
 if((a!=13)&&(a!=8)&&(a!=27))
 { s[p]=a;p++; s[p]='\x0';}
 bar(302,225,302+textwidth(s),226+textheight(s));
 if (a==8) if(p>0) s[--p]='\x0';
 outtextxy(302,225,s);
 if(strlen(s)>15)
 {
 outtextxy(250,220,"Ѓ®«миҐ бЁ¬ў®«®ў ўўҐбвЁ ­Ґ«м§п!!!!");
 outtextxy(250,230,"„«п Їа®¤®«¦Ґ­Ёп ­ ¦¬ЁвҐ Enter");
 do
 {
 a=getch();
 }while(a!=13);
 }
 }while(a!=13);
 setfillstyle(SOLID_FILL,0);
 bar(164,24,606,446);
 strcpy(kluch,s);
 v=s;
 i=0;j=0;x=0;
 outtextxy(175,30,"Ќ®¬ €­¤ҐЄб Ќ §ў ­ЁҐ ‘㬬 Љ«оз");
 do
 { x+=10;
 i++;j++;
 if(ukz[i-2].kl==v) i++;
         itoa(j,c,10);
 outtextxy(180,50+x,c);
 outtextxy(220,50+x,ukz[i-1].nazv);
 outtextxy(290,50+x,ukz[i-1].kol);
 outtextxy(390,50+x,ukz[i-1].sum);
 outtextxy(460,50+x,ukz[i-1].kl);
 }while(i!=n);
 getch();
}
file (charstr1[5],char str2[5],char str3[5])
{
 d2=1;
 setfillstyle(SOLID_FILL,1);
 for(i=0;i
 {
 bar(20,300+i*60,130,330+i*60);
 liniya2(i,9,0);
 }
 while (a!=27)
 {
 setcolor(6);
 outtextxy(27,310,str1);
 outtextxy(27,370,str2);
 outtextxy(27,430,str3);
         if((a==80)||(a==72))
          {
          if(a==80) d2++;
          if(a==72) d2--;
          if(d2>3) d2=1;
          if(d2
          }
          if((d2==1)&&(nomer==1))
          {
          setcolor(4);
          outtextxy(27,310,str1);
          liniya2(0,0,9);
                   a=getch();
          liniya2(0,9,0);
          if(a==13)
                   {
                    del();
                   }elsecontinue;
          }
          if((d2==1)&&(nomer==2))
          {
          setcolor(4);
          outtextxy(27,310,str1);
          liniya2(0,0,9);
                   a=getch();
                   if(a==13)
                   {
                    nomer1();
                   }
          liniya2(0,9,0);
          }
          if((d2==2)&&(nomer==1))
          {
          setcolor(4);
          outtextxy(27,370,str2);
                    liniya2(1,0,9);
          a=getch();
                   if(a==13)
                   {
                    load();
                   }
          liniya2(1,9,0);
          }
          if((d2==2)&&(nomer==2))
          {
          setcolor(4);
          outtextxy(27,370,str2);
          liniya2(1,0,9);
          a=getch();
                   if(a==13)
                   {
                    kluchik();
                   }
          liniya2(1,9,0);
          }
          if((d2==3)&&(nomer==2))
          {
          setcolor(4);
          outtextxy(27,430,str3);
          liniya2(2,0,9);
          a=getch();
          liniya2(2,9,0);
                   if(a==13)
                   {
                    interval();
                   }
                   elsecontinue;
          liniya2(2,9,0);
          }
 }
setfillstyle(SOLID_FILL,8);
bar(20,300,130,460);
return 0;
}
voidinterfice()
{
 setfillstyle(SOLID_FILL,8);
 bar(0,0,640,480);
 setfillstyle(SOLID_FILL,0);
 bar(164,24,606,446);
 setfillstyle(SOLID_FILL,1);
 for(i=0;i
 {
 bar(20,20+i*60,130,50+i*60);
 liniya(i,9,0);
 }
 setfillstyle(SOLID_FILL,1);
 bar(160,20,163,450);
 bar(20,265,163,268);
 bar(160,20,610,23);
 bar(607,20,610,450);
 bar(160,447,610,450);
 d=1;
 while(ch!=27)
 {
 setcolor(6);
 outtextxy(60,30,"”Ђ‰‹");
 outtextxy(45,90,"“„Ђ‹…Ќ€…");
 outtextxy(45,150,"‘ЏђЂ‚ЉЂ");
 outtextxy(55,210,"‚›•Ћ„");
         if((a==80)||(a==72))
          {
          if(a==80) d++;
          if(a==72) d--;
          if(d>4) d=1;
          if(d
          }
          if(d==1)
          {
          nomer=1;
          setcolor(4);
          outtextxy(60,30,"”Ђ‰‹");
          liniya(0,0,9);
          a=getch();
          liniya(0,9,0);
          if(a==13)
          {
                   file("Ћ—€‘’ЉЂ","‡Ђѓђ“‡ЉЂ","");
          }elsecontinue;
          }
          if(d==2)
          {
          setcolor(4);
          nomer=2;
          outtextxy(45,90,"“„Ђ‹…Ќ€…");
          liniya(1,0,9);
          a=getch();
          liniya(1,9,0);
          if(a==13)
          {
                   file("ЏЋ ЌЋЊ…ђ“","ЏЋ Љ‹ћ—“","ЏЋ €Ќ’…ђ‚Ђ‹“");
          }elsecontinue;
          }
          if((d==3))
          {
          setcolor(4);
          outtextxy(45,150,"‘ЏђЂ‚ЉЂ");
          liniya(2,0,9);
          a=getch();
          liniya(2,9,0);
          if(a==13)
          {
          openf(«e:\\bc31\\bin\\help.dat»);
          }
          elsecontinue;
          }
          if(d==4)
          {
          setcolor(4);
          outtextxy(55,210,"‚›•Ћ„");
          liniya(3,0,9);
          a=getch();
          liniya(3,9,0);
          if(a==13)
          {
          break;
          }
 elsecontinue;
          }
 }
}
voidmain(void)
{
 initgraph(&driver,&mode,«e:\\bc31\\bin»);
 interfice();
 closegraph();
}


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Тревожные дети
Реферат Аналіз фінансового стану підприємства та місце довгострокових зобов’язань у цьому процесі
Реферат «Обеспечение доступности населения к региональным авиационным перевозкам», состоявшегося 8 ноября 2011 года в г. Новосибирске на Всероссийской конференции транспортников
Реферат Развитие малого бизнеса в России на примере курорта Геленджик
Реферат Управление оборотным капиталом и запасами предприятия
Реферат Автономной Республики Крым проводит набор специалистов для обучения в 2010 году по Программе переподготовки управленческих кадров для сферы предпринимательства "Украинская инициатива". программа
Реферат Энтомология (методичка)
Реферат Longfellows Optimism In Writing A Psalm Of
Реферат Международная организация по стандартизации ИСО
Реферат Формирование территориально-производственных комплексов
Реферат Формы представления информации
Реферат Зональность оруденения
Реферат Разработка схемы финансирования инвестиционного проекта на примере сети салонов сотовой связи Мобильный 2
Реферат Архитектура Китая
Реферат Вера в человека и ее воплощение в произведении Горького "На дне"