Разработка информационной системы "Строительство жилых зданий"

Объекты автоматизируемых процессов. Функции и формы программы, листинг программного кода. Концептуальная и реляционная модели данных. Порядок установки и запуск программы, выполнение пользовательских операций. Требования к аппаратному обеспечению.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 15.02.2016
Размер файла 545,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

12

Размещено на http://www.allbest.ru/

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту

по дисциплине «Базы данных»

Тема проекта «Разработка информационной системы "Строительство жилых зданий»

Реферат

БАЗЫ ДАННЫХ, ПРОГРАММНОЕ ОБЕСПЕЧНИЕ, АВТОМАТИЗАЦИЯ, КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ, СХЕМА ДАННЫХ, ПРЕДМЕТНАЯ ОБЛАСТЬ, Microsoft SQL Server, Microsoft C#, ОРГАНИЗАЦИЯ УЧЕТА ПЕРСОНАЛА.

Тема: «Разработка информационной системы "Строительство жилых зданий"».

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

Содержание

Введение

1. Нормативные ссылки

2. Анализ предметной области и требований

2.1 Цель автоматизации

2.2 Перечень задач, подлежащих автоматизации

2.3 Объекты автоматизируемых процессов

2.4 Последовательность действий участников заказа

2.5 Концептуальная модель

3. Постановка задачи на разработку БД и По

3.1 Перечень функций программы

3.2 Реляционная модель данных

3.3 Перечень форм программы

3.4 Отчеты программы и авторизация

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

4.1 Требования к аппаратному и программному обеспечению

4.2 Порядок установки программы

4.3 Запуск программы

4.4 Выполнение пользовательских операций

4.4.1 Навигация по программе

4.5 Завершение работы с программой

Заключение

Список используемых источников

Приложение А

Введение

Одним из важнейших понятий теории базы данных является понятие информации. Здесь под информацией понимают любые сведения о каком-либо событии, процессе, объекте. С понятием информации тесно связано понятие данных. Данные - это информация, представленная в определенном виде, позволяющем автоматизировать ее сбор, хранение и обработку.

База данных (БД) - совокупность специальным образом организованных данных, хранимых в памяти компьютера и отражающих состояние объектов и их отношений в рассматриваемой предметной области. Предметной областью принято называть ту часть реального мира, объекты которой описаны в базе данных. База данных состоит из множества связанных файлов.

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

Почти все современные СУБД хранят и обрабатывают информацию на основе реляционной модели управления данными. В реляционной СУБД (сокращенно называемой СУРБД) данные хранятся в нескольких таблицах. Каждая таблица содержит сведения об одном предмете (например, клиенте или продуктах) и имеет столбцы (поля), содержащие различные типы сведений о данном предмете (например, адрес и телефон клиента), и строки (записи), в которых описаны все атрибуты отдельного экземпляра предмета (например, сведения о конкретном товаре). При выполнении запроса (извлечении сведений из одной или нескольких таблиц) результат почти всегда выглядит как еще одна таблица.

Понятие «реляционная» происходит из того факта, что каждая таблица содержит сведения, связанные с одним и только одним предметом. При дальнейшем изучении реляционной модели вы поймете, что понятие «связь» (relation) применяется к набору строк (или таблице), относящихся к одному предмету. Кроме того, данные о двух классах информации (например, клиенты и заказы) могут обрабатываться как единое целое, с учетом связей между значениями данных. Например, излишним будет хранение имени и адреса клиента в каждом размещаемом им заказе. В реляционной СУБД информация о заказе имеет поле, в котором хранится номер клиента, что позволяет связать каждый заказ с информацией о соответствующем клиенте.

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

В рамках данного проекта автоматизируется работа учета персонала на предприятии. Процессы в сфере учета персонала, и численности организации обычно немногочисленны и хорошо формализуются, но вместе с тем для них характерен большой объем данных и большое количество совершаемых операций. Таким образом автоматизация в данной области дает хорошие результаты.

