КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Пример составления программы в соответствии с принципами структурного программирования
Описание простейших модулей.
REM Программа начисления зарплаты REM Описание структур данных – записей файлов TYPE StrRab `Структура – рабочий TabN AS STRING * 3 `табельный номер KodK AS STRING * 3 `код качества END TYPE TYPE StrIsd `Cтруктура – изделие Kod AS STRING * 3 `код изделия Kol AS INTEGER `количество изделий END TYPE TYPE ZapZ `Запись файла заявок Rab AS StrRab `рабочий Izd AS StrIzd `изделие END TYPE TYPE ZapR `Запись файла таблицы расценок KodI AS STRING * 3 `код изделия StrIz AS DOUBLE `стоимость изделия END TYPE TYPE ZapV `Запись файла ведомости по зарплате TabN AS STRING * 3 `табельный номер рабочего Zarpl AS DOUBLE `зарплата рабочего END TYPE REM Описание переменных DIM Punkt AS INTEGER DIM NameFZ AS STRING DIM NameFR AS STRING DIM NameFV AS STRING DIM KolStr AS INTEGER DIM Zajavka AS ZapZ DIM Rastcen AS ZapR DIM Vedom AS ZapV DIM fz AS INTEGER DIM fr AS INTEGER DIM fv AS INTEGER DIM i AS INTEGER DIM st AS DOUBLE DIM sum AS INTEGER REM Основная программа NameFZ = «Заявки.dat» NameFR = «Расцен.dat» NameFV = «Ведом.dat» fz = 1 fr = 2 fv = 3 DO CLS PRINT «Главное меню» PRINT «1. Ввод заявок табеля учета работ» PRINT «2. Просмотр табеля учета работ» PRINT «3. Ввод таблицы расценок» PRINT «4. Просмотр таблицы расценок» PRINT «5. Расчет заработной платы» PRINT «6. Просмотр ведомости по зарплате» PRINT «7. Выход» PRINT «Выбери пункт меню от 1 до7 и нажми <Enter>» INPUT Punkt SELECT CASE Punkt CASE 1: GOSUB vvod1 CASE 2: GOSUB look1 CASE 3: GOSUB vvod2 CASE 4: GOSUB look2 CASE 5: GOSUB calculate CASE 6: GOSUB look3 CASE 7: EXIT DO CASE ELSE: PRINT «Ошибка в работе пункта»; Punkt END SELECT LOOP STOP vvod1: REM Подпрограмма ввода заявок табеля учета работ PRINT «Работает подпрограмма ввода заявок табеля учета работ» OPEN NameFZ FOR OUTPUT AS #fz PRINT «Укажи количество заявок:» INPUT KolStr REM ввод заявки (Zajavka) и ввод ее в файл FOR i = 1 TO KolStr PRINT «Введи реквизиты»; i; «-й заявки:» INPUT «табельный номер-», Zajavka.Rab.TabN INPUT «код изделия-», Zajavka.Izd.Kod INPUT «количество изделий-», Zajavka.Izd.Kol INPUT «код качества-», Zajavka.Rab.KodK WRITE #fz, Zajavka.Rab.TabN, Zajavka.Izd.Kod, Zajavka.Izd.Kol, Zajavka. Rab.KodK NEXT i REM Конец ввода, закрытие файла CLOSE #fz PRINT «Конец подпрограммы. Нажмите <Enter>.» Pause$ = INPUT (1) RETURN look1: REM Подпрограмма просмотра табеля учета работ PRINT «Работает подпрограмма просмотра табеля учета работ» OPEN NameFZ FOR INPUT AS #fz REM Вывод заявок PRINT «табельный код количество код» PRINT «номер изделия изделий качества» WHILE NOT EOF (fz) INPUT #fz, Zajavka.Rab.TabN, Zajavka.Izd.Kod, Zajvka.Izd.Kol, Zajavka.Rab.KodK PRINT Zajavka.Rab.TabN, Zajavka.Izd.Kod, Zajavka.Izd.Kol, Zajavka.Rab.KodK WEND REM Конец вывода CLOSE (fz) PRINT «Конец подпрограммы. Нажмите <Enter>.» Pause$ = INPUT (1) RETURN vvod2: REM Подпрограмма ввода таблицы расценок PRINT «Работает подпрограмма ввода таблицы расценок» OPEN NameFR FOR OUTPUT AS #fr PRINT «Укажите количество строк в таблице расценок:» INPUT KolStr REM ввод заявки (Rastcen) и вывод ее в файл FOR i = 1 TO KolStr PRINT «Введи реквизиты»; i; «-го изделия:» INPUT «код изделия-», Rastcen.KodI INPUT «стоимость изделия-», Rastcen.StIz WRITE #fr, Rastcen.KodI, Rastcen.StIz NEXT i REM Конец ввода CLOSE fr PRINT «Конец подпрограммы. Нажмите <Enter>.» Pause$ = INPUT$ (1) RETURN look2: REM Подпрограмма просмотра таблицы расценок PRINT «Работает подпрограмма просмотра таблицы расценок» OPEN NameFR FOR INPUT AS #fr REM Вывод строк таблицы PRINT «код стоимость» PRINT «изделия изделия» WHILE NOT EOF (fr) INPUT #fr, Rastcen.KodI, Rastcen.StIz PRINT Rastcen.KodI, Rastcen.StIz WEND REM Конец вывода CLOSE (fr) PRINT «Конец подпрограммы. Нажмите <Enter.» Pause$ = INPUT$ (1) RETURN calculate: REM Подпрограмма расчета заработной платы PRINT «Работает подпрограмма расчета заработной платы» OPEN NameFZ FOR INPUT AS #fr OPEN NameFV FOR RANDOM AS #fv KolZapV = 0 WHILE NOT EOF (fz) INPUT #fz, Zajavka.Rab.TabN, Zajavka.Izd.Kod, Zjavka.Izd.Kol, Zajavka.Rab.KodK OPEN NameFR FOR INPUT AS #fr WHILE NOT EOF (fr) INPUT #fr, Rastcen.KodI, Rastcen.StIz IF Zajavka.Izd.Kod = Rastcen.KodI THEN st = Rastcen.StIz WEND CLOSE fr REM Вычисление стоимости заявки Stoim = st * Zajavka.Izd.Kol IF Zajavka.Rab.KodK = «001» THEN Stoim = 1.5 * Stoim IF Zajavka.Rab.KodK = «002» THEN Stoim = 1.25 * Stoim REM Конец вычисления стоимости одной заявки REM Формирование строки ведомости SEEK #fv, 1 sum =0 FOR i = 1 TO KolZapV GET #fv, i, Vedom IF Zajavka.Rab.TabN = Vedom.TabN THEN Vedom.Zrpl = Vedom.Zrpl + Stoim PUT #fv, i, Vedom END IF NEXT i IF sum = 0 THEN Vedom.TabN = Zajavka.Rab.TabN Vedom.Zrpl = Stoim KolZapV = KolZapV + 1 PUT #fv, KolZapV, Vedom END IF WEND CLOSE fz CLOSE fv PRINT «Конец подпрограммы. Нажмите <Enter>.» Pause$ = INPUT$ (1) RETURN look3: REM Подпрограмма просмотра ведомости по зарплате PRINT «Работает подпрограмма просмотра ведомости по зарплате» OPEN NameFV FOR RANDOM AS #fv REM Вывод ведомости PRINT «табельный заработная» PRINT «номер плата» WHILE NOT EOF (fv) GET #fv,,Vedom PRINT Vedom.TabN, Vedom.Zrpl WEND REM конец вывода CLOSE fv PRINT «Конец подпрограммы. Нажмите<Enter>.» Pause$ = INPUT (1) RETURN END
Литература
1. Барышева И.В., Городецкий С.Ю., Гергель В.П., Гришагин В.А., Кастосов И.В., Кулакова А.П. Информатика: от школы к вузу. По материалам конкурсных экзаменов в ННГУ. - Н.Новгород: ННГУ, 2000. 2. Барышева И.В., Городецкий С.Ю., Громницкий В.С., Малыженков В.И., Маркина М.В. Задачи по информатике. / По материалам выпускных экзаменов подготовительного факультета и вступительных экзаменов в ННГУ в 2004 году. - Н.Новгород: ННГУ, 2004. 3. Гришагин В.А., Карпенко С.Н. Контрольные задания по информатике для учащихся подготовительных курсов. - Н.Новгород: ННГУ, 2002. 4. Гуденко Д.А., Петроченко Д.В. Сборник задач по программированию. -СПб.: Питер, 2003. 5. Зеленяк О.П. Практикум программирования на Тuгbo Раsсаl. Задачи, алгоритмы и решения. - К.: ДиаСофт, 2001. 6. Иванова Г.С. Основы программирования: Учебник для вузов. - М.: МГТУ им. Н.Э. Баумана, 2002. 7. Информатика: Учебник / Под ред. проф. Н.В. Макаровой.- М.: Финансы и статистика, 1997. 8. Информатика. Базовый курс / Симонович С.В. и др. - СПб: Питер, 2000. 9. Информатика для юристов и экономистов. / Симонович С.В. и др. - СПб: Питер, 2002. 10. Касьянов В.Н., Сабельфельд В.К. Сборник заданий по практикуму на ЭВМ.-М.: Наука, 1986. 11. Кетков Ю.Л., Кетков А.Ю. Практика программирования: Бейсик, Си, Паскаль. Самоучитель. - СПб.: БХВ - Петербург, 2002. 12. Программирование на языке Паскаль: задачник / под ред. Усковой О.Ф.-СПб.: Питер, 2002. 13. Романовский И.В. Дискретный анализ. - СПб.: Невский Диалект; БХВ - Петербург, 2003. 14. Ставровский А.Б. Турбо Паскаль 7.0. Учебник. - К:ВНУ, 2000. 15. Фигурнов В.Э. IBM PC для пользователя. Изд. 7-е, перераб. И доп. - М.: ИНФРА - М, 1997. 16. Экономическая информатика./Под ред. Косарева В.П.-М.: Финансы и статистика, 2002. 17. Юркин А.Г. Задачник по программированию. - СПб.: Питер, 2002.
Дата добавления: 2015-01-03; Просмотров: 387; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |