208 lines
5.1 KiB
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}
|