Разработка приложения «Коммунальные платежи»

Автор работы: Пользователь скрыл имя, 04 Мая 2014 в 18:06, курсовая работа

Краткое описание

Приложение разработано в среде Visual Studio 2012.
Введение содержит описание цели и задач курсового проекта. Во введении дается краткий анализ возможных методов решения поставленной задачи и основные этапы ее решения.
В основной части приводятся: описание таблиц базы данных; структурная схема приложения; описание последовательности создания приложения; руководство для пользователя приложения.

Содержание

ВВЕДЕНИЕ 5
1. ПОСТАНОВКА ЗАДАЧИ 7
2. СОЗДАНИЕ БАЗЫ ДАННЫХ 8
3. СОЗДАНИЕ ПРИЛОЖЕНИЯ 10
3.1. Подключение к базе данных 10
3.2. Структурная схема пакета 11
3.3. Создание интерфейса и написание программного кода приложения 13
3.4. Создание исполняемого файла приложения 24
4. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 26
ЗАКЛЮЧЕНИЕ 31
СПИСОК ЛИТЕРАТУРЫ 32
ПРИЛОЖЕНИЯ 33

Вложенные файлы: 1 файл

Курсовой проект.docx

— 851.85 Кб (Скачать файл)

Рисунок 26 - Формирование списка показателей счетчиков

Для ввода тарифов предназначена кнопка «Тарифы». Необходимо выбрать из раскрывающегося списка наименование услуги, затем единицы измерения и ввести стоимость единицы. После ввода необходимо нажать на кнопку Записать (рис. 27).

 Рисунок 27 - Ввод тарифов

 

 

 

Для ввода услуг предназначена кнопка «Услуги». Необходимо ввести наименование услуги и единицы измерения. После ввода необходимо нажать на кнопку Записать (рис. 28).

Рисунок 28 - Ввод услуг

Для ввода долгов используется кнопка «Долги». Необходимо выбрать из раскрывающегося списка фамилию должника, ввести величину долга и выбрать дату начисления процентов. После ввода необходимо нажать на кнопку Рассчитать (рис. 29).

Рисунок 29 - Ввод долга

 

 

Результатом работы приложения является формирование таблицы Платежи  (рис. 30).

Рисунок 30 - Формирование сводной таблицы Платежи

При нажатии кнопки «Рассчитать счетчики» программа считает сколько начислено к оплате по каждому клиенту. А при нажатии кнопки «Рассчитать платежи» программа суммирует долг клиента и начисленную сумму за месяц.

При нажатии кнопки «Отчет» открывается новая форма на которой формируется отчет (рис. 31).

Рисунок 31 - Формирование отчета

 

 

ЗАКЛЮЧЕНИЕ

 

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

Проект выполнен в среде Visual Studio 2012 в соответствии с требованиями курсового проекта. Техническое исполнение проекта соответствует требованиям.

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

Были реализованы следующие функции:

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

В результате работы с Visual Studio 2012 были закреплены навыки написания запросов SQL.

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

 

СПИСОК ЛИТЕРАТУРЫ

 

  1. Майо Дж. Самоучитель Microsoft Visual Studio 2010. – СПб.: БХВ-Петербург, 2011.- 464 с.
  2. Кузьменко В.Г. Базы данных в Visual Basic и VBA. Самоучитель. 2-е изд., стереотипное. – М.: ООО «Бином-Пресс», 2007, – 416 с.
  3. http://msdn.microsoft.com/

 

 

Приложение 1

Код формы Form1.vb

Public Class Form1

    'Кнопка Клиенты

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Form2.ShowDialog()

    End Sub

    'Кнопка Показания счетчиков

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        Form3.ShowDialog()

    End Sub

    'Кнопка Тарифы

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

        Form4.ShowDialog()

    End Sub

    'Кнопка Платежи

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

        Form5.ShowDialog()

    End Sub

    'Кнопка Услуги

    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click

        Form6.ShowDialog()

    End Sub

    'Кнопка Долги

    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click

        Form7.ShowDialog()

    End Sub

