Дипломная работа по предмету "Информатика, программирование"


Языки программирования

Предисловие.


   Как известно, в настоящее время наиболее
распространенными алгоритмическими языками являются Паскаль и Си. Именно эти
языки используются практически на всех действующих вычислительных системах- от
супер-ЭВМ до персональных компьютеров. Что касается ПЭВМ, то лидером семейства
языков Паскаль для них, без сомнения, является Турбо Паскаль 7.0, разработанный
фирмой Borland. Эта последняя
версия позволила объединить в рамках единой системы мощный алгоритмический
потенциал языка, методы объектно-ориентированного программирования, современную
графику, удобные средства тестирования и отладки программ, а также обеспечить
дружественный интерфейс с пользователями.[1]

Поэтому я выбрал этот язык программирования как основу для создания тестового
редактора.


   Я решил создать тестовый редактор, потому
что именно тесты в последнее время завоевывают все большую популярность. Они
позволяют быстро и довольно точно проверить уровень знаний по тому или иному
предмету, узнать ту или иную информацию о тестирующемся. Конечно, тест без
труда можно составить вручную, но потребуется много времени, чтобы его
размножить. Кроме того, можно в любой момент протестироваться и мгновенно
узнать результаты.


   Разрабатывая программу шаг за шагом, я
выделил основные функции, присутствующие в любом редакторе и, конечно, в моем,
а именно:


создание нового
файла теста


открытие теста
и тестирование


редактирование
теста


просмотр
результатов


печать файла


выход из
программы.


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


   Начнем исследование со статьи о
конструировании программ.


Конструирование
программ.


   Конструирование программ - один из
важнейших разделов современной информатики. Бурное развитие
программно-аппаратных средств, появление новых стилей и технологий
программирования, как ни парадоксально, не снижают, а повышают уровень
требований к массовой алгоритмической культуре. Практически все диалоговые
системы являются программируемыми. Методика конструирования программ легко
переносится на другие процедурные языки программирования, в том числе и
объектно-ориентированные.[2]


   В соответствии с технологией
конструирования программ построена программа тестового редактора. Я разделил ее
на этапы:


Создание
структурной программы, во многом неудобной в использовании из-за отсутствия
диалога, упорядоченного ввода и вывода информации и многого другого. Исходная
программа имела лишь основные функции. Она была «ядром», осуществлявшим  все процессы и функции редактора. В
следующей главе в точности приведен текст структурной программы.


Разбиение
сплошного текста программы на процедуры. Таким образом, текст стал занимать не
так много места, исчез оператор варианта, многие метки, ссылки и т. п. Надо
сказать, многие программисты предпочитают вводить процедуры в программу. Это
значительно упрощает ее.


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


Введение
объекта- панели управления. Вы можете видеть ее внизу экрана. Она взяла на себя
управление функциями редактора. Причем введение объекта значительно упростило
программу. Методы работы с объектами вы можете прочитать в главе «Объектное
программирование».


Структурное
программирование.


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


   Турбо Паскаль способствует внедрению
современной технологии программирования, основанной на принципах структурного
программирования и пошаговом методе проектирования программ. Основные операторы
языка являются хорошей иллюстрацией базовых управляющих конструкций
структурного программирования. Их использование позволяет записывать сложные
алгоритмы обработки данных в компактной форме.[3]


   Хотя Бейсик не является полностью
структурным языком, в нем отражены основные концепции структурного
программирования. рассмотрим их подробнее.


Бейсик- язык
программирования ПЭВМ.


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


   В некоторых версиях Бейсика имеется
встроенный редактор программ, позволяющий работать с текстом программы из
командного окна. Работа с программой осуществляется в трех различных режимах:


Непосредственное
общение


Ввод программ


Вычисление по
введенной в ОЗУ программе


   В основном, Паскаль выполняет те же функции
что и Бейсик. Однако Паскаль имеет больший потенциал в областях
програмимирования, работы с «компьютерным железом», создания собственных
модулей и систем.


Структурная
программа.


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


   Ниже приведена схема структурной программы
тестового редактора, объясняющая соответствующий подход к программированию.
Основной список операторов вырезан и заменен на .
Конечный вид программы будет приведен в главе “Объектное программирование”
объектов.


Program redactor;


uses crt,printer; {подключение модулей}


