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

Автор работы: Пользователь скрыл имя, 12 Октября 2012 в 14:04, реферат

Описание работы

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

Содержание работы

Задание на разработку программного комплекса. 2
Функциональная схема приложения 3
Спецификация программного комплекса. 5
Название задачи. 5
Описание задачи. 5
Управление режимами работы программы. 5
Входные данные. 6
Выходные данные 6
Структурная диаграмма программного комплекса. 7
Блок схема главного модуля 8
Данные для тестирования программного модуля и программного комплекса в целом. 9
Инструкция пользователя. 10
Список используемых источников. 17
Приложение 1 18

Файлы: 1 файл

контрольная.docx

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

 

Содержание                стр

Задание на разработку программного комплекса. 2

Функциональная  схема приложения 3

Спецификация  программного комплекса. 5

Название  задачи. 5

Описание  задачи. 5

Управление  режимами работы программы. 5

Входные данные. 6

Выходные  данные 6

Структурная диаграмма программного комплекса. 7

Блок  схема главного модуля 8

Данные  для тестирования программного модуля и программного комплекса в целом. 9

Инструкция  пользователя. 10

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

Приложение 1 18

 

 

Задание на разработку программного комплекса.

Разработать информационную подсистему контроля бюджета семьи.

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

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

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

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

  1. Создание файла.
  2. Дополнение файла.
  3. Корректировка данных.
  4. Формирование ответов на запросы пользователя:
    1. За указанный месяц определить суммарные доходы и расходы;
    2. За текущий год вывести на экран в виде таблицы данные об ежемесячных суммарных доходах и расходах;
    3. За текущий год вывести на экран названия месяцев в порядке убывания разности между доходами и расходами;
    4. За текущий год по месяцам построить графики изменения расходов на коммунальные услуги в процентах к доходам;
    5. За указанный месяц построить круговую диаграмму, отражающую долю каждого вида расходов в суммарных расходах;
    6. Построить столбиковую диаграмму, отражающую за год долю каждого вида расходов в суммарных расходах. Столбики диаграммы расположить в порядке возрастания доли.

 

Функциональная схема  приложения

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


Загрузка данных и структуры таблицы из файла

Выбор дальнейших действий

Ввод дополнительных данных в таблицу

Вывод диаграммы

Круговая диаграмма

Столбиковая диаграмма или  график

 

Заполнение временной  таблицы

 

Диаграмма на экране

 

Сохранение данных в Файл


 

 

 

 

 

 

 

 

 


 


 

 

 

 

 

 

 

 

Спецификация программного комплекса.

Название задачи.

Задача на разработку программы  учета семейного бюджета.

Программа называется «Бюджет семьи».

Для разработки использована среда программирования Delphi 2007 и набор дополнительных компонентов Developer Express.

Программа написана для операционной системы Windows XP и её работа гарантируется на любом компьютере поддерживающего работу с данной ОС.

Описание задачи.

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

∑X т.е. сумма всех элементов. Заданного множества. Например сумма доходов за год

∑Y/∑X отношения сумм всех элементов двух различных множеств. Например отношение суммы коммунальных расходов к доходам за месяц.

Управление режимами работы программы.

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

Экран 1. Таблица  отображающая полные данные. Пользователь имеет возможность отфильтровать, отсортировать или сгруппировать данные по любому столбцу. Тут же можно внести данные  напрямую в таблицу.

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

Экран 3. График изменения  доли коммунальных платежей за год  по месяцам относительно доходов  за месяц.

(Для отображения диаграммы  надо выбрать год вверху экрана  диаграммы)

Экран 4. Столбиковая диаграмма показывающая долю каждого типа расходов в доходах за месяц.

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

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

Входные данные.

Входными данными являются год за который вносится запись (тип  поля integer), месяц(тип поля String. Вносится из списка) сумма дохода/расхода(тип поля Float), и тип дохода/расхода (тип поля String, вносится из списка).

Выходные данные

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

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

 

Структурная диаграмма программного комплекса.

Программа состоит из одного единственного модуля.

UMAin.

В модуле находится cxGrid, отвечающий за ввод данных в таблицу и вывод данных в виде таблицы и диаграмм.

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

В модуле находятся следующие  процедуры. Иерархия соответствует  уровням списка.

  1. procedure bMainClick(Sender: TObject);
  2. procedure FormCreate(Sender: TObject);
  3. procedure mmCDiagClick(Sender: TObject);
  4. procedure mmTableClick(Sender: TObject);
  5. procedure mmGrafClick(Sender: TObject);
  6. procedure mmSDiagClick(Sender: TObject);
    1. procedure Summing;
      1. procedure Adding;
  7. procedure mmExitClick(Sender: TObject);

 

Блок схема главного модуля

mmGrafClick


Начало

vtData.LoadFromFile

onClick

bMainClick

mmCDiagClick

mmSDiagClick

mmExitClick

mmTableClick

Конец


 

Данные для тестирования программного модуля и программного комплекса в целом.

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

 

Инструкция пользователя.

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

Теперь рассмотрим интерфейс  программы.

Сразу после запуска перед  нами появится следующее окно.

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

Рассмотрим каждый элемент  подробнее.

Начиная с самого простого. Кнопка внесения данных.

Данная кнопка доступна в  любой момент работы программы. При  нажатии на неё происходит сохранения текущего состояния таблицы в  файл Data.xml.

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

Далее рассмотрим поле данных

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

В верхнюю часть можно  поместить как 1 так и несколько столбцов, путем перетаскивая мышью прямо из таблицы.

При группировке в заголовке  группы отображается итоговая сумма  по столбцу «Сумма» для данной группы. А внизу поля появляется надпись «в кошельке осталось» показывающая итоговую сумму все доходы-все расходы

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

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

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

 

В нижней части поля данных мы видим ряд кнопок

Слева направо эти кнопки служат

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

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

Рассмотрим компоненты меню «Файл»

В данном меню 4 пункта.

3 отвечают за отображения  диаграмм. Экраны диаграмм абсолютно  аналогичны друг другу.

1)Круговая диаграмма.  Вызов диаграммы показывающей  долю годовых сумм в итоговой. При нажатии на любой год диаграмма преобразуется в подробную по доходам и расходам в году

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

2)График. Показывает график  изменения %доли  комунальных расходов в доходе семьи. Для отображения необходимо выбрать год

3)Столбиковая диаграмма  показывающая долю каждого типа  расходов в доходах за месяц. Сначала отображается по годам, т.е. общая доля расходов в доходе семь. При нажатии на год, появляется диаграмма  показывающая конкретные виды расходов и их доли.

4)Выход. Выход из программы

 

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

  1. www.cyberforum.ru
  2. www.delphikingdom.ru
  3. www.forum.sources.ru
  4. www.rsdn.ru
  5. www.sql.ru

 

Приложение 1

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;

Информация о работе Высокоуровневые методы программирования