End Class

 

 

 

 

 

 

Приложение 2

Код формы Form2.vb

Public Class Form2

    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet1.Клиенты". При необходимости она может быть перемещена или удалена.

        Me.КлиентыTableAdapter1.Fill(Me.КомПлатDataSet1.Клиенты)

    End Sub

    'Кнопка Записать

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

        Me.КлиентыTableAdapter1.Insert(TextBox6.Text, TextBox7.Text, TextBox8.Text, TextBox9.Text, TextBox10.Text)

        Me.КлиентыTableAdapter1.Fill(Me.КомПлатDataSet1.Клиенты)

        TextBox6.Text = ""

        TextBox7.Text = ""

        TextBox8.Text = ""

        TextBox9.Text = ""

        TextBox10.Text = ""

        Me.КлиентыTableAdapter1.Update(Me.КомПлатDataSet1.Клиенты)

    End Sub

    'Кнопка Закрыть

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

        Me.DialogResult = DialogResult.OK

    End Sub

End Class 
Приложение 3

Код формы Form3.vb

Public Class Form3

Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load

'TODO: данная строка  кода позволяет загрузить данные  в таблицу "КомПлатDataSet.Клиенты". При необходимости она может быть перемещена или удалена.

Me.КлиентыTableAdapter.Fill(Me.КомПлатDataSet.Клиенты)

'TODO: данная строка  кода позволяет загрузить данные  в таблицу "КомПлатDataSet.ПоказанияСчетчиков". При необходимости она может быть перемещена или удалена.

Me.ПоказанияСчетчиковTableAdapter.Fill(Me.КомПлатDataSet.ПоказанияСчетчиков)

End Sub

'Кнопка Записать

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

mes = Month(Now)

god = Year(Now)

Me.ПоказанияСчетчиковTableAdapter.Insert(ComboBox1.Text, TextBox1.Text, TextBox3.Text, TextBox2.Text, TextBox4.Text, mes, god)

Me.ПоказанияСчетчиковTableAdapter.Fill(Me.КомПлатDataSet.ПоказанияСчетчиков)

ComboBox1.Text = ""

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

TextBox4.Text = ""

Me.ПоказанияСчетчиковTableAdapter.Update(Me.КомПлатDataSet.ПоказанияСчетчиков)

End Sub

'Кнопка Закрыть

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

Me.DialogResult = DialogResult.OK

End Sub

End Class

 

Приложение 4

Код формы Form4.vb

Public Class Form4

Private Sub Form4_Load(sender As Object, e As EventArgs) Handles MyBase.Load

'TODO: данная строка  кода позволяет загрузить данные  в таблицу "КомПлатDataSet.Виды_услуг". При необходимости она может быть перемещена или удалена.

Me.Виды_услугTableAdapter.Fill(Me.КомПлатDataSet.Виды_услуг)

'TODO: данная строка  кода позволяет загрузить данные  в таблицу "КомПлатDataSet.Тарифы". При необходимости она может быть перемещена или удалена.

Me.ТарифыTableAdapter.Fill(Me.КомПлатDataSet.Тарифы)

End Sub

'Кнопка Записать

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

mes = Month(Now)

god = Year(Now)

Me.ТарифыTableAdapter.Insert(ComboBox1.Text, ComboBox2.Text, TextBox1.Text, mes, god)

Me.ТарифыTableAdapter.Fill(Me.КомПлатDataSet.Тарифы)

ComboBox1.Text = ""

ComboBox2.Text = ""

TextBox1.Text = ""

Me.ТарифыTableAdapter.Update(Me.КомПлатDataSet.Тарифы)

End Sub

'Кнопка Закрыть

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

Me.DialogResult = DialogResult.OK

End Sub

End Class

 

Приложение 5

Код формы Form5.vb

