Разработка программного продукта «Отдел кадров»

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Программирование
  • 48 48 страниц
  • 18 + 18 источников
  • Добавлена 17.01.2024
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 3
1. ПОСТАНОВА ЗАДАЧИ 5
2. ПРОЕКТИРОВАНИЕ СИСТЕМЫ 7
2.1. Проектирование базы данных 7
2.2. Проектирование приложения пользователя 11
3. ОПИСАНИЕ РЕАЛИАЗЦИИ 15
3.1. Выбор средств реализации 15
3.2. Создание базы данных 18
3.3. Создание приложения 19
4. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 28
5. ТЕСТИРОВАНИЕ 33
ЗАКЛЮЧЕНИЕ 35
СПИСОК ЛИТЕРАТУРЫ 37
ПРИЛОЖЕНИЕ А SQL скрипт создания базы данных 39
ПРИЛОЖЕНИЕ Б Код классов сущностей 44

Фрагмент для ознакомления

microsoft.com/ru-ru/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-applicationДиаграмма вариантов использования (Use Case Diagram) [Электронный ресурс]. URL: https://itonboard.ru/analysis/629-diagramma_variantov_ispolzovanija_use_case_diagram/?ysclid=lotc0d1yu880694691ORM. Ключи и ссылки. https://neerc.ifmo.ru/wiki/index.php?title=ORM._%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B8_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8ORM. URL: https://simpleone.ru/glossary/orm/#Диаграммы классов UML. Логическое моделирование. URL: https://www.informicus.ru/mps03.htmlСоздание запросов LINQ на языке C#. URL: https://learn.microsoft.com/ru-ru/dotnet/csharp/linq/write-linq-queriesПРИЛОЖЕНИЕ АSQLскрипт создания базы данныхUSE [master]GO/****** Object: Database [staffDB] Script Date: 16.12.2023 4:05:34 ******/ALTERDATABASE [staffDB] SETCOMPATIBILITY_LEVEL= 110GOIF (1 =FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))beginEXEC [staffDB].[dbo].[sp_fulltext_database]@action ='enable'endGOALTERDATABASE [staffDB] SETANSI_NULL_DEFAULTOFFGOALTERDATABASE [staffDB] SETANSI_NULLSOFFGOALTERDATABASE [staffDB] SETANSI_PADDINGOFFGOALTERDATABASE [staffDB] SETANSI_WARNINGSOFFGOALTERDATABASE [staffDB] SETARITHABORTOFFGOALTERDATABASE [staffDB] SETAUTO_CLOSEONGOALTERDATABASE [staffDB] SETAUTO_SHRINKOFFGOALTERDATABASE [staffDB] SETAUTO_UPDATE_STATISTICSONGOALTERDATABASE [staffDB] SETCURSOR_CLOSE_ON_COMMITOFFGOALTERDATABASE [staffDB] SETCURSOR_DEFAULTGLOBALGOALTERDATABASE [staffDB] SETCONCAT_NULL_YIELDS_NULLOFFGOALTERDATABASE [staffDB] SETNUMERIC_ROUNDABORTOFFGOALTERDATABASE [staffDB] SETQUOTED_IDENTIFIEROFFGOALTERDATABASE [staffDB] SETRECURSIVE_TRIGGERSOFFGOALTERDATABASE [staffDB] SETENABLE_BROKERGOALTERDATABASE [staffDB] SETAUTO_UPDATE_STATISTICS_ASYNCOFFGOALTERDATABASE [staffDB] SETDATE_CORRELATION_OPTIMIZATIONOFFGOALTERDATABASE [staffDB] SETTRUSTWORTHYOFFGOALTERDATABASE [staffDB] SETALLOW_SNAPSHOT_ISOLATIONOFFGOALTERDATABASE [staffDB] SETPARAMETERIZATIONSIMPLEGOALTERDATABASE [staffDB] SETREAD_COMMITTED_SNAPSHOTOFFGOALTERDATABASE [staffDB] SET HONOR_BROKER_PRIORITY OFFGOALTERDATABASE [staffDB] SETRECOVERYSIMPLEGOALTERDATABASE [staffDB] SETMULTI_USERGOALTERDATABASE [staffDB] SETPAGE_VERIFYCHECKSUMGOALTERDATABASE [staffDB] SETDB_CHAININGOFFGOALTERDATABASE [staffDB] SETFILESTREAM( NON_TRANSACTED_ACCESS =OFF)GOALTERDATABASE [staffDB] SET TARGET_RECOVERY_TIME = 0 SECONDS GOUSE [staffDB]GO/****** Object: User [staffadm] Script Date: 16.12.2023 4:05:34 ******/CREATEUSER [staffadm] FORLOGIN [staffadm] WITHDEFAULT_SCHEMA=[dbo]GOALTERROLE [db_owner] ADD MEMBER [staffadm]GO/****** Object: Table [dbo].[career] Script Date: 16.12.2023 4:05:34 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE [dbo].[career]([id] [bigint] IDENTITY(1,1)NOTNULL,[idEmp] [bigint] NULL,[place] [nvarchar](100)NULL,[job] [nvarchar](100)NULL,[dBegin] [date] NULL,[dEnd] [date] NULL,[active] [bit] NULL,CONSTRAINT [PK_career] PRIMARYKEYCLUSTERED([id] ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY])ON [PRIMARY]GO/****** Object: Table [dbo].[depart] Script Date: 16.12.2023 4:05:34 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE [dbo].[depart]([id] [bigint] IDENTITY(1,1)NOTNULL,[idDiv] [bigint] NULL,[idBoss] [bigint] NULL,[capt] [nvarchar](50)NULL,CONSTRAINT [PK_depart_1] PRIMARYKEYCLUSTERED([id] ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY])ON [PRIMARY]GO/****** Object: Table [dbo].[division] Script Date: 16.12.2023 4:05:34 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE [dbo].[division]([id] [bigint] IDENTITY(1,1)NOTNULL,[capt] [nvarchar](50)NULL,[addr] [nvarchar](250)NULL,CONSTRAINT [PK_division] PRIMARYKEYCLUSTERED([id] ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY])ON [PRIMARY]GO/****** Object: Table [dbo].[employee] Script Date: 16.12.2023 4:05:34 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE [dbo].[employee]([id] [bigint] IDENTITY(1,1)NOTNULL,[idDep] [bigint] NULL,[idPos] [bigint] NULL,[surn] [nvarchar](30)NULL,[name] [nvarchar](50)NULL,[patr] [nvarchar](40)NULL,[gender] [nchar](3)NULL,[birth] [date] NULL,[addr] [nvarchar](250)NULL,[phone] [nvarchar](20)NULL,[email] [nvarchar](30)NULL,CONSTRAINT [PK_employee] PRIMARYKEYCLUSTERED([id] ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY])ON [PRIMARY]GO/****** Object: Table [dbo].[pos] Script Date: 16.12.2023 4:05:34 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE [dbo].[pos]([id] [bigint] IDENTITY(1,1)NOTNULL,[capt] [nvarchar](50)NULL,[salary] [float] NULL,CONSTRAINT [PK_pos] PRIMARYKEYCLUSTERED([id] ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY])ON [PRIMARY]GO/****** Object: Table [dbo].[promo] Script Date: 16.12.2023 4:05:34 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE [dbo].[promo]([id] [bigint] IDENTITY(1,1)NOTNULL,[idEmp] [bigint] NULL,[capt] [nvarchar](100)NULL,[pDate] [date] NULL,[rate] [float] NULL,CONSTRAINT [PK_promo] PRIMARYKEYCLUSTERED([id] ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY])ON [PRIMARY]GO/****** Object: Table [dbo].[sick] Script Date: 16.12.2023 4:05:34 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE [dbo].[sick]([id] [bigint] IDENTITY(1,1)NOTNULL,[idEmp] [bigint] NULL,[dStart] [date] NULL,[dEnd] [date] NULL,[listnumb] [nvarchar](20)NULL,[rate] [float] NULL,[note] [nvarchar](100)NULL,CONSTRAINT [PK_sick] PRIMARYKEYCLUSTERED([id] ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY])ON [PRIMARY]GO/****** Object: Table [dbo].[users] Script Date: 16.12.2023 4:05:34 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE [dbo].[users]([id] [bigint] IDENTITY(1,1)NOTNULL,[login] [nvarchar](50)NULL,[passwd] [nvarchar](50)NULL,[idEmp] [bigint] NULL,[role] [bit] NULL,CONSTRAINT [PK_users] PRIMARYKEYCLUSTERED([id] ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY])ON [PRIMARY]GO/****** Object: Table [dbo].[vacation] Script Date: 16.12.2023 4:05:34 ******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE [dbo].[vacation]([id] [bigint] IDENTITY(1,1)NOTNULL,[idEmp] [bigint] NULL,[dStart] [date] NULL,[dEnd] [date] NULL,[note] [nvarchar](50)NULL,[rate] [float] NULL,CONSTRAINT [PK_vacation] PRIMARYKEYCLUSTERED([id] ASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY])ON [PRIMARY]GOALTERTABLE [dbo].[career] WITHCHECKADDCONSTRAINT [FK_career_emp] FOREIGNKEY([idEmp])REFERENCES [dbo].[employee]([id])ONUPDATECASCADEONDELETESETNULLGOALTERTABLE [dbo].[career] CHECKCONSTRAINT [FK_career_emp]GOALTERTABLE [dbo].[depart] WITHCHECKADDCONSTRAINT [FK_depart_division] FOREIGNKEY([idDiv])REFERENCES [dbo].[division]([id])ONUPDATECASCADEONDELETESETNULLGOALTERTABLE [dbo].[depart] CHECKCONSTRAINT [FK_depart_division]GOALTERTABLE [dbo].[depart] WITHCHECKADDCONSTRAINT [FK_depart_employee] FOREIGNKEY([idBoss])REFERENCES [dbo].[employee]([id])GOALTERTABLE [dbo].[depart] CHECKCONSTRAINT [FK_depart_employee]GOALTERTABLE [dbo].[employee] WITHCHECKADDCONSTRAINT [FK_employee_dep] FOREIGNKEY([idDep])REFERENCES [dbo].[depart]([id])ONUPDATECASCADEONDELETESETNULLGOALTERTABLE [dbo].[employee] CHECKCONSTRAINT [FK_employee_dep]GOALTERTABLE [dbo].[employee] WITHCHECKADDCONSTRAINT [FK_employee_pos] FOREIGNKEY([idPos])REFERENCES [dbo].[pos]([id])ONUPDATECASCADEONDELETESETNULLGOALTERTABLE [dbo].[employee] CHECKCONSTRAINT [FK_employee_pos]GOALTERTABLE [dbo].[promo] WITHCHECKADDCONSTRAINT [FK_promo_emp] FOREIGNKEY([idEmp])REFERENCES [dbo].[employee]([id])ONUPDATECASCADEONDELETECASCADEGOALTERTABLE [dbo].[promo] CHECKCONSTRAINT [FK_promo_emp]GOALTERTABLE [dbo].[sick] WITHCHECKADDCONSTRAINT [FK_sick_emp] FOREIGNKEY([idEmp])REFERENCES [dbo].[employee]([id])ONUPDATECASCADEONDELETECASCADEGOALTERTABLE [dbo].[sick] CHECKCONSTRAINT [FK_sick_emp]GOALTERTABLE [dbo].[users] WITHCHECKADDCONSTRAINT [FK_users_emp] FOREIGNKEY([idEmp])REFERENCES [dbo].[employee]([id])ONUPDATECASCADEONDELETESETNULLGOALTERTABLE [dbo].[users] CHECKCONSTRAINT [FK_users_emp]GOALTERTABLE [dbo].[vacation] WITHCHECKADDCONSTRAINT [FK_vacation_emp] FOREIGNKEY([idEmp])REFERENCES [dbo].[employee]([id])ONUPDATECASCADEONDELETECASCADEGOALTERTABLE [dbo].[vacation] CHECKCONSTRAINT [FK_vacation_emp]GOUSE [master]GOALTERDATABASE [staffDB] SETREAD_WRITEGOПРИЛОЖЕНИЕ БКод классов сущностейusingSystem;using System.Collections.Generic;using System.Configuration;using System.Data;using System.Linq;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;//-------------------------namespace StuffRec{ using System; using System.Collections.Generic; public partial class career { public long id { get; set; } public Nullable idEmp { get; set; } public string place { get; set; } public string job { get; set; } public Nullable dBegin { get; set; } public Nullable dEnd { get; set; } public virtual employee employee { get; set; } }}//-------------------------namespace StuffRec{ using System; using System.Data.Entity; using System.Data.Entity.Infrastructure; public partial class dbStuff : DbContext { public dbStuff() : base("name=dbStuff") { } private static dbStuff _context; public static dbStuff Context { get { if (_context == null) _context = new dbStuff(); return _context; } } public static users loginUser; protected override void OnModelCreating(DbModelBuilder modelBuilder) { throw new UnintentionalCodeFirstException(); } public virtual DbSet career { get; set; } public virtual DbSet depart { get; set; } public virtual DbSet division { get; set; } public virtual DbSet employee { get; set; } public virtual DbSet pos { get; set; } public virtual DbSet promo { get; set; } public virtual DbSet sick { get; set; } public virtual DbSet users { get; set; } public virtual DbSet vacation { get; set; } }}//-------------------------namespace StuffRec{ using System; using System.Collections.Generic; public partial class depart { public depart() { this.employee1 = new HashSet(); } public long id { get; set; } public Nullable idDiv { get; set; } public Nullable idBoss { get; set; } public string capt { get; set; } public virtual division division { get; set; } public virtual employee employee { get; set; } public virtual ICollection employee1 { get; set; } public override string ToString() => capt; }}//-------------------------namespace StuffRec{ using System; using System.Collections.Generic; public partial class division { public division() { this.depart = new HashSet(); } public long id { get; set; } public string capt { get; set; } public string addr { get; set; } public virtual ICollection depart { get; set; } public override string ToString() => capt; }}//-------------------------namespace StuffRec{ using System; using System.Collections.Generic; public partial class employee { public employee() { this.career = new HashSet(); this.departBoss = new HashSet(); this.promo = new HashSet(); this.sick = new HashSet(); this.users = new HashSet(); this.vacation = new HashSet(); } public long id { get; set; } public Nullable idDep { get; set; } public Nullable idPos { get; set; } public string surn { get; set; } public string name { get; set; } public string patr { get; set; } public string gender { get; set; } public Nullable birth { get; set; } public string addr { get; set; } public string phone { get; set; } public string email { get; set; } public virtual ICollection career { get; set; } public virtual ICollection departBoss { get; set; } public virtual depart depart { get; set; } public virtual pos pos { get; set; } public virtual ICollection promo { get; set; } public virtual ICollection sick { get; set; } public virtual ICollection users { get; set; } public virtual ICollection vacation { get; set; } public override string ToString() => surn + " " + (name==null || name.Equals("") ? "" : (name[0] + ".")) + (patr==null || patr.Equals("") ? "" : (patr[0] + ".")); }}//-------------------------namespace StuffRec{ using System; using System.Collections.Generic; public partial class pos { public pos() { this.employee = new HashSet(); } public long id { get; set; } public string capt { get; set; } public Nullable salary { get; set; } public virtual ICollection employee { get; set; } public override string ToString() => capt; }}//-------------------------namespace StuffRec{ using System; using System.Collections.Generic; public partial class promo { public long id { get; set; } public Nullable idEmp { get; set; } public string capt { get; set; } public Nullable pDate { get; set; } public Nullable rate { get; set; } public virtual employee employee { get; set; } public override string ToString() => capt; }}//-------------------------namespace StuffRec{ using System; using System.Collections.Generic; public partial class sick { public long id { get; set; } public Nullable idEmp { get; set; } public Nullable dStart { get; set; } public Nullable dEnd { get; set; } public string listnumb { get; set; } public Nullable rate { get; set; } public string note { get; set; } public virtual employee employee { get; set; } }}//-------------------------namespace StuffRec{ using System; using System.Collections.Generic; public partial class users { public long id { get; set; } public string login { get; set; } public string passwd { get; set; } public Nullable idEmp { get; set; } public Nullable role { get; set; } public virtual employee employee { get; set; } public override string ToString() => (employee==null)?"":employee.ToString(); }}//-------------------------namespace StuffRec{ using System; using System.Collections.Generic; public partial class vacation { public long id { get; set; } public Nullable idEmp { get; set; } public Nullable dStart { get; set; } public Nullable dEnd { get; set; } public string note { get; set; } public Nullable rate { get; set; } public virtual employee employee { get; set; } }}

