Проектирование прототипа информационной системы "Дом"

Разработка автоматизированной системы управляющей компании "Дом" в среде Visual Studio 2012. Генерация списка существующих квартир. Создание базы данных и программного продукта, функциональные требования к нему. Построение диаграмм UML и ER-модели.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 25.10.2017
Размер файла 1,0 M

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

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

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

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

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Казанский национальный исследовательский технологический университет»

Направление (специальность) Математическое обеспечение и администрирование информационных систем

Тема курсового проекта: Проектирование прототипа информационной системы «Дом»

КУРСОВОЙ ПРОЕКТ

Заведующий кафедрой(Кирпичников А.П.)

Руководитель работы(Мангушева А.Р.)

Студент(Бакиров М.Д.)

Нормоконтролер(Мангушева А.Р)

Казань 2015 г.

ВВЕДЕНИЕ

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

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

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

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

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

Автоматизированная система управляющей компании «Дом» будет разрабатываться в среде Visual Studio 2012 и позволять регистрировать, и хранить все данные в единой информационной базе.Одна программа заменит десятки таблиц, документов и отчетов на рабочем месте и на компьютере данные из всех подсистем учета и управления будут находиться в единой информационной базе.

Выявим основные цели и задачи при работе над курсовым проектом.

Цели курсового проекта:

Проектирование прототипа информационной системы.

Разработка прототипа информационной системы.

Развитие самостоятельности при разработке прототипа информационных систем на базе программных продуктов MicrosoftVisualStudio и СУБД SQL Server.

Задачи курсового проекта:

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

Выявление функциональных, нефункциональных требование и действующих лиц.

Построение диаграмм UMLи ER-модели.

Создание базы данных и программного продукта

ЗАДАНИЕ

На курсовой проект студенту кафедры Интеллектуальных систем и управления информационными ресурсами_____________________

Тема работы (проекта):

Проектирование прототипа информационной системы «Дом»_______________________

Исходные данные к проекту предметная область._________________________ ____________________________

Содержание расчетно-пояснительной записки (включая перечень подлежащих разработке вопросов, включая вопросы стандартизации и контроля качества) Описание предметной области, проектирование и разработка прототипа информационной системы «Дом», составление библиографической справки.___________________

Перечень графического материала (схемной документации) презентационный материал (MSPowerPoint), StarUML._________________________________________________

Консультанты по проекту (с указанием относящихся к ним разделов) ____________________________

Дата выдачи задания "_____"_________________20 г.

Руководитель проекта_______________________ (_________________)

ЛИСТ НОРМОКОНТРОЛЯ

1.Лист является обязательным приложением к пояснительной записке дипломного (курсового) проекта.

2.Нормоконтролер имеет право возвращать документацию без рассмотрения в случаях:

- нарушения установленной комплектности,

- отсутствие обязательных подписей,

- нечеткого выполнения текстового и графического материала.

3. Устранение ошибок, указанных нормоконтролером, обязательно.

ПЕРЕЧЕНЬ

замечаний и предложений нормоконтролера по курсовому проекту студента

_____________________________________

(Группа, инициалы, фамилия)

Лист

(страница)

Условное обозначение

(код ошибок)

Содержание замечаний и предложений со ссылкой на нормативный документ, стандарт или типовую документацию

Дата _______________ Нормоконтролер ________________

(подпись)(фамилия, инициалы)

1.ПРОЕКТИРОВАНИЕ ПРОТОТИПА ИНФОРМАЦИООНОЙ СИСТЕМЫ

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

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

Таблица 1.

Термин

Значение

Жилец

Человек, проживающий в данном доме.

Ком. услуги

Услуги, оказываемые управляющей компанией данному дому.

Список жильцов

ФИО и номер квартиры всех жильцов данного дома.

Аналитическая информация

Количество воды, электроэнергии или газа потраченное всеми жильцами.

Доходы

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

Расходы

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

Расчет

Включает в себя доходы и расходы.

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

Функциональные требования:

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

Записывать новых жильцов в систему.

Добавлять новые данные о квартирах.

Просматривать аналитическую информацию.

Просматривать список жильцов.

Просматривать информацию о расходах и доходах.

Нефункциональные требования:

Удобство использования

Пользовательский интерфейс должен быть Windows-совместимым

Пользовательский интерфейс системы должен быть понятным

Система не должна позволять посторонним людям вносить изменения в базу данных.

Действующие лица:

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

Войти в систему.

Зарегистрировать жильца.

Просмотреть аналитическую информацию.

Просмотреть список жильцов.

Просмотреть расчет.

Добавить новые данные о квартире.

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

Вариант использования«Войти в систему».

Краткое описание:Данный вариант использования описывает вход оператора в систему.

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

Система запрашивает имя пользователя и пароль.

Пользователь вводит имя и пароль.

Система подтверждает имя и пароль, после чего открывается доступ в систему.

Альтернативные потоки:

Неправильное имя/пароль: Если во время выполнения основного потока обнаружится, что пользователь ввел неправильное имя и/или пароль, система выводит сообщение об ошибке. Пользователь может вернуться к началу основного потока или отказаться от входа в систему, при этом выполнение варианта использования завершается.

Пользователь не заполнил обязательные поля. Система выдаёт сообщение об ошибке.

Вариант использования « Зарегистрировать новых жильцов в информационную систему»

Краткое описание:Данный вариант использования описывает запись новых жильцов в БД.

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

Система генерирует форму с полями для записи информации о жильце.

Оператор вводит информацию о жильце.

Система проверяет информацию введенную оператором.

Система сохраняет проверенные данные.

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

Предусловия:Перед началом выполнения данного варианта использования пользователь должен войти в систему.

Вариант использования « Просмотреть аналитическую информацию»

Краткое описание:Данный вариант использования описывает просмотр аналитической информации.

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

Система генерирует список объектов анализа(газ, вода, электроэнергия).

Оператор выбирает объект анализа.

Система проводит необходимые вычисления.

Система генерирует результат анализа.

Альтернативные потоки:Разрыв связи с сервером.

Предусловия:Перед началом выполнения данного варианта использования пользователь должен войти в систему.

Вариант использования « Просмотр списка жильцов»

Краткое описание:Данный вариант использования описывает просмотр списка жильцов.

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

просмотреть список жильцов.

Система генерирует список квартир.

Оператор выбирает квартиру.

Система генерирует список жильцов, проживающих в выбранной квартире.

Альтернативные потоки:Разрыв связи с сервером.

Предусловия:Перед началом выполнения данного варианта использования пользователь должен войти в систему.

Вариант использования « Просмотр расчета»

Краткое описание:Данный вариант использования описывает просмотр списка расчета.

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

Система генерирует список квартир.

Оператор выбирает квартиру.

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

Альтернативные потоки:Разрыв связи с сервером.

Предусловия:Перед началом выполнения данного варианта использования пользователь должен войти в систему.

Вариант использования « Добавить новые данные о квартире»

Краткое описание:Данный вариант использования описывает добавление новых данных в БД.

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

Система генерирует форму с полями для записи новых данных .

Оператор вводит данные.

Система проверяет информацию введенную оператором.

Система сохраняет проверенные данные.

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

Предусловия:Перед началом выполнения данного варианта использования пользователь должен войти в систему.

Далее, рассмотрим диаграммы UML.

Диаграмма вариантов использования - Рисунок 1.1. На данном рисунке представлены все действия, совершаемые оператором.Варианты использования позволяют описать только функциональные требования к системе.

Рисунок 1.1 - Диаграмма вариантов использования.

