Разработка программных продуктов

СОДЕРЖАНИЕ

	

	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. Эффективность и оптимизация программ

Эффективность ПП обеспечивается принятием подходящих решений на разных этапах его разработки, начиная с разработки его архитектуры. Особенно сильно на эффективность ПП (особенно по памяти) влияет выбор структуры и представления данных. Но и выбор алгоритмов, используемых в тех или иных программных модулях, а также особенности их реализации (включая выбор языка программирования) может существенно повлиять на эффективность ПС. При этом постоянно приходится разрешать противоречие между временнόй эффективностью и эффективностью по памяти (ресурсам). Поэтому весьма важно, чтобы в спецификации качества были явно указаны приоритеты или количественное соотношение между показателями этих примитивов качества. Следует также иметь в виду, что разные программные модули по-разному влияют на эффективность ПП в целом: одни модули могут сильно влиять на временнýю эффективность и практически не влиять на эффективность по памяти, а другие могут существенно влиять на общий расход памяти, не оказывая заметного влияния на время работы ПП. Более того, это влияние (прежде всего, в отношении временнóй эффективности) заранее (до окончания реализации ПП) далеко не всегда можно правильно оценить

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

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

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

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

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

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



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 (Windows 95/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.5 9004.5 

Petrov P.P. 2000.0 200.62 167.5 1864.4 

Repina G.G. 3000.0 300.43 164.5 3150.5 

Sidirov F.F. 4000.0 400.44 148.1 4256.5 

Kotov K.K. 1512.0 500.67 168.4 1864.5 

Somova S.S. 2654.0 600.69 168.1 3264.4 

Dedov D.D. 1655.0 700.56 684.1 1680.4 

Popova P.P. 3545.0 800.85 165.4 4210.6 

Sidova S.S. 1658.0 900.75 168.1 2566.1 

Komov K.K. 6574.0 1000.95 642.1 7000.6

5.1.2. Результирующий Файл:

Ведомость зарплаты: 

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 |

|_________________________|________|________|________|_________|



Нахождение среднего размера оклада:

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



Сведенья о сотрудниках с окладом менее 3000 рублей

Svedenia o sotrudnikah s okladom 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 |

|_________________________|________|________|________|_________|



Сведенья о сотрудниках с премией больше 1000 рублей

Svedenia o sotrudnikah s premiey bolshe 1000 rub: 


Vivod zarplati

____________________________________________________________

| fio | oklad | premi9 | nalog | Itogo |

|_________________________|________|________|________|_________|

| Komov K.K. | 6574.00 | 1000.95 | 642.10 | 7000.60 |

|_________________________|________|________|________|_________|



Суммарная сумма премий всех сотрудников

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



Поиск записей файла по сочетанию двух заданных поисковых признаков с помощью “ppoi.dat”:

Нахождение в ведомости зарплаты людей с ФИО Sidova S.S. и окладом 1658.00.

Naiti v baze svedenia lud9h 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. Блок-схемы индивидуальной части курсовой работы



Блок-схема процедуры а

	

assign (FI,’d:\psoz.dat’);

Reset (FI);Reset (f);



Seek (f,0)

S:=0;

Sr:=0;



f,z



S:=S+z.oklad;



eof(f);



Sr:=S/N

Средний 

размер оклада



FR

end;

a

нет

да	






















































Блок-схема процедуры c1



assign (FI,’d:\psoz.dat’);

Reset (FI);



Seek (f,0)



Sh



f,z



if z.premi9

>1000

Сведения о 

сотрудниках с премией больше 1000 рублей

end;

c1

нет



p



eof(f);

нет

да

да


assign (FI,’d:\psoz.dat’);

Reset (FI);



Seek (f,0)



Sh



f,z



if z.oklad

<3000

Сведения о 

сотрудниках с окладом меньше 3000 рублей

end;

b1

нет



p



eof(f);

нет

да

даБлок-схема процедуры b1


assign (FI,’d:\psoz.dat’);

Reset (FI);Reset (f);



Seek (f,0)

S:=0;

Sr:=0;



f,z



S:=S+z.premi9;



eof(f);



Sr:=S;

Сумма премии



FR

end;

d

нет

даБлок-схема процедуры d
5.3. Программный модуль «Ведомость зарплаты»



Program Zarplata;

CONST N=5; {количество записей в файле}

TYPE ST=ARRAY[1..4] OF STRING[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 DO Writeln(FR,C[i]);

END;

{Опережающее описание функции}

FUNCTION FILTR(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,'Sozdanie file');

assign(f,'d:\psoz.dat');

rewrite(F); {открыть F для создания файла}

ZF ('d:\pSOZ.dat'); {вызов ZF для создания файла}

close(F); {закрыть F}

write(FR, #10#13,'Posle sozdania 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 razmer oklada',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,'Svedenia o sotrudnikah s premiey bolshe 1000 rub: ');

sh;

Repeat

read(f,z); {чтение записей}

if z.premi9>1000 then P;

until eof(f);

end;

{Поиск зарплаты < 3000 рублей}

Procedure b1;

Begin

Assign(FI,'d:\psoz.dat'); {связь Fi с физическим файлом}

Reset(Fi); {открыть Fi для чтения}

seek(f,0); {ставим указатель на первую позицию}

Writeln(FR);

Writeln(fr,#10#13,'Svedenia o sotrudnikah s okladom menshe 3000 rub: ');

sh;

Repeat

read(f,z); {чтение записей}

if z.oklad<3000 then P;

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 baze svedenia lud9h s fio = ',pfio,' i okladom ',poklad:6:2);

pfio:=filtr(pfio);

IF (pfio=' ')AND(poklad=0) THEN

BEGIN {анализ наличия требуемых данных}

WRITELN(FR,'Net dannih dlai 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; {Поиск зарплаты < 3000 рублей}

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у

		Посчитать поле средний размер оклада

		Вывести в файл сведенья о сотрудниках, чья зарплата меньше 3000 рублей

		Вывести в файл сведенья о сотрудниках, чья премия превышает 1000 рублей

		Суммарную сумму премий всех сотрудников



	по сочетанию двух заданных поисковых признаков (на выбор студента по смыслу индивидуальной части); По результатам поиска вывести найденные записи или сообщение о неуспешном поиске;

	отсортировать таблицу по возрастанию;

	удаление записей из типизированного файла;

	функция для фильтрации строки – удаления пробелов.

	

	 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. Источники, используемые при разработке.

	
СПИСОК ЛИТЕРАТУРЫ

	

		Е.А. Жоголев. Введение в технологию программирования (конспект лекций). - М.: "ДИАЛОГ-МГУ", 1994.

		Дж. Фокс. Программное обеспечение и его разработка. - М.: Мир, 1985. 

		В.В. Липаев, Е.Н Филиппов. Мобильность программ и данных в открытых информационных системах. - М.: Научная книга, 1997.

		М.М. Горбунов-Посадов. Конфигурации программ. Рецепты безболезненных изменений. – М.: «Малип», 1994.

		Д. Ван Тассел. Стиль, разработка, эффективность, отладка и испытание программ. - М.: Мир, 1985

		CASE: Компьютерное проектирование программного обеспечения. - Издательство Московского университета, 1994.

		http://www.5ballov.ru/