Автоматизация учета доходов банка

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Введение

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

— рассчитывать удельный вес каждой составляющей доходов;

— выводить результаты в удобном пользователю виде;

— сохранять результаты в файл и восстанавливать их из файла;

— сравнивать результаты расчетов между собой.

Приложение разработано на платформе. NET и языке C#.

1. Анализ доходов коммерческого банка

1.1 Сущность и значение анализа доходов коммерческого банка

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

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

— экономически обоснованные группировки доходных и расходных аналитических счетов баланса банка;

— оценка динамики показателей финансовых результатов деятельности банка по квартальным и годовым данным;

— сопоставление полученных показателей с рекомендуемым уровнем.

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

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

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

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

коммерческий доход банк программа

1.2 Методика, разработанная Пановой Г. С.

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

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

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

Процентные доходы составляют:

— начисленные и уплаченные проценты в рублях:

— начисленные и уплаченные проценты в валюте.

К непроцентным расходам относятся:

— операционные доходы:

— уплаченные комиссионные по услугам и корреспондентским отношениям:

— доходы по операциям с ценными бумагами;

— доходы по операциям на валютном рынке;

— доходы на функционирование банка (доходы на содержание аппарата управления; хозяйственные доходы);

— прочие доходы (штрафы, пени, неустойки уплаченные; проценты и комиссионные прошлых лет и т. д.).

Наиболее крупными статьями операционных доходов банка традиционно являются доходы:

— по выплате процентов по текущим и срочным вкладам;

— связанных с выплатой комиссионных другим банкам и прочим финансово-кредитным учреждениям за предоставленные услуги:

— по содержанию и эксплуатации зданий и оборудования;

— на заработную плату персонала;

— на создание специальных резервов.

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

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

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

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

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

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

Сокращению доходов банка будут способствовать:

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

— оптимальное сокращение непроцентных доходов.

1. 3 Банковские активы

Активы банка — объекты собственности, имеющие денежную оценку, и принадлежащие банку. Основные источники средств для образования активов: собственный капитал банка и средства вкладчиков, межбанковские кредиты, эмиссия облигаций банка. Увеличение активов банка происходит за счёт проведения активных операций: кредитование, инвестиционные операции, прочие операции банка по размещению собственных и привлечённых средств. Важным качеством активов банка является принесение прибыли.

В активы банка входят: кассовая наличность, ссуды, инвестиции, ценные бумаги, недвижимость и другие. Активы банка отражаются в активе бухгалтерского баланса банка.

2. Автоматизация анализа доходов коммерческого банка

2.1 Обоснование разработки

С задачей анализа доходов сталкивается любой коммерческий банк, так как это необходимо для оценки прибыли предприятия. Данная задача довольно трудоемкая, поэтому было принято решение автоматизировать её решение, для чего, и было разработано windows-приложение «Анализ доходов коммерческого банка». Областью применения данного программного продукта является банковская сфера.

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

2.2 Общие сведения

Программа называется «Анализ доходов коммерческого банка», версия 1.0. Программное обеспечение, на котором разработано приложение к курсовому проекту — Microsoft Visual Studio Team System 2008.

Для успешной эксплуатации программного продукта необходим персональный компьютер со следующими характеристиками: процессор Intel Pentium с тактовой частотой 800 МГц и выше, оперативная память — не менее 64 Мбайт, свободное дисковое пространство — не менее 500 Мбайт, устройство для чтения компакт-дисков, монитор типа Super VGA (число цветов — 256). Программное обеспечение: операционная система WINDOWS 2000/XP и выше. NET Framework 2.0.

2. 3 Функциональное назначение

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

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

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

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

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

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

Таблица 2.1 — Входные данные

Процентные доходы

Проценты в рублях

Проценты в иностранной валюте

Непроцентные доходы

Комиссионные по услугам

Доходы по операциям с ценными бумагами

Доходы по операциям на валютном рынке

Затраты на функционирование банка

Создание специальных резервов

Оплата различных услуг

Эксплуатация зданий и сооружений

Заработная плата

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

Таблица 2.2 — Пример заполнения входных данных (в рублях)

Процентные доходы

Проценты в рублях

2356

Проценты в иностранной валюте

2457

Непроцентные доходы

Комиссионные по услугам

421

Доходы по операциям с ценными бумагами

354

Доходы по операциям на валютном рынке

426

Затраты на функционирование банка

423

Создание специальных резервов