Imports System.Data.OleDb

Public Class Form5

    Private Sub Form5_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet3.Тарифы". При необходимости она может быть перемещена или удалена.

        Me.ТарифыTableAdapter2.Fill(Me.КомПлатDataSet3.Тарифы)

        'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet2.Таблица1". При необходимости она может быть перемещена или удалена.

        Me.Таблица1TableAdapter.Fill(Me.КомПлатDataSet2.Таблица1)

        'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet1.Тарифы". При необходимости она может быть перемещена или удалена.

        Me.ТарифыTableAdapter1.Fill(Me.КомПлатDataSet1.Тарифы)

        'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet.Тарифы". При необходимости она может быть перемещена или удалена.

        Me.ТарифыTableAdapter.Fill(Me.КомПлатDataSet.Тарифы)

        'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet.Платежи". При необходимости она может быть перемещена или удалена.

        Me.ПлатежиTableAdapter.Fill(Me.КомПлатDataSet.Платежи)

        Try

            Me.ТарифыTableAdapter.FillBy(Me.КомПлатDataSet.Тарифы)

        Catch ex As System.Exception

            System.Windows.Forms.MessageBox.Show(ex.Message)

        End Try

        Try

            Me.ТарифыTableAdapter1.Electro(Me.КомПлатDataSet1.Тарифы)

        Catch ex As System.Exception

            System.Windows.Forms.MessageBox.Show(ex.Message)

        End Try

        Try

Me.ТарифыTableAdapter2.TBOQuerry(Me.КомПлатDataSet3.Тарифы)

        Catch ex As System.Exception

            System.Windows.Forms.MessageBox.Show(ex.Message)

        End Try

    End Sub

    'Кнопка Рассчитать

 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        ExesSQL("DELETE * FROM Платежи", conn)

        mes = Month(Now)

        god = Year(Now)

        Dim familia As New OleDb.OleDbCommand("SELECT Клиенты.Фамилия, Долг.Всего, Таблица1.К_Оплате FROM Клиенты, Долг, Таблица1 WHERE Клиенты.Фамилия=Долг.Фамилия AND Таблица1.Фамилия=Клиенты.Фамилия", conn)

        conn.Open()

        Dim reader As OleDbDataReader = familia.ExecuteReader()

        While reader.Read

            Me.ПлатежиTableAdapter.Insert(reader.GetValue(0), reader.GetValue(1), reader.GetValue(2) + reader.GetValue(1), mes, god)

        End While

        Me.ПлатежиTableAdapter.Fill(Me.КомПлатDataSet.Платежи)

        reader.Close()

        conn.Close()

    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        ExesSQL("DELETE * FROM Таблица1", conn)

        'Кнопка Посчитать Счетчики

        Dim shitchik As New OleDb.OleDbCommand("SELECT ПоказанияСчетчиков.*, Клиенты.Количество_жильцов FROM ПоказанияСчетчиков, Клиенты WHERE ПоказанияСчетчиков.Фамилия=Клиенты.Фамилия", conn)

        conn.Open()

        Dim reader As OleDbDataReader = shitchik.ExecuteReader()

        While reader.Read

            fam = reader.GetValue(1)

            elekt = reader.GetValue(2)

            elekt1 = reader.GetValue(3)

            voda = reader.GetValue(4)

            voda1 = reader.GetValue(5)

            mes = reader.GetValue(6)

            tbo = reader.GetValue(8) * ComboBox3.Text

            If MonthName(mes) = ComboBox4.Text Then

                sch_el = (elekt1 - elekt) * ComboBox1.Text

                sch_vod = (voda1 - voda) * ComboBox2.Text

                k_vid = (sch_el) + (sch_vod) + tbo

                Me.Таблица1TableAdapter.Insert(fam, sch_el, sch_vod, tbo, k_vid)

            End If

        End While

        Me.Таблица1TableAdapter.Fill(Me.КомПлатDataSet2.Таблица1)

        reader.Close()

        conn.Close()

        Dim shitchik1 As New OleDb.OleDbCommand("SELECT SUM(Электричество), SUM(Вода), SUM(ТБО), SUM(К_оплате) FROM Таблица1", conn)

        conn.Open()

        Dim reader1 As OleDbDataReader = shitchik1.ExecuteReader()

        While reader1.Read

            TextBox5.Text = reader1.GetValue(0)

            TextBox4.Text = reader1.GetValue(1)

            TextBox3.Text = reader1.GetValue(2)

            TextBox2.Text = reader1.GetValue(3)

        End While

        reader1.Close()

        conn.Close()

    End Sub