В качестве средств для разработки автоматизированного решения выбрана СУБД Microsoft SQL Server 2008 и среда разработки Microsoft Visual Studio 2010 (язык приложения - C#). Это надежные и хорошо проверенные временем продукты, с помощью которых были созданы решения для десятков тысяч различных организаций.

1. Нормативные ссылки

В настоящих методических указаниях используются ссылки на следующие нормативные документы:

ГОСТ Р 1.5-2004 - Стандарты национальные РФ. Правила построения, изложения, оформления и обозначения.

ГОСТ Р 7.05-2008 - СИБИД. Библиографическая ссылка. Общие требования и правила составления.

ГОСТ 2.301- 68 - ЕСКД. Форматы.

ГОСТ 2.105-95 - ЕСКД. Общие требования к текстовым документам.

ГОСТ 7.9-95 - СИБИД. Реферат и аннотация. Общие требования.

ГОСТ 7.82-2001 - СИБИД. Библиографическая запись. Библиографическое описание электронных ресурсов. Общие требования и правила составления.

2. Анализ предметной области и требований

2.1 Цель автоматизации

Можно выделить следующие основные цели автоматизации в рамках данного проекта:

1. Улучшение автоматизации процесса заказа разработки жилых домов;

2. Увеличения достоверности и скорости получения кадровой отчетности.

3. Сокращение числа человеческих ошибок, влияния «человеческого фактора»;

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

2.2 Перечень задач, подлежащих автоматизации

Разрабатываемое программное обеспечение должно решать следующие задачи:

1. хранение основных элементов справочной информации (сотрудники, отделы, подразделения.);

2. ввод информации о новых отделениях, сотрудниках и т.д.

3. облегчить процесс оформления заказа жилой продукции.

2.3 Объекты автоматизируемых процессов

- Непосредственно заказчики, для работы с которыми и разрабатывается данное приложение.

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

- Администратор, который, в отличие от обычных сотрудников, может вносить изменения в саму базу на уровне отделений, должностей и т. д.

- Добавления рабочих(сотрудников) ,оформления и дату приема в базу данных .

- Разработки цен и установление площадей проектов.

- Информация рабочих (сотрудников) бригад компании.

2.4 Последовательность действий участников заказа

Клиент, который нуждается в какой либо строительной продукции, обращается в строительную компанию за ее разработкой. Хорошо оформленный заказ способствует наиболее точному выполнению заказа, а также повышению скорости разработки этого продукта.

Администратор в свое время вносит данные в базу данных . (Открытие нового отделения, принятие нового сотрудника на работу и т. д.)

2.5 Концептуальная модель

Для построения концептуальной модели будем использовать схему «сущность-связь» (англ. Entity-RelationshipDiagram). Схема предметной области представлена на рисунке 1.

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

Рисунок 1 - Концептуальная модель предметной области

3. Постановка задачи на разработку БД и ПО

3.1 Перечень функций программы

1. Оформление нового заказа.

2. Редактирование таблиц базы данных.

3. Вывод данных из таблиц.

4. Поиск по таблицам баз данных.

3.2 Реляционная модель данных

Реляционная модель данных представлена на рисунке 2.

Рисунок 2 - Реляционная модель данных

3.3 Перечень форм программы

Программа содержит следующие формы:

1) Главная форма, которая содержит меню смены режима работы. Главную форму оформления заказа и главную форму ред. табл

2) Формы добавления элементов, эти формы характеризуются тем, что они содержат наборы контроллов, позволяющих ввести индивидуальную информацию об объекте, представленном в таблице, или изменить ее по мере необходимости. Кроме того в таких формах осуществляется валидация вводимых значений, т.е. проверка их на отсутствие или на правильность в соответствии со структурой данных.

3) Форма авторизации пользователя, в которой проверяется, как соответствие логина и пароля, так и права пользователя.

3.4 Отчеты программы и авторизация

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

Кроме того в целях безопасности в программе предусмотрена авторизация пользователей по уникальному имени и паролю. Тем самым программа становится защищенной от несанкционированного доступа злоумышленников. А также программа позволяет разделить степень доступа к данным, и разделить степень ответственности за ввод модификацию и изменение данных.

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

4.1 Требования к программному и аппаратному обеспечению

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

- Компьютер под управлением операционной системы Microsoft Windows XP и выше (или Microsoft Windows Server 2003 и выше);

- Microsoft .NET Framework 4.0 и выше;

- Microsoft SQL Server 2008 и выше.

4.2 Порядок установки программы

программа модель данные

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

1) Убедиться в том, что на компьютере установлен Microsoft .NET Framework 4.0, при необходимости установить или обновить его;

