Курсовая работа: Разработка программы обработки экономической информации
procedure klavishi(nom:integer);-считывает коды клавишь и
позволяет просматривать всю таблицу в процедурах поиска и просмотра.
procedure prosmotr_2(x:ukaz);-выводит на экран текущую
таблицу со всеми изменениями.
Выбор языка программирования.
Язык Turbo Pascal и компилятор выбраны из-за его
гибкости, широкого распространения (субъективный фактор), малого объема
исполняемого файла и достаточно высокой скорости выполнения. Компилятор Borland Pascal 7.0 . к тому же включает в себя опциональную возможность
оптимизации кода программы как по скорости, так и по размеру. Основным фактором
выбора языка Pascal была его более простая
работа со строками. А в данном курсовом пректе это очень
важно так как чтение исходных данных производится из текстового файла , данные в
котором хранятся в виде таблицы. Этот язык программирования относительно прост,
он гибкий и развитый в отношнии типов языка .Язык Си более сложный при
написании , поэтому в данном проекте задача была реализована на я зыке Turbo Pascal
, хотя не отрицается возможнсть успешной реализации задачи на языке Си.
3. Технико-экономические показатели
В результате компиляции программы компилятором Borland Pascal 7.0 . был получен исполняемый файл формата DOS EXE размером 20 Кбайт, что является
приемлемым как для компьютеров десятилетней давности, так тем более,
современных.
Для работы программа требует приблизительно 200 Кбайт
оперативной памяти (зависит от размера входного файла). Данный объем позволяет
программе выполнятся на самом широком круге компьютеров, фактически всех
поддерживающих операционную систему DOS.
Для выполнения требуется процессор класса 80x86, цветной монитор, поддерживающий текстовый режим 80х50.
Размер входного файла зависит от количества символов в нем и
для 44 элементов (студентов) составляет 2Кбайта. Размер выходного файла зависит
от преобразований.
В программе отсутствует ресурсоемкие процедуры, поэтому
производительность центрального процессора не критична.
Программа может работать под управлением операционной
системы класса DOS, при этои сохраняет
работоспособность и в режиме эмуляции MS-DOS операционной системой Windows9X,Me и RedHat Linux. Работоспособность в режиме
эмуляции под другими операционными системами не проверялось, хотя эта
возможность не исключается.
Таким образом программа может выполняться практически на
любом доступном PC компьютере.
4. Тестовый пример
Проведем эксперимент, чтобы
убедиться в работоспособности программы.
Возьмем исходную таблицу(рис.4.1):

Рис.4.1- исходная таблица
Результат после обработки

