Автор работы: Пользователь скрыл имя, 12 Октября 2012 в 14:04, реферат
Разработать информационную подсистему контроля бюджета семьи.
Информация, обрабатываемая в системе, должна храниться в текстовом или типизированном файлах.
Задание на разработку программного комплекса. 2
Функциональная схема приложения 3
Спецификация программного комплекса. 5
Название задачи. 5
Описание задачи. 5
Управление режимами работы программы. 5
Входные данные. 6
Выходные данные 6
Структурная диаграмма программного комплекса. 7
Блок схема главного модуля 8
Данные для тестирования программного модуля и программного комплекса в целом. 9
Инструкция пользователя. 10
Список используемых источников. 17
Приложение 1 18
Содержание стр
Задание на разработку программного комплекса. 2
Функциональная схема приложения 3
Спецификация программного комплекса. 5
Название задачи. 5
Описание задачи. 5
Управление режимами работы программы. 5
Входные данные. 6
Выходные данные 6
Структурная диаграмма программного комплекса. 7
Блок схема главного модуля 8
Данные для тестирования программного модуля и программного комплекса в целом. 9
Инструкция пользователя. 10
Список используемых источников. 17
Приложение 1 18
Разработать информационную подсистему контроля бюджета семьи.
Информация, обрабатываемая в системе, должна храниться в текстовом или типизированном файлах.
Данные, которые должны быть отражены в подсистеме: месяц, доход, коммунальные расходы, продуктовые расходы, расходы на промтовары, расходы на удовлетворение духовных потребностей, другие расходы.
Сведения о доходах и расходах дополняются по мере их появления.
В подсистеме должны решаться следующие задачи:
Запуск программы
Загрузка данных и структуры таблицы из файла
Выбор дальнейших действий
Ввод дополнительных данных в таблицу
Вывод диаграммы
Круговая диаграмма
Столбиковая диаграмма или график
Заполнение временной таблицы
Диаграмма на экране
Сохранение данных в Файл
Задача на разработку программы учета семейного бюджета.
Программа называется «Бюджет семьи».
Для разработки использована среда программирования Delphi 2007 и набор дополнительных компонентов Developer Express.
Программа написана для операционной системы Windows XP и её работа гарантируется на любом компьютере поддерживающего работу с данной ОС.
Так как в рамках данной программы было необходимо было строить диаграммы соотношения велечин, то в программе использованы следующие формулы.
∑X т.е. сумма всех элементов. Заданного множества. Например сумма доходов за год
∑Y/∑X отношения сумм всех элементов двух различных множеств. Например отношение суммы коммунальных расходов к доходам за месяц.
Для пользователя создан дружественный графический интерфейс, представленные в виде экранов с данными.
Экран 1. Таблица отображающая полные данные. Пользователь имеет возможность отфильтровать, отсортировать или сгруппировать данные по любому столбцу. Тут же можно внести данные напрямую в таблицу.
Экран 2. Круговая диаграмма показывающая какое влияние на итоговую сумму денег в кошельке пользователя повлиял тот или иной год. При нажатие на конкретный год, диаграмма меняется и показывает сумму доходов и каждого типа расходов, и их влияние на итоговую сумму за год.
Экран 3. График изменения доли коммунальных платежей за год по месяцам относительно доходов за месяц.
(Для отображения диаграммы
надо выбрать год вверху
Экран 4. Столбиковая диаграмма показывающая долю каждого типа расходов в доходах за месяц.
В нижней части всех четырех экранов находится кнопка для сохранения внесенных в таблицу данных в файл, т.к. реализована возможность внести данные в таблицу, посмотреть диаграммы и тока потом решить сохранять или нет внесенные данные.
В верхней части экрана находится меню, позволяющее выбирать экран для отображения.
Входными данными являются год за который вносится запись (тип поля integer), месяц(тип поля String. Вносится из списка) сумма дохода/расхода(тип поля Float), и тип дохода/расхода (тип поля String, вносится из списка).
Выходными данными являются таблица со значениями, и диаграммы.
Во время ввода данных
отслеживается соответствие типа вводимых
данных типу поля, однообразность написания
месяцев и типов дохода/
Программа состоит из одного единственного модуля.
UMAin.
В модуле находится cxGrid, отвечающий за ввод данных в таблицу и вывод данных в виде таблицы и диаграмм.
В этом же модуле находится кнопка сохранения таблицы в файл и меню переключения между таблицей и диаграммами.
В модуле находятся следующие процедуры. Иерархия соответствует уровням списка.
mmGrafClick
Начало
vtData.LoadFromFile
onClick
bMainClick
mmCDiagClick
mmSDiagClick
mmExitClick
mmTableClick
Конец
Так как несмотря на то, что данные хранятся в виде типизированного xml файла, приложение по своей сути работает с таблицей и является в некотором роде базой данных, то тестирование сводится к введению в поля таблицы значений для расчета.
Ниже представлена краткая
инструкция по работе с программой
Бюджет семьи. При первом запуске
программы пользователю доступны для
отображения тестовые/
Теперь рассмотрим интерфейс программы.
Сразу после запуска перед нами появится следующее окно.
В котором мы видим поле данных в центре, кнопку для сохранения данных в файл с подписью «Внести данные», и в верхней части окна мы видим меню «Файл».
Рассмотрим каждый элемент подробнее.
Начиная с самого простого. Кнопка внесения данных.
Данная кнопка доступна в любой момент работы программы. При нажатии на неё происходит сохранения текущего состояния таблицы в файл Data.xml.
До момента нажатия данной кнопки все изменения в таблице являются временными и существуют только до перезапуска программы.
Далее рассмотрим поле данных
В верхней части находится место куда мы можем перетащить столбец для группировки данных. Например Сгруппировать данные по годам.
В верхнюю часть можно поместить как 1 так и несколько столбцов, путем перетаскивая мышью прямо из таблицы.
При группировке в заголовке группы отображается итоговая сумма по столбцу «Сумма» для данной группы. А внизу поля появляется надпись «в кошельке осталось» показывающая итоговую сумму все доходы-все расходы
Кроме того, по каждому полю можно настроить фильтрацию каких-либо определенных значений. Для этого нужно нажать на заголовке поля и выбрать интересующий нас значения.
При выборе слова Custom нам будет предложено задать более сложный фильтр
В данном окне мы наблюдаем 2 списка условий в левой части, условия могут быть различны, равно, не равно, больше, меньше, больше или равно, меньше или равно, и т.д. условия имеют названия на английском языке. Справа в два поля мы можем ввести значения для данного условия. Условия можно использовать оба сразу или только одно из них, при использовании обоих условий нужно выбрать их соединитель and(и) или or (или), т.е. должны они выполняться оба или хотя бы одно из них.
В нижней части поля данных мы видим ряд кнопок
Слева направо эти кнопки служат
Переход к первой записи, переход к верхней записи в окне(если все записи не помещаются на экран), переход к предыдущей записи, переход к следующей записи, переход к последней записи в окне, переход к последней записи таблицы, добавить запись, добавить запись в конец(разница в месте отображения записи. Сразу после текущей или в конце таблицы), удалить запись, редактировать запись, применить изменения, отменить изменения(эти две кнопки нужны при редактировании или добавлении записи), конструктор фильтров.
Данное окно предлагает нам инструменты для создания фильтров почти любой сложности. Интерфейс на английском языке.
Рассмотрим компоненты меню «Файл»
В данном меню 4 пункта.
3 отвечают за отображения диаграмм. Экраны диаграмм абсолютно аналогичны друг другу.
1)Круговая диаграмма. Вызов диаграммы показывающей долю годовых сумм в итоговой. При нажатии на любой год диаграмма преобразуется в подробную по доходам и расходам в году
Параметр vtfYear показывает какой год сейчас выбран, при нажатии на него открывается список годов за которые есть данные.
2)График. Показывает график изменения %доли комунальных расходов в доходе семьи. Для отображения необходимо выбрать год
3)Столбиковая диаграмма
показывающая долю каждого
4)Выход. Выход из программы
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, dxSkinsCore, dxSkinsDefaultPainters, dxSkinscxPCPainter,
cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB,
cxDBData, StdCtrls, ExtCtrls, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
cxGrid, MemDS, VirtualTable, cxDropDownEdit, cxCurrencyEdit, cxPropertiesStore,
cxGridChartView, cxGridDBChartView, Menus, DBTables, cxLookAndFeels,
cxLookAndFeelPainters, dxSkinBlack, dxSkinBlue, dxSkinCaramel, dxSkinCoffee,
dxSkinDarkRoom, dxSkinDarkSide, dxSkinFoggy, dxSkinGlassOceans,
dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky,
dxSkinMcSkin, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue,
dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver,
dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver,
dxSkinPumpkin, dxSkinSeven, dxSkinSharp, dxSkinSilver, dxSkinSpringTime,
dxSkinStardust, dxSkinSummer2008, dxSkinValentine, dxSkinXmas2008Blue;
type
TfMain = class(TForm)
cxGrid1DBTableView1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
bMain: TButton;
DataSource1: TDataSource;
cxGrid1DBTableView1vtfMonth: TcxGridDBColumn;
cxGrid1DBTableView1vtfYear: TcxGridDBColumn;
cxGrid1DBTableView1vtfSum: TcxGridDBColumn;
cxGrid1DBTableView1Column1: TcxGridDBColumn;
MainMenu1: TMainMenu;
mmFail: TMenuItem;
mmCDiag: TMenuItem;
cxGrid1Level2: TcxGridLevel;
cxGrid1DBChartView1: TcxGridDBChartView;
cxGrid1DBChartView1Series1: TcxGridDBChartSeries;
cxGrid1DBChartView1DataGroup1: TcxGridDBChartDataGroup;
cxGrid1DBChartView1DataGroup2: TcxGridDBChartDataGroup;
mmTable: TMenuItem;
cxGrid1Level3: TcxGridLevel;
cxGrid1DBChartView2: TcxGridDBChartView;
cxGrid1DBChartView2Series1: TcxGridDBChartSeries;
DataSource2: TDataSource;
mmGraf: TMenuItem;
cxGrid1DBChartView2DataGroup1: TcxGridDBChartDataGroup;
cxGrid1DBChartView2DataGroup2: TcxGridDBChartDataGroup;
cxGrid1Level4: TcxGridLevel;
cxGrid1DBChartView3: TcxGridDBChartView;
cxGrid1DBChartView3Series1: TcxGridDBChartSeries;
cxGrid1DBChartView3DataGroup1: TcxGridDBChartDataGroup;
mmExit: TMenuItem;