Programming in Java NPTEL Week 9 Assignment

Course Name: Programming in Java NPTEL

Link of Course: https://onlinecourses.nptel.ac.in/noc22_cs47/preview

These are answers for Programming In Java NPTEL Week 9 Assignment


Q1) Which of the following Listener(s) is/are supported by button Swing component ?
a. Action Listner
b. Change Listner
c. Item Listner
d. Window Listner

Answer: a, b, c


Q2) Which of the following is/are NOT interface(s) in javax.swing package?
a. MenuElement
b. BoxLayout
c. JComponent
d. Scrollable

Answer: b, c


These are answers for Programming In Java NPTEL Week 9 Assignment


Q3) Which of the following statement(s) is/are false?
a. Swing component frame support Window Listner
b. Swing component combo box support Window Listner.
c. Swing component check box support Window Listner.
d. Swing component dialog support Window Listner.

Answer: b, c


Q4) Which package provides many event classes and Listener interfaces for event handling?
a. java.awt.activeevent
b. java.awt.event
c. java.awt.listener
d. none of these

Answer: b. java.awt.event


These are answers for Programming In Java NPTEL Week 9 Assignment


Q5) Select the correct information
a. JTextField cannot be used as a JLabel.
b. JLabel cannot be used as a JTextField.
c. Button grouped radio button cannot be used instead of JComboBox.
d. JPassword Field extends JLabel.

Answer: b. JLabel cannot be used as a JTextField.


Q6) Which of the following is/are incorrect regarding events in Java?
a. EventClass is super class of all the events.
b. AdjustmentEvent will be notified if scroll bar is manipulated.
c. All the classes and methods required for even handling in Java is in java.awt package.
d. getID() method can be used to determine the type of event.

Answer: a. EventClass is super class of all the events.


These are answers for Programming In Java NPTEL Week 9 Assignment


Q7) Which of the following is/are interface(s) of java.awt package?
a. Button
b. Choice
c. Dialog
d. Paint

Answer: d. Paint


Q8) Which of the following displays components row-by-row in the order in which they were added to the JFrame?
a. CardLayout
b. FlowLayout
c. BorderLayout
d. GridLayout

Answer: b. FlowLayout


These are answers for Programming In Java NPTEL Week 9 Assignment


Q9) Which of the following statements are true?
a. Java AWT components are platform-dependent.
b. Java Swing componets are platform-independent.
c. MVC pattern is not supported by AWT.
d. MVC pattern is supported by Swing.

Answer: a, b, c, d


Q10) Which of the following method is used to set a frame, say f with size 300 × 200 pixels?
JFrame f = new JFrame ();

a. f.setsize (300, 200);
b. f.setSize (300, 200);
c. f.paint (300, 200);
d. f.setVisible (300, 200);

Answer: b. f.setSize (300, 200);


These are answers for Programming In Java NPTEL Week 9 Assignment


Programming Assignment

Question 1
Complete the code to develop a BASIC CALCULATOR that can perform operations like Addition, Subtraction, Multiplication and Division.
Input:  5+6
Output: 5+6 = 11

Solution:

import java.util.Scanner;
public class Question91{
	public static void main(String args[]){
		Scanner sc = new Scanner(System.in);
		String input = sc.nextLine();
				int i=0,j=0;
		double output=0;
		char seq[] = input.toCharArray();
		for(int a=0; a< seq.length; a++){
			if(seq[a]=='+'){
				i= Integer.parseInt(input.substring(0,a));
				j= Integer.parseInt(input.substring(a+1,seq.length));
				output = (double)i+j;
			}else if(seq[a]=='-'){
				i= Integer.parseInt(input.substring(0,a));
				j= Integer.parseInt(input.substring(a+1,seq.length));
				output = (double)i-j;
			}else if(seq[a]=='/'){
				i= Integer.parseInt(input.substring(0,a));
				j= Integer.parseInt(input.substring(a+1,seq.length));
				output = (double)i/j;
			}else if(seq[a]=='*'){
				i= Integer.parseInt(input.substring(0,a));
				j= Integer.parseInt(input.substring(a+1,seq.length));
				output = (double)i*j;
			}
		}
		System.out.print(input+" = " + Math.round(output));
	}
}

