\documentclass[a4paper,11pt]{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{graphicx} \usepackage{xcolor} \renewcommand\familydefault{\sfdefault} \usepackage{tgheros} \usepackage[defaultmono]{droidsansmono} \usepackage{amsmath,amssymb,amsthm,textcomp} \usepackage{enumerate} \usepackage{multicol} \usepackage{tikz} \usepackage{geometry} \geometry{left=25mm,right=25mm,% bindingoffset=0mm, top=20mm,bottom=20mm} \linespread{1.3} \newcommand{\linia}{\rule{\linewidth}{0.5pt}} % custom theorems if needed \newtheoremstyle{mytheor} {1ex}{1ex}{\normalfont}{0pt}{\scshape}{.}{1ex} {{\thmname{#1 }}{\thmnumber{#2}}{\thmnote{ (#3)}}} \theoremstyle{mytheor} \newtheorem{defi}{Definition} % my own titles \makeatletter \renewcommand{\maketitle}{ \begin{center} \vspace{2ex} {\huge \textsc{\@title}} \vspace{1ex} \\ \linia\\ \@author \hfill \@date \vspace{4ex} \end{center} } \makeatother %%% % custom footers and headers \usepackage{fancyhdr} \pagestyle{fancy} \lhead{} \chead{} \rhead{} \lfoot{CSC 1109 Lab 3} \cfoot{} \rfoot{Page \thepage} \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} % % code listing settings \usepackage{listings} \lstset{ language=java, basicstyle=\ttfamily\small, aboveskip={1.0\baselineskip}, belowskip={1.0\baselineskip}, columns=fixed, extendedchars=true, breaklines=true, tabsize=4, prebreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}}, frame=lines, showtabs=false, showspaces=false, showstringspaces=false, keywordstyle=\color[rgb]{0.627,0.126,0.941}, commentstyle=\color[rgb]{0.133,0.545,0.133}, stringstyle=\color[rgb]{01,0,0}, numbers=left, numberstyle=\small, stepnumber=1, numbersep=10pt, captionpos=t, escapeinside={\%*}{*)} } %%%----------%%%----------%%%----------%%%----------%%% \begin{document} \title{CSC 1109 Lab 3} \author{Woon Jun Wei, 2200624} \date{\today} \maketitle \section*{Question 1} \begin{lstlisting}[label={list:first},caption=Question 1 Source Code.] import java.util.*; public class loan { private double annualInterestRate; private int numberOfYears; private double loanAmount; private java.util.Date loanDate; public loan(){ this.annualInterestRate = 2.5; this.numberOfYears = 1; this.loanAmount = 1000; loanDate = new java.util.Date(); } public loan(double annualInterestRate, int numberOfYears, double loanAmount){ this.annualInterestRate = annualInterestRate; this.numberOfYears = numberOfYears; this.loanAmount = loanAmount; loanDate = new java.util.Date(); } public double getAnnualInterestRate(){ return this.annualInterestRate; } public int getNumberOfYears(){ return this.numberOfYears; } public double getLoanAmount(){ return this.loanAmount; } public java.util.Date getLoanDate(){ return this.loanDate; } public void setAnnualInterestRate(double annualInterestRate){ this.annualInterestRate = annualInterestRate; } public void setNumberOfYears(int numberOfYears){ this.numberOfYears = numberOfYears; } public void setLoadAmount(double loanAmount){ this.loanAmount = loanAmount; } public double getMonthlyPayment(){ double monthlyInterestRate = annualInterestRate / 1200; double monthlyPayment = loanAmount * monthlyInterestRate / (1 - (1 / Math.pow(1 + monthlyInterestRate, numberOfYears * 12))); return monthlyPayment; } public double getTotalPayment(){ double totalPayment = getMonthlyPayment() * numberOfYears * 12; return totalPayment; } public static void main(String[] args){ Scanner sc = new Scanner(System.in); // Annual Interest System.out.print("Enter annual interest rate, for example, 8.25: "); double annualInterestRate = sc.nextDouble(); // Number of years System.out.print("Enter number of years as an integer: "); int numberOfYears = sc.nextInt(); // Loan Amount System.out.print("Enter loan amount, for example, 120000.95: "); double loanAmount = sc.nextDouble(); // Create a Loan object loan loan1 = new loan(annualInterestRate, numberOfYears, loanAmount); // Date java.util.Date loanDate = loan1.getLoanDate(); System.out.println("The loan was created on " + loanDate); // Monthly payment double monthlyPayment = loan1.getMonthlyPayment(); System.out.printf("The monthly payment is %.2f\n", monthlyPayment); // Total Payment double totalPayment = loan1.getTotalPayment(); System.out.printf("The total payment is %.2f", totalPayment); } } \end{lstlisting} \begin{lstlisting}[label={list:first_output},caption=Question 1 Output.] Enter annual interest rate, for example, 8.25: 2.5 Enter number of years as an integer: 5 Enter loan amount, for example, 120000.95: 1000 The loan was created on Mon Jan 09 15:31:09 SGT 2023 The monthly payment is 17.75 The total payment is 1064.84 \end{lstlisting} \end{document}