Операционная система Windows


 

Меню

Реклама
Похожие статьи:

Популярные записи



  • Отчет о прохождении практики за специальностью инженер компьютерных систем

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

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

    Производственная практика для студентов специальности 7.091501 Компьютерные системы и сети являются неотъемлемой составной частью процесса их профессиональной подготовки и проводится на современных предприятиях и -организациях, оснащенных соответствующим аппаратным и программным обеспечением компьютерных систем и сетей.

    Производственная практика предусматривает получение необходимого объема практических знаний и умений в соответствии с квалификационным уровнем инженера-системотехника.

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

    1.Дослидження объекту практики

    Украинское государственное предприятие почтового зв"язку "Укрпочта" УДППЗ "Укрпочта" является национальним оператором почтового зв"язку Украины згидно с распоряжением КМУ от 10 января 2002 года.

    Деятельность УДППЗ "Укрпочта" регламентируется Законом Украины "О почтовом зв"язок", другими Законами Украины, а также нормативными актами ВПС.

    Украина с 1947 года является членом Всемирного почтового союза ВПС, дважды избиралась и в настоящее время входит в состав Административного совета, высшего исполнительного органа ВПС. В 1991 году Администрация зв"язку Украины вошла в Региональное содружество в отрасли зв"язку РСЗ, с 1994 года УДППЗ "Укрпочта" является членом Ассоциации европейских государственных почтовых операторов "Posteurop".

    Укрпочта функционирует как самостоятельная хозяйственная единица с 1994 года, когда отрасль зв"язку в результате реформирования была распределена на почтовый и електрозв"язок. Тогда было образовано два об"еднання, в том числе Украинское об"еднання почтового зв"язку "Укрпочта", которое в июле 1998 года реорганизовано в в настоящее время действующее УДППЗ "Укрпочта" согласно Программе реструктуризации Укрпочты, утвержденным постановлением Кабинета Министров Украины от 04.01.98 за №1.

    В состав предприятия входят 31 филиала 27 региональных дирекций, в том числе две городских – Киевская и Севастопольская, Дирекция из обрабатывания и перевозки почты, дирекция Автотранспошта, дирекция Издательство Марка Украины, дирекция Главный учебный центр Зеленая Буча.

    Сеть почтового зв"язку охватывает все регионы Украины и насчитывает 24 почтамта, 400 узлов почтовой связи и 26 центров почтового звязку, 3517 городских, 9880 сельских, 125 передвижных, 22 сезонных отделение и 1824 пункта почтовой связи.

    В системе Укрпочты работают свыше 115 тыс. чел., из них свыше 48 тыс. почтальонов.

    Доставка почтовых отправлений в Украине обеспечивается собственным автомобильным транспортом. Для перевозки почты и печатных изданий действуют 33 магистральные автомобильные маршруты длиной свыше 29 тысяч километров. Парк транспортных средств, задействованных на перевозке, составляет свыше 4,3 тыс. автомобилей.

    Украинская почта осуществляет прямой почтовый обмен с 58 странами мира; двусторонний обмен почтовыми переводами с 17 странами, односторонний – с 5, двусторонний обмен электронными переводами между Украиной и Москвой, обмен отправлениями с послеоплатой – с 10 странами.
    УДППЗ "Укрпочта" как национальный почтовый оператор должен обеспечивать предоставление универсальных услуг почтового зв"язку, перечень которых и соответствующие тарифы утверждаются Кабинетом Министров. В Украине к этим услугам принадлежит пересылка простых и заказных почтовых карточек, писем, бандеролей, а также посылок без объявленной ценности массой к 10кг.
    В целом, Укрпочта предлагает потребителям свыше 70 видов услуг, в том числе с использованием самых современных информационных технологий, в первую очередь электронной и гибридной почты, электронного перевода, услуг Интернет. В перспективе - осуществление подписки через Интернет, электронной торговли, предоставления информационных услуг, услуг иР-телефониї, с передачей видеоизображения и тому подобное.

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

    УДППЗ "Укрпочта" принимает участие в реализации Национальной программы информатизации "Электронная Украина". Идет целеустремленная работа по созданию в об"ектах почтового зв"язку Интернет-пунктов с целью обеспечения доступа широких слоев населения ко всемирной информационной сети. В настоящее время в филиалах предприятия действуют 78 таких пунктов, планируется работать в этом направлении и в дальнейшем.

    Важным направлением деятельности Укрпочты является совершенствование организационно-технологической структуры предприятия. В настоящее время начата реализация Программы оптимизации сети почтового зв"язку, что включает проведение широкомасштабного комплекса работ, направленных на повышение эффективности производства, улучшения качества предоставления услуг и сокращения непродуктивнеих расходов. Суть оптимизации заключается в реорганизации районных узлов зв"язку путем их укрупнения и создания межрайонных узловых центров, построенных по принципу функциональной целесообразности, а не за административно-территориальным делением регионов Украины.

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

    2. Исследование процесса составления, монтажа, налаживания и тестирования создаваемого аппаратного обеспечения компьютерных систем, и мереж

    Под архитектурой будем понимать совокупность принципов и правил в соответствии с которыми строятся вычислительные системы разных видов.

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

    - организация доступа к сети;

    - управление передачей информации;

    - предоставление вычислительных ресурсов и услуг абонентам сети.

    В соответствии с этим по функциональному признаку все множество систем КМ можно разделить на абонентские, коммутационные и главные Host подсистемы.

    абонентска подсистема являе собой компьютер, ориентированный на работу в составе КМ и обеспечивает пользователям доступ к ее вычислительным ресурсам.

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

    Большим разнообразием характеризуются Host подсистемы или сетевые серверы. сервером принято называть специальный компьютер, который выполняет основные сервисные функции, такие как: управление сетью, сбор, обработку, хранение и предоставление информации, абонентам Км. В связи с большим числом сервисных функций целесообразное разделение серверов за их функциональным назначением. Например, файл-сервер определяется как сетевой компьютер, который осуществляет операции по хранению, обработке и предоставлению файлов данных абонентам Км., В свою очередь, компьютер, который обеспечивает абонентским системам эффективный доступ к КМ, получил название сервер доступу и т. д.

    Классификация Км

    В зависимости от основного классификационного признака покрытия территории все КМ разделяют на группы:

    - Локальные Local Area Network;

    - Глобальные Wide Area Network;

    - Региональные Metropolitain Area Network;

    - Корпоративные КМ.

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

    Хотя все эти требования очень важны, часто понятие «качество обслуживания» Quality of Service, QOS компьютерной сети трактуется более узко – у него включаются только две важнейших характеристики сети – производительность и надежность.

    Независимо от избранного показателя качества обслуживания сети существуют два подхода к его обеспечению. Первый подход, по-видимому, покажется наиболее естественным с точки зрения пользователя сети. Он заключается в том, что сеть точнее, персонал который ее обслуживает гарантирует пользователю соблюдения некоторой числовой величины показателя качества обслуживания. Например, сеть может гарантировать пользователю А, что каждый из его пакетов, посланных пользователю В, будет задержан сетью не более, чем на 150 мс. Или, что средняя пропускная способность канала между пользователями Но и В не будет ниже 5 Мбит/с, при этом канал будет допускать пульсацию трафика в 10 Мбит на интервалах времени не более 2 секунд. Технологии frame relay и АТМ позволяют строить сети, которые гарантируют качество обслуживания по производительности.

    Второй подход заключается в том, что сеть обслуживает пользователей в соответствии с их приоритетами. То есть качество обслуживания зависит от степени привилейованости пользователя или группы пользователей, к которой он принадлежит. Качество обслуживания в этом случае не гарантируется, а гарантируется только уровень привилегий пользователя. Такое обслуживание называется обслуживанием best effort – с наибольшим старанием. Сеть пытается по возможности более качественно обслужить пользователя, но ничего при этом не гарантирует. По такому принципу работают, например, локальные сети, построенные на коммутаторах из <а name=ocruncertain026>приоритезациею кадров.

    Продуктивнисть

    Потенциально высокая производительность – это одно из основных свойств распределенных систем, к которым относятся компьютерные сети. Это свойство обеспечивается возможностью розпаралелення работ между несколькими компьютерами сети. К сожалению, эту возможность не всегда удается реализовать. Существует несколько основных характеристик производительности сети:

    время реакции;

    пропускная способность;

    задержка передачи и вариация задержки передачи.

    Время реакции сети является интегральной характеристикой производительности сети с точки зрения пользователя. Именно эту характеристику имеет в виду пользователь, когда говорит: «Сегодня сеть работает медленно».

    В общем случае время реакции определяется как интервал времени между возникновением запроса пользователя к какой-либо сетевой службе и получением ответа на этот запрос.

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

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

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

    Понятно, что пользователя разложения времени реакции на составляющие не интересует – ему важен конечный результат; однако для сетевого специалиста очень важно выделить с общего времени реакции составляющие, соответствующим этапам сетевой обработки данных, – передачу данных от клиента к серверу через сегменты сети и коммуникационное оборудование.

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

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

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

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

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

    надийнисть и безпека

    Одной из первых целей создания распределенных систем, к которым относятся и КМ, было достижение большей надежности по сравнению с автономными ПК.

    Для оценки надежности сложных систем применяется такой набор характеристик, в частности: готовность, целостность данных, согласованность, вероятность доставки пакета, безопасность, отказостойкость.

    Готовность, коэффициент готовности availability означает частицу времени, в течение которого система может быть использована. Готовность может улучшить путем введения избыточности в структуру системы: ключевые элементы системы должны существовать в нескольких экземплярах, чтобы при отказе одного из них функционирования системы обеспечивали другие.

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

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

    Другим аспектом общей надежности является Безопасность security, то есть способность системы защитить данные от несанкционированного доступа. В распределенной системе это сделать намного сложнее, чем в централизованной. Другим уязвимым местом могут быть оставлены без досмотра персональные компьютеры. Кроме того, всегда есть потенциальная угроза взлому защиты сети от неавторизованных пользователей, если сеть имеет выходы в глобальные сети общего пользования.

    Еще одной характеристикой надежности является Отказостойкость fault tolerance. В сетях под отказостойкостью понимается способность системы скрыть от пользователя отказ отдельных ее элементов. Например, если копии таблицы базы данных сохраняются одновременно на нескольких файловых серверах, то пользователи могут просто не заметить отказ одного из них.

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

    Масштабируемость scalability значит, что сеть позволяет наращивать количество узлов и длину связей в очень широких пределах, при этом производительность сети не ухудшается. Для обеспечения масштабируемости сети придется применять дополнительное коммуникационное оборудование и специальным чином распределять структуру сети.

    Прозрачность transparency сети достигается в том случае, когда сеть представляется пользователям не как множество отдельных компьютеров, связанных между собой сложной системой кабелей, а как единственная традиционная рабочая станция с системой деления часу

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


    3.Универсальне но специализировано аппаратное обеспечение компьютерных систем и сетей, которые используются на объекте практики

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

    - сервер-роутер на базе Intel Pentium иии 550 Мhz, 128 Mb RAM, 40 Gb ATA 100, 2 x LAN-CARD выход в сеть Интернет и поддержка корпоративной сети;

    - сервер для бухгалтерии на базе AMD Duron 1.4 Ghz, 128mb RAM, 20 Gb ATA 100;

    - локальная сеть - Ethernet. Построенная с использованием двух 8-ми портовых switch фирмы Surecom. Как физическая среда передачи данных используется витая пара Utp-5;

    - 3 модема idc-2814, что обеспечивают доступ к корпоративной сети через междугородную телефонную связь;

    - блоки бесперебойного питания фирмы apc в зависимости от потребностей используются разные модели;

    - персональные компьютеры разнообразных конфигураций от Pentium 100 Mhz к Pentium IV 1,7 Ghz. Используются в качестве офисные машины набор текстов, электронных таблиц, формирования отчетности, и ин.;

    - принтеры Epson Lx-300, Epson Lx-300+, HP 1100a, OKI B4200l.

    На предприятии используется резервирование электросети: от краткосрочных исчезновений электроэнергии компьютерная техника защищена блоками бесперебойного питания; если электропитание не возобновляется через 3 минуты – включается автономная дизельна-електростанция.

    4.Универсальне но специализировано программное обеспечение компьютерных систем и сетей, которые используются на объекте практики

    В подразделах администрации, технической поддержки и бухгалтерии, используется операционная система windows 95, 98.

    На сервере-роутери установлена операционная система freebsd realese 5.2.1.

    Сервером для бухгалтерии руководит sco open server 4.5.

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

    Для доступа к ресурсам Unix-машин на предприятии используется стандартная система защиты этой операционной системы. Защита от доступа, который не санкционируется, осуществляется с помощью процедуры введения логину-пароля.

    Доступ к конкретному ресурсу осуществляется с помощью разных серверов.

    Авторизация - это право на доступ к некоторому объекту или на выполнение какого-либо системного действия. В большинстве систем UNIX все решения по поводу доступа принимаются на основе простых дискреционных критериев, или исходя из того, является ли root владельцем процесса, который осуществляет доступ. Корневой бюджет имеет полномочия на выполнение таких системных действий, которые не может выполнять никакой другой процесс. Операционная Система определяет два типа авторизации: авторизация ядра и авторизация подсистемы. Авторизация ядра связана с процессами. Процесс - это программа, которая выполняется в системе в данный момент. Они позволяют процессу выполнять определенные действия, если процесс наделен необходимыми привилегиями. Авторизация подсистемы связана с пользователями. Они позволяют пользователю выполнять специальные действия с помощью команд подсистемы надежные утилиты и программы. Подсистема - это связный набор файлов, пристроил и команд, которые служат для выполнения некоторой функции.

    На серверах отключены неупотребительные сервисы, что снижает возможность проникновения постороннего, но не исключает его со стопроцентной вероятностью. Каждый день на специальных информационных серверах публикуется информация о выявлении «дыр» в защите конкретной версии программного обеспечения. В обязанность системного администратора сети входит постоянно следить при таком роде информацией и своевременно обновлять версии программных продуктов, которые используются в работе фирмы.

    Физический доступ к серверам ограничен только работниками технического персонала.

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

    Также, на предприятии используются автоматизированные рабочие места АРМ:

    - „Электронный перевод" Система предназначена для приема-передачи денежных электронных переводов, внутренне корпоративных телеграмм, служебных сообщений.

    - „Автоматизирована система регистрируемой корреспонденции". Предназначенная для облегчения работы с регистрируемой корреспонденцией: призванная поднять надежность и скорость прохождения регистрируемой корреспонденции. На данный момент происходит ее внедрение в работу.

    Нажаль более детальная информация по этим системам находится под грифом ДСК.

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

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

    - отсутствие системы автоматического резервного копирования важной информации на серверах и рабочих станциях;

    - моральная изношенность части аппаратного обеспечения;

    - использование на рабочих станциях обветшалых операционных систем Windows 95 и 98;

    - недостаточная документованисть программных продуктов собственного производства АРМ;

    - частичная недостача компьютеризованных рабочих мест в период создания разнообразных форм отчетности.

    Для решения данних задач необходимо такое аппаратное забеспечення:

    - RAID-система создания гарантированной копии информации с возможностью горячей замены носителей с поддержкой системы записи и коррекции ошибок Raid5 для использования на серверах;

    - замена части персональных компьютеров на новых, создание новых компьютеризованных рабочих мест.

    Программное забеспечення:

    - Провести модернизацию операционных систем к Windows 2000 или Windows XP с последними исправлениями Service Pack 4 для Windows 2000 и Service Pack 1 для Windows XP;

    - Norton Ghost Enterprise Edition или аналогичное, которое позволяет проводить резервное копирование важной информации из рабочих станций на выделенный сервер или рабочую станцию.

    6. Индивидуальное задание.

    Моим индивидуальным задание было написать программу, которая автоматизировала процесс создания сортировальной таблицы подписных изданий.

    Задание следующее: в районе есть 28 отделений связи. Пусть 1-ше отделение выписало 30 экземпляров, 2-ге – 40, 3-те – 25, 4-те – 5, другие не выписали ни одного; в общем все отделения выписали 100 экземпляров какого-то издания. В таком виде к Львовской дирекции и идет заказ на подписавшееся на издание „нам нужно 100 экземпляров определенного издания". При этом информация о конкретном заказчике заносится к специальной картотеке форм СП-5 „1-ше отделения заказало 30 экземпляров определенного издания" и т. д..

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

    Виддилення1

    Виддилення2

    Виддилення3

    ...

    Отделение 28

    Видання

    30

    25

    4

    -

    Видання

    2

    5

    5

    5

    Видання

    3

    3

    3

    25

    Создается она на основе данных карточек СП-5 из картотеки.

    Заполнение такой таблицы трудоемкий процесс: один человек тратит на него в среднем 25-30 часов, то есть это приблизительно 3-4 дня непрерывной хлопотливой работы. При условии автоматизации этого процесса с помощью компьютерной техники, создание такой таблицы займет приблизительно 4-6 часов при условии введенной картотеки форм СП-5.

    Реализация.

    Дано задание я разделил на две части: создание картотеки периодических изданий и поддержания ее в актуальном состоянии; формирование сортировальной таблицы.

    Языком реализации был выбран язык Web-програмуваня PHP.

    Первая часть программы состоит из нескольких модулей. Сначала пользователь вводит в Web-форми индекс нужного издания; данные из формы попадают в скрипт, который проверяет корректность введенного индекса введенный индекс сравнивается с индексами всех подписных изданий Украины, для этого существует специальный электронный каталог изданий в виде файла базы данных, также, пользователь заполняет выведенную форму СП-5 для заданного издания. После выполнения этого скрипта управление передается другому модулю: этот модуль вносит введенные данные из Web-форми, созданной предыдущим скриптом в файл базы данных Data Base File.

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

    Висновки

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

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

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

    Список использованной литературы:

    1. Немет Э., Снайдер Г., Сибасс С., Хейн Т. Г., // Н50 UNIX: Руководство системного администратора. Для профессионалов / Пер. с англ. – Спб Питер; Киздательская группа BHV, 2002. – 928 c ил.

    2. Армстронг мл., Джеймс // А83 Секреты UNIX: 2-ое изд Пер. с англ. – М Издательский дом «Вильямс», 2001. – 1072 с ил. – Парал. тит. англ.

    3. Олифер В. Г., Олифер Н. А. Компьютернне сеты: технологии, протоколы. Учебник. - Питер, 2000 - 672 с.

    4. Николайчук Я. М., Яцкив В. В., Гринчишин Т. М. Перспективи создание телефонных линий на основе открытого оптического канала связи // Вестник Технологического университета Подолья. 2002. Т2– №3. – С. 47 – 50.
    Дополнение 1. Скрипт проверки правильности вводу индекса; вывод для заполнения формы СП-5.

    ?php

    Echo !DOCTYPE HTML PUBLIC \-//W3C//DTD HTML 3.2 Final//ru\

    Html

    Head

    Titleзаголовок документа/title

    /head

    BODY;

    //перевирка на правильность вводу индексу

    $type = $_GET['index'] + 10;

    If $type == 10 {

    echo Введен неправильный индекс.;

    return;

    }

    $finding_counter = 0;

    //видриваемо базу

    $db = dbase_open C:\apache2\htdocs\bd\kpit. dbf, 0;

    //килькисть записей в бази

    $records_counter = dbase_numrecords$db;

    //пошук по бази

    For $c=0; $c$records_counter; $c++ {

    $temp_record = dbase_get_record $db,$c;

    if $temp_record[0] == $_GET['index'] {

    $temp_record[1] = convert_cyr_string $temp_record[1], d, w; //перекодування названия издания из ср866 в win-1251

    $temp_record[1] = str_replace ъъ, '\ъ' $temp_record[1];

    echo Brиндекс:; echo $_GET['index'];

    echo Brвидання: $temp_record[1];

    $finding_counter = 1;

    }

    if $finding_counter == 1

    break;

    }

    if $finding_counter == 0 {

    echo Издания с индексом; echo $_GET['index']; echo не найдено.;

    return;

    }

    $today = getdate;

    Echo FORM Action=\/scripts/sp1_zl_in2.php\

    Количество комплектов:

    INPUT Type=\text\ Size=\1\ Name=\amount\

    br

    #160 01#160#160#160 02#160#160#160 03#160#160#160 04#160#160#160 05#160#160#160 06#160#160#160#160 07#160#160#160 08#160#160#160 09#160#160#160 10#160#160#160 11#160#160#160 12br

    INPUT Type=\text\ Size=\1\ Name=\01\

    INPUT Type=\text\ Size=\1\ Name=\02\

    INPUT Type=\text\ Size=\1\ Name=\03\

    INPUT Type=\text\ Size=\1\ Name=\04\

    INPUT Type=\text\ Size=\1\ Name=\05\

    INPUT Type=\text\ Size=\1\ Name=\06\

    INPUT Type=\text\ Size=\1\ Name=\07\

    INPUT Type=\text\ Size=\1\ Name=\08\

    INPUT Type=\text\ Size=\1\ Name=\09\

    INPUT Type=\text\ Size=\1\ Name=\10\

    INPUT Type=\text\ Size=\1\ Name=\11\

    INPUT Type=\text\ Size=\1\ Name=\12\

    br

    INPUT Type=\hidden\ Name=\index\ Value=\; echo $_GET['index']; echo \

    INPUT Type=\hidden\ Name=\name\ Value=\; echo $temp_record[1]; echo \

    INPUT Type=\hidden\ Name=\smsp\ Value=\; echo $temp_record[5]; echo \

    INPUT Type=\hidden\ Name=\month\ Value=\; echo $today['mon']; echo \

    INPUT Type=\hidden\ Name=\year\ Value=\; echo $today['year']; echo \

    BR Br

    INPUT Type=\submit\ Size=\5\ Value=\прийняти\

    /form;

    Echo /body

    /html;

    ?

    Дополнение 2. Скрипт переноса данных из Web-форми в файл базы данных.

    ?php

    $bd = dbase_open C:\\apache2\\htdocs\\bd\\2004_zl_sp1.DBF, 2;

    $arr_to_bd[0] = $_GET['index'];

    $arr_to_bd[1] = convert_cyr_string $_GET['name'], w, а;

    $arr_to_bd[2] = $_GET['amount'];

    $arr_to_bd[3] = $_GET['01'];

    $arr_to_bd[4] = $_GET['02'];

    $arr_to_bd[5] = $_GET['03'];

    $arr_to_bd[6] = $_GET['04'];

    $arr_to_bd[7] = $_GET['05'];

    $arr_to_bd[8] = $_GET['06'];

    $arr_to_bd[9] = $_GET['07'];

    $arr_to_bd[10] = $_GET['08'];

    $arr_to_bd[11] = $_GET['09'];

    $arr_to_bd[12] = $_GET['10'];

    $arr_to_bd[13] = $_GET['11'];

    $arr_to_bd[14] = $_GET['12'];

    $arr_to_bd[15] = $_GET['smsp'];

    $arr_to_bd[16] = $_GET['month'];

    $arr_to_bd[17] = $_GET['year'];

    //$records_counter = dbase_numrecords $bd;

    Dbase_add_record $bd, $arr_to_bd;

    //dbase_replace_record $bd, $arr_to_bd, $records_counter;

    Echo br $temp;

    Echo Запись добавлена. br;

    Dbase_close$bd;

    Echo A Href=\\\sp1_zl_in. html\ Ввести новую квитанцию. /a;

    ?

    Дополнение 3. Скрипт создания файла базы данных сортировальной таблицы.

    ?php

    $bd_1 = dbase_openc:\\apache2\\htdocs\\bd\\2004_1_sp5.DBF, 0;

    $bd_2 = dbase_openc:\\apache2\\htdocs\\bd\\2004_2_sp5.DBF, 0;

    $bd_3 = dbase_openc:\\apache2\\htdocs\\bd\\2004_3_sp5.DBF, 0;

    $bd_4 = dbase_openc:\\apache2\\htdocs\\bd\\2004_4_sp5.DBF, 0;

    $bd_5 = dbase_openc:\\apache2\\htdocs\\bd\\2004_5_sp5.DBF, 0;

    $bd_6 = dbase_openc:\\apache2\\htdocs\\bd\\2004_6_sp5.DBF, 0;

    $bd_7 = dbase_openc:\\apache2\\htdocs\\bd\\2004_7_sp5.DBF, 0;

    $bd_8 = dbase_openc:\\apache2\\htdocs\\bd\\2004_8_sp5.DBF, 0;

    $bd_9 = dbase_openc:\\apache2\\htdocs\\bd\\2004_9_sp5.DBF, 0;

    $bd_10 = dbase_openc:\\apache2\\htdocs\\bd\\2004_10_sp5.DBF, 0;

    $bd_11 = dbase_openc:\\apache2\\htdocs\\bd\\2004_11_sp5.DBF, 0;

    $bd_12 = dbase_openc:\\apache2\\htdocs\\bd\\2004_12_sp5.DBF, 0;

    $bd_13 = dbase_openc:\\apache2\\htdocs\\bd\\2004_13_sp5.DBF, 0;

    $bd_14 = dbase_openc:\\apache2\\htdocs\\bd\\2004_14_sp5.DBF, 0;

    $bd_15 = dbase_openc:\\apache2\\htdocs\\bd\\2004_15_sp5.DBF, 0;

    $bd_16 = dbase_openc:\\apache2\\htdocs\\bd\\2004_16_sp5.DBF, 0;

    $bd_17 = dbase_openc:\\apache2\\htdocs\\bd\\2004_17_sp5.DBF, 0;

    $bd_18 = dbase_openc:\\apache2\\htdocs\\bd\\2004_18_sp5.DBF, 0;

    $bd_19 = dbase_openc:\\apache2\\htdocs\\bd\\2004_19_sp5.DBF, 0;

    $bd_20 = dbase_openc:\\apache2\\htdocs\\bd\\2004_20_sp5.DBF, 0;

    $bd_21 = dbase_openc:\\apache2\\htdocs\\bd\\2004_21_sp5.DBF, 0;

    $bd_22 = dbase_openc:\\apache2\\htdocs\\bd\\2004_22_sp5.DBF, 0;

    $bd_23 = dbase_openc:\\apache2\\htdocs\\bd\\2004_23_sp5.DBF, 0;

    $bd_24 = dbase_openc:\\apache2\\htdocs\\bd\\2004_24_sp5.DBF, 0;

    $bd_25 = dbase_openc:\\apache2\\htdocs\\bd\\2004_25_sp5.DBF, 0;

    $bd_26 = dbase_openc:\\apache2\\htdocs\\bd\\2004_26_sp5.DBF, 0;

    $bd_27 = dbase_openc:\\apache2\\htdocs\\bd\\2004_27_sp5.DBF, 0;

    $bd_Zl = dbase_openc:\\apache2\\htdocs\\bd\\2004_zl_sp5.DBF, 0;

    $bd_ST = dbase_openc:\\apache2\\htdocs\\bd\\2004_04_st. DBF, 2;

    $records_counter = dbase_numrecords$bd_1;

    //внесення данных по ВЗ Бы. К

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_1, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[2] = $temp_record_ST[2] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по ВЗ Бибщани

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_2, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[3] = $temp_record_ST[3] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по ВЗ Борткив

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_3, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[4] = $temp_record_ST[4] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по ВЗ В. Вильшаниця

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_4, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[5] = $temp_record_ST[5] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по ВЗ Вороняки

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_5, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[6] = $temp_record_ST[6] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по ВЗ Глиняни

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_6, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[7] = $temp_record_ST[7] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по ВЗ Гологори

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_7, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[8] = $temp_record_ST[8] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_8, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[9] = $temp_record_ST[9] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_9, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[10] = $temp_record_ST[10] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_10, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[11] = $temp_record_ST[11] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_11, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[12] = $temp_record_ST[12] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_12, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[13] = $temp_record_ST[13] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_13, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[14] = $temp_record_ST[14] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_14, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[15] = $temp_record_ST[15] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_15, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[16] = $temp_record_ST[16] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_16, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[17] = $temp_record_ST[17] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_17, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[18] = $temp_record_ST[18] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_18, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[19] = $temp_record_ST[19] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_19, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[20] = $temp_record_ST[20] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_20, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[21] = $temp_record_ST[21] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_21, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[22] = $temp_record_ST[22] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_22, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[23] = $temp_record_ST[23] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_23, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[24] = $temp_record_ST[24] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_24, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[25] = $temp_record_ST[25] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_25, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[26] = $temp_record_ST[26] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_26, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[27] = $temp_record_ST[27] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по Вз

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_27, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    for $q=0;$q=29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[28] = $temp_record_ST[28] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    //внесення данных по ВЗ Золочив

    $records_counter = dbase_numrecords$bd_zl;

    For $i=1; $i=$records_counter; $i++ {

    $temp_record = dbase_get_record $bd_Zl, $i;

    $records_counter_ST = dbase_numrecords$bd_st;

    for $e=1; $e=$records_counter_ST; $e++ {

    $temp_record_ST = dbase_get_record $bd_ST, $e;

    if $temp_record[0] == $temp_record_ST[0] {

    $temp_rec[0] = $temp_record_ST[0];

    $temp_rec[1] = $temp_record_ST[1];

    for $q=2;$q29;$q++

    $temp_rec[$q] = $temp_record_ST[$q];

    $temp_rec[29] = $temp_record_ST[29] + $temp_record[6];

    dbase_replace_record $bd_ST, $temp_rec, $e;

    break;

    }

    }

    }

    Dbase_close $bd_1;

    Dbase_close $bd_2;

    Dbase_close $bd_3;

    Dbase_close $bd_4;

    Dbase_close $bd_5;

    Dbase_close $bd_6;

    Dbase_close $bd_7;

    Dbase_close $bd_8;

    Dbase_close $bd_9;

    Dbase_close $bd_10;

    Dbase_close $bd_11;

    Dbase_close $bd_12;

    Dbase_close $bd_13;

    Dbase_close $bd_14;

    Dbase_close $bd_15;

    Dbase_close $bd_16;

    Dbase_close $bd_17;

    Dbase_close $bd_18;

    Dbase_close $bd_19;

    Dbase_close $bd_20;

    Dbase_close $bd_21;

    Dbase_close $bd_22;

    Dbase_close $bd_23;

    Dbase_close $bd_24;

    Dbase_close $bd_25;

    Dbase_close $bd_26;

    Dbase_close $bd_27;

    Dbase_close $bd_Zl;

    Dbase_close $bd_ST;

    ?

    Дополнение 4. Скрипт вывода сортировальной таблицы для печати.

    ?php

    $bd = dbase_open C:\\apache2\\htdocs\\bd\\2004_04_st. DBF, 0;

    $rec_counter = dbase_numrecords $bd;

    Echo TABLE Border

    ;

    Echo Trtdиндекс/tdtdназва видання/tdtdб. К/tdtdбиб/tdtdбор/tdtdв. В/TDTDВор/TDTDГлн/TDTDГол/TDTDГонч/TDTDЄл/TDTDЖук/TDTDЗаст/TDTDКур/TDTDКол/TDTDНов/TDTDПидг/TDTDПлг/TDTDПом/TDTDПол/TDTDПоч/TDTDРемз/TDTDСас/TDTDСкв/TDTDСлв/TDTDСнв/TDTDСтр/TDTDЧер/TDTDЯсн/TDTDЗол/TD/TR;

    For $i=1; $i=$rec_counter; $i++ {

    // if $i==100 break;

    $temp_record2 = dbase_get_record $bd, $i;

    if $temp_record2[2] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    echo Td$temp_record2[1]/td;

    for $t=2; $t29; $t++

    if $temp_record2[$t] == 0

    echo Tdcenter#160/center/td;

    else

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[3] != 0{

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[4] != 0{

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[5] != 0{

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[6] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[7] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[28]/center/td/tr;}

    Else

    if $temp_record2[8] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[28]/center/td/tr;}

    Else

    if $temp_record2[9] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[10] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[11] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[12] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[13] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[14] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[15] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[16] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[17] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[18] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[19] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[20] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[21] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[22] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[23] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[24] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[25] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[26] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[27] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[28] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    Else

    if $temp_record2[29] != 0 {

    echo Trtdcenter$temp_record2[0]/center/td;

    for $t=1; $t29; $t++

    echo Tdcenter$temp_record2[$t]/center/td;

    echo Tdcenter$temp_record2[29]/center/td/tr;}

    }

    Echo

    /table

    ;

    Dbase_close $bd;

    ?