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

Цветочный магазин на языке C#

Курсовая работа (Задание): 

Разработка базы данных цветочного магазина на языке C#.

Цели:

- сделать нормализацию данных;

- осуществить этапы проектирования базы данных;

- построить и описать диаграммы проекта; 

- разработать формы и представить текст программы;

- привести результаты тестирования программного продукта.

Задачи:

- Свободный доступ к информации;

- Удобный и понятный для пользователя интерфейс приложения;

- Сортировка данных по выбранному критерию;

- Возможность поиска цветка по выбранному критерию; 

- Защита паролей шифром одно алфавитной замены;

- Добавление, редактирование, удаление данных.

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

В отчете находятся все необходимые диаграммы к нашей программе, такие как:

  • Концептуальная модель базы данных цветочного магазина
  • Логическая модель базы данных цветочного магазина
  • Физическая модель базы данных цветочного магазина
  • Диаграмма Usecase
  • Диаграмма Statechart
  • Диаграмма ООП классов

Также, присутствуют все скриншоты с описанием каждого действия пользователя в программе (показаны в видео).

Как мы можем увидеть из сриншота, в пояснительной записке содержится 34 страницы.

Логическая модель базы данных цветочного магазина

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

namespace FlowerShop.Forms
{
    public partial class FDialogMakeSaleFlower : Form
    {
        private DataAccessLayer DataAccessLayer
        {
            get
            {
                if (this.m_dataAccessLayer == null)
                    this.m_dataAccessLayer = new DataAccessLayer();
                return this.m_dataAccessLayer;
            }
        }

        private DataTable m_dt_Buyers;
        private DataAccessLayer m_dataAccessLayer;

        int id_personnel, 
            id_sale_product,
            id_m_fl,
            count_M_FL = 0,
            cost_M_FL = 0;
        bool CheckResultFrom_DAL = false;

        public FDialogMakeSaleFlower(int _id_personnel, int _id_m_fl ,int _count_M_FL, int _cost_M_FL)
        {
            InitializeComponent();

            /* нужно для заполнения таблицы SaleFlower в БД */
            id_personnel = _id_personnel; 
            id_m_fl = _id_m_fl;
            count_M_FL = _count_M_FL;
            cost_M_FL = _cost_M_FL;

            MS_txtCount_M_FL_Sale.Text = count_M_FL.ToString();
            MS_txtSum_M_FL_Sale.Text = (cost_M_FL * count_M_FL).ToString();

            Init_Buyers();
        }

        private void Init_Buyers()
        {
            this.m_dt_Buyers = new DataAccessLayer().dt_AllBuyers;

            if (this.m_dt_Buyers == null)
            {
                MessageBox.Show("Не удалось получить данные!");
                return;
            }

            MS_dgvBuyers.AutoGenerateColumns = false;
            MS_dgvBuyers.DataSource = this.m_dt_Buyers;
            MS_dgvBuyers.Columns[0].DataPropertyName = "ID_BUYER";
            MS_dgvBuyers.Columns[1].DataPropertyName = "FIO_BUYER";
            MS_dgvBuyers.Columns[2].DataPropertyName = "ADDRESS_BUYER";
            MS_dgvBuyers.Columns[3].DataPropertyName = "PHONE_BUYER";

            ((DataTable)MS_dgvBuyers.DataSource).Rows.Add(); // добавялем строку для данных о покупателе

        }

        private void MS_btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void MS_txtCount_M_FL_Sale_TextChanged(object sender, EventArgs e)
        {
            if (MS_txtCount_M_FL_Sale.Text == "")
                MS_txtSum_M_FL_Sale.Text = "0";
            else
                MS_txtSum_M_FL_Sale.Text = (cost_M_FL * Convert.ToInt32(MS_txtCount_M_FL_Sale.Text)).ToString();
        }

