На нашем сайте Вы сможете найти готовые курсовые и дипломные работы по программированию
Сейчас работаем

Менеджмент рабочего времени C#

Задание

Разработать приложение для отдела кадров и производственного отдела предприятия, с целью ведения учета сотрудников,  выполненных ими работ, отработанного времени и начисления зарплаты. 

Функционал программы

  • Учет работ
  • Учет сотрудников
  • Учет рабочего времени и расчет зарплаты
  • добавление / изменение / удаление данных

Использованные технологии

  • язык C#
  • WPF + WINFORMS
  • SQL SERVER и SQLITE
  • среда разработки Visual Studio 2019 / 2022

Содержание отчета к программе

  • Оглавление
  • Введение. 4
  • 1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ.. 7
  • 1.1 Информационное обеспечение задачи. 7
  • 1.2. Обзор и анализ существующих программных решений. 8
  • 1.3 Техническое задание на разработку приложения «Менеджмент рабочего времени»  9
  • 2 АНАЛИЗ СРЕД И ЯЗЫКОВ КАК ИНСТРУМЕНТОВ РЕАЛИЗАЦИИ.. 11
  • 2.1 Язык высокого уровня C#. 11
  • 2.2  Windows Forms или Windows Presentation Foundation. 12
  • 2.3. Выбор состава технических и программных средств. 15
  • 3 РАЗРАБОТКА ПРИЛОЖЕНИЯ МЕНЕДЖМЕНТ РАБОЧЕГО ВРЕМЕНИ НА ЯЗЫКЕ C#. 21
  • 3.1 Постановка задачи. 21
  • 3.2 Физическая структура базы данных. 22
  • 3.3 Физическая структура программы.. 27
  • 3.4 Разработка пользовательского интерфейса. 32
  • 3.5  Инструкция пользователя. 40
  • ЗАКЛЮЧЕНИЕ. 44
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ. 46
  • ПРИЛОЖЕНИЯ. 48

 

Фрагмент программного кода

using System;
using MaterialSkin;
using MaterialSkin.Controls;
using System.Windows.Forms;
using System.Configuration;
using System.Data.SqlClient;

namespace WMS.UI
{
    public partial class StatementForm : MaterialForm
    {
        // Основные Sql параметры
        SqlConnection SqlConnection;
        public StatementForm()
        {
            InitializeComponent();

            var materialSkinManager = MaterialSkinManager.Instance;
            materialSkinManager.AddFormToManage(this);
            materialSkinManager.Theme = MaterialSkinManager.Themes.LIGHT;
            materialSkinManager.ColorScheme = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.LightBlue200, TextShade.WHITE);
        }

        private async void StatementForm_Load(object sender, EventArgs e)
        {
            // TODO: данная строка кода позволяет загрузить данные в таблицу "accountingWorkDBDataSet.Employees". При необходимости она может быть перемещена или удалена.
            this.employeesTableAdapter.Fill(this.accountingWorkDBDataSet.Employees);

            SqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["Accounting"].ConnectionString); // строка подключения
            await SqlConnection.OpenAsync(); // открыли подключение к БД
            SqlDataReader sqlReader = null;
            SqlCommand command = new SqlCommand("SELECT * FROM [Statement] ", SqlConnection);
            try
            {
                sqlReader = await command.ExecuteReaderAsync();
                while (await sqlReader.ReadAsync())
                {
                    listBox1.Items.Add(Convert.ToString(sqlReader["StatementId"]) + "   " + Convert.ToString(sqlReader["Date"]) +
                        "  " + Convert.ToString(sqlReader["EmployeeName"]) + "   " + Convert.ToString(sqlReader["NumberHours"]) + "   " + Convert.ToString(sqlReader["HourlyRate"]) +
                      "   " + Convert.ToString(sqlReader["Salary"]));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString(), ex.Source.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                sqlReader?.Close(); // закрыли подключение к БД
            }

        }

