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

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

Скачать Гарантия
Код работы: 1929
Дисциплина: Информатика
Тип: Контрольная
Вуз:АлтГТУ - посмотреть другие работы и дисциплины по этому вузу
   
Цена: 390 руб.
Просмотров: 2534
Выложена: 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

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

Тема: Основные теории организации и управления Подробнее
Тип: Контрольная
Вуз: АГАУ
Просмотры: 2126
Выложена: 01 июля 2014г.
Тема: Вариант 9 Подробнее
Тип: Контрольная
Вуз: Московский институт права
Просмотры: 2683
Выложена: 25 июня 2012г.
Тема: Статистика Вариант № 5 Подробнее
Тип: Курсовая
Вуз: ВЗФЭИ
Просмотры: 2869
Выложена: 01 сентября 2010г.
Тема: Математика (задания 1,2,3,4,5,6,7) Подробнее
Тип: Контрольная
Вуз: Институт текстильной и лёгкой промышленности
Просмотры: 2640
Выложена: 21 июня 2011г.
Тема: Коммерческая деятельность ООО «Варяг» Подробнее
Тип: Контрольная
Вуз: Институт текстильной и лёгкой промышленности
Просмотры: 2218
Выложена: 25 июня 2012г.
Тема: Основы нормирования труда на предприятии Подробнее
Тип: Курсовая
Вуз: КНИТУ
Просмотры: 70
Выложена: 22 июня 2018г.

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


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

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

Обязательное поле
Обязательное поле
Обязательное поле
До окончания скидки Скидка 10%
Подать заявку бесплатно