CSC1109_Tutorials/Week3_Lab/Submission/CSC1109_Lab3_2200624.tex

208 lines
5.1 KiB
TeX

\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}