Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
151
Добавлен:
06.02.2015
Размер:
269.87 Кб
Скачать

Саратовский государственный технический университет

имени Гагарина Ю. А.

Курсовой работа на тему:

«Разработка фрагмента базы данных для кассового узла»

Выполнил:

Студент ФЭТиПа, ПВС-31

Толочкова А.С.

Проверил:

Доцент кафедры ПВС

Костюк В.П.

Саратов 2011

Оглавление

  1. Введение……………………………………………………………………………………………………………………………3

  • Актуальность………………………………………………………………………………………………………..3

  • Цель……………………………………………………………………………………………………………………...3

  1. Описание программы……………………………………………………………………………………………………….3

  • Предназначение…………………………………………………………………………………………………..3

  • Структура………………………………………………………………………………………………………………3

  • Создание таблиц…………………………………………………………………………………………………..4

  • Основные транзакции…………………………………………………………………………………………..6

  1. Руководство пользователя………………………………………………………………………………………………18

  2. Заключение………………………………………………………………………………………………………………………24

Введение

  1. Актуальность.

Актуальность данной работы обусловлена необходимостью автоматизации системы производства кафе по обслуживанию клиентов.

2) Цель.

Цель создания данной системы (база данных + приложение) – выполнение курсовой работы в рамках учебного плана специальности ПВС по дисциплине «Базы данных». Тема индивидуального задания: «Разработка фрагмента базы данных для поддержки кафе».

Описание программы

  1. Предназначение.

Данная программа предназначена для выполнения следующих функций в кассовом узле коммерческого банка:

А) Добавление, редактирование, удаление блюд, продуктов, дат продаж;

Б) Расчет прибыли: за день, учитывая текущую дату;

В) Конструктор блюд;

Г) Расчёт себестоимости продукта;

Д) Учет и контроль всех совершенных операций за все время существования системы.

Е) Автоматический перерасчёт кассы при изменении проданного блюда

  1. Структура.

База данных кафе состоит из следующих таблиц: Продажа, Меню, Вес, Продукты, Продукты_блюдо, Блюдо_вес, Продажа_блюда. Все они соединены посредством связей многие ко многим по следующей схеме. Используются таблицы для реализации связи.

Структура БД:

  1. Создание таблиц:

create table Продажа

(

ID_Продажа int primary key identity(1,1),

Цена int,

Дата date null,

Коэфициент int,

)

create table Продажа_блюда

(

Id_Продажа_блюда int primary key identity(1,1),

Номер_блюда int,

Количество int,

Номер_продажа int,)

create table Меню

(

ID_Меню int primary key identity(1,1),

Наименование varchar(30) not null,

Цена int,

)

create table Продукты_вес(

ID_Продукты_вес int primary key identity(1,1),

Номер_вес int,

Номер_продукты int,

)

create table Вес

(

ID_Вес int primary key identity(1,1),

Вес int not null,

)

create table Продукты

(

ID_Продукты int primary key identity(1,1),

Наименования varchar(30) not null,

Цена int,

)

create table Блюдо_вес(

ID_Блюдо_вес int primary key identity(1,1),

Номер_Блюдо int,

Номер_вес int,

)

  1. Основные транзакции.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

using System.Data.SqlTypes;

namespace WindowsFormsApplication2