651

Оплата различных услуг

234

Эксплуатация зданий и сооружений

457

Заработная плата

451

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

Выходные данные представлены в виде таблицы и круговой диаграммы, расположенные на форме (рисунок 2. 1).

Рисунок 2.1 — Вид основной формы

2.6 Логическое описание

коммерческий доход банк программа

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

Расчет удельного веса какой-то составляющей доходов осуществляется по формуле (2. 1).

(2. 1)

где Wi — удельный вес;

S — Всех доходов (сумма);

Ni — значение составляющей.

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

Таблица 2.3 — Основные классы приложения

Название

Назначение

ContainerForm

Класс формы-контейнера

MainForm

Класс основной «рабочей» формы

InputPecForm

Класс формы ввода данных процентных доходов

InputNoPecForm

Класс формы ввода данных непроцентных доходов

CurForm

Класс формы конвертирования валюты

AboutBox

Класс формы предназначенной для вывода информации о программе

Диаграмма классов представлена на рисунке А.2.

2. 7 Руководство пользователя

Установка приложения

Для установки программы нужно:

— запустить файл «setup. exe»;

— в открывшемся диалоговом окне выбора языка установки выбрать один из имеющихся языков и нажать на кнопку «ОК» (рисунок 2. 2);

Рисунок 2.2 — Диалоговое окно выбора языка установки

— на следующем шаге установки нажать на кнопку «Далее»;

— на следующем шаге установки указать каталог для установки и нажать на кнопку «Далее»

— на следующем шаге установки указать папку в меню пуск для установки (там будут созданы ярлыки) и нажать на кнопку «Далее»

— на следующем шаге указать создавать или нет ярлык на рабочем столе и нажать на кнопку далее;

— на последнем шаге установки нужно нажать на кнопку «Установить».

Запуск приложения

Запустить приложение можно любым привычным для ОС Windows способом, например, можно выполнить следующие действия:

«Пуск — Все программы — Анализ доходов коммерческого банка — Анализ доходов коммерческого банка».

Создание нового документа

Для создания документа нужно выбрать пункт главного меню «Файл — Новый…» (рисунок 2. 5)

Рисунок 2.5 — Создание документа

После выбора пункта главного меню «Файл — Новый…» открывается окно документа (рисунок 2. 6)

Рисунок 2.6 — Окно документа

Сохранение документа

Для сохранения документа нужно нажать на кнопку «Сохранить» (рисунок 2. 7), после чего появится стандартный диалог сохранения файлов, где нужно указать имя файла и директорию для сохранения.

Рисунок 2. 7 — Кнопка для сохранения документа

Открытие документа

Для открытия ранее сохраненного документа нужно выбрать пункт главного меню «Файл — Открыть» (рисунок 2. 8).

Рисунок 2. 8 — Выбор пункта меню для открытия документа

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

Ввод данных

Ввод данных разделен на две части: ввод процентных доходов и ввод не процентных доходов. Для ввода процентных доходов нужно нажать на кнопку «Ввести процентные доходы» на «рабочей» форме, а для ввода непроцентных доходов — «Ввести непроцентные доходы» (рисунок 2. 9)

Рисунок 2. 9 — Кнопки для вызова форм ввода данных

После нажатия на кнопку «Ввести процентные доходы» откроется форма для ввода процентных доходов (рисунок 2. 10), в которой находятся поля ввода числовых значений. После ввода значений нужно нажать на кнопку «OK» (рисунок 2. 10).

Рисунок 2. 10 — Форма ввода процентных доходов

Для конвертирования иностранной валюты в рубли можно воспользоваться встроенным конвертором, для этого нужно нажать на кнопку «Расчет валюты» в этом окне. После этого появится окно конвертора (рисунок 2. 11).

Рисунок 2. 11 — Форма конвертирования валют

В поле ввода «Количество» нужно ввести количество единиц валюты, а в поле ввода «Курс» — курс валюты. Для добавления результатов перевода к временной сумме нужно нажать на кнопку «Добавить», операцию перевода можно провести еще неоднократно, а для применения результата (для того, чтобы результаты перевода ввести в поле ввода «Проценты и иностранной валюты») нужно нажать на кнопку «Применить» в текущем окне.

После нажатия на кнопку «Ввести непроцентные доходы» откроется окно для ввода непроцентных доходов (рисунок 2. 12), в котором нужно ввести численные значения величин доходов и нажать на кнопку «OK».

