СОДЕРЖАНИЕ
1. Введение
2. Теоретическая часть
2.1. Разработка программных продуктов
2.1.1. Эффективность и оптимизация программ
2.1.2. Обеспечение качества программного продукта
3. Назначение и область применения программного продукта
4. Требование к программному продукту
4.1. Требования к функциональным характеристикам
4.1.1. Программа должна обеспечивать возможность выполнения
следующих функций
4.1.2. Организация входных и выходных данных
4.2. Требования к надёжности
4.2.1. Предусмотреть контроль вводимой информации
4.3. Требования к составу и параметрам технических средств
4.4. Требования к программной совместимости
5. Программная документация модуля «Ведомость зарплаты»
5.1. Исходные данные и результат работы программы
5.1.1. Исходный файл
5.1.2. Результирующий файл
5.2. Блок-схемы индивидуальной части курсовой работы
5.3. Программный модуль «Ведомость зарплаты»
Заключение
Приложение
Список литературы
1. ВВЕДЕНИЕ
Для решения простейших задачпрограммирования необходимо знать средства и возможности конкретного языка программирования.По мере усложнения задач знание свойств языка, оставаясь необходимым, уже неявляется фактором, определяющим успех проектирования программы. На первый планвыдвигаются знание и умение конструировать логику вычислительного процесса вцелом, а не отдельных его шагов. Определяющими здесь становятся вопросыметодологии и технологии программирования. Технология программирования играларазную роль на разных этапах развития программирования. По мере повышениямощности компьютеров и развития средств и методологии программирования росла исложность решаемых на компьютерах задач, что привело к повышенному вниманию ктехнологии программирования. Резкое удешевление стоимости компьютеров и, вособенности, стоимости хранения информации на компьютерных носителях привело кширокому внедрению компьютеров практически во все сферы человеческойдеятельности, что существенно изменило направленность технологиипрограммирования. Человеческий фактор стал играть в ней решающую роль.Сформировалось достаточно глубокое понятие качества программных продуктов (ПП),причем предпочтение стало отдаваться не столько эффективности ПП, сколькоудобству работы с ним для пользователей (не говоря уже о его надежности). Широкоеиспользование компьютерных сетей привело к интенсивному развитию распределенныхвычислений, дистанционного доступа к информации и электронного способа обменасообщениями между людьми. Компьютерная техника из средства решения отдельныхзадач все более превращается в средство информационного моделирования реальногои мыслимого мира, способное просто отвечать людям на интересующие их вопросы.Начинается этап глубокой и полной информатизации (компьютеризации)человеческого общества. Все это ставит перед технологией программирования новыеи достаточно трудные проблемы.
2. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
2.1. Разработка программных продуктов
Процесс разработкипрограммных продуктов — это сумма различных видов деятельности, необходимых дляпреобразования требований пользователей в программную систему.Основные этапы разработки программных продуктов:
Требования – четкое определениетого, что пользователь ожидает от готового продукта.
Цели – задача, котораяставится перед окончательным результатом и самим проектом.
Предварительный внешнийпроект –определение взаимодействий с пользователем, но без рассмотрения деталей (форматввода/вывода).
Детальный внешний проект – завершение определениявзаимодействий с пользователем, описание всех потребностей ввода/вывода.
Архитектура системы – разложение системы намножество программ и определение сопряжения между ними.
Проект базы данных – определение всехвнешних программной системы структур данных.
Внешний проект модуля – определение всехсопряжении модуля.
Проект логики модуля – разработка логикимодуля, результат – текст модуля.
2.1.1. Эффективность и оптимизацияпрограмм
Эффективность ПП обеспечиваетсяпринятием подходящих решений на разных этапах его разработки, начиная сразработки его архитектуры. Особенно сильно на эффективность ПП (особенно по памяти)влияет выбор структуры и представления данных. Но и выбор алгоритмов,используемых в тех или иных программных модулях, а также особенности ихреализации (включая выбор языка программирования) может существенно повлиять наэффективность ПС. При этом постоянно приходится разрешать противоречие междувременнόй эффективностью и эффективностью по памяти (ресурсам). Поэтомувесьма важно, чтобы в спецификации качества были явно указаны приоритеты иликоличественное соотношение между показателями этих примитивов качества. Следуеттакже иметь в виду, что разные программные модули по-разному влияют наэффективность ПП в целом: одни модули могут сильно влиять на временнýюэффективность и практически не влиять на эффективность по памяти, а другиемогут существенно влиять на общий расход памяти, не оказывая заметного влиянияна время работы ПП. Более того, это влияние (прежде всего, в отношении временнóйэффективности) заранее (до окончания реализации ПП) далеко не всегда можноправильно оценить
С учетом сказанного, рекомендуетсяпридерживаться следующих принципов для обеспечения эффективности ПП:
- сначала нужно разработать надежное ПП,а потом уж заниматься доведением его эффективности до требуемого уровня всоответствии с его спецификацией качества;
- для повышения эффективности ПП,прежде всего, нужно использовать оптимизирующий компилятор — это можетобеспечить требуемую эффективность;
- если эффективность ПП неудовлетворяет спецификации его качества, то найдите самые критические модули сточки зрения требуемой эффективности ПП; эти модули и попытайтесьоптимизировать в первую очередь путем их ручной переделки;
- не следует заниматься оптимизациеймодуля, если этого не требуется для достижения требуемой эффективности ПП.
Для отыскания критических модулей сточки зрения временнoй эффективности ПП потребуется получить распределение помодулям времени работы ПП путем соответствующих измерений во время выполненияПП. Это может быть сделано с помощью динамического анализатора (специальногопрограммного инструмента), который может определить частоту обращения к каждомумодулю в процессе применения ПП.
2.1.2. Обеспечение качествапрограммного продукта
Разработка программного обеспечения — это, прежде всего, нахождение способов получения качественного программного продукта.Что мы подразумеваем, когда мы говорим о «качестве» программногообеспечения? Качество программного обеспечения может измеряться во внешниххарактеристиках (например, легкий в использовании, выполняется быстро) или вовнутренних характеристиках (например, модульная конструкция, читабельный код).
Каждый ПП должен выполнятьопределенные функции, т.е. делать то, что задумано. Хороший ПП должен обладатьеще целым рядом свойств, позволяющим успешно его использовать в течениидлительного периода, т.е. обладать определенным качеством. Качество ПП — это совокупность его черт ихарактеристик, которые влияют на его способность удовлетворять заданныепотребности пользователей. Это не означает, что разные ПП должны обладать однойи той же совокупностью таких свойств в их наивысшей степени. Этому препятствуеттот факт, что повышение качества ПП по одному из таких свойств часто может бытьдостигнуто лишь ценой изменения стоимости, сроков завершения разработки иснижения качества этого ПП по другим его свойствам. Качество ПП являетсяудовлетворительным, когда оно обладает указанными свойствами в такой степени,чтобы гарантировать успешное его использование.
Совокупность свойств ПП, котораяобразует удовлетворительное для пользователя качество ПП, зависит от условий ихарактера эксплуатации этого ПП, т.е. от позиции, с которой должнорассматриваться качество этого ПП. Поэтому при описании качества ПП, преждевсего, должны быть фиксированы критерии отбора требуемых свойств ПП. Внастоящее время критериями качества ПП принято считать:
- функциональность
- надежность
- легкостьприменения
- эффективность
- сопровождаемость
- мобильность
Функциональность — это способность ПП выполнять наборфункций, удовлетворяющих заданным или подразумеваемым потребностямпользователей. Набор указанных функций определяется во внешнем описании ПП.
Надежность подробно обсуждалась впервой лекции.
Легкость применения — это характеристики ПП, которые позволяютминимизировать усилия пользователя по подготовке исходных данных, применению ППи оценке полученных результатов, а также вызывать положительные эмоцииопределенного или подразумеваемого пользователя.
Эффективность — это отношение уровня услуг,предоставляемых ПП пользователю при заданных условиях, к объему используемыхресурсов.
Сопровождаемость — это характеристики ПП, которыепозволяют минимизировать усилия по внесению изменений для устранения в немошибок и по его модификации в соответствии с изменяющимися потребностямипользователей.
Мобильность — это способность ПП быть перенесеннымиз одной среды (окружения) в другую, в частности, с одной ЭВМ на другую.
Функциональность и надежностьявляются обязательными критериями качества ПП, причем обеспечение надежностибудет красной нитью проходить по всем этапам и процессам разработки ПП. Остальныекритерии используются в зависимости от потребностей пользователей в соответствиис требованиями к ПП.
3. НАЗНАЧЕНИЕ И ОБЛАСТЬ ПРИМЕНЕНИЯ
Программный модуль разрабатывается наоснове учебного плана специальности «Программное обеспечение вычислительнойтехники и автоматизированных систем».
Программный модуль представляет собойведомость зарплаты, позволяющий пользователю рассчитывать средний размероклада, сумму всех премий сотрудников, выводить сведения о сотрудниках, чьязарплата меньше 3000 рублей и чья премия выше 1000 рублей.
4. ТРЕБОВАНИЕ К ПРОГРАММНОМУ ПРОДУКТУ
4.1. Требования к функциональнымхарактеристикам
4.1.1. Программа должна обеспечиватьвозможность выполнения следующих функций:
- вывод шапкитаблицы (SH);
- вывод данныходной записи (P);
- создание файла (SOZ);
- дополнение файлановыми записями ();
- запись данных вфайл (ZF);
- чтение данных изфайла (CHT);
- модификация рядазаписей файла ();
- поиск записейфайла с выводом найденных записей или сообщения о неуспешном поиске (POISK);
- отсортироватьтаблицу по возрастанию ();
- удаление записейиз типизированного файла ();
- функция дляфильтрации строки – удаления пробелов (FILTR).
4.1.2. Организация входных ивыходных данных:
- Входные данныепоступают из файла “Ish.txt”
- Выходные данныепоступают в текстовый файл “REZYL.txt”;
4.2. Требования к надёжности
4.2.1. Предусмотреть контрольвводимой информации
Нет контроля вводимой информации.
4.3. Требования к составу ипараметрам технических средств:
Система должна работать на IBM – совместимых персональныхкомпьютерах.
Минимальная конфигурация:
тип процессора Pentium и выше
объём оперативного запоминающегоустройства 32 Мб и более
объём свободного места на жёсткомдиске.40 Мб
Рекомендуемая конфигурация:
тип процессора Pentium II и выше
объём оперативного запоминающегоустройства 128 Мб и более
объём свободного места на жёсткомдиске 60 Мб
4.4. Требования к программнойсовместимости
Программа должна работать подуправлением семейства операционных систем Win 32 (Windows95/98/2000/ME/XP и т.п.)и ОС MS DOS версии не ниже 5.5. Базовый язык программирования — Turbo Pascal 7.0.
5. ПРОГРАММНАЯ ДОКУМЕНТАЦИЯ МОДУЛЯ
«ВЕДОМОСТЬ ЗАРПЛАТЫ»
5.1. Исходные данные и результатработы программы
5.1.1.Исходный файл:____________________________________________________________
| fio | oklad | premi9 | nalog | Itogo|
|_________________________|________|________|________|_________|
| Ivanov I.I. | 1000.00 | 100.53 | 166.50| 9004.50 |
|_________________________|________|________|________|_________|
| Petrov P.P. | 2000.00 | 200.62 | 167.50| 1864.40 |
|_________________________|________|________|________|_________|
| Repina G.G. | 3000.00 | 300.43 | 164.50| 3150.50 |
|_________________________|________|________|________|_________|
| Sidirov F.F. | 4000.00 | 400.44 | 148.10| 4256.50 |
|_________________________|________|________|________|_________|
| Kotov K.K. | 1512.00 | 500.67 | 168.40| 1864.50 |
|_________________________|________|________|________|_________|
| Somova S.S. | 2654.00 | 600.69 | 168.10| 3264.40 |
|_________________________|________|________|________|_________|
| Dedov D.D. | 1655.00 | 700.56 | 684.10| 1680.40 |
|_________________________|________|________|________|_________|
| Popova P.P. | 3545.00 | 800.85 | 165.40| 4210.60 |
|_________________________|________|________|________|_________|
| Sidova S.S. | 1658.00 | 900.75 | 168.10| 2566.10 |
|_________________________|________|________|________|_________|
| Komov K.K. | 6574.00 | 1000.95 | 642.10| 7000.60 |
|_________________________|________|________|________|_________|
Ivanov I.I. 1000.0 100.53 166.59004.5
Petrov P.P. 2000.0 200.62 167.51864.4
Repina G.G. 3000.0 300.43 164.53150.5
Sidirov F.F. 4000.0 400.44148.1 4256.5
Kotov K.K. 1512.0 500.67 168.41864.5
Somova S.S. 2654.0 600.69 168.13264.4
Dedov D.D. 1655.0 700.56 684.11680.4
Popova P.P. 3545.0 800.85 165.44210.6
Sidova S.S. 1658.0 900.75 168.12566.1
Komov K.K. 6574.0 1000.95 642.17000.6
5.1.2. Результирующий Файл:
a) Ведомостьзарплаты:
Vivod zarplati
____________________________________________________________
| fio | oklad | premi9 | nalog| Itogo |
|_________________________|________|________|________|_________|
| Ivanov I.I. | 1000.00 | 100.53| 166.50 | 9004.50 |
|_________________________|________|________|________|_________|
| Petrov P.P. | 2000.00 | 200.62| 167.50 | 1864.40 |
|_________________________|________|________|________|_________|
| Repina G.G. | 3000.00 | 300.43| 164.50 | 3150.50 |
|_________________________|________|________|________|_________|
| Sidirov F.F. | 4000.00 |400.44 | 148.10 | 4256.50 |
|_________________________|________|________|________|_________|
| Kotov K.K. | 1512.00 | 500.67| 168.40 | 1864.50 |
|_________________________|________|________|________|_________|
| Somova S.S. | 2654.00 | 600.69| 168.10 | 3264.40 |
|_________________________|________|________|________|_________|
| Dedov D.D. | 1655.00 | 700.56| 684.10 | 1680.40 |
|_________________________|________|________|________|_________|
| Popova P.P. | 3545.00 | 800.85| 165.40 | 4210.60 |
|_________________________|________|________|________|_________|
| Sidova S.S. | 1658.00 | 900.75| 168.10 | 2566.10 |
|_________________________|________|________|________|_________|
| Komov K.K. | 6574.00 | 1000.95 | 642.10 | 7000.60|
|_________________________|________|________|________|_________|
b) Нахождениесреднего размера оклада:
Vivod zarplati
____________________________________________________________
| fio | oklad | premi9 | nalog | Itogo|
|_________________________|________|________|________|_________|
| Ivanov I.I. | 1000.00 | 100.53 | 166.50| 9004.50 |
|_________________________|________|________|________|_________|
| Petrov P.P. | 2000.00 | 200.62 | 167.50| 1864.40 |
|_________________________|________|________|________|_________|
| Repina G.G. | 3000.00 | 300.43 | 164.50| 3150.50 |
|_________________________|________|________|________|_________|
| Sidirov F.F. | 4000.00 | 400.44 | 148.10| 4256.50 |
|_________________________|________|________|________|_________|
| Kotov K.K. | 1512.00 | 500.67 | 168.40| 1864.50 |
|_________________________|________|________|________|_________|
| Somova S.S. | 2654.00 | 600.69 | 168.10| 3264.40 |
|_________________________|________|________|________|_________|
| Dedov D.D. | 1655.00 | 700.56 | 684.10| 1680.40 |
|_________________________|________|________|________|_________|
| Popova P.P. | 3545.00 | 800.85 | 165.40| 4210.60 |
|_________________________|________|________|________|_________|
| Sidova S.S. | 1658.00 | 900.75 | 168.10| 2566.10 |
|_________________________|________|________|________|_________|
| Komov K.K. | 6574.00 | 1000.95 | 642.10| 7000.60 |
|_________________________|________|________|________|_________|
Sredniy razmer oklada 5519.60
c) Сведенья осотрудниках с окладом менее 3000 рублей
Svedenia o sotrudnikah sokladom menshe 3000 rub:
Vivod zarplati
____________________________________________________________
| fio | oklad | premi9 | nalog| Itogo |
|_________________________|________|________|________|_________|
| Ivanov I.I. | 1000.00 | 100.53| 166.50 | 9004.50 |
|_________________________|________|________|________|_________|
| Petrov P.P. | 2000.00 | 200.62| 167.50 | 1864.40 |
|_________________________|________|________|________|_________|
| Kotov K.K. | 1512.00 | 500.67| 168.40 | 1864.50 |
|_________________________|________|________|________|_________|
| Somova S.S. | 2654.00 | 600.69| 168.10 | 3264.40 |
|_________________________|________|________|________|_________|
| Dedov D.D. | 1655.00 | 700.56| 684.10 | 1680.40 |
|_________________________|________|________|________|_________|
| Sidova S.S. | 1658.00 | 900.75| 168.10 | 2566.10 |
|_________________________|________|________|________|_________|
d) Сведенья осотрудниках с премией больше 1000 рублей
Svedenia o sotrudnikah spremiey bolshe 1000 rub:
Vivod zarplati
____________________________________________________________
| fio | oklad | premi9 | nalog| Itogo |
|_________________________|________|________|________|_________|
| Komov K.K. | 6574.00 |1000.95 | 642.10 | 7000.60 |
|_________________________|________|________|________|_________|
e) Суммарная суммапремий всех сотрудников
Vivod zarplati
____________________________________________________________
| fio | oklad | premi9 | nalog| Itogo |
|_________________________|________|________|________|_________|
| Ivanov I.I. | 1000.00 | 100.53| 166.50 | 9004.50 |
|_________________________|________|________|________|_________|
| Petrov P.P. | 2000.00 | 200.62| 167.50 | 1864.40 |
|_________________________|________|________|________|_________|
| Repina G.G. | 3000.00 | 300.43| 164.50 | 3150.50 |
|_________________________|________|________|________|_________|
| Sidirov F.F. | 4000.00 |400.44 | 148.10 | 4256.50 |
|_________________________|________|________|________|_________|
| Kotov K.K. | 1512.00 | 500.67| 168.40 | 1864.50 |
|_________________________|________|________|________|_________|
| Somova S.S. | 2654.00 | 600.69| 168.10 | 3264.40 |
|_________________________|________|________|________|_________|
| Dedov D.D. | 1655.00 | 700.56| 684.10 | 1680.40 |
|_________________________|________|________|________|_________|
| Popova P.P. | 3545.00 | 800.85| 165.40 | 4210.60 |
|_________________________|________|________|________|_________|
| Sidova S.S. | 1658.00 | 900.75| 168.10 | 2566.10 |
|_________________________|________|________|________|_________|
| Komov K.K. | 6574.00 | 1000.95| 642.10 | 7000.60 |
|_________________________|________|________|________|_________|
Summa premiy 5506.49
f) Поиск записейфайла по сочетанию двух заданных поисковых признаков с помощью “ppoi.dat”:
Нахождение в ведомости зарплаты людейс ФИО Sidova S.S. и окладом1658.00.
Naiti v baze svedenialud9h s fio = Sidova S.S. i okladom 1658.00
Vivod zarplati
____________________________________________________________
| fio | oklad | premi9 | nalog| Itogo |
|_________________________|________|________|________|_________|
| Sidova S.S. | 1658.00 | 900.75| 168.10 | 2566.10 |
|_________________________|________|________|________|_________|
5.2. Блок-схемы индивидуальной части курсовой работы
Блок-схема процедуры а
/>
Блок-схема процедуры c1/> /> /> /> /> /> /> /> />
/>Блок-схема процедуры b1
/>Блок-схема процедуры d
5.3. Программный модуль «Ведомость зарплаты»
Program Zarplata;
CONST N=5; {количество записей вфайле}
TYPE ST=ARRAY[1..4] OFSTRING[80];
ST1=STRING[12];
STR=RECORD {состав записи}
fio:string[30];
oklad:real;
premi9:real;
nalog:real;
itogo:real;
END;
FL=File of STR; {имя длятипизированного файла}
CONST C:ST=( {массив шапки таблицы}
' Vivod zarplati ',
'_________________________________________________________',
'| fio | oklada | premi9 | nalog | Itogo |',
'|________________________|_______|________|________|________|');
Var
Z:STR; {запись со сведениями озарплате}
{для сортировки}
z1,z2:STR;
k:integer;
ok:boolean;
i,j:BYTE; { неоходимы дляогранизации циклов}
str1:STR;
FI, {файл для исходных данных}
FR:text; {файл для результатов}
f:FL; {типизированный файл}
{Вывод шапки таблицы}
PROCEDURE SH;
Begin
Writeln(FR);
FOR I:=1 TO 5 DOWriteln(FR,C[i]);
END;
{Опережающее описание функции}
FUNCTIONFILTR(STR:ST1):st1;
FORWARD;
{Вывод одной строки таблицы}
PROCEDURE P;
BEGIN
WITH Z DO
Writeln(FR,'| ',fio:15,' |',oklad:10:2,' | ',premi9:10:2,' | ',nalog:10:2,' | ',itogo:10:2,' |');
Writeln(FR,c[4]);
END;
{Запись данных в файл}
procedure ZF (NF:ST1);
var FID:text;
begin
assign(FID,'d:\Ish.txt');{связывание FID с физическим файлом NF}
reset (FID); {открыть FID для чтения}
with Z do
while not seekeof (FID) do
begin {Ввод данных строки:}
readln(FID,fio,oklad,premi9,nalog,itogo);
fio:=filtr(fio); {фильтрация naim}
write (F,Z); {вызовпроцедуры вывода в F}
end;
close(FID);
end; {конец процедуры ZF}
procedure ZF1 (NF:ST1);
var FID:text;
begin
assign(FID,'d:\pdop.dat');{связывание FID с физическим файлом NF}
reset (FID); {открыть FID для чтения}
with Z do
while not seekeof (FID) do
begin {Ввод данных строки:}
readln(FID,fio,oklad,premi9,nalog,itogo);
fio:=filtr(fio); {фильтрация name}
write (F,Z); {вызовпроцедуры вывода в F}
end;
close(FID);
end; {конец процедуры ZF1}
{_Опережающее описание процедурычтения записей файла_}
procedure CHT;
FORWARD;
{_Создание типизированного файла}
procedure SOZ;
begin
Writeln(fr,'Sozdaniefile');
assign(f,'d:\psoz.dat');
rewrite(F); {открыть F для созданияфайла}
ZF ('d:\pSOZ.dat'); {вызов ZF длясоздания файла}
close(F); {закрыть F}
write(FR, #10#13,'Poslesozdania file: ');
CHT;
end;
{Подсчет среднего размера оклада}
Procedure a;
Var s,sr:real; {сумма, среднийразмер оклада}
Begin
Assign(FI,'d:\psoz.dat');{связь Fi с физическим файлом}
Reset(Fi);Reset(f); {открыть файлы для чтения}
seek(f,0); {ставим указатель напервую позицию}
s:=0;
sr:=0;
Repeat
read(f,z); {чтениеданных}
s:=s+z.oklad; {подсчет суммы}
until eof(f);
sr:=s/n; {подсчетсреднего}
Writeln(FR);
Writeln(FR,'Sredniy razmeroklada',sr:8:2); {вывод результата}
end;
{Поиск сотрудников с премией >1000 рублей}
Procedure c1;
Begin
Assign(FI,'d:\psoz.dat'); {связь Fi с физическим файлом}
Reset(Fi); {открыть Fi для чтения}
seek(f,0); {ставим указатель напервую позицию}
Writeln(FR);
Writeln(fr,#10#13,'Svedeniao sotrudnikah s premiey bolshe 1000 rub: ');
sh;
Repeat
read(f,z); {чтениезаписей}
if z.premi9>1000 thenP;
until eof(f);
end;
{Поиск зарплаты
Procedure b1;
Begin
Assign(FI,'d:\psoz.dat'); {связь Fi сфизическим файлом}
Reset(Fi); {открыть Fi для чтения}
seek(f,0); {ставим указатель напервую позицию}
Writeln(FR);
Writeln(fr,#10#13,'Svedeniao sotrudnikah s okladom menshe 3000 rub: ');
sh;
Repeat
read(f,z); {чтениезаписей}
if z.oklad
until eof(f);
end;
{Поиск суммарной суммы премий всехсотрудников}
Procedure d;
Var s,sr:real; {сумма, средняястоимость}
Begin
Assign(FI,'d:\psoz.dat');{связь Fi с физическим файлом}
Reset(Fi);Reset(f); {открыть файлы для чтения}
seek(f,0); {ставим указатель напервую позицию}
s:=0;
sr:=0;
Repeat
read(f,z); {чтениеданных}
s:=s+z.premi9; {подсчет суммы}
until eof(f);
sr:=s; {подсчет среднего}
Writeln(FR);
Writeln(FR,'Summa premiy',sr:8:2); {вывод результата}
end;
{Поиск по любому сочетанию двухпоисковых признаков}
Procedure poisk;
Label MK;
var pfio:string[30];poklad:real;
begin
Assign(fi,'d:\ppoi.dat');{связь Fi с физическим файлом}
Reset(fi); reset(f); {открыть файлы для чтения}
Repeat
Read(FI,pfio,poklad); {ввод требуемых данных}
WRITELN(FR,'Naiti v bazesvedenia lud9h s fio = ',pfio,' i okladom ',poklad:6:2);
pfio:=filtr(pfio);
IF (pfio=' ')AND(poklad=0)THEN
BEGIN {анализ наличия требуемых данных}
WRITELN(FR,'Net dannihdlai poiska');
CONTINUE
END;
seek(f,0); {указатель в начало файла}
repeat {начало поиска в файле F}
read(f,z); {чтение очередной записи}
IF ( pos(pfio,z.fio)>0)and(poklad=z.oklad)THEN
begin
sh;
P;
GoTo MK;
end; {сведенья найдены}
until eof(f);
MK:UNTIL EOF (FI);
CLOSE(FI); Close(f);
END;
{Функция удаления лишних пробелов}
Function filtr;
Var i,j,l:integer;
Begin
l:=length(str); {определение длиныстроки}
For i:= 1 to l do {перебор номеровсимволов слева направо}
IF STR[i]' ' THEN {поиск«непробела» слева}
FOR J:=L DOWNTO I DO {поиск номеровсимвола справа}
If STR[j]' ' THEN {поиск«непробела» справа}
BEGIN
FILTR:=COPY(STR,I,j-i+1); {копирование строки}
EXIT {выход из функции}
END;
FILTR:=' '; {возврат пустой строки}
EnD;
{Чтение записей из типизированного файла}
procedure CHT;
begin reset (F);
SH;
Repeat
read(F, Z);
P;
until eof(f);
close (F);
end; {конец процедуры CHT}
Begin
ASSIGN(FR,'d:\rezyl.txt');{присоединение к типизированному файлу}
Rewrite(FR); {открыть файлрезультатов для создания}
{вызов прцедур:}
soz; {создание типизированного файла}
cht; {чтение типизированного файла}
a; {Подсчет среднего размера оклада}
b1; {Поиск зарплаты
c1; {Поиск сотрудников с премией >1000 рублей}
d; {Поиск суммарной суммы премий всехсотрудников}
poisk; {поиск по любому сочетаниюдвух поисковых признаков}
CLOSE(FR); {закрыть файл срезультатами}
END.
ЗАКЛЮЧЕНИЕ
В разработке технического проекта«Ведомость зарплаты» использовались практические и теоретические знания инавыки, полученные в ходе обучения.
Итогом работы является программныймодуль «Ведомость зарплаты», который можно применить в качестве базы данных на предприятиях,в бухгалтерском учёте, в налоговой инспекции.
В данном отчете я постараласьотразить все стадии разработки программного продукта. Он очень трудоемкий ивключает в себя множество этапов и полностью соответствует заданным требованиям.
ПРИЛОЖЕНИЕ
1. Введение;
2. Теоретическая часть;
2.1. Разработка программных продуктов
2.1.1. Эффективность и оптимизацияпрограмм
2.1.2. Обеспечение качествапрограммного продукта
3. Назначение и область примененияпрограммного продукта;
4. Требование к программному продукту
4.1. Требования к функциональным характеристикам
4.1.1. Программа должна обеспечиватьвозможность выполнения следующих функций:
4.1.1.1.Обработка данныхтипизированного файла. Обработка данных должна включать процедуры безпараметров:
- вывод шапкитаблицы;
- вывод данныходной записи;
- создание файла;
- дополнение файлановыми записями;
- запись данных вфайл;
- чтение данных изфайла;
- модификация рядазаписей файла;
- поиск записейфайла с выводом найденных записей или сообщения о неуспешном поиске:
* по одномупоисковому признаку (вариант задания по номеру в журнале, шифру группы, подбуквами a, b, c, d);
28. Ведомость зарплатыФИО Размер оклада
Размер
премии Размер подоходного налога (13%)
Итого к
выплате 230105-06у
a. Посчитать поле средний размер оклада
b. Вывести в файл сведенья о сотрудниках, чья зарплата меньше 3000 рублей
c. Вывести в файл сведенья о сотрудниках, чья премия превышает 1000 рублей
d. Суммарную сумму премий всех сотрудников
* по сочетанию двухзаданных поисковых признаков (на выбор студента по смыслу индивидуальнойчасти); По результатам поиска вывести найденные записи или сообщение онеуспешном поиске;
- отсортировать таблицу по возрастанию;
- удаление записей из типизированногофайла;
- функция для фильтрации строки –удаления пробелов.
-
4.1.1.2. Организация входных ивыходных данных:
- Входные данные поступают из файла;
- Выходные данные поступают в текстовыйфайл;
4.2. Требования к надёжности
4.2.1. Предусмотреть контрольвводимой информации;
4.3. Требования к составу ипараметрам технических средств;
4.4. Требования к программнойсовместимости
5. Требования к программнойдокументации
5.1. Исходные данные и результатработы программы должны быть отражены в отчёте.
5.2. Схема взаимодействия программ(блок-схема) и блок-схемы индивидуальной части курсовой работы;
5.3. Разрабатываемые программныемодули должны быть самодокументированны, т. е. тексты программ должны содержатьвсе необходимые документарии.
5.4. Разрабатываемая программа должнавключать справочную информацию о работе программы, описания методов сортировкии подсказки к ходу алгоритма.
5.5. В состав сопровождающейдокументации должны входить:
5.5.1. Пояснительная записка на 25-30листах, содержащая описание разработки.
6. Источники, используемые приразработке.
СПИСОК ЛИТЕРАТУРЫ
1. Е.А. Жоголев.Введение в технологию программирования (конспект лекций). — М.:«ДИАЛОГ-МГУ», 1994.
2. Дж. Фокс.Программное обеспечение и его разработка. — М.: Мир, 1985.
3. В.В. Липаев, Е.НФилиппов. Мобильность программ и данных в открытых информационных системах. — М.: Научная книга, 1997.
4. М.М.Горбунов-Посадов. Конфигурации программ. Рецепты безболезненных изменений. –М.: «Малип», 1994.
5. Д. Ван Тассел. Стиль,разработка, эффективность, отладка и испытание программ. — М.: Мир, 1985
6. CASE: Компьютерноепроектирование программного обеспечения. — Издательство Московского университета,1994.
7. http://www.5ballov.ru/