{

public partial class AddBludo : Form

{

string con_str = "Data Source=(local);Initial Catalog=Cafe;Integrated Security=True";

SqlConnection con;

SqlDataAdapter adapt;

DataSet ds, ds_u;

BindingSource bs, bs_u;

int n=0;

int[] x=new int[10];

int zv;

public AddBludo()

{

InitializeComponent();

}

public DataRow FindCurrentRow(DataGridView dgv)

{

CurrencyManager cManager =

dgv.BindingContext[dgv.DataSource, dgv.DataMember]

as CurrencyManager;

if (cManager == null || cManager.Count == 0)

return null;

DataRowView drv = cManager.Current as DataRowView;

return drv.Row;

}

private void Blud_Load(object sender, EventArgs e){

con = new SqlConnection(con_str);// подключение к базе

con.Open();

adapt = new SqlDataAdapter("select * from Продукты", con);// извлеч. данных

ds = new DataSet(); //ОП

DataTable t = new DataTable();

bs = new BindingSource();

bs.DataSource = t;

adapt.Fill(t);

dataGridView1.DataSource = bs;

dataGridView1.Update();

dataGridView1.Refresh();

dataGridView1.Columns[0].Visible = false;

con.Close();

}

public partial class AddDate : Form

{

string con_str = "Data Source=(local);Initial Catalog=Cafe;Integrated Security=True";

SqlConnection con;

SqlDataAdapter adapt;

DataSet ds, ds_u;

BindingSource bs, bs_u;

public AddDate()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

con = new SqlConnection(con_str);// подключение к базе

con.Open();

string a = textBox1.Text;

string str = "insert into Продажа values ('0','" + textBox1.Text[3] + textBox1.Text[4] + textBox1.Text[2] + textBox1.Text[0] + textBox1.Text[1] + textBox1.Text[2] + textBox1.Text[6] + textBox1.Text[7] + textBox1.Text[8] + textBox1.Text[9] + "','"+textBox2.Text + "')"; ;

SqlCommand com = new SqlCommand(str, con);

com.ExecuteNonQuery();

con.Close();

this.Close();

}

}

public partial class AddProduct : Form

{

string con_str = "Data Source=(local);Initial Catalog=Cafe;Integrated Security=True";

SqlConnection con;

SqlDataAdapter adapt;

DataSet ds, ds_u;

BindingSource bs, bs_u;

int id9;

public AddProduct()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

con = new SqlConnection(con_str);// подключение к базе

con.Open();

string str = "insert into Продукты values ('" + textBox1.Text + "' , '" + textBox2.Text + "' ) ";

SqlCommand com = new SqlCommand(str, con);

com.ExecuteNonQuery();

con.Close();

this.Close();

}

namespace WindowsFormsApplication2

{

public partial class Adds : Form

{

public Adds()

{

InitializeComponent();

}

private void button2_Click(object sender, EventArgs e)

{

AddProduct frmService = new AddProduct();

frmService.Show();

}

private void button1_Click(object sender, EventArgs e)

{

AddBludo frmService = new AddBludo();

frmService.Show();

}

private void button3_Click(object sender, EventArgs e)

{

AddDate frmService = new AddDate();

frmService.Show();

}

}

}

public partial class Bludo : Form

{

string con_str = "Data Source=(local);Initial Catalog=Cafe;Integrated Security=True";

SqlConnection con;

SqlDataAdapter adapt;

DataSet ds, ds_u;

BindingSource bs, bs_u;

public DataRow FindCurrentRow(DataGridView dgv)

{

CurrencyManager cManager =

dgv.BindingContext[dgv.DataSource, dgv.DataMember]

as CurrencyManager;

if (cManager == null || cManager.Count == 0)

return null;

DataRowView drv = cManager.Current as DataRowView;

return drv.Row;

}

int id;

public void refreshGrid(){

con = new SqlConnection(con_str);// подключение к базе

con.Open();

adapt = new SqlDataAdapter("select * from Меню where Id_Меню ="+this.id.ToString(), con);// извлеч. данных

ds = new DataSet(); //ОП

DataTable t = new DataTable();

bs = new BindingSource();

bs.DataSource = t;

adapt.Fill(t);

dataGridView1.DataSource = bs;

dataGridView1.Update();

dataGridView1.Refresh();

dataGridView1.Columns[0].Visible = false;

//dataGridView1.Columns[3].Visible = false;

adapt = new SqlDataAdapter("select * from Вес where Id_Меню =" + this.id.ToString(), con);// извлеч. данных

ds = new DataSet(); //ОП

DataTable t1 = new DataTable();

bs = new BindingSource();

bs.DataSource = t1;

adapt.Fill(t1);

dataGridView2.DataSource = bs;

dataGridView2.Update();

dataGridView2.Refresh();

dataGridView2.Columns[0].Visible = false;

dataGridView2.Columns[2].Visible = false;

adapt = new SqlDataAdapter("select * from Продукты_вес inner join Продукты on Продукты_вес.Номер_продукты=Продукты.ID_Продукты where Номер_вес In (Select ID_Вес From Вес Where ID_Меню=" + this.id.ToString() + ")", con);// извлеч. данных

ds = new DataSet(); //ОП

DataTable t2 = new DataTable();

bs = new BindingSource();

bs.DataSource = t2;

adapt.Fill(t2);

dataGridView3.DataSource = bs;

dataGridView3.Update();

dataGridView3.Refresh();

dataGridView3.Columns[0].Visible = false;

dataGridView3.Columns[1].Visible = false;

dataGridView3.Columns[2].Visible = false;

dataGridView3.Columns[3].Visible = false;

con.Close();

}

public Bludo()

{

InitializeComponent();

}

public Bludo(int id)

{

InitializeComponent();

this.id = id;

}

private void button1_Click(object sender, EventArgs e)

{

int id1 = (int)FindCurrentRow(dataGridView1)[0];

Bludored frm = new Bludored(id1);

frm.ShowDialog();

}

private void button2_Click(object sender, EventArgs e)

{

int id2 = (int)FindCurrentRow(dataGridView2)[0];

Vesred frm = new Vesred(id2);

frm.ShowDialog();

}

private void button3_Click(object sender, EventArgs e)

{

int id3 = (int)FindCurrentRow(dataGridView3)[0];

izmProduct frm = new izmProduct(id3);

frm.ShowDialog();

}

private void Bludo_Activated(object sender, EventArgs e)

{

refreshGrid();

}

}

namespace WindowsFormsApplication2

{

public partial class Rasch : Form

{

string con_str = "Data Source=(local);Initial Catalog=Cafe;Integrated Security=True";

SqlConnection con;

SqlDataAdapter adapt;

DataSet ds, ds_u;

BindingSource bs, bs_u;

public Rasch()

{

InitializeComponent();

}

public DataRow FindCurrentRow(DataGridView dgv)

{

CurrencyManager cManager =

dgv.BindingContext[dgv.DataSource, dgv.DataMember]

as CurrencyManager;

if (cManager == null || cManager.Count == 0)

return null;

DataRowView drv = cManager.Current as DataRowView;

return drv.Row;

}

private void Blud_Load(object sender, EventArgs e)

{

con = new SqlConnection(con_str);// подключение к базе

con.Open();

adapt = new SqlDataAdapter("select * from Меню", con);// извлеч. данных

ds = new DataSet(); //ОП

DataTable t = new DataTable();

bs = new BindingSource();

bs.DataSource = t;

adapt.Fill(t);

dataGridView1.DataSource = bs;

dataGridView1.Update();

dataGridView1.Refresh();

dataGridView1.Columns[0].Visible = false;

con.Close();

}

private void button1_Click(object sender, EventArgs e)

{

int i5 = (int)FindCurrentRow(dataGridView1)[0];

con = new SqlConnection(con_str);// подключение к базе

con.Open();

string str = "update Меню set Цена=(select sum(Вес*Цена) from Продукты_вес inner join Продукты on Продукты_вес.Номер_продукты=Продукты.ID_Продукты inner join Вес on Продукты_вес.Номер_вес=Вес.ID_Вес where Номер_вес In (Select ID_Вес From Вес Where ID_Меню='" + i5.ToString() + "'))/1000 where Id_Меню='" + i5.ToString()+"'";

SqlCommand com = new SqlCommand(str, con);

com.ExecuteNonQuery();

adapt = new SqlDataAdapter("select * from Меню", con);// извлеч. данных

ds = new DataSet(); //ОП

DataTable t = new DataTable();

bs = new BindingSource();

bs.DataSource = t;

adapt.Fill(t);

dataGridView1.DataSource = bs;

dataGridView1.Update();

dataGridView1.Refresh();

dataGridView1.Columns[0].Visible = false;

con.Close();

}

private void textBox1_TextChanged(object sender, EventArgs e)

{

bs.Filter = string.Format("Наименование like '{0}*'", textBox1.Text);

}

}

} namespace WindowsFormsApplication2

{

public partial class Prodano : Form

{

string con_str = "Data Source=(local);Initial Catalog=Cafe;Integrated Security=True";

SqlConnection con;

SqlDataAdapter adapt;

DataSet ds, ds_u;

BindingSource bs, bs_u;

int id11;

int id12;

int ik;

public Prodano()

{

InitializeComponent();

}

public Prodano(int id11,int id12,int ik)

{

InitializeComponent();

this.id11 = id11;//дата

this.id12 = id12;//продажа за весь день

this.ik = ik;//продажа за весь день

}

public DataRow FindCurrentRow(DataGridView dgv)

{

CurrencyManager cManager =

dgv.BindingContext[dgv.DataSource, dgv.DataMember]

as CurrencyManager;

if (cManager == null || cManager.Count == 0)

return null;

DataRowView drv = cManager.Current as DataRowView;

return drv.Row;

}

public void refreshGrid(object sender, EventArgs e)

{

con = new SqlConnection(con_str);// подключение к базе

con.Open();

adapt = new SqlDataAdapter("select * from Продажа_блюда inner join Меню on Продажа_блюда.Номер_блюда=Меню.ID_Меню where Номер_продажа=" + this.id11.ToString(), con);// извлеч. данных

ds = new DataSet(); //ОП

DataTable t = new DataTable();

bs = new BindingSource();

bs.DataSource = t;

adapt.Fill(t);

dataGridView1.DataSource = bs;

dataGridView1.Update();

dataGridView1.Refresh();

dataGridView1.Columns[0].Visible = false;

dataGridView1.Columns[1].Visible = false;

dataGridView1.Columns[3].Visible = false;

dataGridView1.Columns[4].Visible = false;

// dataGridView1.Columns[7].Visible = false;

con.Close();

}

private void button1_Click(object sender, EventArgs e)

{

int id15 = (int)FindCurrentRow(dataGridView1)[2];

int id16 = (int)FindCurrentRow(dataGridView1)[0];

int id17 = (int)FindCurrentRow(dataGridView1)[6];

int id13=id11;

int id14=id12;

int id18 = ik;

Prodanored frm = new Prodanored(id13, id14, id15,id16,id17,id18);

frm.ShowDialog();

}

private void textBox1_TextChanged(object sender, EventArgs e)

{

bs.Filter = string.Format("Наименование like '{0}*'", textBox1.Text);

}

}

}

namespace WindowsFormsApplication2

{

public partial class prosmotr : Form

{

string con_str = "Data Source=(local);Initial Catalog=Cafe;Integrated Security=True";

SqlConnection con;

SqlDataAdapter adapt;

DataSet ds, ds_u;

BindingSource bs, bs_u;

int num = 0;

public prosmotr()

{

InitializeComponent();

}

/* public void Prosmotr_Load()

{

con = new SqlConnection(con_str);// подключение к базе

con.Open();

adapt = new SqlDataAdapter("select * from Сотрудники", con);// извлеч. данных

ds = new DataSet(); //ОП

DataTable t = new DataTable();

bs = new BindingSource();

bs.DataSource = t;

adapt.Fill(t);

grid_s.DataSource = bs;

grid_s.Update();

grid_s.Refresh();

grid_s.Columns[0].Visible = false;

grid_s.Columns[9].Visible = false;

grid_s.Columns[10].Visible = false;

grid_s.Columns[11].Visible = false;

con.Close();

}*/

public DataRow FindCurrentRow(DataGridView dgv)

{

CurrencyManager cManager =

dgv.BindingContext[dgv.DataSource, dgv.DataMember]

as CurrencyManager;

if (cManager == null || cManager.Count == 0)

return null;

DataRowView drv = cManager.Current as DataRowView;

return drv.Row;

}

private void button1_Click(object sender, EventArgs e)

{

num = 1;

label2.Text = "По наименованию";

con = new SqlConnection(con_str);// подключение к базе

con.Open();

adapt = new SqlDataAdapter("select * from Меню", con);// извлеч. данных

ds = new DataSet(); //ОП

DataTable t = new DataTable();

bs = new BindingSource();

bs.DataSource = t;

adapt.Fill(t);

grid_s.DataSource = bs;

grid_s.Update();

grid_s.Refresh();

grid_s.Columns[0].Visible = false;

// grid_s.Columns[3].Visible = false;

con.Close();

}

private void button2_Click(object sender, EventArgs e)

{

num = 2;

label2.Text = "По наименованию";

con = new SqlConnection(con_str);// подключение к базе

con.Open();

adapt = new SqlDataAdapter("select * from Продукты", con);// извлеч. данных

ds = new DataSet(); //ОП

DataTable t = new DataTable();

bs = new BindingSource();

bs.DataSource = t;

adapt.Fill(t);

grid_s.DataSource = bs;

grid_s.Update();

grid_s.Refresh();

grid_s.Columns[0].Visible = false;

con.Close();

}

private void button3_Click(object sender, EventArgs e)

{

num = 3;

label2.Text = "Поиск недоступен";

con = new SqlConnection(con_str);// подключение к базе

con.Open();

adapt = new SqlDataAdapter("select * from Продажа", con);// извлеч. данных

ds = new DataSet(); //ОП

DataTable t = new DataTable();

bs = new BindingSource();

bs.DataSource = t;

adapt.Fill(t);

grid_s.DataSource = bs;

grid_s.Update();

grid_s.Refresh();

grid_s.Columns[0].Visible = false;

con.Close();

}

private void button4_Click(object sender, EventArgs e)

{

int id = (int)FindCurrentRow(grid_s)[0];

Bludo frm = new Bludo(id);

frm.ShowDialog();

}

private void button5_Click(object sender, EventArgs e)

{

int id8 = (int)FindCurrentRow(grid_s)[0];

Productred frm = new Productred(id8);

frm.ShowDialog();

}

private void button7_Click(object sender, EventArgs e)

{

int id9 = (int)FindCurrentRow(grid_s)[0];

Datared frm = new Datared(id9);

frm.ShowDialog();

}

private void button8_Click(object sender, EventArgs e)

{

int id10 = (int)FindCurrentRow(grid_s)[1];

int d=(int)FindCurrentRow(grid_s)[3];

id10 = (id10 / d) * (d - 1);

Prib frm = new Prib(id10);

frm.ShowDialog();

}

private void button6_Click(object sender, EventArgs e)

{

int id11 = (int)FindCurrentRow(grid_s)[0];

int id12 = (int)FindCurrentRow(grid_s)[1];

int ik = (int)FindCurrentRow(grid_s)[3];

Prodano frm = new Prodano(id11,id12,ik);

frm.ShowDialog();

}

private void textBox1_TextChanged(object sender, EventArgs e)

{

if (num == 1) bs.Filter = string.Format("Наименование like '{0}*'", textBox1.Text);

if (num == 2) bs.Filter = string.Format("Наименования like '{0}*'", textBox1.Text);

}

}

}

Руководство пользователя

Вход в систему

