Разработка автоматизированной системы классификации товаров по изображениям

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



?тема классификации товаров была внедрена и используется для осуществления коммерческой деятельности на предприятии ООО "Алсени".

Список использованной литературы

1.Абрамян М. Visual C# на примерах. - Санкт Петербург: BHV-Санкт-Петербург, 2008 - 496с.

2.Евсеева О.Н., Шамшев А.Б. Работа с базами данных на языке C#. Технология ADO.net. - Ульяновск: УлГТУ, 2009 - 176с.

.Комарцова Л.Г., Максимов А.В. Нейрокомпьютеры. - М.: МГТУ им. Н.Э. Баумана, 2004. - 400с.

.Круглов В.В., Борисов В.В. Искусственные нейронные сети. Теория и практика. - М.: Горячая линия - Телеком, 2001. - 382с.

5.-..">Хабрахабр [Электронный ресурс]: Распараллеливание задач. Случай "идеальной параллельности". Часть 1. Режим доступа: - Загл. с экрана.

.-..">Хабрахабр [Электронный ресурс]: Распараллеливание задач. Случай "идеальной параллельности". Часть 2. Режим доступа: - Загл. с экрана.

.Эндрю Троелсен. Язык программирования C# 2010 и платформа.net 4. - М.: Вильямс, 2010. - 1392с.

. - Загл. с экрана.">MS Geeks [Электронный ресурс]: Регулярные выражения в C#. Режим доступа:

Приложение

Листинг программы

Модуль Threading

using System;System. Collections. Generic;System. Linq;System. Text;grabberMolotok. Threading

{class ThreadHelper

{static List list, int splits)

{count = list. Count;(count < splits)

{ [count];(int i = 0; i < count; i++)

{[i] = new List ();[i]. Add (list [i]);

}resultList;

} [splits];splitSize = count / splits;lastSplit = count % splits;(int i = 0; i < splits - 1; i++)

{[i] = new List ();(int j = 0; j < splitSize; j++)

{[i]. Add (list [i * splitSize + j]);

}

}[splits - 1] = new List ();(int j = 0; j < splitSize + lastSplit; j++)

{[splits - 1]. Add (list [splits - 1 * splitSize + j]);

}splittedList;

}static int CountWorkAmount [] list)

{counter = 0;(var l in list)(var el in l)++;counter;

}

}

}

Модуль DBWorker

using System;System. Collections. Generic;System. Linq;System. Text;System. Data;System. Data. SqlClient;grabberMolotok. DBEngine

{class DBEngine

{connectionString; // строка подключенияCategoryTable categoryTable; // таблица категорийImageTable imageTable; // таблица изображенийSettingsTable settingsTable; // таблица настроекDBEngine ()

{builder = new SqlConnectionStringBuilder ();. DataSource =". \\SQLExpress";. InitialCatalog = "molotokdb";. IntegratedSecurity = true;= builder. ToString ();();

}InitTables ()

{= new CategoryTable (connectionString);= new ImageTable (connectionString);= new SettingsTable (connectionString);

}void ClearTables ()

{. Clear ();. Clear ();

}

}

}System;System. Collections. Generic;System. Linq;System. Text;System. Data;System. Data. SqlClient;grabberMolotok. DBEngine