Рисунок 2. 12 — Форма ввода непроцентных доходов

Для закрытия окно ввода предназначены кнопки с надписью «Отмена».

Печать документа

Для печати документа нужно нажать на кнопку «Печать» (рисунок 2. 13), после чего появится стандартный диалог печати, в котором для начала печати нужно нажать на кнопку «OK» (можно изменить нужные настройки).

Рисунок 2. 13 — Кнопка для печати документа

Размещение дочерних окон

Главное окно программы является контейнером для «рабочих» окно, когда таких окон больше одного их можно упорядочивать тремя стандартными способами:

- каскадом, для этого выбрать пункт меню «Вид — Каскадом»;

— сверху вниз, для этого выбрать пункт меню «Вид — Сверху вниз»;

— слева направо, для этого выбрать пункт меню «Вид — Слева направо».

Сравнение результатов

Для сравнения результатов программа может построить гистограмму. Для этого нужно добавить данные из рабочих окон, для этого предназначена кнопка «Добавить» (рисунок 2. 14).

Рисунок 2. 14 — Кнопка для добавления информации для построения графика

После чего нужно выбрать пункт главного меню «Сервис — Нарисовать график» (рисунок 2. 15).

Рисунок 2. 15 — Выбор пункта меню для построения графика

После этого появится диалоговое окно «Настройки», в котором нужно указать, по какому критерию будет построена гистограмма, и нажать на кнопку «OK» (рисунок 2. 16).

Рисунок 2. 16 — Диалоговое окно «Настройки»

Получение информации о программе

Для получения информации о программе нужно выбрать пункт главного меню «Помощь — О программе» (рисунок 2. 17).

Рисунок 2. 17 — Выбор пункта меню для вызова окна «О программе»

2.8 Контрольный пример

Для проверки расчетов представлен контрольный пример. Входные данные для контрольного примера представлены в таблице 2.3.

Таблица 2.3 — Пример заполнения входных данных (в рублях)

Процентные доходы

Проценты в рублях

16

Проценты в иностранной валюте

14

Непроцентные доходы

Комиссионные по услугам

10

Доходы по операциям с ценными бумагами

12

Доходы по операциям на валютном рынке

18

Затраты на функционирование банка

7

Создание специальных резервов

13

Оплата различных услуг

3

Эксплуатация зданий и сооружений

3

Заработная плата

3

Прочие доходы

1

Числа взяты так, что бы было проще производить расчеты для проверки.

Сумма равна 100 рублей.

Доля каждой составляющей представлена в таблице 2.4.

Таблица 2.4 — Доли составляющих доходов от суммы

Процентные доходы

Проценты в рублях

0,16

Проценты в иностранной валюте

0,14

Непроцентные доходы

Комиссионные по услугам

0,10

Доходы по операциям с ценными бумагами

0,12

Доходов по операциям на валютном рынке

0,18

Затраты на функционирование банка

0,07

Создание специальных резервов

0,13

Оплата различных услуг

0,03

Эксплуатация зданий и сооружений

0,03

Заработная плата

0,03

Прочие доходов

0,01

Процент каждой составляющей представлен в таблице 2.5.

Таблица 2.5 — Процент составляющих доходов от суммы

Процентные доходов

Проценты в рублях

16%

Проценты в иностранной валюте

14%

Непроцентные доходы

Комиссионные по услугам

10%

Доходы по операциям с ценными бумагами

12%

Доходы по операциям на валютном рынке

18%

Затраты на функционирование банка

7%

Создание специальных резервов

13%

Оплата различных услуг

3%

Эксплуатация зданий и сооружений

3%

Заработная плата

3%

Прочие доходы

1%

На рисунке 2. 18 показано окно программы.

Рисунок 2. 18 — Окно с контрольным примером

Заключение

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

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

— рассчитывать удельный вес каждой составляющей доходов;

— выводить результаты в удобном пользователю виде;

— сохранять результаты в файл и восстанавливать их из файла;

— сравнивать результаты расчетов между собой.

Приложение разработано на платформе. NET и языке C#. В итоге проделанной работы все задачи выполнены. Приложение удовлетворяет требованием, поставленным перед разработкой.

Список используемой литературы

1. Левитин, А. В. Алгоритмы. Введение в разработку и анализ./ В. Левитин. — М.: Вильямс, 2006 — 576 с.