  1. Для входа в программу, достаточно запустить программу.

Главное меню программы

  1. На главной панели программы изображено 5 кнопок, позволяющие производить различные операции и запросы. Все эти операции рассмотрены ниже поочередно.

  2. Так же на главной странице размещен титульный лист работы.

Просмотр данных хранящихся БД

  1. В данном окне отображаются все не приватные данные. При нажатии нужных данных, появляются различные окна:

  1. В данном окне отображается состав блюда, выбирая соответствующее поле и нажимая соответствующие кнопки можно изменить блюдо его продукты с весами.

  2. Так же можно изменить отредактировать всю базу продуктов. Отобразив продукты и выбрав изменить

  1. Выбрав даты продаж, пользователь может просмотреть что продано, и заменить блюдо, если было продано не то. Перерасчет кассы происходит автоматически. Посмотреть прибыль в этот день(счёт) изменить дату продажи если в ней ошибка

Добавление

  1. Для добавлении даты продажи, продукты и блюда не обходимо выбрать соответствующий пункт.

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

Удаление

  1. В данном окне выводится выбирается удаление блюда или даты. В данной БД продукты Удалять нельзя!

Выбираем соответствующий пункт и удаляем.

Рассчитать

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

Продажа

  1. В этом окне отображаются все данные датах продажи выбрав соответствующую дату переходим к окну выбора блюда нажав кнопку

  1. Выбираем блюдо, которое хотим продать ставим количество и нажимаем кнопку. Блюдо продано!

Заключение

В ходе выполнения курсовой работы было протестирован набор сущностей данного объекта. Проверены все функции системы. Созданы 3 блюда, 14 продуктов, проведены 3 продажи. Расчёт стоимости и конструктор блюда были проверены на реальной документации кафе, результаты вычислений совпали с документацией. Все функции программы работают корректно и удобны в использовании. Есть возможность добавлять, удалять и редактировать данные, и просматривать их.