{class CategoryTable: EngineTable

{CategoryTable (string connectionString)

{. tableName = "Categories";. connectionString = connectionString;

}void Insert (List categories)

{(this)

{connection = new SqlConnection (connectionString);insertCategoryCommand = new SqlCommand ("sp_InsertCategory", connection);.commandType = CommandType. StoredProcedure;. UpdatedRowSource = UpdateRowSource. OutputParameters;(insertCategoryCommand. Parameters);. Open ();(var category in categories)

{(insertCategoryCommand. Parameters, category);. ExecuteNonQuery ();

}. Close ();

}

}void Insert (Category c)

{(this)

{connection = new SqlConnection (connectionString);insertCategoryCommand = new SqlCommand ("sp_InsertCategory", connection);.commandType = CommandType. StoredProcedure;. UpdatedRowSource = UpdateRowSource. OutputParameters;(insertCategoryCommand. Parameters);. Open ();(insertCategoryCommand. Parameters, c);. ExecuteNonQuery ();. Close ();

}

}List GetAll ()

{(this)

{connection = new SqlConnection (connectionString); ();getCommand = new SqlCommand ("SELECT * FROM " + tableName, connection);. Open ();reader = getCommand. ExecuteReader ();(reader. Read ())

{. Add (GetFromReader (reader));

}. Close ();categoryList;

}

}Category GetById (int id)

{(this)

{c = null;connection = new SqlConnection (connectionString); ();getCommand = new SqlCommand ("SELECT * FROM " + tableName + " WHERE id=@id", connection);. Parameters. Add (new SqlParameter ("@id", id));. Open ();reader = getCommand. ExecuteReader ();(reader. Read ())= GetFromReader (reader);. Close ();c;

}

}

#region Мелкие функцииCategory GetFromReader (SqlDataReader reader)

{c = new Category ();. id = (int) reader ["id"];. level = (int) reader ["level"];. name = (string) reader ["name"];. url = (string) reader ["url"];. parentURL = (string) reader ["parentUrl"];c;

}void GetCommandParameters (SqlParameterCollection parameters)

{. Clear ();. Add ("@id", SqlDbType. Int);. Add ("@level", SqlDbType. Int);. Add ("@name", SqlDbType. VarChar);. Add ("@url", SqlDbType. VarChar);. Add ("@parentUrl", SqlDbType. VarChar);

}void FillCommandParameters (SqlParameterCollection parameters, Category c)

{["@id"]. Value = c. id;["@level"]. Value = c. level;["@name"]. Value = c. name;["@url"]. Value = c. url;["@parentUrl"]. Value = c. parentURL;

}

#endregion

}

}

Модуль Grabber

using System;System. Collections. Generic;System. Linq;System. Text;System.net;System. IO;System. Windows. Forms;System. Text. RegularExpressions;System. Threading;System. Diagnostics;grabberMolotok. Threading;grabberMolotok

{Grabber

{. DBEngine dbEngine; // движок БД categories; // категорииgetItemCounter; // счетчик получения товаровgetItemWorkAmount; // объём работы получения товаровgetItemThreadCount; // количество потоков получения товаровint GetItemThreadCount

{{ return getItemThreadCount; }{ getItemThreadCount = value; }

}saveImageCounter; // счетчик сохранения изображенийsaveItemWorkAmount; // объём работы сохранения изображенийsaveItemThreadCount; // количество потоков сохранения изображенийint SaveItemThreadCount

{{ return saveItemThreadCount; }{ saveItemThreadCount = value; }

}

#region Событияdelegate void AllCategoriesParseCompletedEventHandler ();static event AllCategoriesParseCompletedEventHandler AllCategoriesParseCompletedEvent;delegate void AllCategoriesImageSaveCompletedEventHandler ();static event AllCategoriesImageSaveCompletedEventHandler AllCategoriesImageSaveCompletedEvent;delegate void CategoriesGotEventHandler ();static event CategoriesGotEventHandler CategoriesGotEvent;OnCategoryParseComplete ()

{++;(getItemCounter == getItemWorkAmount)

{();

}

}OnCategoryImageSaveComplete ()

{++;(saveImageCounter == saveItemWorkAmount)

{(AllCategoriesImageSaveCompletedEvent! = null)();

}

}

#endregion СобытияGrabber ()

{. CategoryParseCompletedEvent += new Category. CategoryParseCompletedEventHandler (this. OnCategoryParseComplete);. CategoryImageSaveCompletedEvent += new Category. CategoryImageSaveCompletedEventHandler (this. OnCategoryImageSaveComplete);= new DBEngine. DBEngine ();= new List ();= 0;= - 1;= 8;= 0;= - 1;= 8;

}

// /

// / Получает список категорий с молотка

// / void GetCategories ()

columnDivList=null;<HtmlElement>categoriesHtmlList=newList<HtmlElement>();=wB.WaitElement("pagecontent1",10000)">{. WriteL