курсовая дерево принятия решений. курсач123ДПР. Первая. Анализ прикладной области. Требования к системе 4 Глава вторая. Постановка задачи
Скачать 0.95 Mb.
|
ЗаключениеВ процессе проделанной работы была разработана системы анализа рынка персональных компьютеров. В результате выполнения курсового проекта были получены следующие результаты: Исследованы и разработаны методы классификации. Разработан алгоритм анализа данных на основе лингвистических оценок Разработанные методы отличаются от аналогов, тем что разработаны со спецификой применения к лингвистическим оценкам, а не числовым значениям. Практическая ценность исследования состоит в том, что использование данного инструмента позволит значительно сократить затраты времени анализ рынка персональных компьютеров с целью выбора оптимального варианта по заданным лингвистическим характеристикам параметров. Список используемых источников:Функции принадлежности [Электронный ресурс] /. – Режим доступа: https://studfile.net/preview/6826408/ Интеллектуальный анализ временных рядов : учебное пособие / Н. Г. Ярушкина, Т. В. Афанасьева, И. Г. Перфильева. – Ульяновск : УлГТУ, 2010. – 320 с Листинг кода программыnamespace PK_Analysis { public class MarkParametr { public int Id { get; set; } public Marks Mark { get; set; } public int Down { get; set; } public int Average { get; set; } public int Up { get; set; } public int ParametrId { get; set; } public virtual Parametr Parametr { get; set; } } } namespace PK_Analysis { public enum Marks { Низкая =0, Средняя = 1, Высокая = 2 } } using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; namespace PK_Analysis { public class Parametr { public int Id { get; set; } public string Name { get; set; } [ForeignKey("ParametrId")] public virtual List PKParams { get; set; } [ForeignKey("ParametrId")] public virtual List } } using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; namespace PK_Analysis { public class PK { public int Id { get; set; } public string Name { get; set; } public DateTime Date { get; set; } [ForeignKey("PKId")] public List PKParams { get; set; } } } namespace PK_Analysis { public class PKParam { public int Id { get; set; } public int Value { get; set; } public int PKId { get; set; } public int ParametrId { get; set; } public virtual PK PK { get; set; } public virtual Parametr Parametr { get; set; } } } namespace PK_Analysis { public class TrebParam { public int Id { get; set; } public int ParametrId { get; set; } public Marks Mark { get; set; } } } using PK_Analysis; namespace PK_Analysis_Services.BindingModels { public class MarkParametrBM { public int Id { get; set; } public Marks Mark { get; set; } public int Down { get; set; } public int Average { get; set; } public int Up { get; set; } public int ParametrId { get; set; } } } using PK_Analysis; using System.Collections.Generic; namespace PK_Analysis_Services.BindingModels { public class ParametrBM { public int Id { get; set; } public string Name { get; set; } public virtual List PKParams { get; set; } public virtual List } } using PK_Analysis; using System; using System.Collections.Generic; namespace PK_Analysis_Services.BindingModels { public class PKBM { public int Id { get; set; } public string Name { get; set; } public DateTime Date { get; set; } public List PKParams { get; set; } } } namespace PK_Analysis_Services.BindingModels { public class PKParamBM { public int Id { get; set; } public int Value { get; set; } public int PKId { get; set; } public int ParametrId { get; set; } } } using PK_Analysis_Services.BindingModels; using PK_Analysis_Services.Interfaces; using System; namespace PK_Analysis_Services.ImplementationBD { public class AnalizeServiceBD : IAnalizeService { public PKBM GetAnalize(PKBM idialPK) { throw new NotImplementedException(); } public PKBM GetPredict(PKBM futurePK) { throw new NotImplementedException(); } } } using PK_Analysis; using PK_Analysis_Services.BindingModels; using PK_Analysis_Services.Interfaces; using System; using System.Collections.Generic; using System.Linq; namespace PK_Analysis_Services.ImplementationBD { public class MarkParamServiceBD : IMarkParamService { private PK_AnalysisDbContext3 context; public MarkParamServiceBD(PK_AnalysisDbContext3 context) { this.context = context; } public void CreateElement(MarkParametrBM model) { MarkParametr element = context.MarkParametrs.FirstOrDefault(rec => rec.Mark == model.Mark && rec.ParametrId==model.ParametrId && model.Id==0 ); if (element != null) { throw new Exception("Уже есть такой MarkParametr"); } if (model.Id == 0) { context.MarkParametrs.Add(new MarkParametr { Average = model.Average, Down = model.Down, Mark = model.Mark, ParametrId = model.ParametrId, Up = model.Up }); context.SaveChanges(); } } public void DelElement(MarkParametrBM model) { MarkParametr element = context.MarkParametrs.FirstOrDefault(rec => rec.Id == model.Id); if (element != null) { context.MarkParametrs.Remove(element); context.SaveChanges(); } else { throw new Exception("Элемент не найден"); } } public MarkParametrBM GetElement(int id) { MarkParametr element = context.MarkParametrs.FirstOrDefault(rec => rec.Id == id); if (element != null) { return new MarkParametrBM { Id = element.Id, Average = element.Average, Down = element.Down, Mark = element.Mark, ParametrId = element.ParametrId, Up = element.Up }; } throw new Exception("Элемент не найден"); } public MarkParametrBM GetElement(int idParam, Marks mark) { throw new NotImplementedException(); } public List { List .Select(rec => new MarkParametrBM { Id = rec.Id, Average = rec.Average, Down = rec.Down, Mark = rec.Mark, ParametrId = rec.ParametrId, Up = rec.Up }) .ToList(); return result; } public List { List .Select(rec => new MarkParametrBM { Id = rec.Id, Average = rec.Average, Down = rec.Down, Mark = rec.Mark, ParametrId = rec.ParametrId, Up = rec.Up }) .Where(rec => rec.ParametrId==parametr.Id).ToList(); return result; } public void UpdElement(MarkParametrBM model) { } } } using PK_Analysis; using PK_Analysis_Services.BindingModels; using PK_Analysis_Services.Interfaces; using System; using System.Collections.Generic; using System.Linq; namespace PK_Analysis_Services.ImplementationBD { public class ParametrSeviceBD : IParametrService { private PK_AnalysisDbContext3 context; public ParametrSeviceBD(PK_AnalysisDbContext3 context) { this.context = context; } public void CreateElement(ParametrBM model) { Parametr element = context.Parametrs.FirstOrDefault(rec => rec.Name == model.Name); if (element != null) { throw new Exception("Уже есть parametr с таким name"); } context.Parametrs.Add(new Parametr { Name = model.Name }); context.SaveChanges(); } public void DelElement(int id) { Parametr element = context.Parametrs.FirstOrDefault(rec => rec.Id == id); if (element != null) { context.Parametrs.Remove(element); context.SaveChanges(); } else { throw new Exception("Элемент не найден"); } } public ParametrBM GetElement(int id) { Parametr element = context.Parametrs.FirstOrDefault(rec => rec.Id == id); if (element != null) { return new ParametrBM { Id = element.Id, Name = element.Name, MarkParametrs = element.MarkParametrs, PKParams = element.PKParams }; } throw new Exception("Элемент не найден"); } public List GetList() { List result = context.Parametrs .Select(rec => new ParametrBM { Id = rec.Id, Name = rec.Name, MarkParametrs = rec.MarkParametrs, PKParams = rec.PKParams }).ToList(); return result; } public void UpdElement(ParametrBM model) { using (var transaction = context.Database.BeginTransaction()) { try { Parametr element = context.Parametrs.FirstOrDefault(rec => rec.Id == model.Id); if (element == null) { throw new Exception("Элемент не найден"); } element.Name = model.Name; context.SaveChanges(); foreach (var mp in model.MarkParametrs) { MarkParametr newMarkPar = context.MarkParametrs.FirstOrDefault(rec => rec.Mark == mp.Mark && rec.ParametrId == mp.ParametrId); if (element != null) { throw new Exception("Уже есть такой MarkParametr"); } context.MarkParametrs.Add(new MarkParametr { ParametrId = mp.Id, Average = mp.Average, Down = mp.Down, Mark = mp.Mark, Up = mp.Up }); context.SaveChanges(); } transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } } public void DelElement(MarkParametrBM model) { MarkParametr element = context.MarkParametrs.FirstOrDefault(rec => rec.Id == model.Id); if (element != null) { context.MarkParametrs.Remove(element); context.SaveChanges(); } else { throw new Exception("Элемент не найден"); } } public ParametrBM GetElement(int id, int userId) { Parametr element = context.Parametrs.FirstOrDefault(rec => rec.Id == id); if (element != null) { List return new ParametrBM { Id = element.Id, Name = element.Name, MarkParametrs = marks, PKParams = element.PKParams }; } throw new Exception("Элемент не найден"); } public List { List .Select(rec => new MarkParametrBM { Id = rec.Id, Average = rec.Average, Down = rec.Down, Mark = rec.Mark, ParametrId = rec.ParametrId, Up = rec.Up }) .Where(rec => rec.ParametrId == parametr.Id).ToList(); List foreach(var res in result1) { result.Add(new MarkParametr { Id = res.Id, Average = res.Average, Down = res.Down, Mark = res.Mark, ParametrId = res.ParametrId, Up = res.Up }); } return result; } } } using PK_Analysis; using PK_Analysis_Services.BindingModels; using PK_Analysis_Services.Interfaces; using System; using System.Collections.Generic; using System.Linq; namespace PK_Analysis_Services.ImplementationBD { public class PKParamServiceBD : IPKParamService { private PK_AnalysisDbContext3 context; public PKParamServiceBD(PK_AnalysisDbContext3 context) { this.context = context; } public void CreateElement(PKParamBM model) { PKParam element = context.PKParams.FirstOrDefault(rec => rec.ParametrId == model.ParametrId && rec.PKId == model.PKId); if (element != null) { throw new Exception("Уже есть такой параметр компьютера"); } context.PKParams.Add(new PKParam { ParametrId = model.ParametrId, PKId = model.PKId }); context.SaveChanges(); } public void DelElement(PKParamBM model) { PKParam element = context.PKParams.FirstOrDefault(rec => rec.Id == model.Id); if (element != null) { context.PKParams.Remove(element); context.SaveChanges(); } else { throw new Exception("Элемент не найден"); } } public PKParamBM GetElement(int id) { PKParam element = context.PKParams.FirstOrDefault(rec => rec.Id == id); if (element != null) { return new PKParamBM { Id = element.Id, ParametrId = element.ParametrId, PKId = element.PKId, Value = element.Value }; } throw new Exception("Элемент не найден"); } public PKParamBM GetElement(int paramId, int pkId) { PKParam element = context.PKParams.FirstOrDefault(rec => rec.ParametrId == paramId&&rec.PKId==pkId); if (element != null) { return new PKParamBM { Id = element.Id, ParametrId = element.ParametrId, PKId = element.PKId, Value = element.Value }; } throw new Exception("Элемент не найден"); } public List GetList() { List result = context.PKParams .Select(rec => new PKParamBM { Id = rec.Id, ParametrId = rec.ParametrId, PKId = rec.PKId, Value = rec.Value }) .ToList(); return result; } public void UpdElement(PKParamBM model) { throw new NotImplementedException(); } } } using PK_Analysis; using PK_Analysis_Services.BindingModels; using PK_Analysis_Services.Interfaces; using SPPR_Services.ImplementationBD; using System; using System.Collections.Generic; using System.Linq; using PK = PK_Analysis.PK; namespace PK_Analysis_Services.ImplementationBD { public class PKServiceBD : IPKService { private PK_AnalysisDbContext3 context; public PKServiceBD(PK_AnalysisDbContext3 context) { this.context = context; } public void CreateElement(PKBM model) { using (var transaction = context.Database.BeginTransaction()) { try { PK element = context.PKs.FirstOrDefault(rec => rec.Name == model.Name); if (element != null) { throw new Exception("Уже есть pkhone с таким name"); } PK tel = new PK { Name = model.Name, Date = model.Date }; context.PKs.Add(tel); context.SaveChanges(); foreach (var PKParam in model.PKParams) { context.PKParams.Add(new PKParam { ParametrId = PKParam.ParametrId, PKId = tel.Id, Value = PKParam.Value }); context.SaveChanges(); } |