Выберите Ваш город X

Лаболаторная работа Моделирование системы баннов в С ++

Скачать Гарантия
Код работы: 1929
Дисциплина: Информатика
Тип: Контрольная
Вуз:АлтГТУ - посмотреть другие работы и дисциплины по этому вузу
   
Цена: 390 руб.
Просмотров: 2528
Выложена: 23 июня 2011г.
   
Содержание: Лабораторные работы + отчет
Подробности уточняйте у менеджеров "ИнПро"
   
Отрывок: Задание:

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

Текст программы:
// Файл fMain.cpp
//---------------------------------------------------------------------------

#include
#pragma hdrstop

#include "fMain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfmMain *fmMain;

//---------------------------------------------------------------------------
// Конструктор основной формы
//---------------------------------------------------------------------------
__fastcall TfmMain::TfmMain(TComponent* Owner)
: TForm(Owner)
{

// Устанавливаем наименования столбцов в списке банков
sgBank->Cells[0][0] = "Номер";
sgBank->Cells[1][0] = "Наименование";

// Устанавливаем наименования столбцов в списке счетов
sgAccount->Cells[0][0] = "Номер";
sgAccount->Cells[1][0] = "Остаток";

// Устанавливаем разрешения на действия
SetActionState();

// Инициализируем датчик случайных чисел
randomize();

// Модель пока не запущена
bRunned = false;
// Банков в модели нет
nBankCount = 0;
// Пределы суммы перевода не определены
nMinTransfer = nMaxTransfer = 0;
}
//---------------------------------------------------------------------------
// Деструктор основной формы
//---------------------------------------------------------------------------
__fastcall TfmMain::~TfmMain()
{
// Удаляем все объекты
DeleteAll();
}
//---------------------------------------------------------------------------
// Удаление созданной структуры объектов
//---------------------------------------------------------------------------
void TfmMain::DeleteAll()
{
// Указатель на очередной элемент
TBankInfo *oBankInfo;

// Запрещаем обработку события
sgBank->OnSelectCell = NULL;

// Пока в списке банков есть элементы
while (sgBank->RowCount > 2 ||
sgBank->Objects[0][sgBank->RowCount - 1] != NULL)
{
// Получаем очередной элемент
oBankInfo = (TBankInfo*) sgBank->Objects[0][sgBank->RowCount - 1];
// Если указатель не 0
if (oBankInfo != NULL)
// Удаляем его
delete oBankInfo;
// Проверяем необходимость удаления элемента из списка
if (sgBank->RowCount > 2)
// Удаляем строку
sgBank->RowCount--;
else
// Очищаем указатель
sgBank->Objects[0][sgBank->RowCount - 1] = NULL;
}

// Запрещаем обработку события
sgBank->OnSelectCell = sgBankSelectCell;
}
//---------------------------------------------------------------------------
// Выполнение перевода
//---------------------------------------------------------------------------
void TfmMain::MakeTransfer(TAccountInfo *pSrcAccountInfo, TAccountInfo *pDstAccountInfo, int pTransfer)
{
// Информация о переводе
TTransferInfo *oTransferInfo;
// Строка для вывода в лог
AnsiString strMessage;

// Если требуемая сумма превышает остаток - выходим
if (pSrcAccountInfo->nCash < pTransfer)
return ;

// Выполняем перевод
pSrcAccountInfo->nCash -= pTransfer;
pDstAccountInfo->nCash += pTransfer;
// Создаем информацию о переводе
// Счет отправитель
oTransferInfo = new TTransferInfo();
oTransferInfo->oSrcAccount = pSrcAccountInfo;
oTransferInfo->oDstAccount = pDstAccountInfo;
oTransferInfo->nAmount = pTransfer;
pSrcAccountInfo->oTransferList->Add((void*)oTransferInfo);
// Счет получатель
oTransferInfo = new TTransferInfo();
oTransferInfo->oSrcAccount = pSrcAccountInfo;
oTransferInfo->oDstAccount = pDstAccountInfo;
oTransferInfo->nAmount = pTransfer;
pDstAccountInfo->oTransferList->Add((void*)oTransferInfo);
// Выводим сообщение в лог
strMessage = pSrcAccountInfo->oBankInfo->strName + " сч. №" + pSrcAccountInfo->strNumber +
" -> " + pDstAccountInfo->oBankInfo->strName + " сч. №" + pDstAccountInfo->strNumber +
": " + IntToStr(pTransfer) + " руб.";
lbLog->Items->Add(strMessage);
}
//---------------------------------------------------------------------------
// Вывод сведений о счетах банка
//---------------------------------------------------------------------------
void TfmMain::ShowAccountList()
{
// Информация о банке
TBankInfo *oBankInfo;
// Информация о счете
TAccountInfo *oAccountInfo;

// Очищаем список счетов
sgAccount->RowCount = 2;
sgAccount->Cells[0][1] = "";
sgAccount->Cells[1][1] = "";
sgAccount->Objects[0][1] = NULL;

// Проверяем наличие записи
if (sgBank->Row Objects[0][sgBank->Row] == NULL)
// Записи нет - выходим
return ;

Скачать эти материалы

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

Отзывы клиентов о качествеуслуг наших тьюторов

10 января 2024г.
Андрей
4.9
25 мая 2023г.
Финк Анна Анатольевна
4.9

Возможно Вас также заинтересуют другие материалы:

Тема: вариант 2 Подробнее
Тип: Контрольная
Вуз: АГУ
Просмотры: 2682
Выложена: 23 июня 2012г.
Тема: Разработка элементов учебого контента. Создание карты знаний при помощи сервиса Popplet.com на примере информатики. Подробнее
Тип: Контрольная
Вуз: АлтГПА
Просмотры: 1653
Выложена: 06 июня 2016г.
Тема: Изучение справочно-поисковой системы «Консультант Плюс» Подробнее
Тип: Лабораторная работа
Вуз: СГУ
Просмотры: 74
Выложена: 20 августа 2018г.
Тема: Система федеральных органов государственного управления экономикой Подробнее
Тип: Курсовая
Вуз: АГУ
Просмотры: 4145
Выложена: 25 июня 2011г.
Тема: Контрольная работа №1 Вариант 11 Подробнее
Тип: Контрольная
Вуз: АГМУ
Просмотры: 3114
Выложена: 05 августа 2011г.
Тема: Аттестация работников Подробнее
Тип: Курсовая
Вуз: ОмГУ Достоевского
Просмотры: 1328
Выложена: 06 июля 2017г.

Поиск других материалов, подготовленных тьюторами «ИнПро»® для студенческих работ


Не смогли найти нужный материал? Вы можете отправить заявку или обратиться к услугам тьюторов
 
Вы также можете: Вернуться к рубрикатору дисциплин »
 
 

Запомнить сайт

Обязательное поле
Обязательное поле
Обязательное поле

Отправьте заявку на наши услуги

Отправка запроса ни к чему не обязывает, это бесплатно. Будем рады помочь!

Отправляя заявку, Вы соглашаетесь на обработку персональных данных.
До окончания скидки Скидка 10%
Подать заявку бесплатно