Диплом: Автоматизация и обеспечение информационной безопасности приема заявок на ремонт и модернизацию ПК в ООО "Гео-СВЕТ"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
92
по анализу состояния оборудования, распределения оборудования по
категориям, оценки заявок по состоянию, а также отчеты по незакрепленному
оборудованию и заявкам и акт выполненных работ.
К основным функциям АРМ учета заявки ООО «Гео-СВЕТ» относятся
функции «Создать», «Редактировать», «Удалить», «Обновить» и «Поиск». К
вспомогательным функциям относятся «Создать группу», «Создать категорию»,
«Сформировать отчет», «Печать» и «Экспорт».
Перечисленные функции размещены на панели инструментов
справочников, журналов и форм для формирования отчетов.
Выполненные расчеты в третьей части работы показали, что разработка
АРМ учета заявок целесообразна. Срок окупаемости составил 0,56 года,
экономический эффект равен 39074,4 руб., коэффициент экономической
эффективности составил 1,78.
93
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Волков Д.А. Базы данных: учеб. пособие/ Д.А. Волков. – М.: МИСИ-
МГСУ, Ай Пи Эр Медиа, ЭБС АСВ, 2018. – 77 c.
2. Журавлева Т.Ю. Информационные технологии: учеб. пособие/ Т.Ю.
Журавлева. – Саратов: Вузовское образование, 2018. – 72 c.
3. Исаченко О. В. Программное обеспечение компьютерных сетей : учеб.
пособие / О.В. Исаченко. – М.: ИНФРА-М, 2017. - 117 с.
4. Лапшина С.Н. Информационные технологии в менеджменте: учеб.
пособие / С.Н. Лапшина, Н.И. Тебайкина. – Саратов, Екатеринбург:
Профобразование, Уральский федеральный университет, 2019. 83 c.
5. Майорова Е. В. Информационные технологии в менеджменте: учебник
/ Е. В. Майорова. – Москва: Издательство Юрайт, 2019. – 368 с.
6. Мейер Б. Объектно-ориентированное программирование и
программная инженерия: учеб. пособие / Б. Мейер. – М.: Интернет-Университет
Информационных Технологий (ИНТУИТ), Ай Пи Эр Медиа, 2019. – 285 c.
7. Мирошников А.И. Архитектура систем управления базами данных:
учеб. пособие/ А.И. Мирошников. – Липецк: Липецкий государственный
технический университет, ЭБС АСВ, 2018. – 94 c.
8. Моргунов А. Ф. Информационные технологии в менеджменте:
учебник / А. Ф. Моргунов. – Москва: Издательство Юрайт, 2019. – 266 с.
9. Иноземцева С.А. Информатика и программирование: лабораторный
практикум/ С.А. Иноземцева. – Саратов: Вузовское образование, 2018. – 68 c.
10. Назаров С.В. Основы информационных технологий: учеб. пособие/
С.В. Назаров. – М.: Интернет-Университет Информационных Технологий
(ИНТУИТ), 2016. – 530 c.
11. Парфенова Е.В. Информационные технологии: лабораторный
практикум/ Е.В. Парфенова. – М.: Издательский Дом МИСиС, 2018. – 56 c.
12. Пахомова Н.А. Информационные технологии в менеджменте: учебно-
методическое пособие/ Н.А. Пахомова. – Саратов: Ай Пи Эр Медиа, 2018. – 93 c.
13. Потопахин В.В. Современное программирование с нуля: учеб.
пособие/ В.В. Потопахин. – Саратов: Профобразование, 2017. – 240 c.
94
14. Стешин А.И. Информационные системы в организации: учеб. пособие/
А.И. Стешин. – Саратов: Вузовское образование, 2019. – 194 c.
15. Тюльпинова Н.В. Алгоритмизация и программирование: учебное
пособие/ Н.В. Тюльпинова. – Саратов: Вузовское образование, 2019. – 200 c.
16. Флойд К.С. Введение в программирование на PHP5: учеб. пособие /
К.С. Флойд. – М.: Интернет-Университет Информационных Технологий
(ИНТУИТ), 2016. – 280 c.
17. Фомичев А.Н. Исследование систем управления: учебник / А.Н.
Фомичев. – Москва: Дашков и К, 2019. – 348 c.
18. Фултон Хэл Программирование: учеб. пособие / Фултон Хэл. –
Саратов: Профобразование, 2017. – 685 c.
19. Цветкова А.В. Информатика и информационные технологии: учеб.
пособие / А.В. Цветкова. – Саратов: Научная книга, 2019. 190 c.
20. Одинцов Б. Е. Информационные системы управления эффективностью
бизнеса: учебник и практикум / Б. Е. Одинцов. – Москва: Издательство Юрайт,
2019. – 206 с.
21. Нетёсова О. Ю. Информационные системы и технологии в экономике:
учебное пособие / О. Ю. Нетёсова. – Москва: Издательство Юрайт, 2019. – 178 с.
22. Плахотникова М. А. Информационные технологии в менеджменте:
учебник и практикум / М. А. Плахотникова, Ю. В. Вертакова. – Москва:
Издательство Юрайт, 2020. – 326 с.
23. Романова Ю. Д. Информационные технологии в менеджменте
(управлении): учебник и практикум / Ю. Д. Романова. – Москва: Издательство
Юрайт, 2019. – 411 с.
24. Рыбальченко М. В. Архитектура информационных систем: учеб.
пособие / М. В. Рыбальченко. – Москва: Издательство Юрайт, 2019. – 91 с.
25. Спицина И.А. Разработка информационных систем. Пользовательский
интерфейс: учеб. пособие / И.А. Спицина, К.А. Аксёнов. – Саратов,
Екатеринбург: Профобразование, Уральский федеральный университет, 2020. –
98 c.
26. Стасышин В.М. Разработка информационных систем и баз данных:
учеб. пособие / В.М. Стасышин. – Саратов: Профобразование, 2020. – 100 c.
95
27. Советов Б. Я. Информационные технологии: учебник / Б. Я. Советов,
В. В. Цехановский. – Москва: Издательство Юрайт, 2019. – 327 с.
28. Интернет-шлюз Ideco UTM 7.9. [Электронный ресурс]. URL:
https://www.anti-malware.ru/reviews/Ideco-UTM-7-9 (дата обращения: 13.05.2020
г.).
29. Программа «Аналитика Service Desk». [Электронный ресурс]. URL:
https://1c-helpdesk.ru/ (дата обращения: 13.05.2020 г.).
30. Программа Service Desk Criteo. [Электронный ресурс]. URL:
https://www.terrasoft.ru/page/service-desk (дата обращения: 13.05.2020 г.).
31. Программа Personal ID Service Desk. [Электронный ресурс]. URL:
https://pitdesk.com/modules_pit/service_desk/ (дата обращения: 13.05.2020 г.).
ПРИЛОЖЕНИЯ
Приложение 1
Сценарий диалога в АРМ учета заявки ООО «Гео-СВЕТ»
Главное меню
Организация
Отделение
Создать
Редактировать
Удалить
Обновить
Поиск
Должности
Создать
Редактировать
Удалить
Обновить
Поиск
Сотрудники
Создать
Редактировать
Удалить
Обновить
Поиск
Оборудование
Группы,
категории
Создать
Редактировать
Удалить
Обновить
Поиск
Группа
оборудования
Категория
оборудования
Оборудование
Создать
Редактировать
Удалить
Обновить
Поиск
Производители
Создать
Редактировать
Удалить
Обновить
Поиск
Статус
оборудования
Создать
Редактировать
Удалить
Обновить
Поиск
Заявки
Создать
Редактировать
Удалить
Обновить
Поиск
Анализ
Создать
Редактировать
Удалить
Обновить
Поиск
Выполнить
Печать
Сохранить
Безопасность
Пользователи
Создать
Редактировать
Удалить
Обновить
Поиск
Кабинет
Оборудование
ответственный
Создать
Редактировать
Удалить
Обновить
Поиск
Заявки
ответственный
Создать
Редактировать
Удалить
Обновить
Поиск
Окно О программе
Приложение 2
Листинг программного кода
//Copyright (C) Microsoft Corporation. All rights reserved.
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Reflection.Emit;
using System.Threading;
namespace System.Linq.Dynamic
{
public static class DynamicQueryable
{
public static IQueryable<T> Where<T>(this IQueryable<T> source, string predicate, params
object[] values) {
return (IQueryable<T>)Where((IQueryable)source, predicate, values);
}
public static IQueryable Where(this IQueryable source, string predicate, params object[] values) {
if (source == null) throw new ArgumentNullException("source");
if (predicate == null) throw new ArgumentNullException("predicate");
LambdaExpression lambda = DynamicExpression.ParseLambda(source.ElementType,
typeof(bool), predicate, values);
return source.Provider.CreateQuery(
Expression.Call(
typeof(Queryable), "Where",
new Type[] { source.ElementType },
source.Expression, Expression.Quote(lambda)));
}
public static IQueryable Select(this IQueryable source, string selector, params object[] values) {
if (source == null) throw new ArgumentNullException("source");
if (selector == null) throw new ArgumentNullException("selector");
LambdaExpression lambda = DynamicExpression.ParseLambda(source.ElementType, null,
selector, values);
return source.Provider.CreateQuery(
Expression.Call(
typeof(Queryable), "Select",
new Type[] { source.ElementType, lambda.Body.Type },
source.Expression, Expression.Quote(lambda)));
}
public static IQueryable<T> OrderBy<T>(this IQueryable<T> source, string ordering, params
object[] values) {
return (IQueryable<T>)OrderBy((IQueryable)source, ordering, values);
}
public static IQueryable OrderBy(this IQueryable source, string ordering, params object[] values)
{
if (source == null) throw new ArgumentNullException("source");
if (ordering == null) throw new ArgumentNullException("ordering");
98
ParameterExpression[] parameters = new ParameterExpression[] {
Expression.Parameter(source.ElementType, "") };
ExpressionParser parser = new ExpressionParser(parameters, ordering, values);
IEnumerable<DynamicOrdering> orderings = parser.ParseOrdering();
Expression queryExpr = source.Expression;
string methodAsc = "OrderBy";
string methodDesc = "OrderByDescending";
foreach (DynamicOrdering o in orderings) {
queryExpr = Expression.Call(
typeof(Queryable), o.Ascending ? methodAsc : methodDesc,
new Type[] { source.ElementType, o.Selector.Type },
queryExpr, Expression.Quote(Expression.Lambda(o.Selector, parameters)));
methodAsc = "ThenBy";
methodDesc = "ThenByDescending";
}
return source.Provider.CreateQuery(queryExpr);
}
public static IQueryable Take(this IQueryable source, int count) {
if (source == null) throw new ArgumentNullException("source");
return source.Provider.CreateQuery(
Expression.Call(
typeof(Queryable), "Take",
new Type[] { source.ElementType },
source.Expression, Expression.Constant(count)));
}
public static IQueryable Skip(this IQueryable source, int count) {
if (source == null) throw new ArgumentNullException("source");
return source.Provider.CreateQuery(
Expression.Call(
typeof(Queryable), "Skip",
new Type[] { source.ElementType },
source.Expression, Expression.Constant(count)));
}
public static IQueryable GroupBy(this IQueryable source, string keySelector, string
elementSelector, params object[] values) {
if (source == null) throw new ArgumentNullException("source");
if (keySelector == null) throw new ArgumentNullException("keySelector");
if (elementSelector == null) throw new ArgumentNullException("elementSelector");
LambdaExpression keyLambda = DynamicExpression.ParseLambda(source.ElementType,
null, keySelector, values);
LambdaExpression elementLambda = DynamicExpression.ParseLambda(source.ElementType,
null, elementSelector, values);
return source.Provider.CreateQuery(
Expression.Call(
typeof(Queryable), "GroupBy",
new Type[] { source.ElementType, keyLambda.Body.Type, elementLambda.Body.Type
},
source.Expression, Expression.Quote(keyLambda), Expression.Quote(elementLambda)));
}
public static bool Any(this IQueryable source) {
if (source == null) throw new ArgumentNullException("source");
return (bool)source.Provider.Execute(
Expression.Call(
99
typeof(Queryable), "Any",
new Type[] { source.ElementType }, source.Expression));
}
public static int Count(this IQueryable source) {
if (source == null) throw new ArgumentNullException("source");
return (int)source.Provider.Execute(
Expression.Call(
typeof(Queryable), "Count",
new Type[] { source.ElementType }, source.Expression));
}
}
public abstract class DynamicClass
{
public override string ToString() {
PropertyInfo[] props = this.GetType().GetProperties(BindingFlags.Instance |
BindingFlags.Public);
StringBuilder sb = new StringBuilder();
sb.Append("{");
for (int i = 0; i < props.Length; i++) {
if (i > 0) sb.Append(", ");
sb.Append(props[i].Name);
sb.Append("=");
sb.Append(props[i].GetValue(this, null));
}
sb.Append("}");
return sb.ToString();
}
}
public class DynamicProperty
{
string name;
Type type;
public DynamicProperty(string name, Type type) {
if (name == null) throw new ArgumentNullException("name");
if (type == null) throw new ArgumentNullException("type");
this.name = name;
this.type = type;
}
public string Name {
get { return name; }
}
public Type Type {
get { return type; }
}
}
public static class DynamicExpression
{
public static Expression Parse(Type resultType, string expression, params object[] values) {
ExpressionParser parser = new ExpressionParser(null, expression, values);
return parser.Parse(resultType);
100
}
public static LambdaExpression ParseLambda(Type itType, Type resultType, string expression,
params object[] values) {
return ParseLambda(new ParameterExpression[] { Expression.Parameter(itType, "") },
resultType, expression, values);
}
public static LambdaExpression ParseLambda(ParameterExpression[] parameters, Type
resultType, string expression, params object[] values) {
ExpressionParser parser = new ExpressionParser(parameters, expression, values);
return Expression.Lambda(parser.Parse(resultType), parameters);
}
public static Expression<Func<T, S>> ParseLambda<T, S>(string expression, params object[]
values) {
return (Expression<Func<T, S>>)ParseLambda(typeof(T), typeof(S), expression, values);
}
public static Type CreateClass(params DynamicProperty[] properties) {
return ClassFactory.Instance.GetDynamicClass(properties);
}
public static Type CreateClass(IEnumerable<DynamicProperty> properties) {
return ClassFactory.Instance.GetDynamicClass(properties);
}
}
internal class DynamicOrdering
{
public Expression Selector;
public bool Ascending;
}
internal class Signature : IEquatable<Signature>
{
public DynamicProperty[] properties;
public int hashCode;
public Signature(IEnumerable<DynamicProperty> properties) {
this.properties = properties.ToArray();
hashCode = 0;
foreach (DynamicProperty p in properties) {
hashCode ^= p.Name.GetHashCode() ^ p.Type.GetHashCode();
}
}
public override int GetHashCode() {
return hashCode;
}
public override bool Equals(object obj) {
return obj is Signature ? Equals((Signature)obj) : false;
}
public bool Equals(Signature other) {
if (properties.Length != other.properties.Length) return false;
101
for (int i = 0; i < properties.Length; i++) {
if (properties[i].Name != other.properties[i].Name ||
properties[i].Type != other.properties[i].Type) return false;
}
return true;
}
}
internal class ClassFactory
{
public static readonly ClassFactory Instance = new ClassFactory();
static ClassFactory() { } // Trigger lazy initialization of static fields
ModuleBuilder module;
Dictionary<Signature, Type> classes;
int classCount;
ReaderWriterLock rwLock;
private ClassFactory() {
AssemblyName name = new AssemblyName("DynamicClasses");
AssemblyBuilder assembly = AppDomain.CurrentDomain.DefineDynamicAssembly(name,
AssemblyBuilderAccess.Run);
#if ENABLE_LINQ_PARTIAL_TRUST
new ReflectionPermission(PermissionState.Unrestricted).Assert();
#endif
try {
module = assembly.DefineDynamicModule("Module");
}
finally {
#if ENABLE_LINQ_PARTIAL_TRUST
PermissionSet.RevertAssert();
#endif
}
classes = new Dictionary<Signature, Type>();
rwLock = new ReaderWriterLock();
}
public Type GetDynamicClass(IEnumerable<DynamicProperty> properties) {
rwLock.AcquireReaderLock(Timeout.Infinite);
try {
Signature signature = new Signature(properties);
Type type;
if (!classes.TryGetValue(signature, out type)) {
type = CreateDynamicClass(signature.properties);
classes.Add(signature, type);
}
return type;
}
finally {
rwLock.ReleaseReaderLock();
}
}
Type CreateDynamicClass(DynamicProperty[] properties) {
LockCookie cookie = rwLock.UpgradeToWriterLock(Timeout.Infinite);
try {

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)