Разработка школьного комплекса по физике

Анализ предметной области. Физика в школьной программе. Компьютерные средства обучения. Разработка учебного комплекса. Тестирование корректной работы тестов. Обеспечение взаимодействие системы с базой данных. Создание графического интерфейса приложения.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.