MS Access. 2

Введение

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

      Для разработки курсового проекта я использовал язык программирования Delphi 7, технологии ADO, язык SQL – запросов и программа MS Access.

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

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

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

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

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

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

Часть 1. Теоретические аспекты

1.1. Delphi 7 Studio

      Delphi представляет собой систему программирования. Как любая подобная система, Delphi предназначена для разработки программ и имеет две характерные особенности: создаваемые с ее помощью программы могут работать не только под управлением Windows, а сама она относится к классу инструментальных средств ускоренной разработки программ (Rapid Application Development, RAD).

      Первый  инструмент RAD создан корпорацией Microsoft и называется Visual Basic. Среда Delphi, созданная тремя годами позже, вместе с такими продуктами как Visual C++, C++ Builder, JBuilder, PowerBuilder также относится к классу инструментов ускоренной разработки программ. Это ускорение достигается за счет двух характерных свойств Delphi: визуального конструирования форм и широкого использования библиотеки визуальных компонентов (Visual Component Library, VCL).

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

      Библиотека  визуальных компонентов предоставляет  программисту огромное разнообразие созданных  разработчиками Delphi программных заготовок, которые немедленно или после несложной настройки готовы к работе в рамках вашей программы. Компоненты характеризуются важным свойством: они включают в себя программный код и все необходимые для его работы данные, что избавляет программиста от рутинной работы по «изобретению велосипедов» — нет нужды писать то, что уже написано (и в подавляющем большинстве — очень грамотно!) другими. Как уже упоминалось, с Delphi поставляется великое множество компонентов, рассчитанных на самые разные аспекты применения — от простеньких компонентов, создающих поясняющие надписи, до сложных текстовых процессоров или инструментов принятия решений. Если по каким-либо причинам в Delphi нет компонента с нужной функциональностью, его можно создать средствами самой среды Delphi и включить затем в VCL (другой вариант — обратиться к ресурсам Интернета, где на тысячах сайтов предлагаются бесплатные, условно-бесплатные и платные компоненты, созданные специально для Delphi как профессиональными программистами, так и любителями).

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

      Ни  один инструмент RAD не создается без средств прогона и отладки вновь созданной программы. Такими средствами традиционно оснащаются все инструменты, создаваемые корпорацией Borland. В Delphi эти средства доведены до совершенства. Вы можете начать исполнение программы и последовательно — оператор за оператором — следить за ее выполнением по исходному тексту. В любой момент вы можете узнать текущее значение переменной и при необходимости изменить его без перекомпиляции программы. Вы можете запустить программу, установив в ней нужные точки контрольного останова — при достижении такой точки программа автоматически прервет свою работу и перейдет в отладочный режим. Точки останова можно делать условными и объединять их в группы, разрешая или запрещая их использование. В некоторых случаях нельзя непосредственно проследить за работой программы (например, обычно нельзя проследить за работой сервера, который автоматически запускается клиентом). В таких ситуациях можно заставить программу создать файл протокола работы, анализ которого затем позволит установить причину ошибки. Опытные программисты в трудных случаях могут использовать средства отладки на уровне машинных инструкций.

1.2. Технология ADO

      Технология ADO завоевала популярность у разработчиков, благодаря универсальности — базовый набор интерфейсов OLE DB имеется в каждой современной операционной системе Microsoft. Поэтому для обеспечения доступа приложения к данным достаточно лишь правильно указать провайдер соединения ADO и затем переносить программу на любой компьютер, где имеется требуемая база данных и, конечно, установленная ADO.

      В Палитре компонентов Delphi есть страница ADO, содержащая набор компонентов, позволяющих создавать полноценные приложения БД, обращающиеся к данным через ADO.

      Технология Microsoft ActiveX Data Objects обеспечивает универсальный  доступ к источникам данных из приложений БД. Такую возможность предоставляют функции набора интерфейсов, созданные на основе общей модели объектов СОМ и описанные в спецификации OLE DB.

      Технология ADO и интерфейсы OLE DB обеспечивают для  приложений единый способ доступа к  источникам данных различных типов. Например, приложение, использующее ADO, может применять одинаково сложные операции и к данным, хранящимся на корпоративном сервере SQL, и к электронным таблицам, и локальным СУБД. Запрос SQL, направленный любому источнику данных через ADO, будет выполнен.

      OLE DB представляет собой набор специализированных объектов СОМ, инкапсулирующих стандартные функции обработки данных, и специализированные функции конкретных источников данных и интерфейсов, обеспечивающих передачу данных между объектами.

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

      В результате приложение обращается не прямо к источнику данных, а  к объекту OLE DB, который "умеет" представить данные (например, из файла  электронной почты) в виде таблицы  БД или результата выполнения запроса SQL.

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

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

      Так как технология ADO основана на стандартных  интерфейсах СОМ, которые являются системным механизмом Windows, это сокращает  общий объем работающего программного кода и позволяет распространять приложения БД без вспомогательных  программ и библиотек.