Диаграмма классов - Рисунок 1.2. На данном рисунке представлены классы, содержащие в себе операции, которые они выполняют, и атрибуты. Голубым цветом выделеныграничные классы - «boundaryclass». Граничными называются классы, которые расположены на границе между пользователем и программой. Это экранные формы, отчеты, интерфейсы с аппаратурой (такой как принтеры или сканеры) и другие. А белым цветом выделены классы - сущности - «entityclass». Классы-сущности содержат хранимую информацию. Они имеют наибольшее значение для пользователя, и потому в их названиях часто используют термины из предметной области. Обычно для каждого класса-сущности создают таблицу в базе данных.

Рисунок 1.2 - Диаграмма классов.

Диаграммы последовательностей: Рисунок 1.3,Рисунок 1.4, Рисунок 1.5, Рисунок 1.6, Рисунок 1.7, Рисунок 1.8. На вышеперечисленных рисунках демонстрируются только те объекты, которые непосредственно участвуют во взаимодействии. Ключевым моментом для диаграмм последовательности является динамика взаимодействия объектов во времени.Таким образом, все объекты на диаграмме последовательности образуют некоторый порядок, определяемый очередностью или степенью активности объектов при взаимодействии друг с другом.Графически каждый объект изображается прямоугольником и располагается в верхней части своей линии жизни. Внутри прямоугольника записываются имя объекта и имя класса, разделенные двоеточием. При этом вся запись подчеркивается, что является признаком объекта.Вторым измерением диаграммы последовательности является вертикальная временная ось, направленная сверху вниз. Начальному моменту времени соответствует самая верхняя часть диаграммы. Взаимодействия объектов реализуются посредством сообщений, которые посылаются одними объектами другим. Сообщения изображаются в виде горизонтальных стрелок с именем сообщения, а их порядок определяется временем возникновения. То есть, сообщения, расположенные на диаграмме последовательности выше, инициируются раньше тех, которые расположены ниже.

Рисунок 1.3 - Войти в систему.

Рисунок 1.4 - Регистрация новых жильцов.

Рисунок 1.5 - Просмотр аналитической информации.

Рисунок 1.6 - Просмотр списка жильцов.

Рисунок 1.7 - Просмотр расчёта.

Рисунок 1.8 - Добавить новые данные о квартире.

2. РАЗРАБОТКА ПРОТОТИПА ИНФОРМАЦИОННОЙ СИСТЕМЫ.

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

Рисунок 2.1 - ER-модель.

База данных состоит из следующих таблиц:

Таблица «operat» содержит в себе такие поля как «login» и «password», создана для авторизации пользователя.

Таблица «spisokzh»- список жильцов, содержит в себе поля «flat_number», «lname», «fname», «oname» - номер квартиры, фамилия, имя, отчество соответственно. Номер квартиры - внешний ключ.

Таблица «spisokkv»-список квартир, содержит в себе такие поля как «flat_number», «sum_exp», «sum_inc», «gas_spent», «water_spent», «electric_spent» - номер квартиры, расходы, доходы, количество потраченного газа, количество потраченной воды, количество потраченного электричества соответственно. Номер квартиры - первичный ключ.

Между таблицами «spisokkv» и «spisokzh» реализована связь «один ко многим», то есть в одной квартире могут жить несколько человек.

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

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

После осуществления входа - Рисунок 2.2, система предоставит пять функций на выбор - Рисунок 2.3.

Рисунок 2.2 - Вход.

Рисунок 2.3 - Выбор функции.

Далее, при выборе определённой функции, открывается соответствующая новая форма.

Так:

Просмотр списка жильцов - Рисунок 2.4

Регистрация новых жильцов - Рисунок 2.5

Добавление информации о квартире - Рисунок 2.6

Просмотр расчёта - Рисунок 2.7

Просмотр аналитической информации - Рисунок 2.8

Рисунок 2.4 - Просмотр списка жильцов.

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

Для наиболее быстрой и защищенной работы системы, к базе данных были написаны хранимые процедуры, обращение к которым система осуществляет через следующие классы: «Connect», «Flat», «House», «Operator».

Рисунок 2.5 - Добавление нового жильца.

На следующей форме система генерирует список существующих квартир, пользователь выбирает квартиру и добавляет в неё ФИО нового жильца.

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

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

Рисунок 2.7 - Просмотр расчёта.

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

Рисунок 2.8 - Просмотр аналитической информации.

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

Для более быстрой и защищённой работы информационной системы, для базы данных были написаны хранимые процедуры, обращение к которым формы осуществляют через следующие классы: «Connect», «Flat», «House», «Operator». Программный код приведён в Приложении 1.

ЗАКЛЮЧЕНИЕ

Спроектировав и разработав прототип информационной системы, были применены на практике знания, полученные в процессе изучения курса «Проектирование информационных систем».Получены практические навыки создания автоматизированных информационных систем, основанных на базах данных.

Решены такие задачи как:

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

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

Построение диаграмм UML и ER-модели.

Создание базы данных и программного продукта.

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

Буч, Г.; Рамбо, Д.; Джекобсон, А. UML. Руководство пользователя; М.: ДМК Пресс; Издание 2-е, стер. - Москва, 2010. - 432 c.

Гусева Т.И., Башин Ю.Б. Проектирование баз данных в примерах и задачах. - М.: Юнити, 2000.

Кириллов В.В. Структуризованный язык запросов (SQL). - СПб.: ИТМО, 1994. - 80 с.

Мюллер, Р.Д. Базы данных и UML. Проектирование; Лори , 2009. - 420 c.

Пугачев С., Шериев А., Кичинский К. Разработка приложений для Windows 8 на языке C#; БХВ-Петербург - Москва, 2013. - 416 c.

Троелсен Э. Язык программирования C# 2010 и платформа .NET 4. - М.: «Вильямс», 2010. -- 1392 с.

Шилдт Г. C# 4.0: полное руководство. -- М.: «Вильямс», 2011. -- 1056 с.

Microsoft Office 2007: Справочник / Под ред. Ю.С.Колесникова. - СПб.: Питер. 2006.

ПРИЛОЖЕНИЕ

Программный код

C#

Класс «Connect».

classConnect

{

publicstaticSqlConnection sqlConnection1 = newSqlConnection("Data Source=(local);Initial Catalog=newhouse;Integrated Security=True");

}

Класс «Flat».

classFlat

