Главная страница
Навигация по странице:

  • ОГЛАВЛЕНИЕ Курсовая работа 1 ОГЛАВЛЕНИЕ 2 Описание предметной области. Постановка задачи. 3 Информационная модель 4

  • Программная схема решения 5

  • Тестирование 14 Руководство пользователя 16 Оценка результатов 17 Руководство по установке и требованиям 17

  • Программная схема решения Таблицы

  • Схема данных: Формы

  • Добавление нового счета и категории

  • Таблицы Отчеты Закрыть

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

  • Руководство по установке и требованиям

  • 5fan_ru_Информационные системы. Домашняя бухгалтерия. Руководство по установке и требованиям 17 Описание предметной области. Постановка задачи


    Скачать 1.58 Mb.
    НазваниеРуководство по установке и требованиям 17 Описание предметной области. Постановка задачи
    Дата11.02.2021
    Размер1.58 Mb.
    Формат файлаdoc
    Имя файла5fan_ru_Информационные системы. Домашняя бухгалтерия.doc
    ТипРуководство
    #175738




    САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ

    ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ


    Курсовая работа




    Информационные системы. Домашняя бухгалтерия.



    ОГЛАВЛЕНИЕ

    Курсовая работа 1

    ОГЛАВЛЕНИЕ 2

    Описание предметной области. Постановка задачи. 3

    Информационная модель 4

    Программная схема решения 5

    Таблицы: 5

    Схема данных: 5

    Формы: 6

    Фильтр 8

    Добавление нового счета и категории 10

    Просмотр отчетов: 11

    Отчеты 12

    Меню 13

    Тестирование 14

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

    Оценка результатов 17

    Руководство по установке и требованиям 17


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

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



    Чтобы в ней можно было:

    • Ввести информацию о поступлениях/расходах (кто, когда, откуда/куда, сколько, примечание, если необходимо)

    • Счет и категорию выбрать из имеющегося списка.

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

    • Добавить новый счет и категорию.

    • Всегда видеть приобретенную/потраченную со всех счетов сумму за день, неделю, месяц, год.

    • Просмотреть интересующую информацию по заданным параметрам.

    • Выводить отчеты об остатках на счетах и доходах/расходах по категориям.

    • В отчетах видеть сумму за каждый месяц и год.

    Информационная модель


    Счета Категории






    Доходы/расходы




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

    • Счет

    • Дата денежной операции

    • Категория

    • Примечание.

    Кроме того, нужно хранить информацию о счетах:

    • Название счета.

    А также информацию о категориях:

    • Название категории


    Таким образом, получились 3 таблицы: Счета, Категории, Учет.

    Программная схема решения

    Таблицы:
    1 “Scheta

    Эта таблица предназначена для хранения списка счетов.

    Имя поля

    Тип данных

    Размер поля

    Подпись

    Ключевое/обязательное поле

    KodScheta

    Счетчик

    Длинное целое




    да/нет

    Schet

    Текстовый

    50

    Счет

    нет/да


    2Kategoriya”

    Эта таблица предназначена для хранения списка категорий.

    Имя поля

    Тип данных

    Размер поля

    Подпись

    Ключевое/обязательное поле

    Kod

    Счетчик

    Длинное целое




    да/нет

    Kategoriya

    Текстовый

    50

    Категория

    нет/да

    нVid

    Числовой

    Целое




    нет/да

    Ддя поля “Vid”:

    • условие на значение – 1 or -1.


    3 Uchet

    В этой таблице хранятся данные об операциях, совершаемых со счетом.

    Имя поля

    Тип данных

    Размер поля

    Подпись

    Ключевое/обязательное поле

    Schet

    Числовой

    Длинное целое

    Счет

    нет/нет

    Data

    Дата/время




    Дата

    нет/да

    Kategoriya

    Числовой

    Длинное целое

    Категория

    нет/да

    Summa

    Денежный




    Сумма

    нет/да

    Primechanie

    Текстовый

    50

    Примечание

    нет/нет

    Для поля “Data”:

    • значение по умолчанию – Date();

    Поле Schet для связи с таблицей “Scheta”.

    Поле Kategoriya для связи с таблицей “ Kategoriya ”.
    Схема данных:


    Формы:
    1 “Scheta

    Автоформа: ленточная.

    Источник записей: таблица “Scheta”

    Поле “KodScheta”: вывод на экран – нет;

    Кнопка “Udalit” (с помощью мастера): категория – обработка записей; действие – удалить запись.



    2 “Kategoriya

    Автоформа: ленточная.

    Источник записей: таблица “Kategoriya ”.

    Поля : “Kod”, “Vid” ”: вывод на экран – нет;

    Создать поле со списком “Vid1” (в заголовке формы):

    • фиксированный набор значений;

    • число столбцов – 2;

    • ширина столбцов – 2,542см;0см;

    • источник строк – "Доход";1;"Расход";-1 ;

    • присоединенный столбец – 2;

    • ограничиться списком – да;

    • автоподстановка –да;

    • значение по умолчанию – -1

    • после обновления – процедура обработки событий:

    Me.Requery

    Me.Vid.DefaultValue = Me.Vid1

    Me.Kat1.Requery (после создания поля со списком Kat1)

    Источник записей формы (с помощью построителя): SELECT Kategoriya.* FROM Kategoriya WHERE (((Kategoriya.Vid)=Forms!Kategoriya!Vid1)); (все поля таблицы категория + поле “Vid”, где в условии отбора - [Forms]![Kategoriya]![Vid1])

    Закрытие формы: процедура обработки событий :

    On Error Resume Next

    DoCmd.SetWarnings False

    Form("uchet").Requery

    DoCmd.SetWarnings True

    Кнопка “Udalit2” (с помощью мастера): категория – обработка записей; действие – удалить запись.


    3 “Uchet

    Автоформа: ленточная.

    Источник записей: таблица “ Uchet ”.

    Поле “Schet” преобразовать в поле со списком:

    1. число столбцов – 2;

    2. ширина столбцов – 0см;3см;

    3. источник строк – Scheta

    4. присоединенный столбец – 1;

    Поле “Kategoriya” преобразовать в поле со списком:

    1. число столбцов – 3;

    2. ширина столбцов – 0см;3см;0см;

    3. источник строк – SELECT Kategoriya.* FROM Kategoriya WHERE (((Kategoriya.Vid)=Forms!Uchet!Vid1)) ORDER BY Kategoriya.Kategoriya; (аналогично форме “Kategoriya”, + поле Kategoriya, где сортировка по возрастнию)

    4. присоединенный столбец – 1;

    Создать поле со списком “Vid1” (в заголовке формы):

    • фиксированный набор значений;

    • число столбцов – 2;

    • ширина столбцов – 2,542см;0см;

    • источник строк – "Доход";1;"Расход";-1 ;

    • присоединенный столбец – 2;

    • ограничиться списком – да;

    • автоподстановка –да;

    • значение по умолчанию – -1

    • после обновления – процедура обработки событий:

    Me.Requery

    Me.Kategoriya.Requery
    Поле “Kategoriya” преобразовать в поле со списком:

    1. число столбцов – 3;

    2. ширина столбцов – 0см;3см;0см;

    3. источник строк – SELECTKategoriya.* FROMKategoriyaWHERE (((Kategoriya.Vid)=Forms!Uchet!Vid1)) ORDERBYKategoriya.Kategoriya; (аналогично форме “Kategoriya”, + поле Kategoriya, где сортировка по возрастнию, вывод на экран – нет)

    4. присоединенный столбец – 1;


    Для вывода суммы дохода/расхода за день, неделю, месяц, год создать поля соответственно “sum_today”, “sum_week”, “sum_month”, “sum_year” + запросы:

      1. “today”:

    таблицы: “Kategoriya”, “Uchet”

    поле Sum1: Summa из табл. “Uchet”, групповая операция – Sum;

    поле Data из табл. “Uchet”, групповая операция – Условие, условие отбора – Date(), вывод на экран – нет;

    поле Vid из табл. “Kategoriya”, групповая операция – Условие, условие отбора – [Forms]![Uchet]![Vid1], вывод на экран – нет.

      1. “Week”:

    таблицы: “Kategoriya”, “Uchet”

    поле Sum1: Summa из табл. “Uchet”, групповая операция – Sum;

    поле Data из табл. “Uchet”, групповая операция – Условие, условие отбора – Between (Date()-Weekday(Date())+2) And (Date()-Weekday(Date())+8) вывод на экран – нет;

    поле Vid из табл. “Kategoriya”, групповая операция – Условие, условие отбора – [Forms]![Uchet]![Vid1], вывод на экран – нет.

      1. “mesyac”:

    таблицы: “Kategoriya”, “Uchet”

    поле Sum1: Summa из табл. “Uchet”, групповая операция – Sum;

    поле Month([Data]) из табл. “Uchet”, групповая операция – Условие, условие отбора – Month(Date()) вывод на экран – нет;

    поле Vid из табл. “Kategoriya”, групповая операция – Условие, условие отбора – [Forms]![Uchet]![Vid1], вывод на экран – нет.

    поле Year([Data]) групповая операция – Условие, условие отбора – Year(Date()), вывод на экран – нет.

      1. “God”:

    таблицы: “Kategoriya”, “Uchet”

    поле Sum1: Summa из табл. “Uchet”, групповая операция – Sum;

    поле Vid из табл. “Kategoriya”, групповая операция – Условие, условие отбора – [Forms]![Uchet]![Vid1], вывод на экран – нет.

    поле Year([Data]) групповая операция – Условие, условие отбора – Year(Date()), вывод на экран – нет.


    Для полей формы “Uchet”

    “sum_today”

    “sum_week”

    “sum_month”

    “sum_year”

    данные =DLookUp("sum1";"today")

    =DLookUp("sum1";"Week")

    =DLookUp("sum1";"Mesyac")

    =DLookUp("sum1";"God")


    Фильтр

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

    1. Поля:

    “Dat1”:

    • формат поля – краткий формат даты;

    • значение по умолчанию Date()-7;

    • после обновления – процедура обработки событий:

    Me.Requery

    “dat2”:

    • формат поля – краткий формат даты;

    • значение по умолчанию Date();

    • после обновления – процедура обработки событий:

    Me.Requery

    1. Поля со списком:

    “schet1”:

    • источник строк – SELECT Scheta.Schet FROM Scheta;

    • нажатие кнопки – процедура обработки событий:

    Me.Requery

    “Kat1”:

    • источник строк – SELECT Kategoriya.Kategoriya FROM Kategoriya WHERE (((Kategoriya.Vid)=Forms!Uchet!Vid1)) ORDER BY Kategoriya.Kategoriya;;

    • нажатие кнопки – процедура обработки событий:

    Me.Requery

    “Prim1”:

    • нсточник строк – SELECT Uchet.Primechanie FROM Uchet GROUP BY Uchet.Primechanie;

    • нажатие кнопки – процедура обработки событий:

    Me.Requery

    1. Флажки:

    “k1”:

    • значение по умолчанию – истина;

    • нажатие кнопки – процедура обработки событий:

    Me.Requery

    “k2”:

    • значение по умолчанию – ложь;

    • после обновления – процедура обработки событий:

    If k2 = True Then

    Me.schet1.Requery

    Else

    Me.schet1.SetFocus

    Me.schet1 = ""

    End If

    • нажатие кнопки – процедура обработки событий:

    Me.Requery
    “k3”:

    • значение по умолчанию – ложь;

    • после обновления – процедура обработки событий:

    If K3 = True Then

    Me.Kat1.Requery

    Else

    Me.Kat1.SetFocus

    Me.Kat1 = ""

    End If

    • нажатие кнопки – процедура обработки событий:

    Me.Requery
    “k4”:

    • значение по умолчанию – ложь;

    • после обновления – процедура обработки событий:

    If k4 = True Then

    Me.Prim1.Requery

    Else

    Me.Prim1.SetFocus

    Me.Prim1 = ""

    End If

    • нажатие кнопки – процедура обработки событий:

    Me.Requery


    1. Запрос:“Filtr1”


    В режиме SQL:

    SELECT Uchet.*

    FROM Scheta INNER JOIN (Kategoriya INNER JOIN Uchet ON Kategoriya.Kod = Uchet.Kategoriya) ON Scheta.KodScheta = Uchet.Schet

    WHERE (((Uchet.Data) Between (IIf([Forms]![Uchet]![k1],[Forms]![Uchet]![Dat1],Date()-10000)) And (IIf([Forms]![Uchet]![k1],[Forms]![Uchet]![Dat2],Date()+10000))) AND ((Scheta.Schet) Like IIf([Forms]![Uchet]![k2],[Forms]![Uchet]![schet1],"*")) AND ((Uchet.Primechanie) Like IIf([Forms]![Uchet]![k4],"*" & [Forms]![Uchet]![Prim1] & "*","*")) AND ((Kategoriya.Vid)=[Forms]![Uchet]![Vid1]) AND ((Kategoriya.Kategoriya) Like IIf([Forms]![Uchet]![k3],[Forms]![Uchet]![Kat1],"*"))) OR (((Uchet.Data) Between (IIf([Forms]![Uchet]![k1],[Forms]![Uchet]![Dat1],Date()-10000)) And (IIf([Forms]![Uchet]![k1],[Forms]![Uchet]![Dat2],Date()+10000))) AND ((Scheta.Schet) Like IIf([Forms]![Uchet]![k2],[Forms]![Uchet]![schet1],"*")) AND ((Kategoriya.Vid)=[Forms]![Uchet]![Vid1]) AND ((Kategoriya.Kategoriya) Like IIf([Forms]![Uchet]![k3],[Forms]![Uchet]![Kat1],"*")) AND ((IsNull([Uchet].[Primechanie]))<>False))

    ORDER BY Uchet.Data DESC , Scheta.Schet;
    Добавление нового счета и категории

    Создать формы “Scheta2”,“Kategoriya2” из форм “Scheta”,“Kategoriya” (сохранить как), перетащить их в примечание формы “Uchet”.
    “Scheta2”:

    • режим по умолчанию – ленточные формы;

    • после обновления – процедура обработки событий:

    Me.Parent.Schet.Requery

    • закрытие – процедура обработки событий:

    On Error Resume Next

    DoCmd.SetWarnings False

    Form("uchet").Requery

    DoCmd.SetWarnings True

    “Kategoriya2”:

    • режим по умолчанию – ленточные формы;

    • текущая запись – процедура обработки событий:

    Me.Vid.DefaultValue = Me.Parent.Vid1

    • после обновления – процедура обработки событий:

    Me.Parent. Kategoriya.Requery

    • закрытие – процедура обработки событий:

    On Error Resume Next

    DoCmd.SetWarnings False

    Form("uchet").Requery

    DoCmd.SetWarnings True
    Создать кнопки:

    “shet_plus”:

    • нажатие кнопки – процедура обработки событий:

    On Error GoTo Err_shet_plus_Click

    Me.Scheta2.Visible = True

    Me.[Scheta2].Form.AllowEditing = True

    Exit_shet_plus_Click:

    Exit Sub

    Err_shet_plus_Click:

    MsgBox Err.Description

    Resume Exit_shet_plus_Click

    • всплывающая подсказка – добавить счет.



    “kategoriya_plus”:

    • нажатие кнопки – процедура обработки событий:

    On Error GoTo Err_kategoriya_plus_Click

    Me. Kategoriya2.Visible = True

    Me.[Kategoriya2].Form.AllowEditing = True

    Exit_kategoriya_plus_Click:

    Exit Sub

    Err_kategoriya_plus_Click:

    MsgBox Err.Description

    Resume Exit_kategoriya_plus_Click

    • всплывающая подсказка – добавить категорию.



    Форма: текущая запись:

    Me.sum_today.Requery

    Me.Sum_Week.Requery

    Me.Sum_month.Requery

    Me.sum_year.Requery

    Me.Kategoriya2.Visible = False

    Me.Scheta2.Visible = False
    Просмотр отчетов:

    Создать кнопки:

    1. “PoKategorii”: категории – работа с отчетом; действия – просмотр отчета СуммаПоКатегории; всплывающая подсказка – Просмотр отчета по категориям

    2. “PoSchetu”: категории – работа с отчетом; действия – просмотр отчета СуммаПоСчету; всплывающая подсказка – Просмотр отчета по счетам.



    Отчеты

    СуммаПоКатегории

    Создать простой запрос СуммаПоКатегории из таблиц “Kategoriya”, “Uchet”.

    Поле:

    Vid

    Kategoriya

    Data

    Сумма: ([Summa])

    Year([data])

    Имя таблицы:

    Kategoriya

    Kategoriya

    Uchet







    Групповая операция:

    Группировка

    Группировка

    Группировка

    Группировка

    Условие





    Создать перекрестный запрос “СуммаПоКатегории_перекрестный”. В запросе вывести запрос СуммаПоКатегории; в качестве заголовков строк – Kategoriya, Vid ; в качестве заголовков столбцов – Data; интервал – месяц; провести вычисления Сумма(Сумма); вычислить итоговое значение – да. Поле Kategoriya сортировка по возрастанию; поле Итоговое значение “Сумма переименовать” в “Всего за год”.

    Создать автоотчет ленточный, источник записей – запрос “СуммаПоКатегории_перекрестный”, сохранить как “СуммаПоКатегории”.

    Поле Vid преобразовать в поле со списком, тип источника строк – список значений; источник строк – -1;"РАСХОД: всего за месяц";1;" ДОХОД: всего за месяц"; число столбцов – 2; ширна – 0см;2,501см.


    СуммаПоСчету

    Создать простой запрос СуммаПоСчету из таблиц “Scheta”, “Kategoriya”, “Uchet”.

    Поле:

    Schet

    Data

    Сумма: ([Summa]*[vid])

    Year([data])

    Имя поля:

    Scheta

    Uchet







    Сортировка




    по убыванию








    Создать перекрестный запрос “СуммаПоСчету_перекрестный”. В запросе вывести запросСуммаПоСчету; в качестве заголовков строк – Schet; в качестве заголовков столбцов – Data; интервал – месяц; провести вычисления Сумма(Сумма); вычислить итоговое значение – нет.

    Создать автоотчет ленточный, источник записей запрос “СуммаПоСчету_перекрестный”; сохранить как “СуммаПоСчету”.



    Меню

    Структура меню


    Таблицы

    Отчеты

    Закрыть

    Главная

    Всего на счете




    Счета

    Доход/расход по категориям




    Категории








    Новые меню:

    Таблицы, команды – добавить все таблицы;

    Отчеты, команды – добавить все отчеты;

    Закрыть, команды – выход.

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

    В данной базе предусмотрено следующее:

    • Тип категории выбирается из списка:

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

    • При неправильном вводе даты об ошибке сообщается:




    • Не может быть введена сумма меньше нуля:





    • Ввести что-либо в поля группы “Сумма за” нельзя.






    • Поскольку примечание, название счета в таблице Счета и категории в таблице Категории может быть любым, ограничения ввести нельзя.


    Руководство пользователя
    Откройте файл “Домашняя бухгалтерия.rar” – “бухгалтерия.mdb”.

    Перед Вами откроется главная форма.

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

    1. Для того, чтобы добавить новый счет, нажмите возле поля Счет. Появится форма, куда можно ввести данные. Либо в меню Таблицы – Счета.

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

    Для того, чтобы посмотреть остатки на счетах, нажмите , либо в меню Отчеты – Всего на счете.
    Для облегчения ввода расходов и доходов, в “Домашней бухгалтерии” есть списки категорий.

    1. Для того, чтобы добавить новый счет, нажмите возле поля Категория. Появится форма, куда можно ввести данные. Либо в меню Таблицы – Категории.

    Для того, чтобы удалить счет, в таблице нажмите

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

    либо в меню Отчеты – доход/расход по категориям

    1. Все операции по доходам/расходам совершаются в главной таблице (меню Таблицы – Главная).

    В таблице есть поля:

    • Тип категории (выбрать доход или расход);

    • Счет (с каким счетом совершались операции);

    • Дата (дата совершения операции);

    • Категория (выбор категории);

    • Примечание (при необходимости можно ввести).




    1. В группе полей “Сумма за” выводится информация о сумме дохода или расхода за период.

    2. В группе полей “Фильтр по” можно просмотреть все операции, отобранные по необходимым параметрам. Если флажок стоит – фильтр включен, в списке выбрать необходимое, либо ввести (дату).

    3. Для того чтобы выйти, нажать Закрыть.

    Оценка результатов
    В данной базе данных есть несколько недочетов, таких как:

    1. В главной форме добавить новый счет и категорию можно лишь, если новая запись еще не сделана (например, если ввести название счета, то новая категория не сможет быть добавлена и т.п.). Это можно исправить. Как это сделать описано на сайте http://www.accesssoft.ru

    2. Для ввода даты удобнее использовать календарь, чем вводить вручную. Это можно исправить. Для этого необходим, например, Microsoft Office 2007.


    Руководство по установке и требованиям
    Данная база данных называется Домашняя бухгалтерия.mdb;

    Минимальный размер – 200 Кб;

    Минимальные системные требования:

    MS Office 2003 и более поздние версии;

    MS Windows XP;

    CPU Pentium 100 MHz (Intel или AMD).


    написать администратору сайта