10 января, 2020 20:13
МИНИСТЕРМТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН
КАЗАХСКИЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ ИМ. Т. РЫСКУЛОВА
Кафедра: «Прикладная информатика»
КУРСОВАЯ РАБОТА
По дисциплине:
«Программное обеспечение ЭИС»
На тему:
«Автоматизация учета основных средств»
Выполнил (а):
Студент 3-го курса,
305 группы, ИСвЭ,
Афоничев В.
Проверила:
Тимофеева Е.П.
Алматы 2006
1 Основные возможности и характеристики языка TURBO PASCAL. 4
1.3 Массивы, процедуры и функции. 6
2.2 Входная и выходная информация. 10
2.3 Алгоритм решения задачи. 10
Введение
Паскаль — хороший язык программирования, который относительно прост в изучении, довольно ясен и логичен. Паскаль воспитывает дисциплину структурного программирования и программирования вообще.
Пакет Turbo Pascal 7.0 обладает ограниченными возможностями и позволяет работать только в обычном режиме MS DOS. Начинающему программисту, по-видимому, целесообразно начать изучение языка и среды именно с этого пакета.
Язык характеризуется расширенными возможностями по сравнению со стандартом, хорошо развитой библиотекой модулей, позволяющих использовать возможности операционной системы, создавать оверлейные структуры, организовывать ввод-вывод, формировать графическое изображение и т.д.
В данной работе будут описаны основные возможности языка, работа в интегрированной среде, набор стандартных модулей.
Паскаль – гибкий и развитый в отношении типов данных язык. Привлекательны его рекурсивные возможности, а также поддержка технологии объектно-ориентрованного программирования.
Данная курсовая называется «Учет основных средсв» и состоит из двух к частей:
- Основные возможности и характеристики языка TURBO PASCAL
- Проектная часть, в которой непосредственно представлена сама программа.
В первой части описываются основные составляющие языка TURBO PASCAL: типы данных, массивы, процедуры, функции, записи и файлы. Приводятся примеры применения всех этих типов.
Во второй, проектной части представлена сама программа: раскрывается постановка задачи, описывается входная (необходимая для внесения данных в программу с указанием структуры и значимости всех полей, периодичность её поступления, источники информации и ее объем) и выходная (перечисляются конечные и промежуточные результаты вычислений, описывается выходная форма с указанием перечня и значимости информации, входящих в неё реквизитов и периодичность её формирования) Контрольный пример составлен с целью проверки правильности алгоритма и программы. Алгоритм решения задачи представляется последовательностью действий над исходными данными. Каждый шаг описывается словесно или в виде формулы.
Данная тема является актуальной, поскольку сейчас с недостатком времени возникает необходимость в автоматизации работы не только крупных предприятий, но и небольших рабочих мест, с целью экономии времени и денег.
Для более наглядного представления курсовой работы некоторые данные и примеры приведены в виде рисунков, схем и таблиц.
Основные символы языка-буквы, цифры и специальные символы составляют его алфавит. ТУРБО ПАСКАЛЬ включает следующий набор основных символов:
1) 26 латинских строчных и 26 латинских прописных букв:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
2) _ подчеркивание
3) 10 цифр:
0 1 2 3 4 5 6 7 8 9
4) знаки операций:
+ — * / = <> < > <= >= := @
5) ограничители:
. , ‘ ( ) [ ] (. .) { } (* *) .. : ;
6) спецификаторы:
^ # $
7) служебные (зарезервированные) слова:
Кроме перечисленных, в набор основных символов входит пробел. Пробелы нельзя использовать внутри сдвоенных символов и зарезервированных слов.
Обязательное описание типа приводит к избыточности в тексте программ, но такая избыточность является важным вспомогательным средством разработки программ и рассматривается как необходимое свойство современных алгоритмических языков высокого уровня. В языке ПАСКАЛЬ существуют скалярные и структурированные типы данных.
К скалярным типам относятся стандартные типы и типы, определяемые пользователем.
Стандартные типы включают целые, действительные, символьный, логические и адресный типы. Типы, определяемые пользователем, — перечисляемый и интервальный.
Структурированные типы имеют четыре разновидности: массивы, множества, записи и файлы.
Кроме перечисленных, TURBO PASCAL включает еще два типа — процедурный и объектный.
Логический тип определен таким образом, что FALSE < TRUE. Это позволяет применять к булевским операндам все операции отношения.
1.2 Структура программы
Программа на языке ПАСКАЛЬ состоит из заголовка, разделов описаний и раздела операторов.
Заголовок программы содержит имя программы, например:
Program PRIM;
Описания могут включать в себя раздел подключаемых библиотек (модулей), раздел описания меток, раздел описания констант, раздел описания типов, раздел описания переменных, раздел описания процедур и функций.
Любой оператор в программе может быть помечен меткой. В качестве метки используются произвольные целые без знака, содержащие не более четырех цифр, либо имена. Метка ставится перед оператором и отделяется от него двоеточием.
Описание констант позволяет использовать имена как синонимы констант, их необходимо определить в разделе описаний констант:
В разделе описания переменных необходимо определить тип всех переменных, используемых в программе:
var P,Q,R: Integer;
A,B: Char;
F1,F2: Boolean;
Раздел операторов представляет собой составной оператор, который содержит между служебными словами
begin…….end
последовательность операторов. Операторы отделяются друг от друга символом ;.
Текст программы заканчивается символом точка.
Кроме описаний и операторов ПАСКАЛЬ — программа может содержать комментарии, которые представляют собой произвольную последовательность символов, расположенную между открывающей скобкой комментариев { и закрывающей скобкой комментариев }.
В языке ПАСКАЛЬ количество базовых конструкций увеличено до шести, это:
-следование;
-ветвление;
-цикл с предусловием;
-цикл с постусловием;
-цикл с параметром;
-вариант.
Перечисляемый тип представляет собой ограниченную упорядоченную последовательность скалярных констант, составляющих данный тип. Значение каждой константы задается ее именем. Имена отдельных констант отделяются друг от друга запятыми, а вся совокупность констант, составляющих данный перечисляемый тип, заключается в круглые скобки.
1.3 Массивы, процедуры и функции
Массивы представляют собой ограниченную упорядоченную совокупность однотипных величин. Каждая отдельная величина называется компонентой массива. Тип компонент может быть любым, принятым в языке ПАСКАЛЬ, кроме файлового типа. Тип компонент называется базовым типом.
Для ввода или вывода массива в список ввода или вывода помещается переменная с индексом, а операторы ввода или вывода выполняются в цикле. Первый индекс определяет номер строки, второй — номер столбца. Двумерные массивы хранятся в памяти ЭВМ по строкам.
Первый способ — с использованием типизированных констант, например:
type Dim10= Array[1..10] of Real;
const
raM10: Dim10 = ( 0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3 );
При инициализации двумерных массивов значения компонент каждого из входящих в него одномерных массивов записывается в скобках:
type Dim3x2= Array[1..3,1..2] of Integer;
Символьная строка может быть либо строковой константой, либо строковой переменной. Строковая константа, или строка, представляет собой совокупность символов, заключенную в апострофы. Строка — это элементарная конструкция языка ПАСКАЛЬ. Строковые константы могут входить в состав выражений. Как и числовые константы, они могут быть описаны в разделе описания констант.
Строковые переменные — это одномерные упакованные массивы символов, для описания которых в TURBO PASCAL введен тип String.
Например, если строка содержит до 30 символов, ее тип будет определен как
type s= String[30];
Алгоритм решения задачи проектируется путем декомпозиции всей задачи в отдельные подзадачи. Обычно подзадачи реализуются в виде подпрограмм.
Подпрограмма — это последовательность операторов, которые определены и записаны только в одном месте программы, однако их можно вызвать для выполнения из одной или нескольких точек программы. Каждая подпрограмма определяется уникальным именем. В языке ПАСКАЛЬ существуют два типа подпрограмм — процедуры и функции.
Процедура и функция — это именованная последовательность описаний и операторовПроцедура может содержать такие — же разделы описаний, что и ПАСКАЛЬ — программа, а именно: разделы описания модулей, меток, констант, типов, переменных, процедур и функций.
Во многих задачах, особенно в задачах вычислительной математики, необходимо передавать имена процедур и функций в качестве параметров. Для этого в TURBO PASCAL введен новый тип данных — процедурный или функциональный, в зависимости от того, что описывается.
Описание процедурных и функциональных типов производится в разделе описания типов:
type
FuncType = Function(z: Real): Real;
ProcType = Procedure (a,b: Real; var x,y: Real);
Для завершения работы программ, процедур и функций без предварительного перехода по меткам к закрывающему end в TURBO PASCAL введены процедуры Exit и Halt.
1.4 Записи файлы
Представляет собой совокупность ограниченного числа логически связанных компонент, принадлежащих к разным типам. Компоненты записи называются полями, каждое из которых определяется именем. Поле записи содержит имя поля, вслед за которым через двоеточие указывается тип этого поля. Поля записи могут относиться к любому типу, допустимому в языке Паскаль, за исключением файлового типа.
Описание записи в языке ПАСКАЛЬ осуществляется с помощью служебного слова RECORD, вслед за которым описываются компоненты записи. Завершается описание записи служебным словом END.
Ф А Й Л Ы
Введение файлового типа в язык ПАСКАЛЬ вызвано необходимостью обеспечить возможность работы с периферийными (внешними) устройствами ЭВМ, предназначенными для ввода, вывода и хранения данных.
Файловый тип данных или файл определяет упорядоченную совокупность произвольного числа однотипных компонент.
Общее свойство массива, множества и записи заключается в том, что количество их компонент определено на этапе написания программы, тогда как количество компонент файла в тексте программы не определяется и может быть произвольным.
Понятие файла достаточно широко. Это может быть обычный файл на диске, коммуникационный порт ЭВМ, устройство печати, клавиатура или другие устройства.
При работе с файлами выполняются операции ввода — вывода. Операция ввода означает перепись данных с внешнего устройства (из входного файла) в основную память ЭВМ, операция вывода — это пересылка данных из основной памяти на внешнее устройство (в выходной файл).
Файлы на внешних устройствах часто называют физическими файлами. Их имена определяются операционной системой. В программах на языке Паскаль имена файлов задаются с помощью строк. Например, имя файла на диске может иметь вид:
‘A:LAB1.DAT’
‘c:\ABC150\pr.pas’
‘lab3.pas’.
С файловой системой TURBO PASCAL связано понятие буфера ввода вывода. Ввод и вывод данных осуществляется через буфер. Буфер — это область в памяти, которая выделяется для каждого файла. При записи в файл вся информация сначала направляется в буфер и там накапливается до тех пор, пока весь объем буфера не будет заполнен. Только после этого или после специальной команды сброса происходит передача данных на внешнее устройство. При чтении из файла данные вначале считываются в буфер, причем данных считывается не столько, сколько запрашивается, а сколько поместится в буфер.
Механизм буферизации позволяет более быстро и эффективно обмениваться информацией с внешними устройствами.
Для работы с файлами в программе необходимо определить файловую переменную. TURBO PASCAL поддерживает три файловых типа: текстовые файлы, компонентные файлы, бестиповые файлы.
признаком конца строки.
Особое место в языке ПАСКАЛЬ занимают текстовые файлы, компоненты которых имеют символьный тип. Для описания текстовых файлов в языке определен стандартный тип Тext:
var TF1, TF2: Text;
Текстовые файлы представляют собой последовательность строк, а строки — последовательность символов. Строки имеют переменную длину, каждая строка завершается
Рассмотренные ранее средства работы с файлами обеспечивают последовательный доступ.
TURBO PASCAL позволяет применять к компонентным и бестиповым файлам, записанным на диск, способ прямого доступа. Прямой доступ означает возможность заранее определить в файле блок, к которому будет применена операция ввода — вывода. В случае бестиповых файлов блок равен размеру буфера, для компонентных файлов блок — это одна компонента файла.
Прямой доступ предполагает, что файл представляет собой линейную последовательность блоков. Если файл содержит n блоков, то они нумеруются от 1 через 1 до n. Кроме того, вводится понятие условной границы между блоками, при этом условная граница с номером 0 расположена перед блоком с номером 1, граница с номером 1 расположена перед блоком с номером 2 и, наконец, условная граница с номером n находится после блока с номером n.
Реализация прямого доступа осуществляется с помощью функций и процедур FileSize, FilePos, Seek и Truncate.
Функция FileSize( var f ): Longint возвращает количество блоков в открытом файле f.
Функция FilePos( var f ): Longint возвращает текущую позицию в файле f. Позиция в файле — это номер условной границы. Для только что открытого файла текущей позицией будет граница с номером 0. Это значит, что можно записать или прочесть блок с номером 1. После чтения или записи первого блока текущая позиция переместится на границу с номером 1, и можно будет обращаться к ьлоку с номером 2. После прочтения последней записи значение FilePos равно значению FileSize.
Процедура Seek( var f; N: Longint) обеспечивает назначение текущей позиции в файле (позиционирование). В параметре N должен быть задан номер условной границы, предшествующей блоку, к которому будет производиться последующее обращение. Например, чтобы работать с блоком 4, необходимо задать значение N, равное 3. Процедура Seek работает с открытыми файлами.
Процедура Truncate( var f ) устанавливает в текущей позиции признак конца файла и удаляет (стирает) все последующие блоки.
Работа с адресными переменными (указателями) будет рассмотрена позже, сейчас отметим, что для получения значения адреса какой-либо переменной введена унарная операция.
2. Проектная часть
2.1 Постановка задачи
Программа «Учета основных средств» представляет собой алгоритм действий, предназначенный для автоматизированного учета основных средств.
Программа должна выполнять следующие функции: выдавать по запросу сведения об обьекте: наименование, его состояние, дату поступления, первоначальную стоимость, амортизацию, остаточную стоимость.
Для этого необходимо записать в программу реквизиты основных средств: наименование, состояние, дату поступления, первоначальную стоимость, амортизацию, остаточную стоимость.
Программа должна по запросу вывести список основных средств: наименование, состояние, дату поступления, первоначальную стоимость, амортизацию, остаточную стоимость.
При вводе минимальных данных о студенте, а именно: наименование, состояние, дату поступления, первоначальную стоимость, программа автоматически подсчитывает амортизацию и остаточную стоимость выводит сумму. Это очень удобно, так как облегчает работу, экономит время, а риск допущения ошибок сводится к минимуму.
2.2 Входная и выходная информация
Для работы программы «Учета основных средств» необходимы следующие данные: Наименование обьекта, его состояние, дата поступления, первоначальная стоимость.
Информация поступает в бугалтерию после поступления обьекта.
Ведомость учета основных средств выдает необходимую информацию и отражает все суммы.
2.3 Алгоритм решения задачи
В исполнительной части программы выводится на экран меню для выбора режима работы:
1 –Формирование новой базы данных.
2 – Просмотр базы данных.
3 – Корректировка базы данных.
4 — Добавление записей в базу данных.
5 — Конец работы. (рис.1)
Общая схема алгоритма
Рис.1
В программе введены следующие обозначения переменных:
OsnSr – компоненты. Это записной тип, имеющий следующие поля: naim – Наименование; GodPr — Дата поступления; Sost – состояние; PerStoim – первоначальная стоимость; Amort – амортизация; OstStoim – остаточная стоимость;
Filename – имя файла.
f – имя логического файла.
OsnSr – компонента файла.
Программа:
Program Vasili4;
Uses crt;
type
Tf=string[20];
Date=Record
day :1..31;
Mon : 1..12;
Year : 2000..2006;
end;
OsnSr=Record
Naim:string[15];
GodPr:2000..2006;
PerStoim:Real;
Amort:real;
OstStoim:real;
Sost:string;
Data: Date;
end;
var FileName:Tf; R : Byte;
{Формирование базы данных——————————————————-}
Procedure Vvod(fname:Tf);
var f:file of OsnSr;
OS:OsnSr;
begin;
clrscr;
assign (f, fname);
rewrite(f);
write(‘Наименование ‘); readln (OS.Naim);
writeln(‘Признак окончания ввода – пусто для наименования.’);
while os.Naim<> » do
begin
with OS do
begin
writeln(‘Год преобретения ‘); readln(godpr);
write (‘День ‘); readln(sost);
write(‘Месяц ‘); readln(Data.day);
write(‘Год ‘); readln(Data.mon);
write(‘Дата поступления’); readln(Data.year);
write(‘Первоначальная стоимость’); readln(perstoim);
write(‘Амортизация ‘); amort:=0.015*perstoim; writeln(amort:6:2);
write (‘Остаточная стоимость ‘); OstStoim:=perstoim-amort; writeln(oststoim);
end;
write(f, OS);
write(‘Наименование’); readln(OS.Naim);
end;
writeln(‘Для продолжения <Enter>’);
repeat until keypressed;
close (f);
end;
{Просмотр базы данных—————————————————————}
procedure look (fname:Tf);
var f: File Of OsnSr; OS:OsnSr; i, code: integer;
begin
clrscr;
assign(f, fname);
{$i-}
reset(f);
{$i+}
code:=IOResult;
if code <> 0 then begin
writeln(‘Файла с таким именем не существует на диске’);
delay(20000);
end;
i:=0;
while not eof(f) do
begin
read(f, OS);
With OS do
begin
i:=i+1;
writeln(‘Запись номер ‘,i);
writeln(‘Наименование ‘,Naim);
writeln(‘Дата преобретения ‘ | ‘, Data.Mon, ‘ | ‘, Data.Year);
writeln(‘Первоначальная стоимость ‘, perstoim:9:2);
writeln(‘Амортизация ‘, amort);
writeln(‘Остаточная стоимость ‘,oststoim);
writeln(‘Состояние ‘,sost);
delay(2000);
end;
end;
writeln(‘Для продолжения <Enter>’);
repeat until keypressed;
close(f);
end;
{Корректировка базы данных———————————————————}
procedure correct(fname: Tf);
var f : File Of OsnSr; i, code:integer; OS: OsnSr;
begin
clrscr;
assign(f, fname);
{$i-}
reset (f);
{$i+}
code:=IOResult;
if code <> 0 then begin
writeln(‘Файла с таким именем не существует’);
delay(2000);
end;
i:=filesize(f);
writeln(‘Файл содержит’, i, ‘записей’);
write (‘Какую будете корректировать? (0-Конец)’);
readln(i);
while i >0 do
begin
seek(f, i-1);
read(f, OS);
with OS do
begin
writeln(‘Запись номер’, i);
write(‘Наименование’?’); readln(Naim);
writeln(‘Дата поступления’, Data.Day, ‘|’, Data.Mon, ‘|’, Data.Year);
write(‘День’); readln(Data.Day);
write(‘Месяц’); readln(Data.Mon);
write(‘Год’); readln(Data.Year);
write(‘Первоначальная стоимость’, perstoim : 9 : 2,’ ?’); Readln(perstoim);
write(‘Амортизация’, Amort,’ ?’ ); Readln(Amort);
write(‘Остаточная стоимость’);
write(‘Состояние’);
end;
seek(f, i-1);
read(f, OS);
write (‘Љ Єго Ўг¤ҐвҐ Є®а४вЁа®ў вм? (0-Є®Ґж)’);
Readln(i);
End;
writeln(‘Для продолжения <Enter>’);
repeat until keypressed;
close(f);
end;
{Дополнение базы данных————————————————————}
Procedure AppenF(fname : Tf);
Var f : File Of OsnSr; OS : OsnSr; code : Byte;
Begin
clrscr;
assign(f, fname);
{$i-}
reset (f);
{$i+}
code:=IOResult;
if code <> 0 then begin
writeln(‘Файла с таким именем не существует!’);
delay(2000); Exit;
end;
writeln(‘„«п ®Є®з Ёп Їа®ЎҐ«’);
write(‘Наименование’); readln(OS.Naim);
while os.Naim<> » do
begin
With OS do
begin
writeln(‘Наименование’);
write(‘День’); readln(Data.Day);
write(‘Месяц’); readln(Data.Mon);
write(‘Год’); readln(Data.Year);
write(‘Первоначальная стоимость’); Readln(perstoim);
write(‘Амортизация’); Readln(amort);
write(‘Остаточная стоимость’); Readln(OstStoim);
end;
write(f, OS);
write(‘Наименование’); readln(OS.Naim);
end;
writeln(‘Для продолжения <Enter>’);
Repeat Until keypressed;
close(f);
End;
{Исполняемая часть———————————————————————}
Begin
Clrscr;
Repeat
Write(‘Наименование ‘); Readln(FileName);
Clrscr;
Gotoxy(20,8); Write(‘1 – Формирование новой базы’);
Gotoxy(20,10); Write(‘2 – Просмотр базы данных’);
Gotoxy(20,12); Write(‘3 – Корректировка базы данных’);
Gotoxy(20,14); Write(‘4 – Добавление записи в конец базы данных’);
Gotoxy(20,16); Write(‘5 – Конец работы’);
Gotoxy(20,18); Write(‘Режим ¬ ?’);Readln(R);
Case R Of
1: Vvod (FileName);
2: Look (FileName);
3: Correct (FileName);
4: AppenF (FileName);
End;
Until R=5;
End.
2.4 Контрольный пример
Работа программы начинается с введения имя файла, в который будет внесена база данных. Например: Основные средства.
При появлении программного меню в режиме выбираем пункт меню 1 – Формирование новой базы данных.
На черном экране появляется первое поле для внесения данных:
Главный учебный корпус (Далее с нажатием Enter производим ввод даны в другие поля).
—————————————————————————————————-
Наименование
ГУК
Дата поступления
1.05.2001
Состояние
хор
Первоначальная стоимость
6500000
Далее программа сама расщитывает по формуле Амортизацию и Остаточную стоимость
Амортизация
97500
Остаточная стоимость
6402500
—————————————————————————————————-
После окончания ввода данных в Режиме набираем цифру 2 – Просмотр базы данных. Результатом является вывод на экран «Ведомости учета основных средств».(рис.1)
Рисунок 1
Ведомость учета основных средств
—————————————————————————————————-
Наименование
ГУК
Дата поступления
1.05.2001
Состояние
хор
Первоначальная стоимость
6500000
Амортизация
97500
Остаточная стоимость
6402500
—————————————————————————————————-
Для корректировки записей ведомости учета основных средст цифра 3.
На экране отображается количество записей в файле, а также выбор записи, которую нужно корректировать. Например: Во 1-ой записи исправим неправильно введенныое состояние.
Выводится:
—————————————————————————————————-
Наименование
ГУК
Дата поступления
1.05.2001
Состояние
отл
Первоначальная стоимость
6500000
Амортизация
97500
Остаточная стоимость
6402500
—————————————————————————————————-
Добавление записи в конец базы данных – 4.
Например: Добавить поступивший гараж.
—————————————————————————————————-
Наименование
Гараж
Дата поступления
13.06.2001
Состояние
хор
Первоначальная стоимость
200000
Амортизация
3000
Остаточная стоимость
197000
—————————————————————————————————
В результате данные заносятся в ведомость учета основных средств. (рис.2)
Рисунок 2
Ведомость учета основных средств.
—————————————————————————————————-
Наименование
ГУК
Дата поступления
1.05.2001
Состояние
отл
Первоначальная стоимость
6500000
Амортизация
97500
Остаточная стоимость
6402500
—————————————————————————————————
Наименование
Гараж
Дата поступления
13.06.2001
Состояние
хор
Первоначальная стоимость
200000
Амортизация
3000
Остаточная стоимость
197000
—————————————————————————————————-
Заключение
Завершается рассмотрение основ программирования на Турбо Паскале. Среди них вычисления и обработка информации, использование объектно-ориентированного программирования – словом, те задачи, с которыми приходится сталкиваться профессиональному программисту. Турбо Паскаль был выбран как наилучший язык программирования для обучения основам профессионального программирования.
Турбо Паскаль – достаточно «старый» программный продукт. Следует заметить, однако, что Паскаль – это живой язык. Известны, используются или находятся в стадии разработки компиляторы и среды разработки программ на Паскале для различных операционных систем, в том числе и бурно развивающейся операционной системы Linux. Эти системы иногда частично, а иногда и в значительной мере совместимы с Турбо Паскалем, а следовательно, накопленный опыт может быть использован и для серьезной, профессиональной работы по разработке программ.