Розробка автоматизованих програмних засобів для об'єктивного оцінювання знань студентів та фахівців
Характеристика проблемних моментів автоматизації процесу формування питань у білеті для визначення рівня знань студента. Розробка бази вимог щодо організації перевірки якості знань і програмного забезпечення для організації та управління даними бази.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 06.12.2013 |
Размер файла | 2,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
При цьому отримані результати відповідають технічному завданню:
- Кількість критеріїв пошуку, не менше 2;
- Потужність універсального відношення, дорівнює 30;
- Кількість сутностей, рівне 12;
- Форма нормалізації відношень, рівна 3 НФ;
- Кількість вихідних форм, дорівнює 10-ми;
- Кількість запитів, що реалізуються, рівне 10;
- Мова програмування - MS SQL.
Нормалізація схеми бази даних предметної області "Вимоги щодо організації перевірки якості знань" допомогла виключити надлишковість інформації, виділила кращі властивості при зміні і вилученні даних.
В процесі проектування було розроблено "Базу вимог щодо організації перевірки якості знань" створено групу запитів, що аналізують спроектовану предметну область та відображають потрібну користувачеві інформацію.
Список використаних джерел
1. Кондратенко Ю.П., Волкова С.О. Програмний комплекс для автоматизованого тестування знань студентів.
2. Грабченко А.І., Федорович В.О., Гаращенко Я.М. Методи наукових досліджень: Навчальний посібник. - Х.: НТУ "ХХПІ", 2009. - 142с.
3. Сиргушичева А.П., Швецов А.Н. Гибридный подход к синтезу тестовых заданий в тестирующих системах.
4. О.Н. Романюк, Т.О. Савчук. Організація баз даних і знань. Навчальний посібник. - Вінниця: УНІВЕРСУМ - Вінниця, 2003. - 217с.
5. Джудит С. Боуманб Сандра Л. Эмерсон, М. Дарновски. Практическое руководство по SQL 4-е издание. - Москва: Вильямс, 2001. - 352с.
6. Карпова В.П. Організація баз даних. Підручник. - Санкт-Петербург: ПИТЕР, 2001. - 260с.
7. Т. Конноли, К. Бегг, А. Страчан. Базы данных: проектирование, реализация и сопровождение. - М.: Диалектика, 2000. - 1139 с.
Додаток А
Лістинг запитів
package com.sasha.kursach.dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.sasha.kursach.dbconnector.Connector;
import com.sasha.kursach.query.responses.Cortege;
import com.sasha.kursach.query.responses.QueryResponse;
public class CommonQueryDao {
private Connection connection = Connector.getInstance().getConnection();
private QueryResponse commonQuery(String query, List<String> columnsNames) {
Statement statement = null;
ResultSet resultSet = null;
try {
statement = connection.createStatement();
resultSet = statement.executeQuery(query);
} catch (SQLException e) {
e.printStackTrace();
}
if (resultSet != null) {
try {
ResultSetMetaData metaData = resultSet.getMetaData();
QueryResponse queryResponse = new QueryResponse();
queryResponse.setColumnsName(columnsNames);
int columnAmount = metaData.getColumnCount();
while (resultSet.next()) {
Cortege cortege = new Cortege();
for (int i = 1; i <= columnAmount; i++) {
cortege.addValue(resultSet.getString(i));
}
queryResponse.addCortege(cortege);
}
return queryResponse;
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
private <T> List<T> createList(T... items) {
List<T> list = new ArrayList<T>();
for (T i : items) {
list.add(i);
}
return list;
}
public QueryResponse getAlltasks(String qualificationName) {
String query = "SELECT * FROM TASK";
List<String> list = createList("Код теми", "Номер в темі", "Текст", "Тип");
return commonQuery(query, list);
}
public QueryResponse firstQuery(String qualificationName) {
String query = "SELECT NAME, CODE, TYPE FROM OPPP WHERE QUALIFICATION_CODE IN (SELECT Q_CODE FROM QUALIFICATION WHERE Q_NAME = '"
+ qualificationName + "');";
List<String> list = createList("Назва", "Код", "Тип");
return commonQuery(query, list);
}
public QueryResponse secondQuery_1(String oPppName) {
String query = "select * from SKILL where SKILL.CODE in ( select DISTINCT SKILL.CODE from (SKILL inner join COMPETENCE_SKILL on SKILL.CODE = COMPETENCE_SKILL.SKILL_CODE inner join COMPETENCE on COMPETENCE_SKILL.COMPETENCE_CODE = COMPETENCE.CODE inner join OPPP_COMPETENCE on COMPETENCE.CODE = OPPP_COMPETENCE.COMPETENCE_CODE inner join OPPP on OPPP_COMPETENCE.OPPP_CODE = OPPP.CODE) where OPPP.CODE in (select OPPP.CODE from OPPP where OPPP.NAME like '"
+ oPppName + "'));";
List<String> list = createList("Код", "Зміст");
return commonQuery(query, list);
}
public QueryResponse secondQuery_2(String oPppName) {
String query = "select * from PRACTICE where PRACTICE.NAME in( select DISTINCT PRACTICE.NAME from (PRACTICE inner join COMPETENCE_PRACTICE on PRACTICE.NAME = COMPETENCE_PRACTICE.PRACTICE_NAME inner join COMPETENCE on COMPETENCE_PRACTICE.COMPETENCE_CODE = COMPETENCE.CODE inner join OPPP_COMPETENCE on COMPETENCE.CODE = OPPP_COMPETENCE.COMPETENCE_CODE inner join OPPP on OPPP_COMPETENCE.OPPP_CODE = OPPP.CODE inner join KNOWLEDGE_BRANCH on OPPP.KNOWLEDGE_BRANCH_CODE = KNOWLEDGE_BRANCH.CODE) where OPPP.CODE in (select OPPP.CODE from OPPP where OPPP.NAME like '"
+ oPppName + "'));";
List<String> list = createList("Назва", "Зміст");
return commonQuery(query, list);
}
public QueryResponse thirdQuery(String knowledgeBranchName) {
String query = "SELECT CODE FROM OPPP WHERE KNOWLEDGE_BRANCH_CODE IN (SELECT CODE FROM KNOWLEDGE_BRANCH WHERE NAME = '"
+ knowledgeBranchName + "');";
List<String> list = createList("Код");
return commonQuery(query, list);
}
public QueryResponse fourthQuery_1(String knowledgeBranchName,
String oPppName, String competenceCode) {
String query = "select * from SKILL where SKILL.CODE in ( select DISTINCT SKILL.CODE from (SKILL inner join COMPETENCE_SKILL on SKILL.CODE = COMPETENCE_SKILL.SKILL_CODE inner join COMPETENCE on COMPETENCE_SKILL.COMPETENCE_CODE = COMPETENCE.CODE inner join OPPP_COMPETENCE on COMPETENCE.CODE = OPPP_COMPETENCE.COMPETENCE_CODE inner join OPPP on OPPP_COMPETENCE.OPPP_CODE = OPPP.CODE) where ( OPPP.CODE in (select OPPP.CODE from OPPP where OPPP.NAME like '"
+ oPppName
+ "') AND KNOWLEDGE_BRANCH_CODE in (select kb.CODE from KNOWLEDGE_BRANCH as kb where kb.NAME like '"
+ knowledgeBranchName
+ "') and COMPETENCE.CODE = '"
+ competenceCode + "'))";
List<String> list = createList("Код", "Зміст");
return commonQuery(query, list);
}
public QueryResponse fourthQuery_2(String knowledgeBranchName,
String oPppName, String competenceCode) {
String query = "select * from PRACTICE where PRACTICE.NAME in( select DISTINCT PRACTICE.NAME from (PRACTICE inner join COMPETENCE_PRACTICE on PRACTICE.NAME = COMPETENCE_PRACTICE.PRACTICE_NAME inner join COMPETENCE on COMPETENCE_PRACTICE.COMPETENCE_CODE = COMPETENCE.CODE inner join OPPP_COMPETENCE on COMPETENCE.CODE = OPPP_COMPETENCE.COMPETENCE_CODE inner join OPPP on OPPP_COMPETENCE.OPPP_CODE = OPPP.CODE inner join KNOWLEDGE_BRANCH on OPPP.KNOWLEDGE_BRANCH_CODE = KNOWLEDGE_BRANCH.CODE) where ( OPPP.CODE in (select OPPP.CODE from OPPP where OPPP.NAME like '"
+ oPppName
+ "') AND KNOWLEDGE_BRANCH_CODE in (select kb.CODE from KNOWLEDGE_BRANCH as kb where kb.NAME like '"
+ knowledgeBranchName
+ "') and COMPETENCE.CODE = '"
+ competenceCode + "'));";
List<String> list = createList("Назва", "Зміст");
return commonQuery(query, list);
}
public QueryResponse fifthQuery(String oPppName, String skillCode) {
String query = "SELECT sm.NAME AS SEMANTIC_MODULE_NAME,SM.CODE AS SEMANTIC_MODULE_CODE, d.D_NAME AS DISCIPLINE_NAME "
+ "FROM DISCIPLINE AS d INNER JOIN SEMANTIC_MODULE AS sm ON d.D_NAME = SM.DISCIPLINE_NAME WHERE d.D_NAME IN ( SELECT op.DISCIPLINE_NAME FROM OPPP_DISCIPLINE AS op INNER JOIN OPPP ON op.OPPP_CODE = OPPP.CODE WHERE OPPP.NAME LIKE '"
+ oPppName
+ "') AND d.D_NAME IN( SELECT ds.DISCIPLINE_NAME FROM DISCIPLINE_SKILL AS ds INNER JOIN SKILL ON ds.SKILL_CODE = SKILL.CODE WHERE SKILL.CODE = '"
+ skillCode + "');";
List<String> list = createList("Назва змістовного модуля",
"Код змістовного модуля", "Назва дисципліни");
return commonQuery(query, list);
}
public QueryResponse sixthQuery(String oPppName) {
String query = "SELECT * FROM DISCIPLINE WHERE DISCIPLINE.D_NAME IN (SELECT OPPP_DISCIPLINE.DISCIPLINE_NAME FROM OPPP_DISCIPLINE WHERE OPPP_DISCIPLINE.OPPP_CODEIN (SELECT OPPP.CODE FROM OPPP WHERE OPPP.NAME LIKE '"
+ oPppName + "'));";
List<String> list = createList("Назва", "Кількість академічних годин",
"Кількість національних кредитів", "Кількість кредитів ECTS",
"Вид контролю", "Назва циклу");
return commonQuery(query, list);
}
public QueryResponse seventhQuery(String qualificationName,
String productionFunctionName) {
String query = "SELECT TYPICAL_TASK.TT_CODE, TYPICAL_TASK.CONTENT FROM TYPICAL_TASK, PRODUCTION_FUNCTION, QUALIFICATION WHERE PRODUCTION_FUNCTION.PF_NAME = TYPICAL_TASK.PRODUCTION_FUNCTION_NAME AND PRODUCTION_FUNCTION.PF_NAME = '"
+ productionFunctionName
+ "' AND PRODUCTION_FUNCTION.QUALIFICATION_CODE = QUALIFICATION.Q_CODE AND QUALIFICATION.Q_NAME = '"
+ qualificationName + "';";
List<String> list = createList("Код", "Зміст");
return commonQuery(query, list);
}
public QueryResponse eighthQuery_1(String qualificationName,
String productionFunctionName, String typicalTaskCode) {
String query = "select * from SKILL where SKILL.CODE in ( select DISTINCT SKILL.CODE from (SKILL inner join TYPICAL_TASK_SKILL on SKILL.CODE = TYPICAL_TASK_SKILL.SKILL_CODE inner join TYPICAL_TASK on TYPICAL_TASK_SKILL.TYPICAL_TASK_CODE = TYPICAL_TASK.TT_CODE inner join PRODUCTION_FUNCTION on PRODUCTION_FUNCTION.PF_NAME = TYPICAL_TASK.PRODUCTION_FUNCTION_NAME inner join QUALIFICATION on PRODUCTION_FUNCTION.QUALIFICATION_CODE = QUALIFICATION.Q_CODE ) where ( QUALIFICATION.Q_CODE in (select q.Q_CODE from QUALIFICATION as q where q.Q_NAME like '"
+ qualificationName
+ "') and PRODUCTION_FUNCTION.PF_NAME like '"
+ productionFunctionName
+ "' and TYPICAL_TASK.TT_CODE = '"
+ typicalTaskCode + "'))";
List<String> list = createList("Код", "Зміст");
return commonQuery(query, list);
}
public QueryResponse eighthQuery_2(String qualificationName,
String productionFunctionName, String typicalTaskCode) {
String query = "select * from PRACTICE where PRACTICE.NAME in( "
+ "select DISTINCT PRACTICE.NAME from (PRACTICE inner join TYPICAL_TASK_PRACTICE on PRACTICE.NAME = TYPICAL_TASK_PRACTICE.PRACTICE_NAME inner join TYPICAL_TASK on TYPICAL_TASK_PRACTICE.TYPICAL_TASK_CODE = TYPICAL_TASK.TT_CODE inner join PRODUCTION_FUNCTION on PRODUCTION_FUNCTION.PF_NAME = TYPICAL_TASK.PRODUCTION_FUNCTION_NAME inner join QUALIFICATION on PRODUCTION_FUNCTION.QUALIFICATION_CODE = QUALIFICATION.Q_CODE) where ( QUALIFICATION.Q_CODE in (select q.Q_CODE from QUALIFICATION as q where q.Q_NAME like '"
+ qualificationName
+ "') and PRODUCTION_FUNCTION.PF_NAME like '"
+ productionFunctionName + "' and TYPICAL_TASK.TT_CODE = '"
+ typicalTaskCode + "'))";
List<String> list = createList("Назва", "Зміст");
return commonQuery(query, list);
}
public QueryResponse ninthQuery(String oPppName, String disciplineName,
String semanticModuleName) {
String query = "select TOPIC.CODE, TOPIC.NAME from TOPIC inner join SEMANTIC_MODULE on TOPIC.SEMANTIC_MODULE_CODE = SEMANTIC_MODULE.CODE inner join DISCIPLINE on SEMANTIC_MODULE.DISCIPLINE_NAME = DISCIPLINE.D_NAME inner join OPPP_DISCIPLINE on DISCIPLINE.D_NAME = OPPP_DISCIPLINE.DISCIPLINE_NAME inner join OPPP on OPPP_DISCIPLINE.OPPP_CODE = OPPP.CODE where OPPP.NAME like '"
+ oPppName
+ "' and DISCIPLINE.D_NAME like '"
+ disciplineName
+ "' and SEMANTIC_MODULE.NAME like '"
+ semanticModuleName
+ "'";
List<String> list = createList("Код", "Назва");
return commonQuery(query, list);
}
public QueryResponse tenthQuery(String oPppName, String disciplineName,
String semanticModuleName, String topicName) {
String query = "select TASK.NUMBER_IN_TOPIC, TASK.TEXT, TASK.TYPE from TASK inner join TOPIC on TASK.TOPIC_CODE = TOPIC.CODE inner join SEMANTIC_MODULE on TOPIC.SEMANTIC_MODULE_CODE = SEMANTIC_MODULE.CODE inner join DISCIPLINE on SEMANTIC_MODULE.DISCIPLINE_NAME = DISCIPLINE.D_NAME inner join OPPP_DISCIPLINE on DISCIPLINE.D_NAME = OPPP_DISCIPLINE.DISCIPLINE_NAME inner join OPPP on OPPP_DISCIPLINE.OPPP_CODE = OPPP.CODE where OPPP.NAME like '"
+ oPppName
+ "' and DISCIPLINE.D_NAME like '"
+ disciplineName
+ "' and SEMANTIC_MODULE.NAME like '"
+ semanticModuleName
+ "' and TOPIC.NAME like '" + topicName + "'";
List<String> list = createList("Номер", "Текст", "Тип");
return commonQuery(query, list);
}
}
<%@ include file="/WEB-INF/pages/include.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Kursach</title>
<meta http-equiv="Content-type" content="text/html" charset="UTF-8">
<meta name="keywords" content="">
<meta name="description" content="">
<link rel="stylesheet"
href="${pageContext.request.contextPath}/styles/style.css" />
</head>
<body>
<div id="all">
<div id="header">
<h1>${title}</h1>
</div>
<!--end header-->
<div id="sidebar">
<ul id="menu">
<li><a href="${pageContext.request.contextPath}/homepage">${homePage}</a></li>
<li><a href="${pageContext.request.contextPath}/queries">${queries}</a></li>
<li><a href="${pageContext.request.contextPath}/editData">${editData}</a></li>
</ul>
</div>
<!--end sidebar-->
<div id="content">
<h4><span class="query" >Визначити освітньо-професійні програми підготовки (назва, шифр, тип), навчання за якими забезпечить можливість отримання певної кваліфікації.</span></h4>
<form action="${pageContext.request.contextPath}/query/1"
method="post">
<p>
<span>Кваліфікація: </span> <input type="text" name="qualification"
size="50" /> <input type="submit" value="Виконати запит" />
</p>
</form>
<c:if test="${not empty responseQuery}">
<h4><span class="zagl">Кваліфікація: </span>${qualificationValue}</h4>
<center>
<h3>
<span>Освітньо-професійні програми підготовки </span>
</h3>
</center>
</c:if>
<table id="table" border="1">
<tr>
<c:forEach var="name" items="${responseQuery.columnsName}">
<th>${name}</th>
</c:forEach>
</tr>
<c:forEach var="cortege" items="${responseQuery.cortegelist}"
varStatus="rowCounter">
<c:choose>
<c:when test="${rowCounter.count % 2 == 0}">
<c:set var="rowStyle" scope="page" value="" />
</c:when>
<c:otherwise>
<c:set var="rowStyle" scope="page" value="rows" />
</c:otherwise>
</c:choose>
<tr class="${rowStyle}">
<c:forEach var="value" items="${cortege.list}">
<td>${value}</td>
</c:forEach>
</tr>
</c:forEach>
</table>
</div>
<!--end content-->
<div id="footer">
<p>Made by Alexander Grintsov</p>
</div>
</div>
<!--end all-->
</body>
</html>
Додаток Б
Інструкція користувача
Для роботи з базою даних "База вимог щодо організації перевірки якості знань" потрібно запустити сервер, і відкрити вказану адресу в браузері відкриється початкова сторінка зображена на рисунок Б.1.
Рисунок Б.1 - Головна сторінка бази дани "База вимог щодо організації перевірки якості знань"
Для того, щоб перейти до форми введення або редагування даних, потрібно натиснути на посилання "Редагувати дані", для того щоб перейти до запитів потрібно натиснути посилання "Запити", для того щоб вийти закрийте браузер.
Після натискання Посилання "Запити", відкривається нова сторінка на якій потрібно вибрати бажаний запит (рис.Б.2).
Рисунок Б.2 - Сторінка вибору запиту на виконання
Після обрання запиту відкриється нова сторінка, зображена на рисунку Б.3, у якой потрібно ввести дані та натиснути кнопку "Виконати запит". Результат запиту буде відображено в таблиці.
Рисунок Б.3 - Сторінка виконання запиту
Для додавання інформації у базу даних "База вимог щодо організації перевірки якості знань" користувачу потрбно натиснути на посилання "Редагувати дані". Після цього відкривається сторінка вибору таблиці для редагування. Потім, після вибору таблиці, відкривається сторінка додавання даних, зображена на рисунку Б.4.
Рисунок Б.4 - Сторінка введення даних до таблиці Завдання бази даних "База вимог щодо організації перевірки якості знань"
Додаток В
Тестовий приклад реалізації запиту.
Розглянемо реалізацію запиту на прикладі виконання запиту №7:
5. Вивести перелік типових завдань діяльності (зміст завдання, шифр), які входять до заданої виробничої функції вибраної кваліфікації.
Задамо наступні параметри запиту:
Кваліфікація - "Фахівець з інформаційних технологій"
Виробнича функція - "Проектувальна"
Рисунок В.1 - Задання параметрів запиту
Результат виконання запиту показаний на рисунку В.2.
Рисунок В.2 - Результати виконання запиту.
Додаток Г
Графічна частина.
ER- модель бази даних "База вимог щодо організації перевірки якості знань"
Діаграма звязків між таблицями бази даних "База завдань для перевірки якості знань за певним фахом"
Головна сторінка бази дани "База вимог щодо організації перевірки якості знань"
Сторінка вибору запиту на виконання
Сторінка виконання запиту
Сторінка введення даних до таблиці Завдання бази даних "База вимог щодо організації перевірки якості знань"
Схема алгоритму програмного забезпечення для бази даних "База вимог щодо організації перевірки якості знань"
автоматизація база даний знання
Размещено на Allbest.ru
Подобные документы
Дослідження теоретичних аспектів проектування автоматизованих систем тестування знань. Розробка програми, яка призначена для забезпечення автоматизації процесу формування тестів та всього процесу контролю знань у дистанційній навчальній системі.
дипломная работа [2,1 M], добавлен 26.10.2012Аналіз вимог до програмного забезпечення. Розробка структури бази даних, що дозволить реалізувати різноманітні операції для створення платіжного доручення. Розробка об’єктної моделі, алгоритмів та структури бази даних. Вибір засобу автоматизації.
курсовая работа [3,2 M], добавлен 30.01.2014Вивчення технологічного процесу й устаткування об'єкта. Вибір засобів автоматизації і складання функціональної схеми. Обґрунтування складу програмного забезпечення. Розробка бази інформаційних каналів, алгоритмів управління та підсистеми візуалізації.
курсовая работа [2,7 M], добавлен 21.09.2009Обстеження і аналіз репозиторія програмного забезпечення. Аналіз репозиторія ПЗ. Розробка функціональної моделі. Розробка проекту Бази Даних "Репозиторій ПЗ". Розробка алгоритмів і графічних інтерфейсів програмних модулів.
курсовая работа [3,4 M], добавлен 05.09.2007Педагогічні умови успішної організації контролю знань учнів професійно-технічних навчальних закладів. Розробка плану-конспекту підсумкового заняття з дисципліни "Основи інформатики" з теми: "Microsoft Office Word". Формування культури тестування школярів.
курсовая работа [833,3 K], добавлен 20.06.2011Систематизація знань як основна функція бази даних. Логічне та фізичне проектування бази даних. Створення таблиць у базі даних, визначення основних зв'язків. Інструментальні засоби проектування та створення програмного забезпечення для обробки даних.
курсовая работа [1,4 M], добавлен 29.04.2010Системний аналіз бази даних за вхідною та вихідною документацією, визначення сутностей, атрибутів, зв’язків. Створення логічної моделі бази даних із застосуванням нормалізації, алгоритм її роботи. Розробка програмного забезпечення та інтерфейсу СУБД.
курсовая работа [946,8 K], добавлен 02.07.2015Формування валютних операцій. Організація проведення контролю та аналізу валютних операцій. Характеристика автоматизованих систем валютних операцій. Обґрунтування вибору середовища розробки. Розробка програмного модуля. Реалізація інтерфейсу користувача.
курсовая работа [1,1 M], добавлен 03.06.2012Роль інформаційних систем і комп’ютерних технологій в удосконаленні управління. Особливості вхідної, вихідної та довідкової інформації. Основи організації машинної інформаційної бази. Інтелектуальні інформаційні системи в економіці. Поняття бази знань.
курс лекций [1,9 M], добавлен 16.04.2014Розробка бази даних для обробки інформації про діяльність туристичного агентства. Визначення предметної області, вхідних та вихідних даних, їх організації. Генерація схеми бази даних. Реалізація функціональних вимог. Інструкція з експлуатації системи.
курсовая работа [5,3 M], добавлен 12.05.2015