1.3. Технологии доступа  к данным

      Одной из проблем различных технологий доступа к данным, используемым в  приложениях Delphi, является трудность  распространения готовых приложений. Для BDE требуется отдельная установка, которая занимает порядка 15 Мбайт дискового пространства, а также специальная настройка псевдонимов. ADO предустановленна в операционной системе, но нуждается в настраиваемых провайдерах данных. При необходимости обновить версию ADO, дистрибутив вашего приложения "потяжелеет" более чем на 2 Мбайт.

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

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

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

1.4. SQL - запросы

      Компьютерные  технологии изобилуют языками программирования и стандартами, большая часть которых никак не воспринимают друг друга. Время от времени, все же, возникают настоящие стандарты, и вот на их изучение времени жалеть не следует. Язык структурированных запросов, обычно именуемый SQL, возник в последнее десятилетие как язык взаимодействия с базами данных при помощи системы управления базами данных (СУБД). SQL используется большинством СУБД, продаваемых в течение последних пяти лет: Oracle, Microsoft SQL Server, Microsoft Access, DB2 от IBM, Sybase и др. Знание этого языка в настоящее время обязательно для любого профессионала в области информационных технологий. Не повредит знание SQL и все возрастающему числу людей, которые, не являясь программистами, создают в Web свои HTML-странички.

      Язык  структурированных запросов (Structured Query Language - SQL) - язык программирования взаимодействия с базами данных. Взаимодействие, как правило, происходит между "внешним интерфейсом" и "прикладной частью"; внешний интерфейс посылает прикладной части, на которой хранятся данные, SQL-операторы, содержащие команды создания, чтения, модификации или удаления данных. Универсальные правила языка утверждены Американским национальным институтом стандартизации (ANSI). В комитет по разработке стандарта входили специалисты баз данных от промышленности, научных учреждений и производителей программного обеспечения. Вследствие этого, SQL является открытым языком - то есть, не принадлежащим отдельной компании, которая могла бы устанавливать правила его использования.

      Главное достоинство языка SQL состоит в том, что он применим к большинству распространенных баз данных. SQL можно использовать в Visual Basic или C++ для взаимодействия с базами данных Oracle; его можно использовать на ASP-странице для обмена данными с Microsoft SQL Server; можно послать запрос из базы данных DB2 компании IBM в базу данных Sybase; даже в Access для описания элементов, которые необходимо включить в список формы, можно использовать SQL. До сих пор ведется активное обсуждение языков, наподобие Java, объединяемых девизом "написал - запускай везде". Для программистов баз данных SQL, по существу, стал воплощением другого девиза: "изучил - зарабатывай везде".

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

      Наиболее  часто применяемая операция - чтение данных. Мы можем послать из программы, написанной на Visual Basic, в базу данных Oracle оператор ANSI-SQL с запросом списка всех членов нашей организации, проживающих, к примеру, в Нью-Йорке. Если владельцы базы данных перейдут впоследствии на DB2 от IBM, нам не потребуется вносить в этот оператор какие-либо изменения - он останется работоспособен в прежнем виде. SQL обеспечивает множество вариантов этого оператора, включая сортировку имен по различным признакам, возврат только нескольких имен из начала и конца списка, исключение повторяющихся имен и множество иных условий, какие только могут понадобиться для извлечения из базы данных нужной информации.

      SQL используется для создания в базе данных новых записей. Для сбора данных, помещаемых в соответствующий SQL-оператор, можно использовать HTML-форму. Приняв SQL-оператор, отправленный формой, база данных Microsoft SQL Server создаст новую запись. Ввиду совместимости SQL с большинством систем, этот же оператор может использоваться, к примеру, клерками, создающими записи базы данных в локальной сети с помощью программы, написанной на Visual Basic.

      Пример  модификации данных: данные модифицируются при помощи пользовательского интерфейса, принадлежащего внешнему интерфейсу (это может быть HTML-страница), и возвращаются SQL-оператором обратно в базу данных. Однако соединение с базой данных не обязано быть прямым. База данных DB2 на большой (мэйнфрейм) машине IBM может соединяться с главной машиной корпорации, предоставляющей базу данных Sybase. В этом случае машина IBM может генерировать SQL-оператор модификации некоторых записей и отправить его в базу данных Sybase. Несмотря на различие двух систем и способов обработки данных в каждой, обе правильно поймут и выполнят данный оператор.

      Наконец SQL-операторы применяются для удаления данных. Они позволяют задавать очень сложные условия, определяющие какие из записей подлежат удалению, а какие должны остаться нетронутыми. Возможно также удаление части данных из записи.

      Отцом реляционных баз данных и, следовательно, SQL стал д-р Е. Ф. Кодд (Dr. E. F. Codd), известный также как Тед, который работал на IBM. После описания Коддом в 1970 г. реляционной модели баз данных IBM потратила немало времени и средств на поиски способа реализации его идей. В 1978 г. IBM выпустила на рынок продукт, носивший название System/R.

      Однако  прежде чем IBM оказалась готова к выпуску System/R, на рынке появились реляционные СУБД других компаний. Первой из этих СУБД оказалась Oracle компании Relational Software, второй - Ingres компании Relational Technology. После этого IBM в 1982 г. выпустила усовершенствованные системы SQL/DS и DB2. Oracle (теперь - от Oracle Inc.) и DB2 производятся по-прежнему (уже бог знает в каком поколении), технология же Ingres была перекуплена компанией Computer Associates.

