BFIN 367

Financial Reporting & Analysis

Follow the numbers. Find the story.

Connecting the financial statements...

Final Review

Final review (from Module 1-7)

Test your knowledge across Modules 1 through 7. Use the filters below to isolate specific topics. You are going to ace this exam!

Study Tip: Use the flag icon on any question to log ones you want to revisit. Save your progress by dragging the Download Report button anywhere on your screen and clicking it before you leave!

Showing all topics and question types.
Showing 0 questions
`; if (typeof htmlDocx !== 'undefined') { const converted = htmlDocx.asBlob(htmlContent); const url = URL.createObjectURL(converted); const a = document.createElement('a'); a.href = url; a.download = "Final_Exam_Study_Report.docx"; document.body.appendChild(a); a.click(); setTimeout(() => { document.body.removeChild(a); URL.revokeObjectURL(url); }, 100); } else { const blob = new Blob(['\ufeff', htmlContent], { type: 'application/msword' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = "Final_Exam_Study_Report.doc"; document.body.appendChild(a); a.click(); setTimeout(() => { document.body.removeChild(a); URL.revokeObjectURL(url); }, 100); } } /* --- Calculator Logic --- */ let calcInput = ""; function toggleCalculator() { const calc = document.getElementById('calculator-container'); calc.classList.toggle('hidden'); if(!calc.classList.contains('hidden') && !calc.style.left) { calc.style.bottom = '2rem'; calc.style.right = '2rem'; calc.style.left = 'auto'; calc.style.top = 'auto'; } } function updateDisplay() { const display = document.getElementById('calc-display'); display.innerText = calcInput === "" ? "0" : calcInput; display.scrollLeft = display.scrollWidth; } function appendNum(num) { calcInput += num; updateDisplay(); } function appendOp(op) { const lastChar = calcInput.slice(-1); if (['+', '-', '*', '/'].includes(lastChar)) calcInput = calcInput.slice(0, -1) + op; else if (calcInput !== "") calcInput += op; updateDisplay(); } function backspace() { calcInput = calcInput.slice(0, -1); updateDisplay(); } function clearCalc() { calcInput = ""; updateDisplay(); } function calculate() { try { if (calcInput === "") return; const result = eval(calcInput); if (!isFinite(result) || isNaN(result)) calcInput = "Error"; else calcInput = String(Math.round(result * 1000000) / 1000000); } catch (e) { calcInput = "Error"; } updateDisplay(); } // Make Calculator Draggable const calcContainer = document.getElementById('calculator-container'); const dragHandle = document.getElementById('calc-drag-handle'); let isDragging = false; let dragStartX, dragStartY, initialLeft, initialTop; dragHandle.addEventListener("mousedown", dragStart); document.addEventListener("mouseup", dragEnd); document.addEventListener("mousemove", drag); dragHandle.addEventListener("touchstart", dragStart, {passive: false}); document.addEventListener("touchend", dragEnd); document.addEventListener("touchmove", drag, {passive: false}); function dragStart(e) { if (!e.target.closest('#calc-drag-handle') || e.target.tagName === 'BUTTON' || e.target.closest('button')) return; isDragging = true; const rect = calcContainer.getBoundingClientRect(); initialLeft = rect.left; initialTop = rect.top; if (e.type === "touchstart") { dragStartX = e.touches[0].clientX; dragStartY = e.touches[0].clientY; } else { dragStartX = e.clientX; dragStartY = e.clientY; } calcContainer.style.bottom = 'auto'; calcContainer.style.right = 'auto'; calcContainer.style.left = initialLeft + 'px'; calcContainer.style.top = initialTop + 'px'; calcContainer.style.transform = 'none'; } function dragEnd(e) { isDragging = false; } function drag(e) { if (!isDragging) return; e.preventDefault(); let currentX, currentY; if (e.type === "touchmove") { currentX = e.touches[0].clientX; currentY = e.touches[0].clientY; } else { currentX = e.clientX; currentY = e.clientY; } const dx = currentX - dragStartX; const dy = currentY - dragStartY; calcContainer.style.left = (initialLeft + dx) + 'px'; calcContainer.style.top = (initialTop + dy) + 'px'; } // Make Download Button Draggable const downloadContainer = document.getElementById('download-container'); const downloadDragHandle = document.getElementById('download-drag-handle'); let isDraggingDl = false; let dlDragStartX, dlDragStartY, dlInitialLeft, dlInitialTop; downloadDragHandle.addEventListener("mousedown", dlDragStart); document.addEventListener("mouseup", dlDragEnd); document.addEventListener("mousemove", dlDrag); downloadDragHandle.addEventListener("touchstart", dlDragStart, {passive: false}); document.addEventListener("touchend", dlDragEnd); document.addEventListener("touchmove", dlDrag, {passive: false}); function dlDragStart(e) { isDraggingDl = true; const rect = downloadContainer.getBoundingClientRect(); dlInitialLeft = rect.left; dlInitialTop = rect.top; if (e.type === "touchstart") { dlDragStartX = e.touches[0].clientX; dlDragStartY = e.touches[0].clientY; } else { dlDragStartX = e.clientX; dlDragStartY = e.clientY; } downloadContainer.style.bottom = 'auto'; downloadContainer.style.right = 'auto'; downloadContainer.style.left = dlInitialLeft + 'px'; downloadContainer.style.top = dlInitialTop + 'px'; downloadContainer.style.transform = 'none'; } function dlDragEnd(e) { isDraggingDl = false; } function dlDrag(e) { if (!isDraggingDl) return; e.preventDefault(); let currentX, currentY; if (e.type === "touchmove") { currentX = e.touches[0].clientX; currentY = e.touches[0].clientY; } else { currentX = e.clientX; currentY = e.clientY; } const dx = currentX - dlDragStartX; const dy = currentY - dlDragStartY; downloadContainer.style.left = (dlInitialLeft + dx) + 'px'; downloadContainer.style.top = (dlInitialTop + dy) + 'px'; } document.addEventListener('keydown', (e) => { const calcContainer = document.getElementById('calculator-container'); if (!calcContainer.classList.contains('hidden')) { const isInputActive = document.activeElement && (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA' || document.activeElement.tagName === 'SELECT'); if (isInputActive) return; if (e.key === 'Enter') { e.preventDefault(); calculate(); } else if (e.key === 'Backspace') { e.preventDefault(); backspace(); } else if (e.key === 'Escape') { e.preventDefault(); toggleCalculator(); } else if (e.key === 'c' || e.key === 'C') { e.preventDefault(); clearCalc(); } else if (['0','1','2','3','4','5','6','7','8','9','.'].includes(e.key)) { e.preventDefault(); appendNum(e.key); } else if (['+','-','*','/'].includes(e.key)) { e.preventDefault(); appendOp(e.key); } } }); document.addEventListener('DOMContentLoaded', () => { document.getElementById('count-all').innerText = questions.length; document.getElementById('count-mcq').innerText = questions.filter(q => q.format === 'Multiple Choice').length; document.getElementById('count-exercises').innerText = questions.filter(q => q.format === 'Exercises').length; document.getElementById('count-fset').innerText = questions.filter(q => q.format === 'FSET').length; renderQuestions(); });