        private async void ADDguna2Button1_Click(object sender, EventArgs e)
        {
            if (label7.Visible)
                label7.Visible = false;
            if (!string.IsNullOrEmpty(DatedateTimePicker1.Text) && !string.IsNullOrWhiteSpace(DatedateTimePicker1.Text) &&
                !string.IsNullOrEmpty(EmployeeCb.Text) && !string.IsNullOrWhiteSpace(EmployeeCb.Text) &&
               !string.IsNullOrEmpty(HoursTb.Text) && !string.IsNullOrWhiteSpace(HoursTb.Text) &&
               !string.IsNullOrEmpty(RateTb.Text) && !string.IsNullOrWhiteSpace(RateTb.Text) &&
               !string.IsNullOrEmpty(SalaryTb.Text) && !string.IsNullOrWhiteSpace(SalaryTb.Text))
            {
                SqlCommand command = new SqlCommand("INSERT INTO [Statement] (Date, EmployeeName, " +
                    "NumberHours, HourlyRate, Salary) " +
                    "VALUES(@Date, @EmployeeName, @NumberHours, @HourlyRate, @Salary)", SqlConnection);
                command.Parameters.AddWithValue("Date", DatedateTimePicker1.Text);
                command.Parameters.AddWithValue("EmployeeName", EmployeeCb.Text);
                command.Parameters.AddWithValue("NumberHours", HoursTb.Text);
                command.Parameters.AddWithValue("HourlyRate", RateTb.Text);
                command.Parameters.AddWithValue("Salary", SalaryTb.Text);

                await command.ExecuteNonQueryAsync();
            }
            else
            {
                label7.Visible = true;
                label7.Text = "Все поля должны быть заполнены!";
            }
        }

        private void CALCguna2Button2_Click(object sender, EventArgs e)
        {
            double hours;
            double rate;

            hours = Convert.ToDouble(HoursTb.Text);
            rate = Convert.ToDouble(RateTb.Text);

            switch (comboBox3.Text)
            {
                case "*":

                    SalaryTb.Text = Convert.ToString(hours * rate);
                    break;
            }
        }

        private async void UpdatetoolStripButton1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            SqlDataReader sqlReader = null;
            SqlCommand command = new SqlCommand("SELECT * FROM [Statement] ", SqlConnection);
            try
            {
                sqlReader = await command.ExecuteReaderAsync();
                while (await sqlReader.ReadAsync())
                {
                    listBox1.Items.Add(Convert.ToString(sqlReader["StatementId"]) + "   " + Convert.ToString(sqlReader["Date"]) +
                        "  " + Convert.ToString(sqlReader["EmployeeName"]) + "   " + Convert.ToString(sqlReader["NumberHours"]) + "   " + Convert.ToString(sqlReader["HourlyRate"]) +
                      "   " + Convert.ToString(sqlReader["Salary"]));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString(), ex.Source.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                sqlReader?.Close(); // закрыли подключение к БД
            }
        }

        private void WorkstoolStripButton1_Click(object sender, EventArgs e)
        {
            WorksWindow works = new WorksWindow();
            works.Show();

        }