1.5. Работа с базами  данных

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

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

      В зависимости от расположения СУБД различают  локальные и распределенные (удаленные) СУБД. Все части локальной СУБД размещаются на компьютере пользователя базы данных. Если к одной БД обращаются несколько пользователей одновременно, каждый пользовательский компьютер должен иметь свою копию локальной СУБД. В отличие от этого значительная часть программно-аппаратных средств распределенной СУБД централизована и находится на одном достаточно мощном компьютере (сервере), в то время как компьютеры пользователей несут относительно небольшую часть СУБД, которая называется клиентом. Локальные СУБД могут работать в сети, но могут и не использовать ее, в то время как распределенные (клиент-серверные) СУБД обязательно работают в компьютерной сети. Заметим, что местонахождение собственно базы данных никак не влияет на специфику СУБД: в локальных СУБД сама БД может располагаться как на компьютере пользователя, так и на удаленном сетевом компьютере (файл/сервере). Безусловным достоинством клиент-серверных систем является возможность централизованного управления доступом к БД. В таких системах база данных в значительной мере защищена как от случайных, так и намеренных искажений, в них проще реализовать целостность и непротиворечивость данных. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

      Часть 2. Разработка проекта

2.1. Модель данных и создание базы данных

      Прежде  чем создать базу данных нам необходимо разработать логическую модель.

      

      База  данных будет содержать две таблицы:

            Vopr – в которой находятся вопросы, варианты ответов и ответ, который является верным.

            Resul – таблица, в которой хранятся данные о студенте который проходил тест и дата прохождения данного теста.

2.2. Разработка интерфейса программы

      

      Форма «Регистрация»

      На  данную форму разместим 4 label и столько же Edit. А так же один Button. Форма необходима для ввода данных о студенте, который будет проходить данный тест для последующей регистрации.

Форма «Тестирование»

      На  данной форме разместим три label, два DBEdit, четыре RadioButton и Button.

      Данная  форма необходима для прохождения тестирования. При нажатии на кнопку «Далее» изменяются вопрос и варианты ответов.

      На  следующей форме необходимо разместить label и button. Форма необходима для отображения оценки, на которую пройден данный тест.

Форма «Результат»

      При нажатии на кнопку «Закрыть» будет  произведена запись в базу данных.

2.3. Разработка бизнес - логики

      Для подключения базы к программе  используем ADOConnection. Выберем драйвер Microsoft.Jet.OLEDB.4.0. Данный драйвер позволяет работать с MS Access 2003, а так же поддерживает работу с более ранними версиями.

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

      procedure TForm6.Button1Click(Sender: TObject);

      begin

      Form5.Label3.Caption:=Edit1.Text+' '+Edit3.Text+' '+Edit4.Text;

      Form5.Label4.Caption:=Edit2.Text;

      Form1.Show;

      Hide;

      end;

      Появится  форма «Тестирование». Теперь студент  может пройти данный тест. В реквизите  «Номер вопроса» отражается порядковый номер вопроса, в реквизите «вопрос» - вопрос соответствующий порядковому номеру.

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

