Министерство образования и науки Республики Казахстан

Карагандинский политехнический колледж

РАЗРАБОТКА БАЗЫ ДАННЫХ «УЧАЩИХСЯ»

Пояснительная записка

Руководитель

А.Г.Хмыров

22.11.09

Выполнил учащийся

Группы 9-4-ПВТ-07

Зиньков В.А.

22.11.09

2009г.


ВВЕДЕНИЕ

Если проследить историю человечества, то можно заметить, что на протяжении развития цивилизации на земле, человек что-то придумывает чтобы облегчить и украсить свою жизнь на земле. И вот уже к концу ХХ в. научно-технический прогресс, набравший головокружительную скорость, послужил причиной появления такого чуда современности как компьютер и компьютерные технологии. Изобретение компьютеров послужило переломным моментом в развитии многих отраслей промышленности, на значительный объём повысило мощь и эффективность военной техники, внесло множество прогрессивных изменений в работу средств массовой информации, систем связи, качественно изменило принцип работы банков и административных учреждений. С каждым днем происходит усовершенствование компьютерных технологий, что приводит к повышению работоспособности всего компьютеризированного мира в целом. Вслед за развитием компьютерных технологий, идет бурное развитие программного обеспечения.

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

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

На данный момент времени преимущественное место среди разрабатываемых программ занимают программы-тесты. Они применяются во многих сферах, и имеют различные направления и назначения. Такие как: проверка определённых знаний, коэффициент знаний, обучение и многое другое.

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

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


1  ОБЩАЯ ЧАСТЬ

1.1   База данных - совокупность связанных данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования, независимая от прикладных программ. База данных является информационной моделью предметной области. Обращение к базам данных осуществляется с помощью системы управления базами данных (СУБД). Объектами хранения в текстовых БД являются тексты. Под текстом будут пониматься неструктурированные данные, построенные из строк.

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

1.2 Обзор элементов языка программирования

Разрабатываемый программный продукт был написан на языке программирования Паскаль. Язык Паскаль, назван в честь французского математика и философа Блеза Паскаля (1623—1662). Первая версия языка программирования Паскаль была разработана на кафедре информатики Стэндфордского университета швейцарским ученым Николаусом Виртом в 1968 году. Язык Паскаль, созданный первоначально для обучения программированию как систематической дисциплине, скоро стал широко использоваться для разработки программных средств в профессиональном программировании.

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

Широкой популярности Паскаля среди программистов способствовали следующие причины:

1) благодаря своей компактности, удачному первоначальному описанию Паскаль оказался достаточно легким для изучения;

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

3) язык Паскаль позволяет четко реализовать идеи структурного программирования и структурной организации данных;

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

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

6) использование в Паскале простых и гибких структур управления: ветвлений, циклов.

В качестве констант алфавит языка Турбо Паскаль включает символы, цифры, шестнадцатеричные цифры, специальные символы, пробелы и зарезервированные слова.

Символы - это буквы латинского алфавита от «а» до «z» и от «А» до «Z», а также знак подчеркивания «_» (код ASCII 95). В Турбо Паскале нет различия между прописными и строчными буквами алфавита, если только они не входят в символьные и строковые выражения.

Целые числа записываются со знаком или без него и могут иметь значение от -2147483648 до +2147483647. Следует учесть, что, если целочисленная константа выходит за указанные границы, компилятор дает сообщение об ошибке. Такие константы должны записываться с десятичной точкой, то есть определяться как вещественные числа.

Вещественные числа записываются со знаком или без него с использованием десятичной точки или мантиссой числа.

Если в записи вещественного числа присутствует десятичная точка, перед точкой и за ней должно быть, хотя бы по одной цифре. Шестнадцатеричное число состоит из шестнадцатеричных цифр, которым предшествует знак доллара $ (код 36 в ASCII). Диапазон шестнадцатеричных чисел - от $00000000 до $FFFFFFFF.

Специальные символы Турбо Паскаля - это символы:

+ - * / = ,' . : ; < > [ ] ( ) { } ^ @ $ #.

К специальным символам относятся также следующие пары символов:

<> <= >= := (* *) (. .).

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

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

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

Константы в Турбо Паскале могут использоваться целые, вещественные и шестнадцатеричные числа, логические константы, символы, строки символов, конструкторы множеств и признак неопределенного указателя NIL.

Логическая константа - это либо слово FALSE (ложь), либо слово TRUE (истина).

Символьная константа - это любой символ ПК, заключенный в апострофы:

'z' - символ z;

'Ф' - символ Ф.

Если необходимо записать собственно символ апострофа, он удваивается:

'''' - символ апостроф.

Допускается использование записи символа путем указания его внутреннего кода, которому предшествует символ # (код 35), например:

#97 - символ а;

#90 - символ Z;

#39 - символ ';

#13 - символ CR.

Строковая константа - любая последовательность символов (кроме символа CR -возврат каретки), заключенная в апострофы. Если в строке нужно указать сам символ апострофа, он удваивается, например:

'Это - строка символов’;

'That' 's string.'.

Конструктор множества - список элементов множества, обрамленный квадратными скобками, например:

[1,2,4..7,12] или [blue, red].

Любой из структурированных типов (а в Турбо Паскале их четыре: массивы, записи, множества и файлы) характеризуется множественностью образующих этот тип элементов, т.е. переменная или константа структурированного типа всегда имеет несколько компонентов. Каждый компонент, в свою очередь, может принадлежать структурированному типу, что позволяет говорить о возможной вложенности типов. В Турбо Паскале допускается произвольная глубина вложенности типов, однако суммарная длина любого из них во внутреннем представлении не должна превышать -5520 байт.

В отличие от стандартного Паскаля, в Турбо Паскале разрешается в объявлении констант использовать произвольные выражения, операндами которых могут быть ранее объявленные не типизированные константы, имена типов и объектов.

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

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

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

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

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

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

Описание подпрограммы состоит из заголовка и тела подпрограммы.

Заголовок процедуры имеет вид:

PROCEDURE <имя> ( <сп.ф.п . > ) ;

Заголовок функции:

FUNCTION <имя> ( <сп.ф.п.> ) : <тип>;

Здесь <имя> - имя подпрограммы (правильный идентификатор);

<сп.ф.п.> - список формальных параметров;

<тип> - тип возвращаемого функцией результата.

Список формальных параметров необязателен и может отсутствовать. Если же он есть, то в нем должны быть перечислены имена формальных параметров и их типы, например:

Procedure SB(a: Real; b: Integer; c: Char)

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

Function F(a: Real; b: Real): Real;

можно написать проще:

Function F(a,b: Real): Real;

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

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

Procedure S (a: array [1..10] of Real);

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

Если необходимо передать определенный элемент массива, как правило, проблем не возникает, но если в подпрограмму передается весь массив, то следует первоначально описать его тип. Например:

type

atype = array [1..10] of Real;

Procedure S (a: atype);

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


type

intype = String [15] ;

outype = String [30] ;

Function St (s : intype): outype;

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

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

Иногда бывает необходимо выполнить часть программы, если заданное условие имеет значение True (истина) или False (ложь), или когда заданное выражение принимает определенное значение, в этом случае используем условный оператор.

Формат записи оператора If:

If (выражение) then оператор 1; else оператор 2;

где (выражение) - любое булевское выражение (проверяющее на условие True или False ); (оператор 1) и (оператор 2) – операторы ТП . Если выражение принимает значение True (истина), то (оператор 1) выполняется; в противном случае выполняется – (оператор 2).

Оператор else является необязательным, другими словами, допустимо использовать оператор if в следующем виде:

If (выражение) then оператор 1;

В этом случае (оператор 1) выполняется только тогда, когда выражение имеет значение True. В противном случае (оператор 1) пропускается и выполняется следующий оператор.

Если необходимо выполнить более одного оператора, в случае, когда выражение принимает значение, True (истина) или False (ложь), то следует использовать составной оператор.

Составной оператор - это ключевое слово begin, несколько операторов разделенных точкой с запятой и ключевое слово end.

Оператор выбор Case - средство выбора альтернатив. Позволяет уменьшить количество операторов If.

Оператор Case состоит из выражения (селектора) и списков операторов, каждому из которых предшествует метка того же типа, что и селектор. Это значит, что в данный момент выполняется тот оператор, у которого значение совпадает с текущем значением селектора. Если совпадения значений не происходит, то не выполняется ни один из операторов, входящих в Case или же выполняются операторы, стоящие после необязательного слова else.

Метка case состоит из любого количества констант или поддиапазонов, разделенных запятыми, за которым следует двоеточие(:).

В случае, когда при выполнении какого-либо условия (или невыполнения), необходимо выполнять группу операторов повторно, используются циклы.

Существуют три цикла: цикл While (с предусловием), цикл Repeat (с постусловием) и цикл For (с параметром).

Цикл While используется для проверки некоторого условия в начале цикла.

Формат записи оператора цикла While:

While (выражение) do оператор;

В цикле While вычисляется выражение. Если оно имеет результат- True (истина), выполняется оператор. В противном случае выполнение цикла завершается.

Цикл Repeat...until используется когда необходимо выполнить тело цикла хотя бы раз.

Формат записи цикла Repeat...until :

Repeat оператор 1; оператор2; until (выражение).

Существуют три основных отличия цикла Repeat...until от цикла While:

- операторы в цикле Repeat выполняются хотя бы один раз, потому что проверка выражения осуществляется в конце тела цикла. В цикле While, если значение выражения False, тело его сразу пропускается.;

- цикл Repeat выполняется пока выражение не станет True (истина), в то время, как цикл While выполняется до тех пор, пока выражение имеет значение True (истина);

- в цикле Repeat может использоваться просто группа операторов, а не составной оператор. При использовании этого цикла не используются слова begin...end, как в случае с циклом While.

Цикл Reрeat выполнится хотя бы один раз, в то время, как цикл While может ни разу не выполниться в зависимости от значения выражения.

Цикл For используется, когда необходимо выполнить тело цикла определенное количество раз

Формат цикла For:

For индекс:=(выражение1) to (выражение2) do оператор где индекс - скалярная переменная (целого типа, символьного, булевcкого и любого перечислимого типа); (выражение1) и (выражение2) - выражения типа, совместимого с типом индекса; оператор - одиночный или составной оператор. Индекс увеличивается на 1 после каждого выполнения цикла. Индекс можно уменьшать на 1. Для этого ключевое слово to заменяется на downto.

Главный недостаток цикла For - это возможность уменьшить или увеличить индекс только на 1.

Основные преимущества - краткость, возможность использования символьного и перечислимого типа в диапазоне значений [5].

Файловые типы есть три типа файлов:

- текстовые файлы;

- файлы с типом;

- файлы без типа.

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

Текстовой файл – это последовательность символьных строк переменной длины. Всякая такая строка завершается маркером конца строки CR/LF. Текстовые файлы можно обрабатывать только последовательно. Ввод и вывод нельзя производить для открытого файла, используя одну файловую переменную. Текстовой файл имеет тип Text. Пример описания файловой переменной текстового типа:

Var Fi: Text;

Файлы без типа состоят из компонент одинакового размера, структура которых не известна или не имеет значения. Допустим прямой доступ к любой компоненте файла. Пример объявления файловой переменной файла без типа:

Var F: File;

Файлы с типом состоят из однотипных компонент известной структуры [6]. Допустим прямой доступ к любой компоненте файла. Пример объявления файловых переменных для файлов с типом:

Type

TRec = Record

A: Real;

B: Integer;

C: Char;

End;

Var

F : File of Real;

Q : File of String[100];

Fr: File of TRec;

В этом примере F объявлена как файловая переменная вещественного типа.

Это означает, что компонентами файла могут быть только вещественные значения. Файловая переменная Q предназначена для доступа к файлам, которые состоят из символьных строк длины 100. Файловая переменная Fr предназначена для работы с файлами, которые состоят из записей типа TRec, объявленного в секции Type.


2 СПЕЦИАЛЬНАЯ ЧАСТЬ

2.1 Общая постановка задачи

Цель данной курсовой работы – разработать базу данных “учащихся”, а именно программу для более удобного способа вести личные дела учащихся в тех или иных учебных заведениях.

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

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

-имеются ли однофамильцы;

- имеются ли однофамильцы на одном курсе;

- в каких группах более 10 учащихся;

- на сколько человек больше на I-м курсе, чем на IV-м курсе;

Исходные данные:

- база данных “учащихся”, различных групп;

Выходными данными являются:

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


Информация о работе «Разработка базы данных "Учащиеся"»
Раздел: Информатика, программирование
Количество знаков с пробелами: 47674
Количество таблиц: 3
Количество изображений: 12

Похожие работы

Скачать
59749
15
11

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

Скачать
31167
0
11

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

Скачать
37135
10
2

... сущностей реализуется с помощью отношения. Мощность связи – один-ко-многим (1: М). 1 М М 1 Взаимодействие сущностей   2.2. Связи между сущностями инфологической модели Разработку информационного обеспечения АРМ проведем на базе системы управления базами данных (СУБД) Access XP из состава выбранного интегрированного пакета Microsoft Office XP. СУБД Access предназначена для ...

Скачать
35006
10
7

... компиляция концептуальной модели предметной области в схему БД). Второй вариант - прямая реализация СУБД, основанная на какой либо семантической модели данных. 2. Создание базы данных «Деканат: дистанционного обучения КТИ» 2.1 Краткая характеристика предметной области Предполагаемый деканат дистанционного образования Калмыцкого Технологического Института, именуемый в дальнейшем "ДДО КТИ ...

0 комментариев


Наверх