2. Голицына, О.Л., Основы алгоритмизации и программирования (2-е издание)./ И. И. Попов, О. Л. Голицына — М.: Инфа-М, 2006 — 432 с.

3. Петгольц Ч. Программирование для Microsoft Windows на C#. В 2-х томах. Том 1. Пер. с англ./ Ч. Петгольц — М.: Издательско-торговый дом «Русская редакция», 2002. — 576 с.

4. Петгольц Ч. Программирование для Microsoft Windows на C#. В 2-х томах. Том 2. Пер. с англ./ Ч. Петгольц — М.: Издательско-торговый дом «Русская редакция», 2002. — 624 с.

5. Левахин Г. З. Разработка приложений на языке C#М.: Вильямс, 2006 — 576 с.

6. Игорева, Е.Л., Основы алгоритмизации и программирования (3-е издание)./ И. И. Попов, О. Л. Игорева — М.: Инфа-М, 2006 — 432 с.

7. Петгольц Ч. Программирование для Microsoft Windows на C#. В 3-х томах. Том 2. Пер. с англ./ Ч. Петгольц — М.: Издательско-торговый дом «Русская редакция», 2002. — 576 с.

8. Петгольц Ч. Программирование для Microsoft Windows на C#. В 3-х томах. Том 3 Пер. с англ./ Ч. Петгольц — М.: Издательско-торговый дом «Русская редакция», 2002. — 624 с.

9. Бережная Е. В. Математические методы моделирования экономических систем. — М.: Финансы и статистика, 2001

10. Семенов М. И., Трубилин И. Т., Лойко В. И., Барановская Т. П. Автоматизированные информационные технологии в экономике. Учебник. — М.: Финансы и статистика, 2003, 416 с.

Приложение А

Блок-схема

Рисунок Б.1 — Диаграмма классов

Приложение Б

Код основных модулей

Код модуля «ContainerForm. cs»

using System;

using System. Collections. Generic;

using System. ComponentModel;

using System. Data;

using System. Drawing;

using System. Text;

using System. Windows. Forms;

using System. Reflection;

using System. IO;

using System. Runtime. Serialization. Formatters. Binary;

namespace Work

{

public partial class ContainerForm: Form

{

public ContainerForm ()

{

InitializeComponent ();

}

private void ExitMenuItem_Click (object sender, EventArgs e)

{

Application. Exit ();

}

private void NewMenuItem_Click (object sender, EventArgs e)

{

MainForm form = new MainForm ();

form. Text = «Новый документ» + count. ToString ();

count++;

form. MdiParent = this;

form. zedGraph. Visible = false;

form. Show ();

}

private void OpenMenuItem_Click (object sender, EventArgs e)

{

if (openFileDialog. ShowDialog () == DialogResult. OK)

{

SaveDataFile data = new SaveDataFile ();

using (FileStream Stream = new FileStream (openFileDialog. FileName,

FileMode. Open, FileAccess. Read))

{

MainForm form = new MainForm ();

BinaryFormatter fmt = new BinaryFormatter ();

data = (SaveDataFile) fmt. Deserialize (Stream);

form. Text = openFileDialog. FileName;

form. pecInRub = data. PecInRub;

form. pecInOther = data. PecInOther;

form. commission = data. Commission;

form. operationsPaper = data. OperationsPaper;

form. operationsCurrency = data. OperationsCurrency;

form. reservation = data. Reservation;

form. functioning = data. Functioning;

form. buildings = data. Buildings;

form. services = data. Services;

form. salary = data. Salary;

form. other = data. Other;

form. summa = data. Summa;

form. zedGraph. Visible = true;

form. DrawGraph ();

form. MdiParent = this;

form. UpDate ();

form. Show ();

}

}

}

private void cascadeToolStripMenuItem_Click (object sender, EventArgs e)

{

LayoutMdi (MdiLayout. Cascade);

}

private void tileHorizontaToolStripMenuItem_Click (object sender, EventArgs e)

{

LayoutMdi (MdiLayout. TileHorizontal);

}

private void tileVerticalToolStripMenuItem_Click (object sender,

EventArgs e)

{

LayoutMdi (MdiLayout. TileVertical);

}

private int count = 1;

private void aboutMenuItem_Click (object sender, EventArgs e)

{

using (Work. AboutBox form = new Work. AboutBox ())

{

form. ShowDialog ();

}

}

}

}

Код модуля «MainForm. cs»

using System;

using System. Collections. Generic;

