Разработка школьного комплекса по физике
Анализ предметной области. Физика в школьной программе. Компьютерные средства обучения. Разработка учебного комплекса. Тестирование корректной работы тестов. Обеспечение взаимодействие системы с базой данных. Создание графического интерфейса приложения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 14.12.2019 |
Размер файла | 2,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
}
private void InsertResult(Int32 result)
{
SqlCommand command = new SqlCommand($"INSERT INTO results(id_pupil, id_test, result) VALUES({idLogin}, {idTest}, {result})", SqlHelper.Connection);
command.ExecuteNonQuery();
}
private void UpdateResult(Int32 result)
{
SqlCommand command = new SqlCommand($"UPDATE results SET result = {result} WHERE id_pupil = {idLogin} AND id_test = {idTest}", SqlHelper.Connection);
command.ExecuteNonQuery();
}
private void OnButtonNextClick(Object sender, EventArgs e)
{
buttonPrevious.Enabled = true;
buttonNext.Enabled = currentTask == tasks.Rows.Count - 1 || answers[currentTask + 1] != null;
currentTask++;
if (currentTask >= tasks.Rows.Count)
{
buttonPrevious.Enabled = false;
buttonNext.Enabled = false;
Int32 result = GetResult();
Int32? lastResult = GetLastResult();
if (lastResult == null)
{
InsertResult(result);
IsResultUpdated = true;
Result = result;
}
else if (lastResult.Value < result)
{
UpdateResult(result);
IsResultUpdated = true;
Result = result;
}
MessageBox.Show($"Результаты тестирования:\n{result} из {answers.Length}");
Close();
}
else
{
PresentTask();
}
}
private void ClearTaskControls()
{
foreach(Control control in taskControls)
{
taskPanel.Controls.Remove(control);
}
taskControls.Clear();
}
private void PresentTask()
{
SuspendLayout();
ClearTaskControls();
DataRow task = tasks.Rows[currentTask];
String textTask = (String)task.ItemArray[0];
Point position = Point.Empty;
XmlDocument document = new XmlDocument();
document.LoadXml(textTask);
foreach (XmlNode node in document.DocumentElement.ChildNodes)
{
if (node.NodeType == XmlNodeType.Element)
{
if (node.Name == "text")
{
Label label = new Label
{
Text = node.InnerText,
Location = position,
AutoSize = true,
MaximumSize = new Size(ClientSize.Width - 20, 500)
};
taskPanel.Controls.Add(label);
taskControls.Add(label);
position = new Point(position.X, position.Y + label.Size.Height + 5);
}
else if (node.Name == "image")
{
using (MemoryStream stream = new MemoryStream(Convert.FromBase64String(node.InnerText)))
{
PictureBox pictureBox = new PictureBox
{
Image = Image.FromStream(stream),
SizeMode = PictureBoxSizeMode.AutoSize,
Location = position
};
taskPanel.Controls.Add(pictureBox);
taskControls.Add(pictureBox);
position = new Point(position.X, position.Y + pictureBox.Size.Height + 5);
}
}
}
}
position = new Point(position.X, position.Y + 20);
String answers = (String)task.ItemArray[1];
document.LoadXml(answers);
foreach (XmlNode node in document.DocumentElement.ChildNodes)
{
if (node.NodeType == XmlNodeType.Element)
{
if (node.Name == "answer")
{
RadioButton radioButton = new RadioButton
{
Text = node.InnerText,
Location = new Point(position.X + 10, position.Y),
AutoSize = true,
MaximumSize = new Size(ClientSize.Width - 20, 500),
Checked = this.answers[currentTask] != null && this.answers[currentTask] == node.InnerText
};
radioButton.CheckedChanged += OnValueChanged;
taskPanel.Controls.Add(radioButton);
taskControls.Add(radioButton);
position = new Point(position.X, position.Y + radioButton.Size.Height + 5);
}
}
}
if (correctAnswers[currentTask] == null)
{
correctAnswers[currentTask] = (String)task.ItemArray[2];
}
ResumeLayout();
}
}
}
ПРИЛОЖЕНИЕ 2
Код создания базы данных
USE [master]
GO
/****** Object: Database [physics_db] Script Date: 09.06.2019 20:56:59 ******/
CREATE DATABASE [physics_db]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'physics_db', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\physics_db.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
LOG ON
( NAME = N'physics_db_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\physics_db_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
GO
ALTER DATABASE [physics_db] SET COMPATIBILITY_LEVEL = 110
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [physics_db].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [physics_db] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [physics_db] SET ANSI_NULLS OFF
GO
ALTER DATABASE [physics_db] SET ANSI_PADDING OFF
GO
ALTER DATABASE [physics_db] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [physics_db] SET ARITHABORT OFF
GO
ALTER DATABASE [physics_db] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [physics_db] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [physics_db] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [physics_db] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [physics_db] SET CURSOR_DEFAULT GLOBAL
GO
ALTER DATABASE [physics_db] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [physics_db] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [physics_db] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [physics_db] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [physics_db] SET DISABLE_BROKER
GO
ALTER DATABASE [physics_db] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [physics_db] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [physics_db] SET TRUSTWORTHY OFF
GO
ALTER DATABASE [physics_db] SET ALLOW_SNAPSHOT_ISOLATION OFF
GO
ALTER DATABASE [physics_db] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [physics_db] SET READ_COMMITTED_SNAPSHOT OFF
GO
ALTER DATABASE [physics_db] SET HONOR_BROKER_PRIORITY OFF
GO
ALTER DATABASE [physics_db] SET RECOVERY FULL
GO
ALTER DATABASE [physics_db] SET MULTI_USER
GO
ALTER DATABASE [physics_db] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [physics_db] SET DB_CHAINING OFF
GO
ALTER DATABASE [physics_db] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF )
GO
ALTER DATABASE [physics_db] SET TARGET_RECOVERY_TIME = 60 SECONDS
GO
ALTER DATABASE [physics_db] SET DELAYED_DURABILITY = DISABLED
GO
EXEC sys.sp_db_vardecimal_storage_format N'physics_db', N'ON'
GO
ALTER DATABASE [physics_db] SET QUERY_STORE = OFF
GO
USE [physics_db]
GO
/****** Object: User [physics_admin] Script Date: 09.06.2019 20:57:00 ******/
CREATE USER [physics_admin] FOR LOGIN [physics_admin] WITH DEFAULT_SCHEMA=[dbo]
GO
ALTER ROLE [db_datareader] ADD MEMBER [physics_admin]
GO
ALTER ROLE [db_datawriter] ADD MEMBER [physics_admin]
GO
/****** Object: Table [dbo].[logins] Script Date: 09.06.2019 20:57:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[logins](
[id] [int] IDENTITY(1,1) NOT NULL,
[login] [varchar](50) NOT NULL,
[password] [varchar](50) NOT NULL,
[first_name] [varchar](50) NOT NULL,
[second_name] [varchar](50) NOT NULL,
[surname] [varchar](50) NULL,
[id_role] [int] NOT NULL,
CONSTRAINT [PK_logins] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[results] Script Date: 09.06.2019 20:57:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[results](
[id] [int] IDENTITY(1,1) NOT NULL,
[id_pupil] [int] NOT NULL,
[id_test] [int] NOT NULL,
[result] [int] NOT NULL,
CONSTRAINT [PK_results] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[roles] Script Date: 09.06.2019 20:57:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[roles](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](50) NOT NULL,
CONSTRAINT [PK_roles] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[tasks] Script Date: 09.06.2019 20:57:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tasks](
[id] [int] IDENTITY(1,1) NOT NULL,
[task] [text] NOT NULL,
[answers] [text] NOT NULL,
[id_test] [int] NOT NULL,
[answer] [text] NOT NULL,
CONSTRAINT [PK_tasks] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object: Table [dbo].[tests] Script Date: 09.06.2019 20:57:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tests](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](50) NOT NULL,
CONSTRAINT [PK_tests] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[logins] WITH CHECK ADD CONSTRAINT [FK_logins_roles] FOREIGN KEY([id_role])
REFERENCES [dbo].[roles] ([id])
GO
ALTER TABLE [dbo].[logins] CHECK CONSTRAINT [FK_logins_roles]
GO
ALTER TABLE [dbo].[results] WITH CHECK ADD CONSTRAINT [FK_results_logins] FOREIGN KEY([id_pupil])
REFERENCES [dbo].[logins] ([id])
GO
ALTER TABLE [dbo].[results] CHECK CONSTRAINT [FK_results_logins]
GO
ALTER TABLE [dbo].[results] WITH CHECK ADD CONSTRAINT [FK_results_tests] FOREIGN KEY([id_test])
REFERENCES [dbo].[tests] ([id])
GO
ALTER TABLE [dbo].[results] CHECK CONSTRAINT [FK_results_tests]
GO
ALTER TABLE [dbo].[tasks] WITH CHECK ADD CONSTRAINT [FK_tasks_tests] FOREIGN KEY([id_test])
REFERENCES [dbo].[tests] ([id])
GO
ALTER TABLE [dbo].[tasks] CHECK CONSTRAINT [FK_tasks_tests]
GO
USE [master]
GO
ALTER DATABASE [physics_db] SET READ_WRITE
GO
Размещено на Allbest.ru
Подобные документы
Анализ предметной области, функциональные части и этапы создания web-приложения, которое будет осуществлять интернет-торговлю по схеме "Предприятие – клиенты". Разработка вспомогательного web-приложения, необходимое для работы с базой данных основного.
курсовая работа [3,3 M], добавлен 05.06.2011Разработка плана здания с помощью графического редактора AutoCAD. Описание предметной области и схемы модели данных. Разработка приложения, позволяющего работать с базой с помощью диалогового окна Windows. Программный код формы, прописывание кодов.
курсовая работа [2,2 M], добавлен 30.07.2010Автоматизация системы снятия показаний счетчиков энергии. Разработка базы данных и клиентского приложения для структур жилищно-коммунального хозяйства, занимающихся составлением квитанций. Описание предметной области. Тестирование клиентского приложения.
курсовая работа [953,3 K], добавлен 01.09.2016Анализ аналогов и выбор прототипа, разработка алгоритма и графического интерфейса, кодирование и тестирование. Логическая модель данных "Нотариальная контора". Особенности реализации в MS SQL. Требования к функциональным характеристикам базы данных.
курсовая работа [1,3 M], добавлен 12.01.2013Анализ предметной области. Обеспечение качества проектной документации. Построение инфологической (концептуальной) модели предметной области. Проектирование физической структуры базы данных. Разработка интерфейса, организация ввода и поиска данных.
курсовая работа [2,5 M], добавлен 10.01.2016Разработка базы данных с целью автоматизации процессов составления, ведения и распространения информации об расписании занятий в спортивном комплексе "Маяк". Анализ предметной области. Разработка алгоритмов работы программы и приложения пользователя.
дипломная работа [1,0 M], добавлен 12.07.2015Системный анализ предметной области проектируемой базы данных. Экономическая сущность комплекса экономических информационных задач. Проектные решения по программному обеспечению комплекса задач. Структура базы данных и технологическое обеспечение.
курсовая работа [303,7 K], добавлен 27.02.2009Проектирование структуры информационной базы и разработка программного комплекса, позволяющего автоматизировать процесс учета налогоплательщиков. Разработка конфигурации и создание интерфейса базы данных, форм и отчетов в программе "1С Предприятие".
дипломная работа [3,2 M], добавлен 21.06.2015Анализ применения информационных технологий в организации обучения. Особенности проектирования автоматизированных информационно-справочных систем. Обзор средств создания приложения. Разработка пользовательского интерфейса программы, ее тестирование.
курсовая работа [1,2 M], добавлен 09.04.2015Разработка клиент-серверного приложения, позволяющего взаимодействовать друг с другом с использованием доступа к базам данных. Проектирование связи сервера с базой данных с помощью технологии ODBC. Разработка интерфейса программы, ее тестирование.
курсовая работа [352,0 K], добавлен 24.08.2016