Эти данные также будут
сохранены в файл с указанным именем и путём к нему.
Заключение
Данная программа, составлена в соответствии с постановкой
задачи на курсовое проектирование по теме "Разработка программы обработки информации"
по дисциплине "Основы программирования и алгоритмические языки"
(ОПиАЯ). При написании программы использованы методические указания по
курсовому проектированию по дисциплине "ОПиАЯ". Для проверки
работоспособности программы и правильности обработки входных данных разработан
тестовый пример. Тестирование программы подтвердило, что программа правильно
выполняет обработку данных и выдаёт верные результаты. Всё это свидетельствует
о работоспособности программы и позволяет сделать вывод о пригодности программы
к решению практических задач по обработке экономической информации.
Библиографический список
1. Немнюгин С.А. –Turbo Pascal учебник.”Питер”,2001.-496л
2. Фараонов В.В Turbo Pascal 7.0.”Нолидж”2001.
3. Конспект по лекциям ОП и АЯ.
Приложение
Листинг программы
program Kursovik;
Uses crt;
type
zap=record
fio:string[15];
nomergrupp:string[4]; //шифр
группы
propusk:integer; //число пропусков
opravdan:integer; // оправданных
neopravdan:integer; //неоправданных
summa:integer;
//общая сумма неоправданных
procent:real;
//процент неоправданных
end;
ukaz=^querty;//создаём структуру
querty=record
inf:zap;
nr,nl:ukaz;
end;
var
sozdan:boolean;
//проверяет есть ли файл
fp,ft,ff:text;
verh,newE,right,left,temp:ukaz;
z:zap;
c:char;
x,kolvo,otpech,i,number:integer;//номер
строки (для меню),кол-во эл-тов
procedure okno(t:integer);FORWARD;//печать
меню
procedure zapis_v_fail;FORWARD;//запись
в файл
{-----------------ORGANIZACIYA IZ FAILA------------------------------------}
procedure org;//организация из файла двунаправленного списка по
алфавиту
var
pop:ukaz;
d,stroka,t1,t2,t3,t4:string;
p3,p4:array[1..3]of char;
schet,pole3,pole4,errcode:integer;
begin
kolvo:=0;
gotoxy(25,25);
textcolor(black);
writeln('Input the name of file');
textcolor(white);
gotoxy(27,27);
readln(d);
if d='' then
begin
clrscr;
gotoxy(25,25);
writeln('This file does not
exists!!!!!!!');
gotoxy(25,26);
writeln('Push the -enter- and input name
of file again. ');
readln;
sozdan:=false;
exit;
end;
assign(ft,d);
{$I-}
reset(ft);
if IOResult <>0//проверка есть ли файл
then
begin
clrscr;
gotoxy(25,25);
writeln('This file does not
exists!!!!!!!');//сообщение , что файла
нет
gotoxy(25,26);
writeln('Push the -enter- and input name
of file again. ');//ещё раз надо ввести имя файла
readln;
sozdan:=false;//переменной
создания файла присвоить ложь
exit;
end;
sozdan:=true;
//переменной создания файла присвоить правда
schet:=0;
while not EOF(ft) do//цикл
пока не конец файла
begin
while schet<>4 do//пропуск 4 строк
begin
readln(ft,stroka);
schet:=schet+1;
end;
readln(ft,stroka);//считывание
строки
t1:=copy(stroka,3,7);
t2:=copy(stroka,10,15);
{perevod stroki v integer}
if stroka[30]= ' '
then
t3:=copy(stroka,29,1)
else
t3:=copy(stroka,29,2);
val(t3,pole3,errcode);
{perevod stroki v integer}
if stroka[42]= ' 'then
t4:=copy(stroka,41,1)
else
t4:=copy(stroka,41,2);
val(t4,pole4,errcode);
new(newE);..//создание
нового эл-та
newE^.inf.fio:=t2;//идёт присвоение
по полям
newE^.inf.nomergrupp:=t1;
newE^.inf.propusk:=pole3;
newE^.inf.opravdan:=pole4;
newE^.nr:=nil;
newE^.nl:=nil;
left:=newE;Right:=newE;
verh:=newE;
kolvo:=kolvo+1;
{--sozdali 1-iy element}
while Not eof(ft) do//покане
конец файла
begin
readln(ft,stroka);//чтение
строки
if stroka[3]='-'then //сколько
знаков не конец ли таблицы
exit;
t1:=copy(stroka,3,7); //копирывание
t2:=copy(stroka,10,15);
{perevod stroki v integer}
if stroka[30]= ' 'then //сколько
знаков не конец ли таблицы
t3:=copy(stroka,29,1)
else
t3:=copy(stroka,29,2); //копирывание
val(t3,pole3,errcode); //чтение
строки в инт
{perevod stroki v integer}
if stroka[42]= ' 'then
t4:=copy(stroka,41,1)
else
t4:=copy(stroka,41,2);
val(t4,pole4,errcode);
{-----sozdanie
o4eredi-------------------------------------}
pop:=verh;
// указатель на на чало
while pop<>nil do// цикл пока неконец списка
if t2>= pop^.inf.fio//сравнение по фамилиям
then
pop:=pop^.nr//перевод указателя
else
break; //прервать цикл
new(newE);
//создание нового элемента
newE^.inf.fio:=t2;
newE^.inf.nomergrupp:=t1;
newE^.inf.propusk:=pole3;
newE^.inf.opravdan:=pole4;
if pop=nil then//добавление в конец нового элемента
Страницы: 1, 2, 3, 4, 5, 6 |