using System. ComponentModel;

using System. Data;

using System. Drawing;

using System. Text;

using System. Windows. Forms;

using System. Reflection;

using System. IO;

using System. Runtime. Serialization. Formatters. Binary;

using ZedGraph;

namespace Work

{

public partial class MainForm: Form

{

public MainForm ()

{

InitializeComponent ();

DrawGraph ();

UpDate ();

}

private void InputPecDataBtn_Click (object sender, EventArgs e)

{

using (InputPecForm form = new InputPecForm ())

{

if (form. ShowDialog () == DialogResult. OK)

{

PecInRub = form. PecInRub;

PecInOther = form. PecInOther;

Summa = PecInRub + PecInOther + Functioning + Commission + OperationsPaper + OperationsCurrency + Reservation +

Services + Buildings + Salary + Other;

UpDate ();

DrawGraph ();

}

}

}

private void InputNoPecDataBtn_Click (object sender, EventArgs e)

{

using (InputNoPecForm form = new InputNoPecForm ())

{

if (form. ShowDialog () == DialogResult. OK)

{

Commission = form. Commission;

OperationsPaper = form. OperationsPaper;

OperationsCurrency = form. OperationsCurrency;

Reservation = form. Reservation;

Functioning = form. Functioning;

Services = form. Services;

Buildings = form. Buildings;

Salary = form. Salary;

Other = form. Other;

Summa = PecInRub + PecInOther + Functioning + Commission + OperationsPaper + OperationsCurrency + Reservation +

Services + Buildings + Salary + Other;

UpDate ();

DrawGraph ();

}

}

}

public void UpDate ()

{

MainListView. Items. Clear ();

if (Summa == 0)

{

string[] pecInR = {"Проценты в рублях", PecInRub. ToString ()," -«, «1"};

MainListView. Items. Add (new ListViewItem (pecInR, MainListView. Groups[0]));

string[] pecInNoR = {"Проценты в иностранной валюте", PecInOther. ToString ()," -«, «2"};

MainListView. Items. Add (new ListViewItem (pecInNoR, MainListView. Groups[0]));

string[] Com = {"Комиссионные по услугам", Commission. ToString ()," -«, «3"};

MainListView. Items. Add (new ListViewItem (Com, MainListView. Groups[1]));

string[] OperP = {"Операции с ценными бумагами", OperationsPaper. ToString ()," -«, «4"};

MainListView. Items. Add (new ListViewItem (OperP, MainListView. Groups[1]));

string[] OperVR = {"Операции на валютном рынке", OperationsCurrency. ToString ()," -«, «5"};

MainListView. Items. Add (new ListViewItem (OperVR, MainListView. Groups[1]));

string[] FuncBank = {"Затраты на функционирование банка", Functioning. ToString ()," -«, «6"};

MainListView. Items. Add (new ListViewItem (FuncBank, MainListView. Groups[1]));

string[] CpecRez = {"Создание специальных резервов", Reservation. ToString ()," -«, «7"};

MainListView. Items. Add (new ListViewItem (CpecRez, MainListView. Groups[1]));

string[] Serv = {"Оплата различных услуг", Services. ToString ()," -«, «8"};

MainListView. Items. Add (new ListViewItem (Serv, MainListView. Groups[1]));

string[] Build = {"Экспуатация зданий / сооружений", Buildings. ToString ()," -«, «9"};

MainListView. Items. Add (new ListViewItem (Build, MainListView. Groups[1]));

string[] ZP = {"Заработная плата", Salary. ToString ()," -«, «10"};

MainListView. Items. Add (new ListViewItem (ZP, MainListView. Groups[1]));

string[] OtherS = {"Прочие доходы", Other. ToString ()," -«, «11"};

MainListView. Items. Add (new ListViewItem (OtherS, MainListView. Groups[1]));

string[] SummS = {"Итого: «, Summa. ToString (), «-"};

MainListView. Items. Add (new ListViewItem (SummS, MainListView. Groups[2]));

}

else

{

string[] pecInR = {"Проценты в рублях", PecInRub. ToString (), String. Format («{0: F2}», (((double) PecInRub / Summa) * 100)), «1"};

MainListView. Items. Add (new ListViewItem (pecInR, MainListView. Groups[0]));

string[] pecInNoR = {"Проценты в иностранной валюте", PecInOther. ToString (), String. Format («{0: F2}», (((double) PecInOther / Summa) * 100)), «2"};

MainListView. Items. Add (new ListViewItem (pecInNoR, MainListView. Groups[0]));

string[] Com = {"Комиссионные по услугам", Commission. ToString (), String. Format («{0: F2}», (((double) Commission / Summa) * 100)), «3"};

MainListView. Items. Add (new ListViewItem (Com, MainListView. Groups[1]));

string[] OperP = {"Операции с ценными бумагами", OperationsPaper. ToString (), String. Format («{0: F2}», (((double) OperationsPaper / Summa) * 100)), «4"};

MainListView. Items. Add (new ListViewItem (OperP, MainListView. Groups[1]));

string[] OperVR = {"Операции на валютном рынке", OperationsCurrency. ToString (), String. Format («{0: F2}», (((double) OperationsCurrency / Summa) * 100)), «5"};

MainListView. Items. Add (new ListViewItem (OperVR, MainListView. Groups[1]));

string[] FuncBank = {"Затраты на функционирование банка", Functioning. ToString (), String. Format («{0: F2}», (((double) Functioning / Summa) * 100)), «6"};

MainListView. Items. Add (new ListViewItem (FuncBank, MainListView. Groups[1]));

string[] CpecRez = {"Создание специальных резервов", Reservation. ToString (), String. Format («{0: F2}», (((double) Reservation / Summa) * 100)), «7"};

MainListView. Items. Add (new ListViewItem (CpecRez, MainListView. Groups[1]));

string[] Serv = {"Оплата различных услуг", Services. ToString (), String. Format («{0: F2}», (((double) Services / Summa) * 100)), «8"};

MainListView. Items. Add (new ListViewItem (Serv, MainListView. Groups[1]));

string[] Build = {"Экспуатация зданий / сооружений", Buildings. ToString (), String. Format («{0: F2}», (((double) Buildings / Summa) * 100)), «9"};

MainListView. Items. Add (new ListViewItem (Build, MainListView. Groups[1]));

string[] ZP = {"Заработная плата", Salary. ToString (), String. Format («{0: F2}», (((double) Salary / Summa) * 100)), «10"};

MainListView. Items. Add (new ListViewItem (ZP, MainListView. Groups[1]));

string[] OtherS = {"Прочие доходы", Other. ToString (), String. Format («{0: F2}», (((double) Other / Summa) * 100)), «11"};

MainListView. Items. Add (new ListViewItem (OtherS, MainListView. Groups[1]));

string[] SummS = {"Итого: «, Summa. ToString (), «100%"};

MainListView. Items. Add (new ListViewItem (SummS, MainListView. Groups[2]));

double[] data = {PecInRub, PecInOther, Commission, OperationsPaper, OperationsCurrency, Functioning, Reservation, Services, Buildings, Salary, Other};

double temp = data[0];

int index = 0;

// Поиск минимума

for (int i = 1; i < data. Length; ++i)

{

if (temp > data[i])

{

temp = data[i];

index = i;

}

}

// Отмечаем минимум

MainListView. Items[index]. BackColor = Color. YellowGreen;

temp = data[0];

index = 0;

// Поиск максимума

for (int i = 1; i < data. Length; ++i)

{

if (temp < data[i])

{

temp = data[i];

index = i;

}

}

// Отмечаем максимум

MainListView. Items[index]. BackColor = Color. Red;

}

}

public void DrawGraph ()

{

this. zedGraph. Visible = true;

// Получим панель для рисования

GraphPane pane = zedGraph. GraphPane;

// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы

pane. CurveList. Clear ();

pane. Title. Text = «Доходы коммерческого банка»;

pane. Legend. IsVisible = false;

if (PecInRub≠ 0)

{

PieItem segment1 = pane. AddPieSlice (PecInRub, Color. Blue,

10, «1»);

}

if (PecInOther≠ 0)

{

PieItem segment2 = pane. AddPieSlice (PecInOther, Color. Salmon. 10, «2»);

}

if (Commission≠ 0)

{

PieItem segment3 = pane. AddPieSlice (Commission, Color. Yellow. 10, «3»);

}

if (OperationsPaper≠ 0)

{

PieItem segment4 = pane. AddPieSlice (OperationsPaper, Color. RoyalBlue. 10, «4»);

}

if (OperationsCurrency≠ 0)

{

PieItem segment5 = pane. AddPieSlice (OperationsCurrency, Color. RosyBrown. 10, «5»);

}

if (Reservation≠ 0)

{

PieItem segment6 = pane. AddPieSlice (Reservation, Color. Crimson. 10, «6»);

}

if (Functioning≠ 0)

{

PieItem segment7 = pane. AddPieSlice (Functioning, Color. DarkGray. 10, «7»);

}

if (Services≠ 0)

{

PieItem segment8 = pane. AddPieSlice (Services, Color. DarkMagenta. 10, «8»);

}

if (Buildings≠ 0)

{

PieItem segment9 = pane. AddPieSlice (Buildings, Color. DeepPink. 10, «9»);

}

if (Salary≠ 0)

{

PieItem segment10 = pane. AddPieSlice (Salary, Color. DimGray. 10, «10»);

}

if (Other≠ 0)

{

PieItem segment11 = pane. AddPieSlice (Other, Color. Azure. 10, «11»);

}

// Вызываем метод AxisChange (), чтобы обновить данные об осях.

zedGraph. AxisChange ();

// Обновляем график

zedGraph. Invalidate ();

}

private void FullBtn_Click (object sender, EventArgs e)

{

if (fullForm == true)

{

this. Width = 559;

FullBtn. Text = «> «;

fullForm = false;

} else

{

this. Width = 1016;

FullBtn. Text = «< «;

fullForm = true;

}

}

private void SaveBtn_Click (object sender, EventArgs e)

{

saveFileDialog. FileName = this. Text +". abr";

if (saveFileDialog. ShowDialog () == DialogResult. OK)

{

SaveDataFile data = new SaveDataFile (PecInRub, PecInOther, Commission, OperationsPaper, OperationsCurrency, Reservation, Functioning, Services, Buildings, Salary, Other, Summa);

using (FileStream Stream = new FileStream (saveFileDialog. FileName, FileMode. Create, FileAccess. Write))

{

BinaryFormatter fmt = new BinaryFormatter ();

fmt. Serialize (Stream, data);

}

this. Text = saveFileDialog. FileName;

MessageBox. Show («Данные сохранены!», «Сообщение», MessageBoxButtons. OK, MessageBoxIcon. Information);

}

}

private void MainForm_KeyPress (object sender, KeyPressEventArgs e)

{

if (e. KeyChar == 'f')

{

FullBtn. Focus ();

if (fullForm == true)

{

this. Width = 559;

FullBtn. Text = «> «;

fullForm = false;

}

else

{

this. Width = 1016;

FullBtn. Text = «< «;

fullForm = true;

}

}

}

private void PrintBtn_Click (object sender, EventArgs e)

{

if (printDialog. ShowDialog () == DialogResult. OK)

{

printDialog. Document. Print ();

}

}

private void printDocument_PrintPage (object sender, System. Drawing. Printing. PrintPageEventArgs e)

{

Rectangle rect = new Rectangle (MainGB. Top, MainGB. Left, MainGB. Width, MainGB. Height);

Bitmap lv = new Bitmap (MainGB. Width, MainGB. Height);

MainListView. DrawToBitmap (lv, rect);

e. Graphics. DrawString («Доходы коммерческого банка» + DateTime. Now. ToString («(d MMMM yyyy г)»), new Font («Times new roman», 14, FontStyle. Bold, GraphicsUnit. Pixel), Brushes. Black, 100, 40);

e. Graphics. DrawImage (lv, 50, 70, MainGB. Width, MainGB. Height);

}

public int pecInRub {set {PecInRub = value; }}

public int pecInOther {set {PecInOther = value; }}

public int commission {set {Commission = value; }}

public int operationsPaper {set {OperationsPaper = value; }}

public int operationsCurrency {set {OperationsCurrency = value; }}

public int reservation {set {Reservation = value; }}

public int functioning {set {Functioning = value; }}

public int services {set {Services = value; }}

public int buildings {set {Buildings = value; }}

public int salary {set {Salary = value; }}

public int other {set {Other = value; }}

public long summa {set {Summa = value; }}

коммерческий доход банк программа

int PecInRub = 0;

int PecInOther = 0;

int Commission = 0;

int OperationsPaper = 0;

int OperationsCurrency = 0;

int Reservation = 0;

int Functioning = 0;

int Services = 0;

int Buildings = 0;

int Salary = 0;

int Other = 0;

long Summa = 0;

bool fullForm = false;

}

}

ПоказатьСвернуть
Заполнить форму текущей работой