{

staticint num;

public Flat (int n)

{

num = n;

}

publicList<string> Dwell_spis()

{

var dwell_spis = newList<string>();

SqlCommand cmd = newSqlCommand();

SqlDataReader reader;

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "dweller_spis";

cmd.Connection = Connect.sqlConnection1;

SqlParameter num_parametr = newSqlParameter("@flat_number", SqlDbType.Int);

cmd.Parameters.Add(num_parametr);

num_parametr.Value = num;

Connect.sqlConnection1.Open();

reader = cmd.ExecuteReader();

while (reader.Read())

dwell_spis.Add(reader[0].ToString() + reader[1].ToString() +reader[2].ToString());

Connect.sqlConnection1.Close();

return dwell_spis;

}

publicdouble Expense()

{

var flat_expense = newList<string>();

SqlCommand cmd = newSqlCommand();

SqlDataReader reader;

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "flat_expense";

cmd.Connection = Connect.sqlConnection1;

SqlParameter num_parametr = newSqlParameter("@flat_number", SqlDbType.Int);

cmd.Parameters.Add(num_parametr);

num_parametr.Value = num;

Connect.sqlConnection1.Open();

reader = cmd.ExecuteReader();

while (reader.Read())

flat_expense.Add(reader[0].ToString());

Connect.sqlConnection1.Close();

if (flat_expense[0] == "")

return 0;

elsereturndouble.Parse(flat_expense[0]);

}

publicdouble Income()

{

var flat_income = newList<string>();

SqlCommand cmd = newSqlCommand();

SqlDataReader reader;

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "flat_income";

cmd.Connection = Connect.sqlConnection1;

SqlParameter num_parametr = newSqlParameter("@flat_number", SqlDbType.Int);

cmd.Parameters.Add(num_parametr);

num_parametr.Value = num;

Connect.sqlConnection1.Open();

reader = cmd.ExecuteReader();

while (reader.Read())

flat_income.Add(reader[0].ToString());

Connect.sqlConnection1.Close();

if (flat_income[0] == "")

return 0;

elsereturndouble.Parse(flat_income[0]);

}

publicvoid Add_dweller(string l_n,string f_n,string o_n)

{

SqlCommand cmd = newSqlCommand();

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "insert_dweller";

cmd.Connection = Connect.sqlConnection1;

SqlParameter num_parametr = newSqlParameter("@f_num", SqlDbType.Int);

cmd.Parameters.Add(num_parametr);

num_parametr.Value = num;

SqlParameter l_parametr = newSqlParameter("@l_n", SqlDbType.Char);

cmd.Parameters.Add(l_parametr);

l_parametr.Value = l_n;

SqlParameter f_parametr = newSqlParameter("@f_n", SqlDbType.Char);

cmd.Parameters.Add(f_parametr);

f_parametr.Value = f_n;

SqlParameter o_parametr = newSqlParameter("@o_n", SqlDbType.Char);

cmd.Parameters.Add(o_parametr);

o_parametr.Value = o_n;

Connect.sqlConnection1.Open();

cmd.BeginExecuteNonQuery();

}

publicvoid Add_inform(int exp,int inc,int g,int w, int e)

{

SqlCommand cmd = newSqlCommand();

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "insert_flat_inform";

cmd.Connection = Connect.sqlConnection1;

SqlParameter num_parametr = newSqlParameter("@f_num", SqlDbType.Int);

cmd.Parameters.Add(num_parametr);

num_parametr.Value = num;

SqlParameter exp_parametr = newSqlParameter("@sum_exp", SqlDbType.Money);

cmd.Parameters.Add(exp_parametr);

exp_parametr.Value = exp;

SqlParameter inc_parametr = newSqlParameter("@sum_inc", SqlDbType.Money);

cmd.Parameters.Add(inc_parametr);

inc_parametr.Value = inc;

SqlParameter g_parametr = newSqlParameter("@gas_spent", SqlDbType.Int);

cmd.Parameters.Add(g_parametr);

g_parametr.Value = g;

SqlParameter w_parametr = newSqlParameter("@water_spent", SqlDbType.Int);

cmd.Parameters.Add(w_parametr);

w_parametr.Value = w;

SqlParameter e_parametr = newSqlParameter("@electric_spent", SqlDbType.Int);

cmd.Parameters.Add(e_parametr);

e_parametr.Value = e;

Connect.sqlConnection1.Open();

cmd.BeginExecuteNonQuery();

}

}

Класс «House» .

classHouse

