Лаболаторная работа Моделирование системы баннов в С ++ |
Скачать Гарантия | |
Код работы: | 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 ; | |
Скачать эти материалы |
Прекрасный курс, очень прокачал ребе...
Возможно Вас также заинтересуют другие материалы:
Поиск других материалов, подготовленных тьюторами «ИнПро»® для студенческих работ
Не смогли найти нужный материал? Вы можете отправить заявку или обратиться к услугам тьюторов
Вы также можете: Вернуться к рубрикатору дисциплин »