\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 2} \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 2} \author{Woon Jun Wei, 2200624} \date{\today} \maketitle \section*{Question 1} Develop a program to accept the radius of one circle from the console and output the area of the circle. Note that to compute the area, the following formula can be used: Area = radius * radius * PI Define PI as a constant variable with a fixed value 3.14159 \begin{lstlisting}[label={list:first},caption=Question 1 Source Code.] import java.util.*; public class q1 { static final double PI = 3.14159; public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("Enter a number for radius: "); double radius = sc.nextDouble(); double area = PI * radius * radius; System.out.println("The area for the circle of radius " + radius + " is " + area); } } \end{lstlisting} \begin{lstlisting}[label={list:first_output},caption=Question 1 Output.] Enter a number for radius: 2.5 The area for the circle of radius 2.5 is 19.6349375 Enter a number for radius: 23 The area for the circle of radius 23.0 is 1661.90111 Enter a number for radius: 7.3 The area for the circle of radius 7.3 is 167.41533109999997 \end{lstlisting} \pagebreak \section*{Question 2} Average calculation for multiple input from keyboard: In this question, you will design a program to accept three number inputs by the user, and display the average of it. \begin{lstlisting}[label={list:second},caption=Question 2 Source code.] import java.util.*; public class q1 { static final double PI = 3.14159; public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("Enter a number for radius: "); double radius = sc.nextDouble(); double area = PI * radius * radius; System.out.println("The area for the circle of radius " + radius + " is " + area); } } \end{lstlisting} \begin{lstlisting}[label={list:second_output},caption=Question 2 Output.] Enter three numbers:10.5 11 11.5 The average of 10.5 11.0 11.5 is 11.0 Enter three numbers:1 2 3 The average of 1.0 2.0 3.0 is 2.0 Enter three numbers:10 11.5 19 The average of 10.0 11.5 19.0 is 13.5 \end{lstlisting} \pagebreak \section*{Question 3} \begin{lstlisting}[label={list:third},caption=Question 3 Source Code.] public class q3 { public static void main(String[] args) { long totalMilliseconds = System.currentTimeMillis(); long totalSeconds = totalMilliseconds/1000; long currSecond = totalSeconds % 60; long totalMinutes = totalSeconds / 60; long currMinute = totalMinutes % 60; long totalHours = totalMinutes / 60; long currrHour = totalHours % 24; System.out.println("Current time is " + currrHour + ":" + currMinute + ":" + currSecond + " GMT"); } } \end{lstlisting} \begin{lstlisting}[label={list:third_output},caption=Question 3 Output.] Current time is 6:49:27 GMT \end{lstlisting} \pagebreak \section*{Question 4} Chinese Zodiac Calculation: Now let us write a program to find out the Chinese Zodiac sign for a given year. The Chinese Zodiac is based on a twelve-year cycle, with each year represented by an animal- monkey, rooster, dog, pig, rat, ox, tiger, rabbit, dragon, snake, horse, or sheep— in this cycle, as shown in Figure 2. \\ Note that year \% 12 determines the Zodiac sign. 1900 is the year of the rat because 1900 \% 12 is 4. Listing 3.9 gives a program that prompts the user to enter a year and displays the \begin{lstlisting}[label={list:fourth},caption=Question 4 Source Code.] import java.util.*; public class q4 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.print("Enter a year: "); int year = sc.nextInt(); switch(year % 12){ case 0: System.out.println("monkey"); break; case 1: System.out.println("rooster"); break; case 2: System.out.println("dog"); break; case 3: System.out.println("pig"); break; case 4: System.out.println("rat"); break; case 5: System.out.println("ox"); break; case 6: System.out.println("tiger"); break; case 7: System.out.println("rabbit"); break; case 8: System.out.println("dragon"); break; case 9: System.out.println("snake"); break; case 10: System.out.println("horse"); break; case 11: System.out.println("sheep"); break; default: System.out.println("Invalid input"); break; } } } \end{lstlisting} \begin{lstlisting}[label={list:fourth_output},caption=Question 4 Output.] Enter a year: 1963 rabbit Enter a year: 1877 ox Enter a year: 2000 dragon \end{lstlisting} \end{document}