2) Убедиться в том, что на компьютере установлен и работоспособен Microsoft SQL Server 2008, при необходимости установить или обновить его;

4.3 Запуск программы

Для запуска программы необходимо, предварительно выполнив действия, указанные в предыдущем пункте, дважды щёлкнуть по файлу sportshop.exe, расположенному в папке Debug.

4.4 Выполнение пользовательских операций

4.4.1 Навигация по программе

Работа с программой начинается с окна авторизации.

Рисунок 1 - Форма авторизации

Перемещение между формами происходит через раскрывающееся окно в главной форме программы.

Рисунок 2 - Внешний вид программы

Рисунок 4 - Главная форма программы

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

Рисунок 5 - Выбор вкладки «Склад

Выбрав третью вкладку «Статистика», мы можем выбрать интересующий нас товар и увидеть, какое его количество было продано.

Рисунок 5 - Выбор вкладки «Статистика»

В программе имеется возможность вывода данных в txt файл. Для этого нужно открыть файл bill.txt в папке Debug.

4.5 Завершение работы с программой

Для завершения работы с программой необходимо закрыть главное окно программы.

Заключение

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

Большинство программных продуктов учета являются общими, универсальными. Поэтому есть необходимость в создании узкоспециализированной программы, которая в полной мере удовлетворяла потребности отдела по работе с заказами.

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

Использование ЭВМ приводит к резкому ускорению учетных работ за счет замены многочисленных рутинных операций, связанных с накоплением и группировкой данных, их переносом из регистров в регистр, расчетами, мгновенно выполняемыми машиной.

Список используемых источников

1. Малыхина М.П. Базы данных: основы, проектирование, использование: Сер. «Учебное пособие». - СПб.; БХВ-Петербург, 2004. - 512 с.

2. Дейт К. Дж. Введение в системы баз данных 7-е изд. -- М.: Вильямс, 2012. -- С. 1072. -- ISBN 5-8459-0138-3.

3. Шилдт Г. C# учебный курс. Пер. с англ. - СПб.: изд. Питер, изд. Группа BHV, 2011. - 512 с.

4. Нэш Т. C# 2008 ускоренный курс. Пер. с англ. - М.: изд Вильямс, 2008. - 576 стр.

5. С.А. Каратыгин, А.Ф. Тихонов, В.Г. Долголаптев. Базы данных. т.1 и 2, М., "ABF", 2010.

6. Microsoft Software Developers Network [Электронный ресурс]: Online электронный ресурс, посвященный вопросам разработки программного обеспечения и баз данных с помощью продуктов Microsoft. - Электрон, дан. (55 518 файлов). - Адрес доступа: http://www.msdn.com/ - Главная страница.

Приложение А

Листинг программы

Форма авторизации

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;

namespace sportshop

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

if (login.Text != string.Empty && pass.Text != string.Empty)

{

try

{

Manager man = new Manager(login.Text, pass.Text);

Manager res = ManagerModel.Instance().getManager(man);

if (res.id > 0)

{

Form2 form = new Form2();

form.managerid = res.id;

form.Show();

Hide();

}

else

{

errorlabel.Text = "Pair login pass is not correct";

}

}

catch(Exception ex)

{

errorlabel.Text = "Pair login pass is not correct";

}

}

else

{

errorlabel.Text = "Pair login pass is not correct";

}

}

}

}

Главная форма

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data;

using System.Data.SqlClient;

namespace sportshop