        private void MS_btnOk_Click(object sender, EventArgs e)
        {
            MS_dgvBuyers.EndEdit(); // заканчиваем редактирование ячейки, чтобы не было ошибки "заполните все поля", которая проверяется ниже

            // остаток от количества цветов, если ноль или меньше то ошибка
            int AmountOf_residue = count_M_FL - Convert.ToInt32(MS_txtCount_M_FL_Sale.Text);
            if (AmountOf_residue < 0 || Convert.ToInt32(MS_txtCount_M_FL_Sale.Text) == 0)
            {
                MessageBox.Show("Ошибка, столько товара нет!");
                return;
            }

            /*--------------- проверка на пустые поля ------------------------------- */
            if (MS_txtCount_M_FL_Sale.Text == "")
            {
                    MessageBox.Show("Ошибка! Заполните все поля");
                    return;
            }

            for (int column = 0; column < MS_dgvBuyers.ColumnCount; ++column)
                if (MS_dgvBuyers[column, MS_dgvBuyers.RowCount - 1].Value == null
                    ||
                    MS_dgvBuyers[column, MS_dgvBuyers.RowCount - 1].Value.ToString() == "")
                {
                    MessageBox.Show("Ошибка! Заполните все поля");
                    return;
                }

            /*--------------- Занесение информации о покупателе в БД ------------------------------- */
            CheckResultFrom_DAL = this.DataAccessLayer.INSERTBuyerToDB(
                 new Buyers(Convert.ToInt32(MS_dgvBuyers.CurrentRow.Cells[0].Value),
                     MS_dgvBuyers.CurrentRow.Cells[1].Value.ToString(),
                     MS_dgvBuyers.CurrentRow.Cells[2].Value.ToString(),
                     MS_dgvBuyers.CurrentRow.Cells[3].Value.ToString())
                     );

            if (!CheckResultFrom_DAL)
            {
                MessageBox.Show("Ошибка продажи товара!");
                return;
            }

            /*--------------- Занесение информации о продаже в БД ------------------------------- */
            // получаем количество idSaleFlower и прибавляем единицу для правильной вставки
            id_sale_product = this.DataAccessLayer.Func_GetCountIDSaleFlower() + 1; 

            CheckResultFrom_DAL = this.DataAccessLayer.INSERTSaleFlowerToDB(
                new SaleProduct(id_personnel, id_sale_product, Convert.ToInt32(MS_txtCount_M_FL_Sale.Text), Convert.ToDateTime(DateTime.Now),
                   Convert.ToInt32(MS_dgvBuyers.CurrentRow.Cells[0].Value), Convert.ToInt32(MS_txtSum_M_FL_Sale.Text), id_m_fl));

            if (!CheckResultFrom_DAL)
            {
                MessageBox.Show("Ошибка продажи товара!");
                return;
            }

            /*--------------- Обновление Остатка количества цветка -------------------------------*/
            CheckResultFrom_DAL
                 = this.DataAccessLayer.UPDATE_CountMFlower_afterSaleFlower_in_DB(id_m_fl, AmountOf_residue);

            if (CheckResultFrom_DAL)
            {
                this.Text = "Продажа цветка - УСПЕХ";
                System.Threading.Thread.Sleep(3000);
                this.Close();
            }
            else
            {
                MessageBox.Show("Ошибка продажи товара!");
                return;
            }
        }
    }
}

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

Содержание архива

  • Исходный код проекта FlowerShop
  • Презентация + пояснительная записка на 34 страницы
  • Файл FlowerShop.erwin - модель данных для БД
  • Файл flowershop.sql - sql скрипт для создания БД в любоей среде разработки
  • Файл с минимальными требованиями к программе

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

/ /

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

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

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

7000,00 

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

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

Flower Shop.zip
16404726
Оцени работу

рейтинг

Цветочный магазин на языке C#
Приложение написано на языке C# Задачи приложения: - Свободный доступ к информации; - Удобный и понятный для пользователя интерфейс приложения; - Сортировка данных по выбранному критерию; - Возможность поиска цветка по выбранному критерию; - Защита паролей шифром одно алфавитной замены; - Добавление, редактирование, удаление данных;
Категория: Образование
Стоимость: 7000,00