Дипломная работа: Информационная технология формирования компетенций в области использования геометрических эффектов в изобретательской деятельности

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

{

SqlConnection connection = openConnection();

List<string> effect = new List<string>();

List<string> effectId = new List<string>();

effect.AddRange(ExecuteQueryGetEffect(lineWhere,ref effect, ref effectId));

if (effect.Count == 0)

{

effect.AddRange(ExecuteQueryGetEffect("", ref effect, ref effectId));

}

if (effect.Count - 1 <= i)

{

i = 0;

}

label1.Text = effect[i];

//запрос на описание текущего эффекта

string query = "SELECT Описание FROM Геометрические_эффекты WHERE Id = " + effectId[i];

SqlDataReader myReader = sendQuery(query, connection);

myReader.Read();

textBox1.Text = myReader["Описание"].ToString();

myReader.Close();

//выборка патентов к текущему эффекту

query = "SELECT Патенты.Название " +

"FROM Патенты, Патенты_Геометрических_эффектов, Геометрические_эффекты " +

"WHERE Патенты.Id = Патенты_Геометрических_эффектов.Патенты_Id " +

"AND Патенты_Геометрических_эффектов.Геометрические_эффекты_Id = Геометрические_эффекты.Id " +

"AND Геометрические_эффекты.Id = " + effectId[i];

myReader = sendQuery(query, connection);

while (myReader.Read())

{

int c = dataGridView1.RowCount;

dataGridView1.Rows.Add(1);

dataGridView1.Rows[c].Cells[0].Value = myReader["Название"].ToString();

}

myReader.Close();

i++;

}

SqlDataReader sendQuery(string query, SqlConnection connection)

{

SqlDataReader myReader;

SqlCommand myCommand = new SqlCommand(query, connection);

//выполняем запрос

myReader = myCommand.ExecuteReader();

return myReader;

}

SqlConnection openConnection()

{

SqlConnection connection = new SqlConnection("Data Source=localhost;Initial Catalog=PECHDB;Integrated Security=True");

connection.Open();

//this.Text = "Я открыт";

return connection;

}

void closeConnection(SqlConnection connection)

{

connection.Close();

//this.Text = "Я закрыт";

}

private void label1_Click(object sender, EventArgs e)

{

}

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

{

}

private void textBox1_TextChanged(object sender, EventArgs e)

{

}

private void button5_Click(object sender, EventArgs e)

{

string where = " where Коэффициент >= " + comboBox2.SelectedItem.ToString() + " and Коэффициент<= " + comboBox3.SelectedItem.ToString();

GetEffect(where);

}

private void button3_Click(object sender, EventArgs e)

{

OpenFileDialog ofd = new OpenFileDialog();

if (ofd.ShowDialog() == DialogResult.OK)

{

_actionInfoTextBox.Text = File.ReadAllText(ofd.FileName,Encoding.Default);

_headActionTextBox.Text = ofd.SafeFileName.Substring(0,ofd.SafeFileName.Length-4);

}

}

private void button4_Click(object sender, EventArgs e)

{

SaveFileDialog sfd = new SaveFileDialog();

sfd.FileName = _headActionTextBox.Text + ".txt";

if (sfd.ShowDialog() == DialogResult.OK)

{

File.WriteAllText(sfd.FileName, _actionInfoTextBox.Text);

}

}

private void GetEffectReport(string whereLine)

{

SqlConnection connection = openConnection();

_effectdDataGridView.Rows.Clear();

string query = "SELECT Id, Название FROM Геометрические_эффекты "+whereLine;

SqlDataReader myReader = sendQuery(query, connection);

//List<string> effect = new List<string>();

//List<string> effectId = new List<string>();

while (myReader.Read())

{

int c = _effectdDataGridView.RowCount;

_effectdDataGridView.Rows.Add(1);

_effectdDataGridView.Rows[c].Cells[0].Value = myReader["Название"].ToString();

}

myReader.Close();

}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{

GetEffectReport("where коэффициент >= " + comboBox1.SelectedItem

+ " -0.5 and коэффициент <= 0.5+" + comboBox1.SelectedItem);

//SqlConnection connection = openConnection();

//_effectdDataGridView.Rows.Clear();

//string query = "SELECT Id, Название FROM Геометрические_эффекты where коэффициент >= " + comboBox1.SelectedItem

// + " -0.5 and коэффициент <= 0.5+" + comboBox1.SelectedItem;

//SqlDataReader myReader = sendQuery(query, connection);

////List<string> effect = new List<string>();

////List<string> effectId = new List<string>();

//while (myReader.Read())

//{

// int c = _effectdDataGridView.RowCount;

// _effectdDataGridView.Rows.Add(1);

// _effectdDataGridView.Rows[c - 1].Cells[0].Value = myReader["Название"].ToString();

//}

//myReader.Close();

}

private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)

{

GetEffectReport(" where коэффициент <= " + comboBox2.SelectedItem);

}

private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)

{

GetEffectReport(" where коэффициент >= " + comboBox3.SelectedItem);

}

private void testButton_Click(object sender, EventArgs e)

{

TestForm testForm = new TestForm();

testForm.ShowDialog();

}

}

}