{

class BaseDB

{

public DataTable SelectQuery(string query)

{

// create a new data adapter based on the specified query.

SqlDataAdapter adapter = new SqlDataAdapter();

//set the SelectCommand of the adapter

adapter.SelectCommand = new SqlCommand(query, DB.Instance().connection);

// create a new DataTable

DataTable table = new DataTable();

//fill the DataTable

adapter.Fill(table);

//return the DataTable

return table;

}

public void UpdateQuery(string query)

{

// create a new data adapter based on the specified query.

SqlDataAdapter adapter = new SqlDataAdapter();

//set the SelectCommand of the adapter

adapter.UpdateCommand = new SqlCommand(query, DB.Instance().connection);

adapter.UpdateCommand.ExecuteNonQuery();

}

public void InsertQuery(string query)

{

// create a new data adapter based on the specified query.

SqlDataAdapter adapter = new SqlDataAdapter();

//set the SelectCommand of the adapter

adapter.InsertCommand = new SqlCommand(query, DB.Instance().connection);

adapter.InsertCommand.ExecuteNonQuery();

}

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace sportshop

{

class BuyBill

{

public BuyBill() { }

public int id { get; set; }

public int providerid { get; set; }

public DateTime date { get; set; }

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data;

namespace sportshop

{

class BuyBillModel

{

private static BuyBillModel instance = null;

public BuyBillModel() { }

public static BuyBillModel Instance()

{

if (instance == null)

{

instance = new BuyBillModel();

}

return instance;

}

public int getGoodCountByName(Good good)

{

int count = 0;

string query = "select count from buygoodlist where goodid = '" + good.id + "'";

DataTable result = DB.Instance().SelectQuery(query);

count = int.Parse(result.Rows[0]["count"].ToString());

return count;

}

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace sportshop

{

class Buyer

{

public Buyer() { }

public int id { get; set; }

public string name { get; set; }

public string address { get; set; }

public int telefon { get; set; }

}

class Buyers : List<Buyer>

{

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data.SqlClient;

using System.Data;

namespace sportshop

{

class DB : BaseDB

{

private static DB instance = null;

//Возвращает экземпляр класса самого себя (патерн синглтон)

public static DB Instance()

{

if (instance == null)

{

instance = new DB();

}

return instance;

}

#region Свойства

public SqlConnection connection

{

get

{

SqlConnection connection = new SqlConnection("server=(local);Trusted_Connection=yes;database=sportshop;Connection Timeout=60;");

connection.Open();

return connection;

}

}

public bool checkConnection

{

get

{

if (this.connection.State.ToString() == "Open")

return true;

return false;

}

}

#endregion

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace sportshop

{

class Delivery

{

public Delivery() { }

public int id { get; set; }

public string name { get; set; }

public decimal cost { get; set; }

}

class Deliveries : List<Delivery>

{

}

}

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;

namespace sportshop

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

if (login.Text != string.Empty && pass.Text != string.Empty)

{

try

{

Manager man = new Manager(login.Text, pass.Text);

Manager res = ManagerModel.Instance().getManager(man);

if (res.id > 0)

{

Form2 form = new Form2();

form.managerid = res.id;

form.Show();

Hide();

}

else

{

errorlabel.Text = "Pair login pass is not correct";

}

}

catch(Exception ex)

{

errorlabel.Text = "Pair login pass is not correct";

}

}

else

{

errorlabel.Text = "Pair login pass is not correct";

}

}

}

}

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.IO;

namespace sportshop

{

public partial class Form2 : Form

{

public int managerid = 0;

private Goods goodlist = new Goods();

private Manager manager = new Manager();

public Form2()

{

InitializeComponent();

}

private void Form2_Load(object sender, EventArgs e)

{

manager = ManagerModel.Instance().getManagerByID(managerid);

Buyers buyers = SaleBillModel.Instance().getAllBuyers();

Deliveries deliveries = SaleBillModel.Instance().getAllDeliveries();

for (int i = 0; i < buyers.Count; i++)

{

comboBox1.Items.Add(buyers[i].name);

}

comboBox1.SelectedIndex = 0;

for (int i = 0; i < deliveries.Count;i++ )

{

comboBox2.Items.Add(deliveries[i].name);

}

comboBox2.SelectedIndex = 3;

textBox2.Text = SaleBillModel.Instance().getDeliveryByName(comboBox2.SelectedItem.ToString()).cost.ToString();

textBox1.Text = DateTime.Now.ToShortDateString();

Groups groups = SaleBillModel.Instance().getAllGroups();

Makers makers = SaleBillModel.Instance().getAllMakers();

for (int i = 0; i < groups.Count; i++)

{

comboBox3.Items.Add(groups[i].name);

}

for (int i = 0; i < makers.Count; i++)

{

comboBox5.Items.Add(makers[i].name);

}

comboBox3.SelectedIndex = 0;

comboBox5.SelectedIndex = 0;

comboBox4.Enabled = false;

button2.Enabled = false;

Goods goods = SaleBillModel.Instance().getGoods();

for (int i = 0; i < goods.Count; i++)

{

comboBox6.Items.Add(goods[i].name);

comboBox7.Items.Add(goods[i].name);

}

comboBox6.SelectedIndex = 0;

comboBox7.SelectedIndex = 0;

FillBuyGoods();

FillSaledGoods();

}

private void FillGoods()

{

Group group = SaleBillModel.Instance().getGroupByName(comboBox3.SelectedItem.ToString());

Maker maker = SaleBillModel.Instance().getMakerByName(comboBox5.SelectedItem.ToString());

Goods goods = SaleBillModel.Instance().getGoodsByGroupAndMaker(group.id, maker.id);

for (int i = 0; i < goods.Count; i++)

{

comboBox4.Items.Add(goods[i].name);

}

if (goods.Count > 0)

{

comboBox4.SelectedIndex = 0;

}

}

private void FillBuyGoods()

{

Good good = SaleBillModel.Instance().getGoodByName(comboBox6.SelectedItem.ToString());

int count = BuyBillModel.Instance().getGoodCountByName(good) - SaleBillModel.Instance().SaledGoods(good);

textBox3.Text = count.ToString();

}

private void FillSaledGoods()

{

Good good = SaleBillModel.Instance().getGoodByName(comboBox7.SelectedItem.ToString());

textBox4.Text = SaleBillModel.Instance().getSaleCountGood(manager, good).ToString();

}

private void button1_Click(object sender, EventArgs e)

{

SaleBill bill = new SaleBill();

bill.manager = manager;

bill.buyer = SaleBillModel.Instance().getBuyerByName(comboBox1.SelectedItem.ToString());

bill.delivery = SaleBillModel.Instance().getDeliveryByName(comboBox2.SelectedItem.ToString());

bill.goods = goodlist;

bill.date = DateTime.Now;

bill.cost = decimal.Parse(textBox2.Text.ToString());

var res = SaleBillModel.Instance().CreateSaleBill(bill);

string sbill = "Менеджер по продажам: " + manager.name + " Телефон: " + manager.telefon +

"\r\nПокупатель: " + bill.buyer.name + " Адрес: " + bill.buyer.address + " Телефон: " + bill.buyer.telefon +

"\r\nВид доставки: " + bill.delivery.name + " Cтоимость доставки: " + bill.delivery.cost +

"\r\nСписок товаров: " + richTextBox1.Text.ToString() +

"\r\nДата: " + bill.date +

"\r\nОбщая цена: " + bill.cost;

richTextBox2.Text = sbill;

TextWriter text = new StreamWriter("bill.txt");

text.Write(sbill);

text.Close();

AllClean();

}

private void AllClean()

{

goodlist = new Goods();

textBox1.Text = DateTime.Now.ToShortDateString();

textBox2.Text = SaleBillModel.Instance().getDeliveryByName(comboBox2.SelectedItem.ToString()).cost.ToString();

richTextBox1.Clear();

}

private void button2_Click(object sender, EventArgs e)

{

string goodname = comboBox4.SelectedItem.ToString();

Good good = SaleBillModel.Instance().getGoodByName(goodname);

goodlist.Add(good);

richTextBox1.Text += goodname + Environment.NewLine;

decimal count = decimal.Parse(textBox2.Text.ToString()) + good.outputcost;

textBox2.Text = count.ToString();

}

private void button3_Click(object sender, EventArgs e)

{

comboBox4.Items.Clear();

FillGoods();

comboBox4.Enabled = true;

button2.Enabled = true;

}

private void button4_Click(object sender, EventArgs e)

{

FillBuyGoods();

}

private void button5_Click(object sender, EventArgs e)

{

FillSaledGoods();

}

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace sportshop

{

class Good

{

public Good() { }

public int id { get; set; }

public string name { get; set; }

public int groupid { get; set; }

public int makerid { get; set; }

public decimal inputcost { get; set; }

public decimal outputcost { get; set; }

}

class Goods : List<Good>

{

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace sportshop

{

class Group

{

public Group() { }

public int id { get; set; }

public string name { get; set; }

}

class Groups : List<Group>

{

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace sportshop

{

class Maker

{

public Maker() { }

public int id { get; set; }

public string name { get; set; }

}

class Makers : List<Maker>

{

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace sportshop

{

class Manager

{

public Manager() { }

public Manager(string name, string pass)

{

this.id = 0;

this.name = name;

this.pass = pass;

}

public int id { get; set; }

public string name { get; set; }

public string pass { get; set; }

public string address { get; set; }

public int telefon { get; set; }

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data;

namespace sportshop

{

class ManagerModel

{

private static ManagerModel instance = null;

public static ManagerModel Instance()

{

if (instance == null)

{

instance = new ManagerModel();

}

return instance;

}

public Manager getManager(Manager manager)

{

string query = "select * from manager where name = '" + manager.name + "' and pass = '" + manager.pass + "'";

DataTable result = DB.Instance().SelectQuery(query);

Manager man = new Manager();

man.id = int.Parse(result.Rows[0]["managerid"].ToString());

man.name = result.Rows[0]["name"].ToString();

man.pass = result.Rows[0]["pass"].ToString();

man.address = result.Rows[0]["address"].ToString();

man.telefon = int.Parse(result.Rows[0]["telefon"].ToString());

return man;

}

public Manager getManagerByID(int id)

{

string query = "select * from manager where managerid = '" + id + "'";

DataTable result = DB.Instance().SelectQuery(query);

Manager man = new Manager();

man.id = int.Parse(result.Rows[0]["managerid"].ToString());

man.name = result.Rows[0]["name"].ToString();

man.address = result.Rows[0]["address"].ToString();

man.telefon = int.Parse(result.Rows[0]["telefon"].ToString());

return man;

}

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

namespace sportshop

{

static class Program

{

/// <summary>

/// Главная точка входа для приложения.

/// </summary>

[STAThread]

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1());

}

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace sportshop

{

class Provider

{

public Provider() { }

public int id { get; set; }

public string name { get; set; }

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace sportshop

{

class SaleBill

{

public SaleBill() { }

public SaleBill(int id,Manager man)

{

this.id = id;

this.manager = man;

}

public int id { get; set; }

public Manager manager { get; set; }

public Buyer buyer { get; set; }

public Delivery delivery { get; set; }

public DateTime date { get; set; }

public Goods goods { get; set; }

public decimal cost { get; set; }

}

class SaleBills : List<SaleBill>

{

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data;

namespace sportshop

{

class SaleBillModel

{

private static SaleBillModel instance = null;

public SaleBillModel() { }

public static SaleBillModel Instance()

{

if (instance == null)

{

instance = new SaleBillModel();

}

return instance;

}

public Buyers getAllBuyers()

{

Buyers buyers = new Buyers();

string query = "select * from buyer";

DataTable result = DB.Instance().SelectQuery(query);

for (int i = 0;i<result.Rows.Count;i++)

{

Buyer buyer = new Buyer();

buyer.id = int.Parse(result.Rows[i]["buyerid"].ToString());

buyer.name = result.Rows[i]["name"].ToString();

buyer.address = result.Rows[i]["address"].ToString();

buyer.telefon = int.Parse(result.Rows[i]["telefon"].ToString());

buyers.Add(buyer);

}

return buyers;

}

public Buyer getBuyerByName(string name)

{

Buyer buyer = new Buyer();

string query = "select * from buyer where name = '" + name + "'";

DataTable result = DB.Instance().SelectQuery(query);

buyer.id = int.Parse(result.Rows[0]["buyerid"].ToString());

buyer.name = result.Rows[0]["name"].ToString();

buyer.address = result.Rows[0]["address"].ToString();

buyer.telefon = int.Parse(result.Rows[0]["telefon"].ToString());

return buyer;

}

public Deliveries getAllDeliveries()

{

Deliveries deliveries = new Deliveries();

string query = "select * from delivery";

DataTable result = DB.Instance().SelectQuery(query);

for (int i = 0; i < result.Rows.Count; i++)

{

Delivery delivery = new Delivery();

delivery.id = int.Parse(result.Rows[i]["deliveryid"].ToString());

delivery.name = result.Rows[i]["name"].ToString();

delivery.cost = decimal.Parse(result.Rows[i]["cost"].ToString());

deliveries.Add(delivery);

}

return deliveries;

}

public Delivery getDeliveryByName(string name)

{

Delivery delivery = new Delivery();

string query = "select * from delivery where name = '" + name + "'";

DataTable result = DB.Instance().SelectQuery(query);

delivery.id = int.Parse(result.Rows[0]["deliveryid"].ToString());

delivery.name = result.Rows[0]["name"].ToString();

delivery.cost = int.Parse(result.Rows[0]["cost"].ToString());

return delivery;

}

public Groups getAllGroups()

{

Groups groups = new Groups();

string query = "select * from [group]";

DataTable result = DB.Instance().SelectQuery(query);

for (int i = 0; i < result.Rows.Count; i++)

{

Group group = new Group();

group.id = int.Parse(result.Rows[i]["groupid"].ToString());

group.name = result.Rows[i]["name"].ToString();

groups.Add(group);

}

return groups;

}

public Group getGroupByName(string name)

{

Group group = new Group();

string query = "select * from [group] where name = '" + name + "'";

DataTable result = DB.Instance().SelectQuery(query);

group.id = int.Parse(result.Rows[0]["groupid"].ToString());

group.name = result.Rows[0]["name"].ToString();

return group;

}

public Makers getAllMakers()

{

Makers makers = new Makers();

string query = "select * from maker";

DataTable result = DB.Instance().SelectQuery(query);

for (int i = 0; i < result.Rows.Count; i++)

{

Maker maker = new Maker();

maker.id = int.Parse(result.Rows[i]["makerid"].ToString());

maker.name = result.Rows[i]["name"].ToString();

makers.Add(maker);

}

return makers;

}

public Maker getMakerByName(string name)

{

string query = "select * from maker where name = '" + name + "'";

DataTable result = DB.Instance().SelectQuery(query);

Maker maker = new Maker();

maker.id = int.Parse(result.Rows[0]["makerid"].ToString());

maker.name = result.Rows[0]["name"].ToString();

return maker;

}

public Goods getGoodsByGroupAndMaker(int groupid,int makerid)

{

Goods goods = new Goods();

string query = "select * from good where groupid = '" + groupid + "' and makerid = '" + makerid + "'";

DataTable result = DB.Instance().SelectQuery(query);

for (int i = 0; i < result.Rows.Count; i++)

{

Good good = new Good();

good.id = int.Parse(result.Rows[i]["goodid"].ToString());

good.name = result.Rows[i]["name"].ToString();

good.groupid = groupid;

good.makerid = makerid;

good.inputcost = decimal.Parse(result.Rows[i]["inputcost"].ToString());

good.outputcost = decimal.Parse(result.Rows[i]["outputcost"].ToString());

goods.Add(good);

}

return goods;

}

public Good getGoodByName(string name)

{

string query = "select * from good where name = '" + name + "'";

DataTable result = DB.Instance().SelectQuery(query);

Good good = new Good();

good.id = int.Parse(result.Rows[0]["goodid"].ToString());

good.name = result.Rows[0]["name"].ToString();

good.groupid = int.Parse(result.Rows[0]["groupid"].ToString());

good.makerid = int.Parse(result.Rows[0]["makerid"].ToString());

good.inputcost = decimal.Parse(result.Rows[0]["inputcost"].ToString());

good.outputcost = decimal.Parse(result.Rows[0]["outputcost"].ToString());

return good;

}

public Goods getGoods()

{

Goods goods = new Goods();

string query = "select * from good";

DataTable result = DB.Instance().SelectQuery(query);

for (int i = 0; i < result.Rows.Count; i++)

{

Good good = new Good();

good.id = int.Parse(result.Rows[i]["goodid"].ToString());

good.name = result.Rows[i]["name"].ToString();

good.groupid = int.Parse(result.Rows[0]["groupid"].ToString());

good.makerid = int.Parse(result.Rows[0]["makerid"].ToString());

good.inputcost = decimal.Parse(result.Rows[i]["inputcost"].ToString());

good.outputcost = decimal.Parse(result.Rows[i]["outputcost"].ToString());

goods.Add(good);

}

return goods;

}

public Dictionary<int, int> CreateSaleBill(SaleBill bill)

{

string query = "insert into salebill values ('" + bill.manager.id + "','" + bill.buyer.id + "','" + bill.delivery.id + "','" + bill.date + "','" + bill.cost + "')";

DB.Instance().InsertQuery(query);

string querys = "select top 1 salebillid from salebill order by salebillid desc";

DataTable res = DB.Instance().SelectQuery(querys);

int id = int.Parse(res.Rows[0]["salebillid"].ToString());

var result = bill.goods

.Select(str => new { id = str.id, count = bill.goods.Count(s => s.id == str.id) })

.Where(obj => obj.count > 0)

.Distinct()

.ToDictionary(obj => obj.id, obj => obj.count);

foreach (KeyValuePair<int, int> pair in result)

{

string query2 = "insert into salegoodlist values ('" + id + "','" + pair.Key + "','" + pair.Value + "')";

DB.Instance().InsertQuery(query2);

}

return result;

}

public int SaledGoods(Good good)

{

string query = "select SUM(count) from salegoodlist where goodid = '"+good.id+"'";

DataTable result = DB.Instance().SelectQuery(query);

return int.Parse(result.Rows[0][0].ToString());

}

public int getSaleCountGood(Manager manager,Good good)

{

SaleBills bill = new SaleBills();

string query = "select SUM(count) from salegoodlist where salebillid in (select salebillid from salebill where managerid = '" + manager.id + "') and goodid = '" + good.id + "'";

DataTable result = DB.Instance().SelectQuery(query);

try

{

return int.Parse(result.Rows[0][0].ToString());

}

catch

{

return 0;

}

}

}

}

Размещено на Allbest.ru


Подобные документы

  • Разработка информационно-справочной системы и рассмотрение теоретического вопроса "Классы и объекты в Pascal". Инициализация полей. Ограничение доступа к полям и методам. Листинг программного кода. Требования к программному и аппаратному обеспечению.

    курсовая работа [2,9 M], добавлен 30.06.2012

  • Требования к аппаратному и программному обеспечению, требуемому для разработки программного модуля. Критерии приемлемости разрабатываемого программного продукта. Разработка удобного пользовательского интерфейса программы. Алгоритм и листинг программы.

    курсовая работа [2,6 M], добавлен 23.11.2011

  • Необходимость создания базы данных для начальника отдела управления персоналом с целью учёта осуществления командировок в компании S7 Airlines. Концептуальная модель данных в sql server 2008. Листинг программного кода и результат выполнения программы.

    курсовая работа [2,2 M], добавлен 18.01.2013

  • Проектирование базы данных, информационной подсистемы PLC-Tester, модуля тестирования и web-приложения. Разработка логической структуры программного продукта и общие требования к техническому обеспечению. Запуск программы и описание тестовых прогонов.

    дипломная работа [3,2 M], добавлен 30.06.2011

  • Создание программы, предназначенной для автоматизации операций, связанных с регистрацией, поиском и обработкой данных о школьниках, преподавателях. Описание пользователей системы, требований к программному и аппаратному обеспечению, интерфейса программы.

    курсовая работа [734,3 K], добавлен 12.03.2013

  • Основные функции автоматизированной системы "Решатель математических формул". Требования к техническим средствам, информационной и программной совместимости. Стратегии конструирования программного обеспечения. Проектирование, разработка программного кода.

    курсовая работа [600,0 K], добавлен 25.02.2012

  • Работа с файлами на языке Pascal. Типы файлов: типизированные, текстовые, нетипизированные. Сущность процедуры и функции. Использование процедуры Read и Write для операций чтения и записи в типизированном файле. Листинг программы и экранные формы.

    лабораторная работа [38,4 K], добавлен 13.02.2009

  • Переменные типа integer, real, их функции. Общее понятие о массиве, файлы для Pascal. Информационный и информанизационный набор списка. Реализация и тестирование программы. Выбор базы данных, внесение имени, меню. Блок-схема алгоритма, листинг программы.

    курсовая работа [306,0 K], добавлен 04.02.2013

  • Написание программы для работы со списком документов, разработка функционала. Требования к аппаратному и программному обеспечению. Описание интерфейса пользователя. Структура программы и описание данных. Процедура тестирования и его результаты.

    курсовая работа [1,5 M], добавлен 26.08.2012

  • Описание и функциональное назначение программы по оптимизации функции, ее логическая структура и используемые технические средства. Практическое применение программы, вызов и загрузка, входные и выходные данные, выполнение контрольного примера и листинг.

    курсовая работа [337,4 K], добавлен 26.02.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.