{

publicList<string> Flat_spis()

{

var flat_spis = newList<string>();

SqlCommand cmd = newSqlCommand();

SqlDataReader reader;

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "flat_spis";

cmd.Connection = Connect.sqlConnection1;

Connect.sqlConnection1.Open();

reader = cmd.ExecuteReader();

while (reader.Read())

flat_spis.Add(reader[0].ToString());

Connect.sqlConnection1.Close();

return flat_spis;

}

publicList<string> Flat_without_inform_spis()

{

var flat_without_inform_spis = newList<string>();

SqlCommand cmd = newSqlCommand();

SqlDataReader reader;

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "flat_without_inform_spis";

cmd.Connection = Connect.sqlConnection1;

Connect.sqlConnection1.Open();

reader = cmd.ExecuteReader();

while (reader.Read())

flat_without_inform_spis.Add(reader[0].ToString());

Connect.sqlConnection1.Close();

return flat_without_inform_spis;

}

publicstring Spent_gas()

{

var spent_gas = newList<string>();

SqlCommand cmd = newSqlCommand();

SqlDataReader reader;

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "spent_gas";

cmd.Connection = Connect.sqlConnection1;

Connect.sqlConnection1.Open();

reader = cmd.ExecuteReader();

while (reader.Read())

spent_gas.Add(reader[0].ToString());

Connect.sqlConnection1.Close();

return spent_gas[0];

}

publicstring Spent_water()

{

var spent_water = newList<string>();

SqlCommand cmd = newSqlCommand();

SqlDataReader reader;

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "spent_water";

cmd.Connection = Connect.sqlConnection1;

Connect.sqlConnection1.Open();

reader = cmd.ExecuteReader();

while (reader.Read())

spent_water.Add(reader[0].ToString());

Connect.sqlConnection1.Close();

return spent_water[0];

}

publicstring Spent_electric()

{

var spent_electic = newList<string>();

SqlCommand cmd = newSqlCommand();

SqlDataReader reader;

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "spent_electic";

cmd.Connection = Connect.sqlConnection1;

Connect.sqlConnection1.Open();

reader = cmd.ExecuteReader();

while (reader.Read())

spent_electic.Add(reader[0].ToString());

Connect.sqlConnection1.Close();

return spent_electic[0];

}

}

Класс «Operator»

classOperator

{

staticstring login, password;

public Operator (string l,string p)

{

login = l;

password = p;

}

publicbool Check()

{

int rezult = 0;

SqlCommand cmd = newSqlCommand();

SqlDataReader reader;

cmd.CommandType = CommandType.StoredProcedure;

cmd.CommandText = "oper_check";

SqlParameter log_parametr = newSqlParameter("@log", SqlDbType.Char);

cmd.Parameters.Add(log_parametr);

log_parametr.Value = login;

SqlParameter pass_parametr = newSqlParameter("@pass", SqlDbType.Char);

cmd.Parameters.Add(pass_parametr);

pass_parametr.Value = password;

cmd.Connection = Connect.sqlConnection1;

Connect.sqlConnection1.Open();

reader = cmd.ExecuteReader();

while (reader.Read())

rezult = int.Parse( reader[0].ToString());

Connect.sqlConnection1.Close();

if (rezult==1)

returntrue;

else

returnfalse;

}

}

Хранимые процедуры SQL:

createPROCEDUREoper_check(@logchar(10),@passchar(10))

ASselectcount(*)fromoperato

whereo.login=@logando.password=@pass

createPROCEDUREflat_spis

asselectflat_numberfromspisokkv

createPROCEDUREflat_without_inform_spis

asselectflat_numberfromspisokkvwheresum_expisnull

createPROCEDUREdweller_spis(@flat_numbernumeric(3))

asselectsz.lname,sz.fname,sz.oname

fromspisokzhszjoinspisokkvskonsk.flat_number=sz.flat_number

wheresk.flat_number=@flat_number

createPROCEDUREflat_expense(@flat_numbernumeric(3))

as

selectsum_expfromspisokkv

whereflat_number=@flat_number

createPROCEDUREflat_income(@flat_numbernumeric(3))

as

selectsum_incfromspisokkv

whereflat_number=@flat_number

createprocspent_gas

as

selectsum(gas_spent)fromspisokkv

createprocspent_water

as

selectsum(water_spent)fromspisokkv

createprocspent_electic

as

selectsum(electric_spent)fromspisokkv

createprocinsert_dweller(@f_numnumeric(3),@l_nchar(20),@f_nchar(20),@o_nchar(20))

as

insertintospisokzhvalues (@f_num,@l_n,@f_n,@o_n)

createprocinsert_flat_inform(@f_numnumeric(3),@sum_expmoney,@sum_incmoney,@gas_spentint,@water_spentint,@electric_spentint)

as

updatespisokkv

setsum_exp=@sum_exp,sum_inc=@sum_inc,gas_spent=@gas_spent,water_spent=@water_spent,electric_spent=@electric_spent

whereflat_number=@f_num

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


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

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