procedure TForm1.Button1Click(Sender: TObject);

var m, oc:string; o:integer; a:real;

begin

if RadioButton1.Checked = true then m:='1';

 if RadioButton2.Checked = true then m:='2';

if RadioButton3.Checked = true then m:='3';

if RadioButton4.Checked = true then m:='4';

if DataModule3.ADOTable1.Fields[6].Text = m then label9.Caption:=IntToStr(StrToInt(Label9.Caption)+1);

if DataModule3.ADOTable1.Fields[6].Text <> m then label9.Caption:=IntToStr(StrToInt(Label9.Caption)+0);

Label10.Caption:=IntToStr(StrToInt(Label10.Caption)+1);

DataModule3.DataSource1.DataSet.Next;

if DataModule3.DataSource1.DataSet.Eof then

begin

  Button1.Visible:=false;

  o:=StrToInt(Label9.Caption);

  a:=(100*o)/StrToInt(Label10.Caption);

  if a>75 then oc:='5';

  if (a<=75) and (a>50) then oc:='4';

  if (a<=50) and (a>25) then oc:='3';

  if a<=25 then oc:='2';

  Form5.Label1.Caption:='Результат - '+oc;

  Form5.Label2.Caption:=oc;

  Form5.Show;

 end;

end;

В данном коде сначала происходит условие выбора ответа:

 if RadioButton1.Checked = true then m:='1';

if RadioButton2.Checked = true then m:='2';

if RadioButton3.Checked = true then m:='3';

if RadioButton4.Checked = true then m:='4';

Далее производится подсчет является ли верным вариант ответа:

if DataModule3.ADOTable1.Fields[6].Text = m then label9.Caption:=IntToStr(StrToInt(Label9.Caption)+1);

Если  вариант ответа верный, то прибавляем единицу.

Если  в вариант ответа выбран не верно, то прибавляется 0.

if DataModule3.ADOTable1.Fields[6].Text <> m then label9.Caption:=IntToStr(StrToInt(Label9.Caption)+0);

Если  обнаружен конец базы данных:

if DataModule3.DataSource1.DataSet.Eof then

begin

То выполняет  подсчет выставляемой оценки:

  Button1.Visible:=false;

  o:=StrToInt(Label9.Caption);

  a:=(100*o)/StrToInt(Label10.Caption);

  if a>75 then oc:='5';

  if (a<=75) and (a>50) then oc:='4';

  if (a<=50) and (a>25) then oc:='3';

  if a<=25 then oc:='2';

  Form5.Label1.Caption:='Результат - '+oc;

  Form5.Label2.Caption:=oc;

  Form5.Show;

      Итоговая  оценка зависит от процента верных ответов. И производится переход на форму на которой выводится результат.

      Для добавления данных в базу необходимо нажать на кнопку «Закрыть». Будет обработан следующий код:

procedure TForm5.Button1Click(Sender: TObject);

var d:string;

begin

d:=DateToStr(Now());

DataModule3.ADOQuery1.Active:=false;

DataModule3.ADOQuery1.SQL.Clear;

DataModule3.ADOQuery1.SQL.Add('INSERT INTO Resul');

DataModule3.ADOQuery1.SQL.Add('VALUES ("'+Label3.Caption+'","'+Label4.Caption+'","'+Label2.Caption+'","'+d+'");');

DataModule3.ADOQuery1.ExecSQL;

Application.Terminate;

end;

где, INSERT INTO Resul – добавление новой записи, а 'VALUES ("'+Label3.Caption+'","'+Label4.Caption+'","'+Label2.Caption+'","'+d+'"); заполнение полей сведениями. DataModule3.ADOQuery1.ExecSQL; - производит дополнить данные в таблицу.

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

      begin

      Form4.Chart1.SeriesList[0].Clear;

      for i:=1 to DataModule3.ADOQuery1.RecordCount do

      begin

      DataModule3.ADOQuery1.RecNo:=i;

      Form4.Chart1.SeriesList[0].AddY(StrToFloat(DataModule3.ADOQuery1.Fields[2].Text),DataModule3.ADOQuery1.Fields[0].Text, clRed);

      end;

      Form4.Show;

      Hide;

      end 
 
 
 
 
 

Заключение

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

MS Access. 2