label l1,l2,l3,l4; {метки}


  Var
a,f,f1,a2:string;      {раздел описаний}


      b,k:char;


     
c,u,y,a1,b1:text;


     
d,e,i,j,p,z:integer;


      c1:boolean;


  Procedure oform;       {процедура оформления начала программы}


    Begin


   


    End;


    Begin


    oform; 
{оформление начала программы}


   


Writeln('Новый
файл(New),Открыть файл(Open),Редактирование(Redact),');  {вывод                    


                                                                             
                                               альтернативных
функций}


    Writeln('Просмотр
результатов(Search),Выход(Any key)');


    b:=readkey;  {выбор нужной функции}


    case b of   {оператор варианта}


По нажатию
соответствующей клавиши происходит выбор функции.


'n','в':Begin


     l1:  {выполнение функции}


        End;


'o','й':Begin


     l2:  {выполнение функции}


        End;


'r','Є':Begin


     l3:  {выполнение функции}


        End;


    's','ы':Begin


         l4:  {выполнение функции}


             End;


    End;


   


    Writeln('Новый файл(New),)Открыть
файл(Open),Редактировать(Redact)'); 
{запрос о выборе перед


                                                   
                                                                                                         выходом}


    Writeln('Просмотр
результатов(Search),Выход(Any key)');


    b:=readkey;  {выбор варианта}


   


    case b of 
{оператор варианта}


    'n','т':GoTo l1;  {ссылка на метку}


    'o','щ':GoTo l2;


    'r','к':GoTo l3;


    's','ы':GoTo l4;


    End;


Набор
операторов безусловного перехода для возвращения к той или иной функции.


   


    End.


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


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


Доработка
программы.


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


   Рассмотрим перечисленные функции. Функция
подсчета результата записана так:


        z:=p*100 div z;      {расчет количества правильных ответов}


        Writeln('количество правильных ответов:
',p);


        Write('оценка '); {выставление оценки}


        If z>=90 Then
Begin


                                Writeln('5')


                                Writeln(b1,’5’);


                                End;


        else If
z>=70 Then Begin


                                        Writeln('4')


                                        Writeln(b1,’4’);


                                        End;


        else If
z>=40 Then Begin


                                        Writeln('3')


                 
                      Writeln(b1,’3’);


                                        End;


       
else                  Begin


                                Writeln('2')


                                Writeln(b1,’2’);


                                End;


        Readln;


        Write('Фамилия: '); {вписывание
фамилии}


        Readln(a);


        d:=length(a); {выставление пробелов}


        Write(b1,a); {запись в файл}


        For i:=1 to 14-d
do Write(b1,' ');


        Write('Имя: '); {вписывание имени, процедура
повторяется}


        Readln(a);


       
Write(b1,a);


       
d:=length(a);


        For
i:=1 to 11-d do Write(b1,' ');


        Write('Отчесчтво: '); {вписывание
отчества, процедура повторяется }


        Readln(a);


       
Write(b1,a);


       
d:=length(a);


        For
i:=1 to 17-d do Write(b1,' ');


       
Write(b1,f);


       
d:=length(f);


        For
i:=1 to 8 do Write(b1,' ');


        GetDate(g1,g2,g3,g4);   {проставление даты}


        Writeln(b1,g3,'.',g2,'.',g1);


       
close(b1);


       
Window(15,10,50,19);


       
TextBackGround(black);


        clrscr;


   Программа рассчитывает количество
правильных ответов по формуле, в соответствии с этим выставляет оценку,
спрашивает ваши ФИО, записывает их в файл, проставляет название теста и дату
его прохождения. При этом используется метод работы со строками:
конкатенация(слияние) строк. Проблемой стало корректное вписывание в файл
строки, так как количество букв может быть разным, поэтому программа
проставляет пробелы в файл между данными, используя данные о длине строк
фамилии, имени, отчества и вычитая их из постоянного числа


Таймер,
системное время.


   Таймер был разработан для отсчета времени
на тест, время вводится предварительно составителем теста. Кроме того,
параллельно с выводом времени на тест выводится текущее системное время.
Действие таймера основано на переменной-счетчике, которая через определенные
промежутки времени уменьшает свое значение на 1(секунду). Системное время
выводится благодаря процедуре GetTime.


Repeat              {цикл счетчика времени}


        Window(60,20,70,21); {окно вывода
времени}


        TextBackGround(black);


        clrscr;


        z2:=z2-1; {обратный отсчет секунд}


        If z22 Then Begin{проверка наличия в файле пароля}


                            Write('введите пароль ');


                            Readln(f); {ввод пароля}


                            If af Then Begin


                            Write('пароль неверный');


                            GoTo l1; {выход из
процедуры}


                            End;


                            End


        else
Begin


            
close(u);


            
Reset(u);


            
End;


       
Readln(c,f);


        Writeln('тест по теме "',f,'"');
{вывод темы теста}


        z2:=60;


        repeat


        Window(60,20,70,21); {закрытие окна
пароля}


        TextBackGround(black);


        clrscr;


       
TextColor(yellow);


       
z2:=z2-1; {включение таймера}


        If
z2



Не сдавайте скачаную работу преподавателю!
Данную дипломную работу Вы можете использовать как базу для самостоятельного написания выпускного проекта.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем дипломную работу самостоятельно:
! Как писать дипломную работу Инструкция и советы по написанию качественной дипломной работы.
! Структура дипломной работы Сколько глав должно быть в работе, что должен содержать каждый из разделов.
! Оформление дипломных работ Требования к оформлению дипломных работ по ГОСТ. Основные методические указания.
! Источники для написания Что можно использовать в качестве источника для дипломной работы, а от чего лучше отказаться.
! Скачивание бесплатных работ Подводные камни и проблемы возникающие при сдаче бесплатно скачанной и не переработанной работы.
! Особенности дипломных проектов Чем отличается дипломный проект от дипломной работы. Описание особенностей.

Особенности дипломных работ:
по экономике Для студентов экономических специальностей.
по праву Для студентов юридических специальностей.
по педагогике Для студентов педагогических специальностей.
по психологии Для студентов специальностей связанных с психологией.
технических дипломов Для студентов технических специальностей.

Виды дипломных работ:
выпускная работа бакалавра Требование к выпускной работе бакалавра. Как правило сдается на 4 курсе института.
магистерская диссертация Требования к магистерским диссертациям. Как правило сдается на 5,6 курсе обучения.

Другие популярные дипломные работы:

Дипломная работа Формирование устных вычислительных навыков пятиклассников при изучении темы "Десятичные дроби"
Дипломная работа Технологии работы социального педагога с многодетной семьей
Дипломная работа Человеко-машинный интерфейс, разработка эргономичного интерфейса
Дипломная работа Организация туристско-экскурсионной деятельности на т/к "Русский стиль" Солонешенского района Алтайского края
Дипломная работа Разработка мероприятий по повышению эффективности коммерческой деятельности предприятия
Дипломная работа Совершенствование системы аттестации персонала предприятия на примере офиса продаж ОАО "МТС"
Дипломная работа Разработка системы менеджмента качества на предприятии
Дипломная работа Организация учета и контроля на предприятиях жилищно-коммунального хозяйства
Дипломная работа ЭКСПРЕСС-АНАЛИЗ ФИНАНСОВОГО СОСТОЯНИЯ ООО «АКТ «ФАРТОВ»
Дипломная работа Психическая коммуникация

Сейчас смотрят :

Дипломная работа Самооценка деятельности ОАО "Ковылкинский электромеханический завод"
Дипломная работа Вирусные гепатиты
Дипломная работа Анализ теоретического аспекта системы обязательного пенсионного страхования России
Дипломная работа Особенности кредитования в Сбербанке
Дипломная работа Банковские пластиковые карты
Дипломная работа Бухгалтерский учет и аудит основных средств
Дипломная работа Интернет
Дипломная работа Аналіз та аудит фінансового стану
Дипломная работа Проектирование системы охранной сигнализации
Дипломная работа Организация розничной торговли
Дипломная работа Повышение рентабельности на предприятии
Дипломная работа Технология производства муки высшего и первого сортов в условиях ЗАО "Балаково-мука"
Дипломная работа Анализ системы оплаты труда персонала и разработка инновационных мероприятий по ее совершенствованию на примере предприятия ОАО "ОТП Банк"
Дипломная работа Совершенствование управления персоналом в рекламном агентстве
Дипломная работа Очистка сточных вод (кислотно-щелочные сточные воды)