2. МЕТОДИКА ПРОГНОЗИРОВАНИЯ ИЗОБРЕТАТЕЛЬСКОЙ ДЕЯТЕЛЬНОСТИ В ВУЗЕ [Электронный ресурс] Режим доступа: http://elibrary.ru/item.asp?id=13456252
3. Нейматов, Я. М. Образование в XXI веке [Текст] / Я.М. Нейматов. - М. : Алгоритм, 2002. [Электронный ресурс] // Режим доступа: http://www.lexed.ru/pravo/theory/yagofarov2005/?ist.html
4. Гмурман В. Е. Теория вероятностей и математическая статистика. Учеб. Пособие для вузов. -- изд. 7-е, стер. -- М.: Высш. шк., 2001. -- 479 с. [Электронный ресурс] // Режим доступа: http://emag.iis.ru/arc/infosoc/emag.nsf/BPA/477c285e6a6eeb11c32570280035b99f
5. Новиков, А. М. Профессиональное образование в России [Текст] / А. М. Новиков. - М. : ИЦП НПО РАО, 1997. [Электронный ресурс] // Режим доступа: http://www.anovikov.ru/
6. Пиявский С.А. Методическое указание. Методы анализа данных.// Самара. 2010 С.68
7. ОБЩИЕ МЕТОДЫ ПРОЕКТИРОВАНИЯ ИС [Электронный ресурс] // Режим доступа: http://inftis.narod.ru/pis/pis-p4-1.htm
8. ПАТЕНТЫ РФ НА ИЗОБРЕТЕНИЯ И ПОЛЕЗНЫЕ МОДЕЛИ [Электронный ресурс] // Режим доступа: http://elibrary.ru/item.asp?id=9308758
9. ИССЛЕДОВАНИЕ ДИНАМИКИ ПАТЕНТОВАНИЯ ИЗОБРЕТЕНИЙ И НАПРАВЛЕНИЙ ТЕХНИЧЕСКИХ РАЗРАБОТОК [Электронный ресурс] // Режим доступа: http://elibrary.ru/item.asp?id=21120785
ПРИЛОЖЕНИЕ А
РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АРХИТЕКТУРНО-СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ» (СГАСУ)
УТВЕРЖДАЮ __________________________
__________________________
Информационная технология формирования компетенций в области использования геометрических эффектов в изобретательской деятельности
Руководство пользователя
ЛИСТ УТВЕРЖДЕНИЯ
02068389. 40100.12.И3.01-ЛУ
(вид носителя данных)
Листов 1
Разработчик:
Магистрант группы ГИП-М12
Смолянко И.А
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АРХИТЕКТУРНО-СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ» (СГАСУ)
УТВЕРЖДЕНО
02068389.40100.12.И3.01-ЛУ
Информационная система формирования компетенций в области использования геометрических эффектов в изобретательской деятельности
Руководство пользователя
(вид носителя данных)
Листов 4
А.1 Введение
Открываем программу с ролью «Методист», для этого в окне нажимаем на кнопку «Методист».
А.2 Редактирование справочников
В открывшемся окне выделите необходимый патент, в правом нижнем поле окна программы отобразятся все связанные геометрические эффекты.
Рисунок А.2 - Редактирование справочников
Для добавления связи с геометрическим эффектом выберите необходимый геометрический эффект из списка эффектов и нажмите на кнопку «Добавить». После этого геометрический эффект появится в списке связанных эффектов. Для удаления из связи геометрического эффекта выделите необходимый эффект и нажмите на кнопку «Удалить».
А.3 Открытие и сохранение темы задачи
А.3.1 Открытие темы и описания задачи
Для открытия ранее сохраненной задачи нажмите на кнопку «Открыть». В появившемся окне выберите необходимый файл, содержащий тему и описание задачи. И нажмите на кнопку ОК. После этого автоматически заполнятся поля
Рисунок Б.3 - Открытие файла
А.3.2 Сохранение темы и описания задачи
Для сохранения темы и описания задачи в файл нажмите на кнопку «Сохранить». В появившемся окне укажите название файла и нажмите на кнопку ОК
Рисунок Б.4 - Сохранение файла
А.4 Подбор геометрического эффекта
Для подбора геометрического эффекта нажмите на кнопку «Подобрать эффект». Вместе с показанным геометрическим эффектом выводится список патентов, связанных с данным эффектом. При выделении необходимого патента выводится подробное описание патента.
Рисунок А.4 - Подбор эффекта
А.5 Подбор идей и действий патентов
Для подбора идей и действий нажмите на кнопку «Подобрать действие». Вместе с показанным действием патента выводится список патентов, связанных с данным эффектом, список геометрических эффектов и список идей.
Рисунок А.5 - Подбор идей и действий патентов
А.6 Просмотр справки
Для просмотра полной информации о текущем состоянии базы данных нажмите на кнопку «Справка».
Рисунок А.6 - Окно справки
ПРИЛОЖЕНИЕ В
ЛИСТИНГ
Форма эксперта
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;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
int r = dataGridView1.CurrentRow.Index;
string idPatent = dataGridView1.Rows[r].Cells[0].Value.ToString();
try
{
//выбираем те эффекты что привязаны к патенту
string query = "SELECT Геометрические_эффекты.Название, Геометрические_эффекты.Id " +
"FROM Геометрические_эффекты, Патенты_Геометрических_эффектов, Патенты " +
"WHERE Геометрические_эффекты.Id = Патенты_Геометрических_эффектов.Геометрические_эффекты_Id " +
"AND Патенты_Геометрических_эффектов.Патенты_Id = Патенты.Id " +
"AND Патенты.Id = %id%".Replace("%id%", idPatent);
SqlConnection connection = openConnection();
SqlDataReader myReader = sendQuery(query,connection);
//очищаем 3е окно при каждом клике в первом
_paternEffectsDataGridView.Rows.Clear();
while (myReader.Read())
{
int c = _paternEffectsDataGridView.RowCount;
_paternEffectsDataGridView.Rows.Add(1);
_paternEffectsDataGridView.Rows[c].Cells[0].Value = myReader["Id"].ToString();
_paternEffectsDataGridView.Rows[c].Cells[1].Value = myReader["Название"].ToString();
}
closeConnection(connection);
}
catch (Exception exc)
{
string excText = exc.ToString();
}
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
string query = "SELECT Id, Название FROM Патенты";
SqlConnection connection = openConnection();
SqlDataReader myReader = sendQuery(query, connection);
while (myReader.Read())
{
int c = dataGridView1.RowCount;
dataGridView1.Rows.Add(1);
dataGridView1.Rows[c].Cells[0].Value = myReader["Id"];
dataGridView1.Rows[c].Cells[1].Value = myReader["Название"].ToString();
}
myReader.Close();
query = "SELECT Id, Название FROM Геометрические_эффекты";
myReader = sendQuery(query, connection);
while (myReader.Read())
{
int c = _effectsDataGridView.RowCount;
_effectsDataGridView.Rows.Add(1);
_effectsDataGridView.Rows[c].Cells[0].Value = myReader["Id"];
_effectsDataGridView.Rows[c].Cells[1].Value = myReader["Название"].ToString();
}
myReader.Close();
query = "Select Id, название from Идеи";
myReader = sendQuery(query, connection);
while (myReader.Read())
{
int c = _ideasDataGridView.RowCount;
_ideasDataGridView.Rows.Add(1);
_ideasDataGridView.Rows[c].Cells[0].Value = myReader["Id"];
_ideasDataGridView.Rows[c].Cells[1].Value = myReader["Название"].ToString();
}
myReader.Close();
query = "Select Id, Название from Действия";
myReader = sendQuery(query, connection);
while (myReader.Read())
{
int c = _actionsDataGridView.RowCount;
_actionsDataGridView.Rows.Add(1);
_actionsDataGridView.Rows[c].Cells[0].Value = myReader["Id"];
_actionsDataGridView.Rows[c].Cells[1].Value = myReader["Название"].ToString();
}
myReader.Close();
query = "SELECT Геометрические_эффекты.Название, Геометрические_эффекты.Id " +
"FROM Геометрические_эффекты, Патенты_Геометрических_эффектов, Патенты " +
"WHERE Геометрические_эффекты.Id = Патенты_Геометрических_эффектов.Геометрические_эффекты_Id " +
"AND Патенты_Геометрических_эффектов.Патенты_Id = Патенты.Id " +
"AND Патенты.Id = %id%".Replace("%id%", dataGridView1.Rows[0].Cells[0].Value.ToString());
while (myReader.Read())
{
int c = _paternEffectsDataGridView.RowCount;
_paternEffectsDataGridView.Rows.Add(1);
_paternEffectsDataGridView.Rows[c].Cells[0].Value = myReader["Id"].ToString();
_paternEffectsDataGridView.Rows[c].Cells[1].Value = myReader["Название"].ToString();
}
closeConnection(connection);
}
catch (Exception exc)
{
string excText = exc.ToString();
}
}
//функция посылает запрос в базу
SqlDataReader sendQuery(string query, SqlConnection connection)
{
SqlDataReader myReader;
SqlCommand myCommand = new SqlCommand(query, connection);
//выполняем запрос
myReader = myCommand.ExecuteReader();
return myReader;
}
private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
//кнопка добавления
private void button1_Click(object sender, EventArgs e)
{
int row1 = dataGridView1.CurrentRow.Index;
int row2 = _paternEffectsDataGridView.CurrentRow.Index;
string idPatent = dataGridView1.Rows[row1].Cells[0].Value.ToString();
string idEffect = _paternEffectsDataGridView.Rows[row2].Cells[0].Value.ToString();
string query = "INSERT INTO Патенты_Геометрических_эффектов (Патенты_Id, Геометрические_эффекты_Id) " +
"VALUES (%idPatent%, %idEffect%)"
.Replace("%idPatent%", idPatent)
.Replace("%idEffect%", idEffect);
SqlConnection connection = openConnection();
sendQuery(query, connection);
connection.Close();
int c = _effectsDataGridView.RowCount;
string id = _paternEffectsDataGridView.Rows[row2].Cells[0].Value.ToString();
string s = _paternEffectsDataGridView.Rows[row2].Cells[1].Value.ToString();
_effectsDataGridView.Rows.Add(1);
_effectsDataGridView.Rows[c].Cells[0].Value = id;
_effectsDataGridView.Rows[c].Cells[1].Value = s;
}
//кнопка удаления
private void button2_Click(object sender, EventArgs e)
{
int row1 = dataGridView1.CurrentRow.Index;
int row3 = _effectsDataGridView.CurrentRow.Index;
string idPatent = dataGridView1.Rows[row1].Cells[0].Value.ToString();
string idEffect = _effectsDataGridView.Rows[row3].Cells[0].Value.ToString();
string query = "DELETE FROM Патенты_Геометрических_эффектов " +
"WHERE Патенты_Id = %idPatent% "
.Replace("%idPatent%", idPatent) +
"AND Геометрические_эффекты_Id = %idEffect%"
.Replace("%idEffect%", idEffect);
SqlConnection connection = openConnection();
sendQuery(query, connection);
connection.Close();
_effectsDataGridView.Rows.RemoveAt(row3);
}
//функция открывает соединение с базой
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 button3_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
this.Hide();
}
private void button8_Click(object sender, EventArgs e)
{
SqlConnection connection = openConnection();
SqlCommand query = new SqlCommand("SELECT COUNT (Id) FROM Геометрические_эффекты", connection);
int count=(int)query.ExecuteScalar();
string gE = count.ToString();
query = new SqlCommand("SELECT COUNT (Id) FROM Патенты", connection);
count = (int)query.ExecuteScalar();
string patent=count.ToString();
query = new SqlCommand("SELECT count(distinct(p.id)) FROM Патенты p inner join Патенты_Геометрических_эффектов pg on p.Id = pg.Патенты_Id", connection);
string countLinkPattern = query.ExecuteScalar().ToString();
query = new SqlCommand(@"select count(distinct(t.id))
from(SELECT p.id
FROM Патенты p
inner join Патенты_Геометрических_эффектов pg on p.Id = pg.Патенты_Id
group by p.id
having count(pg.Id) = 1)t", connection);
string countPatternOneLink = query.ExecuteScalar().ToString();
query = new SqlCommand(@"select count(distinct(t.id))
from(SELECT p.id
FROM Патенты p
inner join Патенты_Геометрических_эффектов pg on p.Id = pg.Патенты_Id
group by p.id
having count(pg.Id) = 2)t", connection);
string countPatternTwoLink = query.ExecuteScalar().ToString();
query = new SqlCommand("SELECT COUNT (Id) FROM Патенты_Геометрических_Эффектов", connection);
count = (int)query.ExecuteScalar();
string pGE = count.ToString();
SqlDataReader myReader = sendQuery(@"SELECT top 3
max(ge.Название) Название,
count(pge.Id) Количество_связей
FROM Геометрические_эффекты ge
inner join Патенты_Геометрических_эффектов pge on ge.Id = pge.Геометрические_эффекты_Id
group by ge.Id
order by Количество_связей desc", connection);
string topLink = "";
while (myReader.Read())
{
topLink += myReader["Название"] + " всего связей " + myReader["Количество_связей"].ToString() + "\r\n";
}
myReader.Close();
MessageBox.Show("Паттерны"+
"\r\nВсего патентов в базе: " + patent +
"\r\nПатернов, связанных с геометрическими эффектами: " + countLinkPattern +
"\r\nПатернов, не связанных с геометрическими эффектами: " + (int.Parse(patent)-int.Parse(countLinkPattern)).ToString()+
"\r\nПатернов связанных:\r\nС одним геометрическим эффектом: " + countPatternOneLink +
"\r\nС двумя геометрическим эффектом: " + countPatternTwoLink +
"\r\nС тремя и более геометрическими эффектами: " + (int.Parse(countLinkPattern) - int.Parse(countPatternOneLink) -int.Parse(countPatternTwoLink)).ToString() +
"\r\n\r\nЭффекты:\r\nВсего геометрических эффектов в базе: " + gE + "\r\n"+topLink
,"Статистика наполнения базы");
query = new SqlCommand();
connection.Close();
}
private void button9_Click(object sender, EventArgs e)
{
TestForm test = new TestForm();
test.ShowDialog();
}
private void button10_Click(object sender, EventArgs e)
{
string query = "Select Id, Название from Действия";
SqlConnection connection = openConnection();
SqlDataReader myReader = sendQuery(query, connection);
while (myReader.Read())
{
int c = _actionsDataGridView.RowCount;
_actionsDataGridView.Rows.Add(1);
_actionsDataGridView.Rows[c].Cells[0].Value = myReader["Id"];
_actionsDataGridView.Rows[c].Cells[1].Value = myReader["Название"].ToString();
}
myReader.Close();
}
private void _actionsDataGridView_SelectionChanged(object sender, EventArgs e)
{
}
}
}
Форма обучаемого
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 Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
}
private void Form2_Closing(object sender, EventArgs e)
{
Form1 f1 = new Form1();
f1.Show();
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
public int i = 0;
private void button2_Click(object sender, EventArgs e)
{
//string where = " where Коэффициент >= " + comboBox1.SelectedItem.ToString() + "-1 and Коэффициент<= " + comboBox1.SelectedItem.ToString() + "+1";
string where = "";
GetEffect(where);
}
private List<string> ExecuteQueryGetEffect(string lineWhere , ref List<string> effect, ref List<string> effectId)
{
dataGridView1.Rows.Clear();
string query = "SELECT Id, Название FROM Геометрические_эффекты" + lineWhere;
SqlConnection connection = openConnection();
SqlDataReader myReader = sendQuery(query, connection);
//List<string> effect = new List<string>();
//List<string> effectId = new List<string>();
while (myReader.Read())
{
effectId.Add(myReader["Id"].ToString());
effect.Add(myReader["Название"].ToString());
}
myReader.Close();
return effect;
}
private void GetEffect(string lineWhere)