These are answers for Programming In Java NPTEL Week 9 Assignment


Question 2
Complete the code to develop an ADVANCED CALCULATOR that emulates all the functions of the GUI Calculator as shown in the image.
Input:  klgc
Output: 18.0

Solution:

import java.util.Scanner;
public class Question92{
	public static void main(String args[]){
		Scanner sc = new Scanner(System.in);
		String input = sc.nextLine();
				char seq[] = input.toCharArray();
		int outflag=0;
		for(int i=0; i< seq.length; i++){
			seq[i]=gui_map(seq[i]);
		}
		double operand1=0.0;
		String o1="";
		double operand2=0.0;
		String o2="";
		double output=0.0;
		outerloop:
		for(int i=0; i< seq.length; i++){
			int r=0;
			if(seq[i]=='+'||seq[i]=='-'||seq[i]=='/'||seq[i]=='X'||seq[i]=='='){
				for(int j=0; j< i; j++){
					o1+=Character.toString(seq[j]);
				}
				operand1=Double.parseDouble(o1);
				for(int k=i+1; k< seq.length; k++){
					if(seq[k]=='='){
						outflag=1;
						operand2=Double.parseDouble(o2);
						if(seq[i]=='+'){
							output=operand1+operand2;
						}else if(seq[i]=='-'){
							output=operand1-operand2;
						}else if(seq[i]=='/'){
							output=operand1/operand2;
						}else if(seq[i]=='X'){
							output=operand1*operand2;
						}
						break outerloop;
					}else{
						o2+=Character.toString(seq[k]);
					}
				}
			}
		}
		if(outflag==1)
			System.out.print(output);
	}
	static char gui_map(char in){
		char out = 'N';// N = Null/Empty
		char gm[][]={{'a','.'},{'b','0'},{'c','='},{'d','+'},{'e','1'},{'f','2'},{'g','3'},{'h','-'},{'i','4'},{'j','5'},{'k','6'},{'l','X'},{'m','7'},{'n','8'},{'o','9'},{'p','/'}};
		for(int i=0; i< gm.length; i++){
			if(gm[i][0]==in){
				out=gm[i][1];
				break;
			}
		}
		return out;
	}
}

These are answers for Programming In Java NPTEL Week 9 Assignment


Question 3
Complete the code to perform a 45 degree anti clock wise rotation with respect to the center of a 5 × 5 2D Array as shown below:
INPUT:
00100 00100          11111         00100          00100
OUTPUT:
10001         01010          00100         01010          10001

Solution:

import java.util.Scanner;
public class Question93{
	public static void main(String args[]){
		Scanner sc = new Scanner(System.in);
			char arr[][]= new char[5][5];
			for(int line=0;line< 5; line++){
				String input = sc.nextLine();
				char seq[] = input.toCharArray();
				if(seq.length==5){
					for(int i=0;i< 5;i++){
						arr[line][i]=seq[i];
					}
				}else{
					System.out.print("Wrong Input!");
					System.exit(0);
				}
			}
			char tra[][] = new char[5][5];
			String outer[]={"00","10","20","30",
							"40","41","42","43",
							"44","34","24","14",
							"04","03","02","01"};

			String inner[]={"11","21","31","32",
							"33","23","13","12"};
			for(int i=0;i< 5;i++){
				for(int j=0;j< 5;j++){
					for(int k=0; k< outer.length; k++){
						char indices[]=outer[k].toCharArray();
						int a = Integer.parseInt(String.valueOf(indices[0]));
						int b = Integer.parseInt(String.valueOf(indices[1]));
						if(a==i && b==j){
							if(k==15){k=1;}
							else if(k==14){k=0;}
							else {k+=2;}
							indices=outer[k].toCharArray();
							a = Integer.parseInt(String.valueOf(indices[0]));
							b = Integer.parseInt(String.valueOf(indices[1]));
							tra[a][b] = arr[i][j];
							break;
						}
					}
					for(int k=0; k< inner.length; k++){
						char indices[]=inner[k].toCharArray();
						int a = Integer.parseInt(String.valueOf(indices[0]));
						int b = Integer.parseInt(String.valueOf(indices[1]));
						if(a==i && b==j){
							if(k==7){k=0;}
							else {k+=1;}
							indices=inner[k].toCharArray();
							a = Integer.parseInt(String.valueOf(indices[0]));
							b = Integer.parseInt(String.valueOf(indices[1]));
							tra[a][b] = arr[i][j];
							break;
						}
					}
					tra[2][2] = arr[2][2];
				}
			}
			for(int i=0;i< 5;i++){
				for(int j=0;j< 5;j++){
					System.out.print(tra[i][j]);
				}
				System.out.println();
			}
		}
	}