СПИСОК ЛИТЕРАТУРЫ
1. Кадровый учет: зачем нужен, что надо знать и уметь. URL: https://ubpo.ru/press/publications/chto_takoe_kadrovyy_uchet/
2. Стружкин, Н. П. Базы данных: проектирование : учебник для вузов / Н. П. Стружкин, В. В. Годин. — Москва : Издательство Юрайт, 2023. — 477 с. — (Высшее образование). — ISBN 978-5-534-00229-4. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/511019
3. Диаграмма сущность-связь. URL: http://dit.isuct.ru/IVT/BOOKS/DBMS/DBMS14/ch_2_2.html
4. Различные архитектурные решения, используемые при реализации многопользовательских СУБД. Краткий обзор СУБД. URL: https://intuit.ru/studies/courses/508/364/lecture/8643?page=2
5. Microsoft® SQL Server® Express с пакетом обновления 3 (SP3). URL: https://www.microsoft.com/ru-ru/download/details.aspx?id=50003
6. SQL Server Management Studio (SSMS). URL: https://learn.microsoft.com/ru-ru/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16
7. Что такое Visual Studio? URL: https://learn.microsoft.com/ru-ru/visualstudio/get-started/visual-studio-ide?view=vs-2022
8. Что такое C#: плюсы и минусы язык. URL: https://gb.ru/blog/chto-takoe-c/
9. Документация по C#. URL: https://learn.microsoft.com/ru-ru/dotnet/csharp
10. TIOBE Index for December 2023. URL: https://www.tiobe.com/tiobe-index/
11. Создание пользовательского интерфейса с помощью конструктора XAML. URL: https://learn.microsoft.com/ru-ru/visualstudio/xaml-tools/creating-a-ui-by-using-xaml-designer-in-visual-studio?view=vs-2022
12. Entity Framework 6. URL: https://learn.microsoft.com/ru-ru/ef/ef6/
13. Руководство. Начало работы с Entity Framework 6. URL: https://learn.microsoft.com/ru-ru/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application
14. Диаграмма вариантов использования (Use Case Diagram) [Электронный ресурс]. URL: https://itonboard.ru/analysis/629-diagramma_variantov_ispolzovanija_use_case_diagram/?ysclid=lotc0d1yu880694691
15. ORM. Ключи и ссылки. https://neerc.ifmo.ru/wiki/index.php?title=ORM._%D0%9A%D0%BB%D1%8E%D1%87%D0%B8_%D0%B8_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8
16. ORM. URL: https://simpleone.ru/glossary/orm/#
17. Диаграммы классов UML. Логическое моделирование. URL: https://www.informicus.ru/mps03.html
18. Создание запросов LINQ на языке C#. URL: https://learn.microsoft.com/ru-ru/dotnet/csharp/linq/write-linq-queries