МИНИСТЕРСТВООБРАЗОВАНИЯ И НАУКИ
РЕСПУБЛИКИКАЗАХСТАН
КОКШЕТАУСКИЙГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
им.Ш.УАЛИХАНОВА
Физико-математическийфакультет
Кафедра«Информационных систем и вычислительной техники»
КУРСОВОЙ ПРОЕКТ
По дисциплине:
Технологияпрограммирования
на тему: «Базаданных Магазин товаров»
Выполнил: студент 1 курса
группы «Вычислительная техника и
программное обеспечение »
Горчинский А.с.
Проверил: ст. преподаватель
Баклхазова У.У.
г. Кокшетау2010Содержание
Введение
1. Технология программирования на С++
1.1 Технология программирования
1.2 Основные этапы ее развития
2. База данных
1.1 Понятие базы данных
2.2 Характеристика баз данных
2.3 Основные типы баз данных
3. Действие программы
3.1 Структура программы
3.2 Работа программы
Заключение
Список литературы
Приложение
Введение
Базы данных всегда быливажнейшей темой при изучении информационных систем. Однако в последние годывсплеск популярности Интернета и бурное развитие новых технологий для Интернетасделали знание технологии баз данных для многих одним из актуальнейших путейкарьеры. Технологии баз данных увели Интернет-приложения далеко от простыхброшюрных публикаций, которые характеризовали ранние приложения. В то же времяИнтернет-технология обеспечивает пользователям стандартизированные и доступныесредства публикации содержимого баз данных. Правда, ни одна из этих новыхразработок не отменяет необходимости в классических приложениях баз данных,которые появились еще до развития Интернета для нужд бизнеса. Это толькорасширяет важность знания баз данных.
Цель базы данных — помочьлюдям и организациям вести учет определенных вещей. На первый взгляд, эта целькажется скромной, и вы, возможно, удивитесь, зачем нам нужна такая сложнаятехнология и целый курс, посвященный этому предмету. Большинство из нас можетвспомнить ситуации, в которых нам требуется отслеживать некоторые вещи. Насамых ранних стадиях развития информационных технологий использовались списки —набитые на перфокарте и написанные на магнитной ленте. Со временем, однако,стало ясно, что только немногие проблемы можно решить с помощью таких списков.В следующем разделе мы обсудим такие проблемы, а затем опишем, как построитьбазы данных для их решения.
Процесс подготовки и решениязадач на компьютерах состоит из нескольких этапов:
— постановка задачи;
— построение модели;
— разработка алгоритма;
— написание и отладкапрограммы на языке программирования;
— тестирование программы.
При разработке программприменяют метод структурного программирования: разделение задачи наотносительно независимые части и выполнение отладки этих частей. При этомдостигается качество и быстрота разработки программ.
Развитие вычислительнойтехники с самого начала было направлено на облегчение и ускорение ввода, поискаданных. Базы данных используются во многих предприятиях, отраслях науки и т.д.Разработано множество готовых языков программирования с помощью которых можносоздавать базы данных.
1. Технология программирования на С++
1.1. Технологияпрограммирования
Программирование— сравнительно молодая и быстро развивающаяся отрасль науки и техники. Опытведения реальных разработок и совершенствования имеющихся программных итехнических средств постоянно переосмысливается, в результате чего появляютсяновые методы, методологии и технологии, которые, в свою очередь, служат основойболее современных средств разработки программного обеспечения.
Технологиейпрограммирования называют совокупность методов и средств, используемых в процессеразработки программного обеспечения. Как любая другая технология, технологияпрограммирования представляет собой набор технологических инструкций,включающих:
указаниепоследовательности выполнения технологических операций;
перечислениеусловий, при которых выполняется та или иная операция;
описаниясамих операций, где для каждой операции определены исходные данные, результаты,а также инструкции, нормативы, стандарты, критерии и методы оценки и т. п.(рис. 1.1).
Кроме набораопераций и их последовательности, технология также определяет способ описанияпроектируемой системы, точнее модели, используемой на конкретном этаперазработки.
Структураописания технологической операции определяющий совокупность методов,используемых на разных этапах разработки, или методологию.
Чтобыразобраться в существующих технологиях программирования и определить основныетенденции их развития, целесообразно рассматривать эти технологии в историческомконтексте, выделяя основные этапы развития программирования, как науки.
1.2 Основныеэтапы ее развития
Первый этап — «стихийное» программирование. Этот этап охватывает период от момента появления первыхвычислительных машин до середины 60-х годов XX в. В этот период практическиотсутствовали сформулированные технологии, и программирование фактически былоискусством. Первые программы имели простейшую структуру. Они состояли изсобственно программы на машинном языке и обрабатываемых ею данных (рис. 1.2).Сложность программ в машинных кодах ограничивалась способностью программистаодновременно мысленно отслеживать последовательность выполняемых операций иместонахождение данных при программировании.
Появлениеассемблеров позволило вместо двоичных или 16-ричных кодов использоватьсимволические имена данных и мнемоники кодов операций. В результате программыстали более «читаемыми».
Созданиеязыков программирования высокого уровня, таких, как FORTRAN и ALGOL, существенно упростилопрограммирование вычислений, снизив уровень детализации операций.
Это, в своюочередь, позволило увеличить сложность программ.
Идеянаписания подпрограмм появилась гораздо раньше, но отсутствие средств поддержкив первых языковых средствах существенно снижало эффективность их применения.)Подпрограммы можно было сохранять и использовать в других программах. В результатебыли созданы огромные библиотеки расчетных и служебных подпрограмм, которые помере надобности вызывались из разрабатываемой программы.
Типичнаяпрограмма того времени состояла из основной программы, области глобальныхданных и набора подпрограмм (в основном библиотечных), выполняющих обработкувсех данных или их части.
Слабым местомтакой архитектуры было то, что при увеличении количества подпрограмм возрасталавероятность искажения части глобальных данных какой-либо подпрограммой.Например, подпрограмма поиска корней уравнения на заданном интервале по методуделения отрезка пополам меняет величину интервала. Если при выходе из подпрограммыне предусмотреть восстановления первоначального интервала, то в глобальной областиокажется неверное значение интервала. Чтобы сократить количество таких ошибок,было предложено в подпрограммах размещать локальные данные
Сложностьразрабатываемого программного обеспечения при использовании подпрограмм слокальными данными по-прежнему ограничивалась возможностью программистаотслеживать процессы обработки данных, но уже на новом уровне. Однако появлениесредств поддержки подпрограмм позволило осуществлять разработку программногообеспечения нескольким программистам параллельно.
В начале 60-хгодов XX в. разразился «кризис программирования». Он выражался в том, чтофирмы, взявшиеся за разработку сложного программного обеспечения, такого, какоперационные системы, срывали все сроки завершения проектов. Проект устаревалраньше, чем был готов к внедрению, увеличивалась его стоимость, и в результатемногие проекты так никогда и не были завершены.
Объективновсе это было вызвано несовершенством технологии программирования. Прежде всегостихийно использовалась разработка «снизу-вверх» — подход, при котором вначалепроектировали и реализовывали сравнительно простые подпрограммы, из которыхзатем пытались построить сложную программу. В отсутствии четких моделей описанияподпрограмм и методов их проектирования создание каждой подпрограммы превращалосьв непростую задачу, интерфейсы подпрограмм получались сложными, и при сборкепрограммного продукта выявлялось большое количество ошибок согласования.Исправление таких ошибок, как правило, требовало серьезного изменения ужеразработанных подпрограмм, что еще более осложняло ситуацию, так как при этомв программу часто вносились новые ошибки, которые также необходимо былоисправлять… В конечном итоге процесс тестирования и отладки программ занималболее 80 % времени разработки, если вообще когда-нибудь заканчивался. Наповестке дня самым серьезным образом стоял вопрос разработки технологиисоздания сложных программных продуктов, снижающей вероятность ошибокпроектирования.
Анализ причинвозникновения большинства ошибок позволил сформулировать новый подход кпрограммированию, который был назван «структурным» .
Второй этап — структурный подход к программированию (60-70-е годы XX в.).
Структурныйподход к программированию представляет собой совокупность рекомендуемых
технологическихприемов, охватывающих выполнение всех этапов разработки программногообеспечения. В основе структурного подхода лежит декомпозиция (разбиениена части) сложных систем с целью последующей реализации в виде отдельныхнебольших (до 40 — 50 операторов) подпрограмм. С появлением других принциповдекомпозиции (объектного, логического и т. д.) данный способ получил название процедурнойдекомпозиции.
В отличие отиспользуемого ранее процедурного подхода к декомпозиции, структурный подходтребовал представления задачи в виде иерархии подзадач простейшей структуры.Проектирование, таким образом, осуществлялось «сверху вниз» и подразумевалореализацию общей идеи, обеспечивая проработку интерфейсов подпрограмм. Одновременновводились ограничения на конструкции алгоритмов, рекомендовались формальныемодели их описания, а также специальный метод проектирования алгоритмов — методпошаговой детализации.
Поддержкапринципов структурного программирования была заложена в основу так называемых процедурныхязыков программирования. Как правило, они включали основные «структурные»операторы передачи управления, поддерживали вложение подпрограмм, локализацию иограничение области «видимости» данных. Среди наиболее известных языков этойгруппы стоит назвать PL/1, ALGOL-68, Pascal, С.
Одновременносо структурным программированием появилось огромное количество языков,базирующихся на других концепциях, но большинство из них не выдержалоконкуренции. Какие-то языки были просто забыты, идеи других были в дальнейшем использованыв следующих версиях развиваемых языков.
Дальнейшийрост сложности и размеров разрабатываемого программного обеспечения потребовалразвития структурирования данных. Как следствие этого в языках появляетсявозможность определения пользовательских типов данных. Одновременно усилилосьстремление разграничить доступ к глобальным данным программы, чтобы уменьшитьколичество ошибок, возникающих при работе с глобальными данными. В результатепоявилась и начала развиваться технология модульного программирования.
Модульноепрограммирование предполагает выделение групп подпрограмм, использующих одни и теже глобальные данные в отдельно компилируемые модули (библиотекиподпрограмм), например, модуль графических ресурсов, модуль подпрограмм выводана принтер (рис. 1.5). Связи между модулями при использовании данной технологииосуществляются через специальный интерфейс, в то время как доступ к реализациимодуля (телам подпрограмм и некоторым «внутренним» переменным) запрещен. Этутехнологию поддерживают современные версии языков Pascal и С (C++), языки Ада и Modula.
Использованиемодульного программирования существенно упростило разработку программногообеспечения несколькими программистами. Теперь каждый из них мог разрабатыватьсвои модули независимо, обеспечивая взаимодействие модулей через специальнооговоренные межмодульные интерфейсы. Кроме того, модули в дальнейшем без измененийможно было использовать в других разработках, что повысило производительностьтруда программистов.
Практикапоказала, что структурный подход в сочетании с модульным программированиемпозволяет получать достаточно надежные программы, размер которых не превышает100 000 операторов. Узким местом модульного программирования является то,что ошибка в интерфейсе при вызове подпрограммы выявляется только при выполнениипрограммы (из-за раздельной компиляции модулей обнаружить эти ошибки раньшеневозможно). При увеличении размера программы обычно возрастает сложность межмодульныхинтерфейсов, и с некоторого момента предусмотреть взаимовлияние отдельныхчастей программы становится практически невозможно. Для разработки программногообеспечения большого объема было предложено использовать объектный подход.
Третий этап — объектный подход к программированию (с середины 80-х до конца 90-х годов XX в.). Объектно-ориентированноепрограммирование определяется как технология создания сложного программногообеспечения, основанная на представлении программы в виде совокупности объектов,каждый из которых является экземпляром определенного типа {класса), аклассы образуют иерархию с наследованием свойств. Взаимодействиепрограммных объектов в такой системе осуществляется путем передачи сообщений.
Основнымдостоинством объектно-ориентированного программирования по сравнению смодульным программированием является «более естественная» декомпозиция программногообеспечения, которая существенно облегчает его разработку. Это приводит к болееполной локализации данных и интегрированию их с подпрограммами обработки, чтопозволяет вести практически независимую разработку отдельных частей (объектов)программы. Кроме этого, объектный подход предлагает новые способы организациипрограмм, основанные на механизмах наследования, полиморфизма, композиции,наполнения. Эти механизмы позволяют конструировать сложные объекты изсравнительно простых. В результате существенно увеличивается показательповторного использования кодов и появляется возможность создания библиотекклассов для различных применений.
Бурноеразвитие технологий программирования, основанных на объектном подходе,позволило решить многие проблемы. Так были созданы среды, поддерживающие визуальноепрограммирование, например, Delphi, C++ Builder, Visual C++ и т. д. При использовании визуальной среды упрограммиста появляется возможность проектировать некоторую часть, например,интерфейсы будущего продукта, с применением визуальных средств добавления инастройки специальных библиотечных компонентов. Результатом визуальногопроектирования является заготовка будущей программы, в которую уже внесенысоответствующие коды.
2. База данных
2.1 Понятие База данных
База данных —организованная в соответствии с определёнными правилами и поддерживаемая впамяти компьютера совокупность данных, характеризующая актуальное состояниенекоторой предметной области и используемая для удовлетворения информационныхпотребностей пользователей.
База данных —совокупность данных, хранимых в соответствии со схемой данных, манипулированиекоторыми выполняют в соответствии с правилами средств моделирования данных.
База данных —совокупность взаимосвязанных данных, совместно хранимых в одном или несколькихкомпьютерных файлах.
Существует множестводругих определений, отражающих скорее субъективное мнение тех или иных авторово том, что означает этот термин в их понимании, однако общепризнанная единаяформулировка отсутствует. Наиболее часто используются следующие отличительныепризнаки: База данных хранится и обрабатывается в вычислительной системе. Такимобразом, любые внекомпьютерные хранилища информации (архивы, библиотеки,картотеки и т. п.) базами данных не являются.
Данные в базе данныхлогически структурированы (систематизированы) с целью обеспечения возможностиих эффективного поиска и обработки в вычислительной системе.
Структурированностьподразумевает явное выделение составных частей (элементов), связей между ними,а также типизацию элементов и связей, при которой с типом элемента (связи)соотносится определённая семантика и допустимые операции.
Из перечисленныхпризнаков только первый является строгим, а другие допускает различныетрактовки и различные степени оценки. Можно лишь установить некоторую степеньсоответствия требованиям к БД.
Многие специалистыуказывают на распространённую ошибку, состоящую в некорректном использованиитермина база данных вместо термина система управления базами данных. Этипонятия, следовательно, необходимо различать.
Базы данных необходимыдля хранения и фильтрации информации, для её обработки и обмена. В целом,спектр применения достаточно широкий. По всему миру люди используют БД, начинаяот простого пользователя-любителя, заканчивая крупнейшими мировымикорпорациями.
База данных – этохранилище для большого количества систематизированных данных, с которыми можнопроизводить определённые действия. Под действиями понимается добавление,удаление, изменение, копирование, упорядочивание и прочее.
Все данные в БД можнопредставить в виде записей или объектов.
Для успешной работы с БДнеобходимы какие-то программные средства, при помощи которых можно было бысоздавать и управлять БД. Для этого существуют Системы Управления Базами Данных(СУБД).
СУБД – совокупностьязыковых и программных средств, обеспечивающих создание, использование иведение БД.
Существует два видаСУБД: локальные и сетевые.
Локальные – это СУБД,работающие на одном компьютере. К таким относятся dBase, FoxPro,Microsoft Access, Paradoxи т.д.
Сетевые – это СУБД,позволяющие нескольким компьютерам использовать одну и ту же БД с помощьютехнологии клиент-сервер. Примером таких СУБД являются InterBase, Oracle, Microsoft SQL Server и т.д.Поскольку мы разбираем общиепонятия, то расскажу немного о взаимосвязи данных.
Существует 4 типавзаимосвязи данных:
1) Один к одному
2) Один ко многим
3) Много к одному
4) Много ко многим
Вид взаимосвязи один кодному означает, что каждая запись одного объекта БД будет указывать наединственную запись другого объекта.
Один ко многим означает,что одной записи объекта БД будет соответствовать несколько записей другихобъектов.
Много к одному означает,что нескольким записям объектов БД будет соответствовать одна запись другогообъекта.
Много ко многимустанавливается между двумя типами объектов БД.
2.2Характеристика баз данных
База данных — это реализованная с помощью компьютера информационная структура (модель),отражающая состояние объектов и их отношения.
Следуетучесть, что это определение не является единственно возможным. Информатика вотношении определений чаще всего не похожа на математику с ее полнойоднозначностью. Если подойти к понятию “база данных” с чисто пользовательскойточки зрения, то возникает другое определение: база данных — совокупностьхранимых операционных данных некоторого предприятия. Все дело в том, какойаспект доминирует в рассмотрении; в данной главе первое из определений болееуместно.
Опытиспользования баз данных позволяет выделить общий набор их рабочиххарактеристик:
• полнота — чем полнее база данных, тем вероятнее, что она содержит нужную информацию(однако, не должно быть избыточной информации);
• правильнаяорганизация — чем лучше структурирована база данных, тем легче в ней найтинеобходимые сведения;
• актуальность- любая база данных может быть точной и полной, если она постоянно обновляется,т.е. необходимо, чтобы база данных в каждый момент времени полностьюсоответствовала состоянию отображаемого ею объекта;
• удобстводля использования — база данных должна быть проста и удобна в использовании ииметь развитые методы доступа к любой части информации.
Соответственновозможностям организации реляционных, иерархических и сетевых информационыхструктур, существуют и аналогичные виды баз данных.
2.3 Основные типы базданных
1) Иерархические
2) Сетевые
3) Реляционные
Иерархические базы данных
Иерархические БДприменялись в начале 60-х годов. Они построены в виде обычного дерева. Данныеделятся на 2 категории: главные и подчинённые. Таким образом, один тип объектаявляется главным, а остальные, находящиеся на более низких ступенях иерархии, — подчинёнными.БД, организованные по такому принципу, удобно использовать в техслучаячх, когда информамция упорядочена соответствующим образом.
Сетевые базы данных
Сетевые БД началиприменятся практически одновременно с иерархическими. В этих БД любой объектможет быть как главным, так и подчинённым.
В использовании довольносложно реализовать представление данных в таком виде, поэтому от этого типатоже отказались.
Реляционные базы данных
Именно реляционные БДиспользуются в повседневной жизни. (от англ. relation — отношение). Такой тип БДпредставляется собой несколько взаимосвязанных таблиц прямоугольной формы. Вкоторых собственное есть поля, ключи, записи, аторибуты и прочее и прочее.
3. Действие программы
3.1 Структура программы
Программа состоит из 2функций отвечающих за интерфейс программы и основной программы в которойвыполняются все действия с базой данных.
Функции отвечающие заинтерфейс программы предназначены для придания программе более приятного вида идля упрощения работы с ней. Это функция вывода сообщения об ошибке ввода ифункция создания рамки в окне программы.
Функция вывода сообщенияоб ошибке ввода предназначена для упрощения работы с программой. Вообще сама«защита» от ошибки ввода защищает программу от совершения каких-либо ошибок,связанных с вводом. Если пользователь случайно введет неправильное значение топрограмма выдаст ему соответствующее сообщение и пользователь сможет исправитьсвою ошибку.
Функция создания рамки вокне программы предназначена для придания интерфейсу программы более«товарного» вида. Пользователю будет приятнее работать в красивом окне чем впростом черном окне.
Основная программавыполняет действия над записями: ввод — вывод данных, изменение записей, поискзаписей, добавление записей к уже имеющимся.
3.2 Работа программы
Программа начинается сввода первоначальных данных.
При запуске появляетсяокно в котором пользователю предлагается ввести нужные данные. Окно выглядиттак:
После ввода данныхпользователю предлагается продолжить ввод данных или же завершить ввод.
В случае неправильноговвода программа выдает сообщение об ошибке:
Если пользователь вводитсимвол ‘n’ то программа переходит к окну ввода данных, Если же пользовательввел символ ‘q’ то в окне появляется сообщение о завершении ввода.
Программа переходит кследующему окну
Далее пользователюпредлагается выбрать дальнейшее действие.
При выборе вывода данныхна экране появляется окно с введенными данными
При выборе добавленияданных на экране появляется окно ввода данных. При выборе поиска на экранепоявляется окно выбора критерия поиска:
Далее появляется окно вкотором предлагается ввести определенные данные для поиска. После выполненияпоиска при наличии данной записи она выводится на экран.
При выборе измененияданных на экране появится окно в котором пользователю предлагается ввестиданные записи которую нужно изменить
Далее пользователюпредлагается ввести новые данные.
Далее выводитсясообщение об изменении записи.
При выборе выхода изпрограммы программа завершает свое выполнение и заврывается.
Заключение
Данная работа выполнена на языке высокого уровняпрограммирования в среде Borland С++, Первые версии языка программирования С++ (тогда он назывался«Си с классами») были разработаны в начале 80-х годов БьярномСтрауструпом, сотрудником знаменитой AT&T Bell Labs, где ранее былиразработаны такие шедевры программирования, как операционная система UNIX иязык программирования Си. При написании и разработкипрограммного обеспечения использовались различные возможности С++.
В ходе выполнения курсовой работы была разработана базаданных группы студентов, с помощью которой можно добавить данные о студенте,просмотреть их, совершить поиск по определенным критериям студента.
Также данные записываются в файл на жесткий диск, тем самыммы сохраняем их. Уже поиск совершается в самом файле.
Данная курсовая работа позволила укрепить знания, которыебыли получены в процессе учебы, и реализовать их в виде данной программы.
Список литературы
1. Е Зуев, А Кротов «Новыевозможности языка Си++», PC Magazine/Russian Edition, #7, 1994.
2. В.Шелест. Программирование. 2002.
3. Г. Шилдт «Самоучитель С++» — СПб.: БХВ-Петербург. 2001. — 670с.
4. Карпов Б., Баранов Т. «С++:специальный справочник» — СПб.: Питер, 2001. — 480 с.: ил.
5. Культин Н. «С/С++ в задачах ипримерах» — СПб.: БХВ-Петербург, 2002. — 288 с.
6. А. Мешков, Ю. Тихомиров «VisualC++ и MFC» — СПб.: БХВ-Петербург. 2002 — 1017с.7. Теллес, М. BORLANDC++ BUILDER: библиотека программиста .– СПб: Питер, 1998 .– 512с. 8. Архангельский, А.Я.Язык C++ в C++Builder: справочное и методическое пособие / А.Я. Архангельский.– М.: Бином, 2008 .– 942 с.
9. Роберт Седжвик, Фундаментальныеалгоритмы на С++,
Санкт-Петербург, ООО«ДиаСофтЮП», 2002. Части 1-4 — 688 с., часть 5 — 496 с.
10. М. Эллис, Б. Строуструп. Справочное руководство по языку C++ скомментариями: Пер. с англ. — Москва: Мир, 1992. 445с.
11. Стенли Б. Липпман. C++ дляначинающих: Пер. с англ. 2тт. — Москва: Унитех; Рязань: Гэлион, 1992,304-345сс.
12. Бруно Бабэ. Просто и ясно оBorland C++: Пер. с англ. — Москва: БИНОМ, 1994. 400с.
13. В.В. Подбельский. Язык C++:Учебное пособие. — Москва: Финансы и статистика, 1995. 560с.
14. Ирэ Пол. Объектно-ориентированноепрограммирование с использованием C++: Пер. с англ. — Киев: НИИПФ ДиаСофт Лтд,1995. 480с.
15. Т. Фейсон.Объектно-ориентированное программирование на Borland C++ 4.5: Пер. с англ. — Киев: Диалектика, 1996. 544с.
Приложение
Листинг программы
#include
#include
#include
#include
#include
#include
voidramka(),error();
void error()
{textcolor(4);
cprintf(«Nepravil’nyivybor»);
textcolor(15);}
void ramka ()
{intxx1,yy1,xx2,yy2;
int xi;
xx1=2; yy1=1;xx2=78; yy2=24;
for(xi=xx1;xi
{textcolor(14);
gotoxy(xi,yy1);
cprintf(«Н»);
gotoxy(xi,yy2);
cprintf(«Н»);}
for(xi=yy1;xi
{gotoxy(xx1,xi);
cprintf(“є”);
gotoxy(xx2,xi);
cprintf(“є”);}
gotoxy(xx1,yy1);
cprintf(«Й»);
gotoxy(xx2,yy1);
cprintf(“»”);
gotoxy(xx1,yy2);
cprintf(«И»);
gotoxy(xx2,yy2);
cprintf(“ј”);
textcolor(15);}
void main()
{const intn=9999;
int m,i,j;
char l,k,x,y;
charvybor[25],vtip[25],vproizv[25],vmodel[25];
struct detal{int nomer; char naim[25]; char proizv[25]; char model[25];};
detal baza[n];
textmode(C80);
textbackground(1);
clrscr();
ramka();
gotoxy(25,5);
cprintf(«Vvedite dannye\n»);
i=0;
metka2:
j=i;
gotoxy(25,7);
cprintf(«Tip produkta :»);
cscanf(“%s”,&baza[i].naim);
gotoxy(25,8);
cprintf(«Proizvoditel’ :»);
cscanf(“%s”,&baza[i].proizv);
gotoxy(25,9);
cprintf(«Model’ produkta :»);
cscanf(“%s”,&baza[i].model);
i++;
metka4:clrscr();
ramka();
gotoxy(8,9);
cprintf(«Nazhmite’n’ dlya dobavleniya zapisi ili ‘q’ dlya zaversheniya vvoda\n»);
gotoxy(33,10);
cscanf(“%s”,&x);
if (x==’n’ ||x==’q’)
{if (x==’n’)
{clrscr();
goto metka2;}
else{gotoxy(27,11);
cprintf(«zapisi dobavleny\n»);}}
else
{gotoxy (27,11);
error();
getch();getch();
goto metka4;}
getch();getch();
metka1:clrscr();
ramka();
gotoxy(25,5);
cprintf(«Vyberitedeistvie»);
gotoxy(25,7);
cprintf(«1-Vyvestispisok na ekran»);
gotoxy(25,8);
cprintf(«2-Dobavit’dannye v spisok»);
gotoxy(25,9);
cprintf(«3-Vypolnit’poisk»);
gotoxy(25,10);
cprintf(«4-Izmenit’zapis’»);
gotoxy(25,11);
cprintf(«0-vyhod»);
gotoxy(25,13);
cprintf(«Vashvybor: „);
cscanf(“%s»,&k);
if (k==’0′ ||k==’1′ || k==’2′ || k==’3′ || k==’4′)
{if (k==’1′)
{clrscr();
ramka();
for(m=0;m
{gotoxy(20,m+2);
cprintf(baza[m].naim);
cprintf(“”);
cprintf(baza[m].proizv);
cprintf(“”);
cprintf(baza[m].model);
printf(“\n”);}
getch();getch();
goto metka1;}
if (k==’2′)
{clrscr();
gotoxy(25,5);
cprintf(«Vvedite dannye\n»);
metka3:j=i;
ramka();
gotoxy(25,7);
cprintf(«Tip produkta :»);
cscanf(“%s”,&baza[i].naim);
gotoxy(25,8);
cprintf(«Proizvoditel’ :»);
cscanf(“%s”,&baza[i].proizv);
gotoxy(25,9);
cprintf(«Model’ produkta :»);
cscanf(“%s”,&baza[i].model);
i++;
metka6:clrscr();
ramka();
gotoxy(9,8);
cprintf(«Nazhmite’n’ dlya dobavleniya zapisi ili ‘q’ dlya zaversheniya vvoda\n»);
gotoxy(30,9);
cscanf(“%s”,&y);
if (y==’n’ ||y==’q’)
{if (y==’n’){clrscr();
goto metka3;}
else{gotoxy(27,11);
cprintf(«Zapisi dobavleny»);
getch();getch();
goto metka1;}}
else
{gotoxy(27,11);
error();
getch();getch();
goto metka6;}}
if (k==’3′)
{metka5:clrscr();
ramka();
gotoxy(25,5);
cprintf(«Kryteriipoiska»);
gotoxy(25,7);
cprintf(«1-Tip»);
gotoxy(25,8);
cprintf(«2-Proizvoditel’»);
gotoxy(25,9);
cprintf(«3-model’produkta»);
gotoxy(25,11);
cprintf(«Vashvybor: „);
cscanf(“%s»,&l);
if (l==’1′ ||l==’2′ || l==’3′)
{if (l==’1′)
{clrscr();
ramka();
gotoxy(25,5);
cprintf(«Vveditetip produkta»);
gotoxy(30,7);
cscanf(“%s”,&vybor);
for (m=0;m
{if(!strcmp(baza[m].naim,vybor))
{gotoxy(20,m+9);
cprintf(baza[m].naim);
cprintf(“”);
cprintf(baza[m].proizv);
cprintf(“”);
cprintf(baza[m].model);
cprintf(“\n”);}}}
if (l==’2′)
{clrscr();
ramka();
gotoxy(25,5);
cprintf(«Vvediteproizvoditelya produkta»);
gotoxy(30,7);
cscanf(“%s”,&vybor);
for(m=0;m
{if(!strcmp(baza[m].proizv,vybor))
{gotoxy(20,m+9);
cprintf(baza[m].naim);
cprintf(“”);
cprintf(baza[m].proizv);
cprintf(“”);
cprintf(baza[m].model);
cprintf(“\n”);}}}
if (l==’3′)
{clrscr();
ramka();
gotoxy(25,5);
cprintf(«Vveditemodel’ produkta»);
gotoxy(30,7);
cscanf(“%s”,&vybor);
for(m=0;m
{if(!strcmp(baza[m].model,vybor))
{gotoxy(20,m+9);
cprintf(baza[m].naim);
cprintf(“”);
cprintf(baza[m].proizv);
cprintf(“”);
cprintf(baza[m].model);
cprintf(“\n”);}}}
getch();getch();
goto metka1;}
else{gotoxy(27,12);
error();
getch();getch();
goto metka5;}}
if(k==’4′)
{clrscr();
ramka();
gotoxy (25,5);
cprintf(«Vveditezapis’ kotoruyu hotite izmenit’ :»);
gotoxy (25,7);
cprintf(«Tip- „);
cscanf(“%s»,&vtip);
gotoxy(25,8);
cprintf(«Proizvoditel’- „);
cscanf(“%s»,&vproizv);
gotoxy(25,9);
cprintf(«Model’- „);
cscanf(“%s»,&vmodel);
gotoxy(25,11);
cprintf(«Vashidannye prinyaty!»);
getch();getch();
for(m=0;m
{if(!strcmp(baza[m].naim,vtip) && !strcmp(baza[m].proizv,vproizv)&& !strcmp(baza[m].model,vmodel))
{clrscr();
ramka();
gotoxy(25,5);
cprintf(«Vveditenovye dannye: \n»);
gotoxy(25,7);
cprintf(«Tip- „);
cscanf(“%s»,&baza[m].naim);
gotoxy(25,8);
cprintf(«Proizvoditel’- „);
cscanf(“%s»,&baza[m].proizv);
gotoxy(25,9);
cprintf(«Model’- „);
cscanf(“%s»,&baza[m].model);
gotoxy(25,11);
cprintf(«Zapis’izmenena»);
getch();getch();}}
goto metka1;}
if (k==’0′)abort();}
else {gotoxy(27,12);
error();
getch();getch();
goto metka1;}