These are answers for Programming In Java NPTEL Week 9 Assignment


Question 4
A program needs to be developed which can mirror reflect any 5 × 5 2D character array into its side-by-side reflection. Write suitable code to achieve this transformation as shown below:
INPUT:
OOXOO OOXOO XXXOO  OOOOO          XOABC
OUTPUT:
OOXOO OOXOO OOXXX OOOOO CBAOX

Solution:

import java.util.Scanner;
public class Question94{
	public static void main(String args[]){
		Scanner sc = new Scanner(System.in);
		char original[][]= new char[5][5];
		char reflection[][]= new char[5][5];
		for(int line=0;line<5; line++){
			String input = sc.nextLine();
			char seq[] = input.toCharArray();
			if(seq.length==5){
				for(int i=0;i<5;i++){
					original[line][i]=seq[i];
				}
			}
		}
		for(int i=0; i<5;i++){
			for(int j=0; j<5;j++){
				reflection[i][j]=original[i][4-j];
			}
		}
		for(int i=0; i<5;i++){
			for(int j=0; j<5;j++){
				System.out.print(reflection[i][j]);
			}
			System.out.println();
		}
    }
}

These are answers for Programming In Java NPTEL Week 9 Assignment


Question 5
Write suitable code to develop a 2D Flip-Flop Array with dimension 5 × 5, which replaces all input elements with values 0 by 1 and 1 by 0. An example is shown below:
INPUT:
00001               00001               00001               00001               00001
OUTPUT:
11110               11110               11110               11110               11110

Solution:

import java.util.Scanner;
public class Question95{
	public static void main(String args[]){
		Scanner sc = new Scanner(System.in);
		char original[][]= new char[5][5];
		for(int line=0;line<5; line++){
			String input = sc.nextLine();
			char seq[] = input.toCharArray();
			if(seq.length==5){
				for(int i=0;i<5;i++){
					if(seq[i]=='0' || seq[i]=='1'){
						original[line][i]=seq[i];
						if(line==4 && i==4)
							flipflop(original);
					}
					else{
						System.out.print("Only 0 and 1 supported.");
						break;
					}
				}
			}else{
				System.out.print("Invalid length");
				break;
			}

		}
	}
	static void flipflop(char[][] flip){
		for(int i=0; i<5;i++){
			for(int j=0; j<5;j++){
				if(flip[i][j]=='1')
					flip[i][j]='0';
				else
					flip[i][j]='1';
			}
		}
		for(int i=0; i<5;i++){
			for(int j=0; j<5;j++){
				System.out.print(flip[i][j]);
			}
			System.out.println();
		}
	}
}

These are answers for Programming In Java NPTEL Week 9 Assignment

All Weeks of Programming In Java: https://progies.in/answers/nptel/programming-in-java

More NPTEL Solutions: https://progies.in/answers/nptel


* The material and content uploaded on this website are for general information and reference purposes only. Please do it by your own first. COPYING MATERIALS IS STRICTLY PROHIBITED.


More from PROGIEZ

These are answers for Programming In Java NPTEL Week 9 Assignment