Форма теста

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.Data.SqlClient;

using System.IO;

namespace WindowsFormsApplication1

{

public partial class TestForm : Form

{

private List<Question> questions;

private List<Ansver> ansvers;

private int counter = 0;

public TestForm()

{

InitializeComponent();

questions = ExecuteQuestins();

ansvers = new List<Ansver>();

UpdateForm();

}

SqlConnection openConnection()

{

SqlConnection connection = new SqlConnection("Data Source=localhost;Initial Catalog=PECHDB;Integrated Security=True");

connection.Open();

//this.Text = "Я открыт";

return connection;

}

SqlDataReader sendQuery(string query, SqlConnection connection)

{

SqlDataReader myReader;

SqlCommand myCommand = new SqlCommand(query, connection);

//выполняем запрос

myReader = myCommand.ExecuteReader();

return myReader;

}

void closeConnection(SqlConnection connection)

{

connection.Close();

//this.Text = "Я закрыт";

}

private class Question

{

public int Id { get; set; }

public string Text {get;set;}

}

private class Ansver

{

public int Id { get; set; }

public int Value {get;set;}

}

private List<Question> ExecuteQuestins()

{

string query = "SELECT * FROM Вопросы";

SqlConnection connection = openConnection();

SqlDataReader myReader = sendQuery(query, connection);

List<Question> rezult = new List<Question>();

while (myReader.Read())

{

Question q = new Question();

q.Id = int.Parse(myReader["Id"].ToString());

q.Text = myReader["Текст"].ToString();

rezult.Add(q);

}

myReader.Close();

return rezult;

}

private void UpdateForm()

{

textBox2.Text = questions[counter].Text;

checkBox3.Checked = checkBox1.Checked = checkBox2.Checked = false;

if (ansvers.Count > counter)

{

if (ansvers[counter].Value == 0)

{

checkBox1.Checked = true;

}

else

if (ansvers[counter].Value == 2)

{

checkBox2.Checked = true;

}

else

if (ansvers[counter].Value == 5)

{

checkBox3.Checked = true;

}

}

if (counter == 0)

{

_prevButton.Enabled = false;

}

else

{

_prevButton.Enabled = true; ;

}

if (counter == questions.Count-1)

{

_nextButton.Text = "Завершить";

}

else

{

_nextButton.Text = "Далее";

}

}

private void _prevButton_Click(object sender, EventArgs e)

{

counter--;

UpdateForm();

}

private void _nextButton_Click(object sender, EventArgs e)

{

counter++;

if (counter > questions.Count-1)

{

EndTest();

return;

}

UpdateForm();

}

private void EndTest()

{

int tt = 0;

foreach (Ansver a in ansvers)

{

tt += a.Value;

}

label2.Text = string.Format(@"Тест завершен, средний бал {0}", tt/questions.Count);

panelRezult.Visible = true;

}

private void checkedListBox_SelectedIndexChanged(object sender, EventArgs e)

{

}

private void fixedAnsver(int value)

{

if (ansvers.Count > counter )

{

ansvers[counter].Value = value;

}

else

{

Ansver ansver = new Ansver();

ansver.Id = questions[counter].Id;

ansver.Value = value;

ansvers.Add(ansver);

}

}

private void checkBox1_CheckedChanged(object sender, EventArgs e)

{

if (checkBox1.Checked)

{

fixedAnsver(0);

checkBox2.Checked = checkBox3.Checked = false;

}

}

private void checkBox2_CheckedChanged(object sender, EventArgs e)

{

if (checkBox2.Checked)

{

fixedAnsver(2);

checkBox1.Checked = checkBox3.Checked = false;

}

}

private void checkBox3_CheckedChanged(object sender, EventArgs e)

{

if (checkBox3.Checked)

{

fixedAnsver(5);

checkBox1.Checked = checkBox2.Checked = false;

}

}

private void button1_Click(object sender, EventArgs e)

{

DateTime date = DateTime.Now;

foreach(var rr in ansvers)

{

string request = string.Format(@"INSERT INTO [dbo].[РезультатыТеста]

([имя]

,[дата]

,[id_вопроса]

,[ответ])

VALUES

('{0}'

,'{1}.{4}.{5} {6}:{7}:{8}'

,{2}

,{3})",textBox1.Text,date.Year,rr.Id,rr.Value,date.Month,date.Day, date.Hour, date.Minute, date.Second);

SqlConnection connection = openConnection();

sendQuery(request, connection);

connection.Close();

}

Close();

}

private void showRezultButton_Click(object sender, EventArgs e)

{

showRezultsPanel.Visible = true;

string query = @"select [имя], [дата], AVG([ответ]) [ответ]

from [dbo].[РезультатыТеста]

group by [имя], [дата]";

SqlConnection connection = openConnection();

SqlDataReader myReader = sendQuery(query, connection);

while (myReader.Read())

{

int c = dataGridView.RowCount;

dataGridView.Rows.Add(1);

dataGridView.Rows[c].Cells[0].Value = myReader["имя"];

dataGridView.Rows[c].Cells[1].Value = myReader["дата"].ToString();

dataGridView.Rows[c].Cells[2].Value = myReader["ответ"].ToString();

}

myReader.Close();

}

}