        private async void EDITguna2Button2_Click(object sender, EventArgs e)
        {
            if (label12.Visible)
            {
                label12.Visible = false;
            }

            if (!string.IsNullOrEmpty(IdTb.Text) && !string.IsNullOrWhiteSpace(IdTb.Text) &&
                !string.IsNullOrEmpty(DatedateTimePicker.Text) && !string.IsNullOrWhiteSpace(DatedateTimePicker.Text) &&
               !string.IsNullOrEmpty(EmployeecomboBox.Text) && !string.IsNullOrWhiteSpace(EmployeecomboBox.Text) &&
               !string.IsNullOrEmpty(NumberHoursTb.Text) && !string.IsNullOrWhiteSpace(NumberHoursTb.Text) &&
               !string.IsNullOrEmpty(HourlyRateTb.Text) && !string.IsNullOrWhiteSpace(HourlyRateTb.Text) &&
               !string.IsNullOrEmpty(SalaryTextBox.Text) && !string.IsNullOrWhiteSpace(SalaryTextBox.Text))
            {
                SqlCommand command = new SqlCommand("UPDATE [Statement] SET [Date]=@Date, " +
                    "[EmployeeName]=@EmployeeName, [NumberHours]=@NumberHours, [HourlyRate]=@HourlyRate, [Salary]=@Salary " +
                    "WHERE [StatementId]=@Id", SqlConnection);
                command.Parameters.AddWithValue("Id", IdTb.Text);
                command.Parameters.AddWithValue("Date", DatedateTimePicker.Text);
                command.Parameters.AddWithValue("EmployeeName", EmployeecomboBox.Text);
                command.Parameters.AddWithValue("NumberHours", NumberHoursTb.Text);
                command.Parameters.AddWithValue("HourlyRate", HourlyRateTb.Text);
                command.Parameters.AddWithValue("Salary", SalaryTextBox.Text);

                await command.ExecuteNonQueryAsync();
            }
            else if (!string.IsNullOrEmpty(IdTb.Text) && !string.IsNullOrWhiteSpace(IdTb.Text))
            {
                label12.Visible = true;
                label12.Text = "Все поля должны быть заполнены!";
            }
            else
            {
                label12.Visible = true;
                label12.Text = "Id должен быть заполнен!";
            }
        }

        private void CALCULATIONguna2Button1_Click(object sender, EventArgs e)
        {
            double hours;
            double rate;

            hours = Convert.ToDouble(NumberHoursTb.Text);
            rate = Convert.ToDouble(HourlyRateTb.Text);

            switch (comboBox1.Text)
            {
                case "*":

                    SalaryTextBox.Text = Convert.ToString(hours * rate);
                    break;
            }
        }

        private void BacktoolStripButton1_Click(object sender, EventArgs e)
        {
            UserPageWindow userPage = new UserPageWindow();
            userPage.Show();
            Hide();
        }

        private void ExittoolStripButton1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private async void DeleteBtn_Click(object sender, EventArgs e)
        {
            if (label14.Visible)
                label14.Visible = false;
            if (!string.IsNullOrEmpty(IDTextBox.Text) && !string.IsNullOrWhiteSpace(IDTextBox.Text))
            {
                SqlCommand command = new SqlCommand("DELETE FROM [Statement] WHERE [StatementId]=@Id", SqlConnection); // sql комманда удаление
                command.Parameters.AddWithValue("Id", IDTextBox.Text);

                await command.ExecuteNonQueryAsync();
            }
            else
            {
                label14.Visible = true;
                label14.Text = "Id должен быть заполнен!";
            }
        }
    }
}

Структура проекта

Скриншот архива с проектом

Пояснения по запуску программы

Запустить среду разработки Visual Studio 2019 или же 2022, предварительно скачав ее с оффициального сайта - https://visualstudio.microsoft.com/ru/vs/community/, при установке среды выбирете рабочие нагрузки - Разработка классических приложений на C#. После установки среды разработки запустите проект, смените путь к базе данных на ваш, прописав его в файле App.config, база данных автоматически отобразится в обозревателе серверов и в программе SQL SERVER MANAGEMENT STUDIO, которую вам необходимо будет скачать и установить с оффициального сайта -  https://learn.microsoft.com/ru-ru/sql/ssms/download-sql-server-management-studio-ssms?view=azure-sqldw-latest,  важно! необходимо выбрать русский язык для инсталлятора. 

Купить 5000,00 
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.
Комментарии (0)

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегистрированые пользователи имеют возможность комментировать работы
Купить

5000,00 

Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.

Заказать через

Система управления работами.rar
102204549
Оцени работу

рейтинг

Менеджмент рабочего времени C#
В Курсовой работе рассмотрен процесс разработки приложения по учету рабочего времени и расчета зарплаты.
Категория: Образование
Стоимость: 5000,00