End Class

 

Приложение 6

Код формы Form6.vb

Public Class Form6

    Private Sub Form6_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet.Виды_услуг". При необходимости она может быть перемещена или удалена.

        Me.Виды_услугTableAdapter.Fill(Me.КомПлатDataSet.Виды_услуг)

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Me.Виды_услугTableAdapter.Insert(TextBox1.Text, TextBox2.Text)

        Me.Виды_услугTableAdapter.Fill(Me.КомПлатDataSet.Виды_услуг)

        TextBox1.Text = ""

        TextBox2.Text = ""

Me.Виды_услугTableAdapter.Update(Me.КомПлатDataSet.Виды_услуг)

    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        Me.DialogResult = DialogResult.OK

    End Sub

End Class

 

Приложение 7

Код формы Form7.vb

Imports System.Data.OleDb

Public Class Form7

    Private Sub Form7_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet.Долг". При необходимости она может быть перемещена или удалена.

        Me.ДолгTableAdapter.Fill(Me.КомПлатDataSet.Долг)

        'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet.Клиенты". При необходимости она может быть перемещена или удалена.

        Me.КлиентыTableAdapter.Fill(Me.КомПлатDataSet.Клиенты)

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        'Кнопка Долг

        Dim today As Date

        today = DateTimePicker1.Text

        col_day1 = Microsoft.VisualBasic.DateAndTime.Day(Now)

        col_day = Microsoft.VisualBasic.DateAndTime.Day(today)

        col_day2 = DateDiff(DateInterval.Day, today, Now)

        peny = (TextBox1.Text / 100) * col_day2

        vsego = TextBox1.Text + peny

        Dim dolg1 As New OleDb.OleDbCommand("SELECT Долг.* FROM Долг", conn)

        conn.Open()

        Me.ДолгTableAdapter.Insert(ComboBox1.Text, TextBox1.Text, peny, vsego)

        conn.Close()

        Me.ДолгTableAdapter.Fill(Me.КомПлатDataSet.Долг)

        Me.ДолгTableAdapter.Update(Me.КомПлатDataSet.Долг)

    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        Me.DialogResult = DialogResult.OK

    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

        ExesSQL("DELETE * FROM Долг", conn)

    End Sub

End Class

 

Приложение 8

Код формы Form8.vb

Public Class Form8

    Private Sub Form8_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        'TODO: данная строка кода позволяет загрузить данные в таблицу "КомПлатDataSet2.Таблица1". При необходимости она может быть перемещена или удалена.

        Me.Таблица1TableAdapter.Fill(Me.КомПлатDataSet2.Таблица1)

        Me.ReportViewer1.RefreshReport()

    End Sub

End Class

 

Приложение 9

Код модуля Module1.vb

Imports System.Data.OleDb

Module Module1

    Public conString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Курсовик\КомПлат.accdb"

    Public conn As New OleDb.OleDbConnection(conString)

    Public fam As String

    Public col_day1, mes, god, col_day, col_day2 As Integer

    Public k_vid, dolg, peny, tarif, elekt, elekt1, voda, voda1, sch_el, sch_vod, vsego, tar_ed, tbo, tar_im, vid_us As Single

    'Удаление

Информация о работе Разработка приложения «Коммунальные платежи»