department of computer science · 1 department of computer science c# programming lab (ucs15603)...

50
1 Department of Computer Science C# PROGRAMMING LAB (UCS15603) LAB MANUAL For B.Sc Degree Programme 2015 Regulation Academic Year (2018 2019) - Sixth Semester Prepared By Approved By S. NITHYA HOD U. UDAYAKUMAR

Upload: others

Post on 12-Mar-2020

24 views

Category:

Documents


0 download

TRANSCRIPT

1

Department of Computer Science

C# PROGRAMMING LAB

(UCS15603)

LAB MANUAL

For

B.Sc Degree Programme – 2015 Regulation

Academic Year (2018 – 2019) - Sixth Semester

Prepared By Approved By

S. NITHYA HOD

U. UDAYAKUMAR

2

Index

Sno Program Name

1 WRITE A PROGRAM IN C# TO CHECK WHETHER A NUMBER IS

PALINDROME OR NOT.

2 WRITE A PROGRAM IN C# TO DEMONSTRATE COMMAND LINE

ARGUMENTS PROCESSING

3 WRITE A PROGRAM IN C# TO FIND THE ROOTS OF QUADRATIC

EQUATION.

4 WRITE A PROGRAM IN C# TO DEMONSTRATE BOXING AND

UNBOXING.

5 WRITE A PROGRAM IN C# TO IMPLEMENT STACK OPERATIONS

6 WRITE A PROGRAM TO DEMONSTRATE OPERATOR OVERLOADING.

7 WRITE A PROGRAM IN C# TO FIND THE SECOND LARGEST

ELEMENT IN A SINGLE DIMENSIONAL ARRAY.

8 WRITE A PROGRAM IN C# TO MULTIPLY TO MATRICES USING

RECTANGULAR ARRAYS

9 FIND THE SUM OF ALL THE ELEMENTS PRESENT IN A JAGGED

ARRAY OF 3 INNER ARRAYS

10 WRITE A PROGRAM TO REVERSE A GIVEN STRING USING C#.

11 USING TRY, CATCH AND FINALLY BLOCKS WRITE A PROGRAM IN

C# TO DEMONSTRATE ERROR HANDLING.

12 DESIGN A SIMPLE CALCULATOR USING SWITCH STATEMENT IN C#.

13 DEMONSTRATE USE OF VIRTUAL AND OVERRIDE KEY WORDS IN

C# WITH A SIMPLE PROGRAM

14 IMPLEMENT LINKED LISTS IN C# USING THE EXISTING

COLLECTIONS NAME SPACE.

15 WRITE A PROGRAM TO DEMONSTRATE ABSTRACT CLASS AND

ABSTRACT METHODS IN C#.

16 WRITE A PROGRAM IN C# TO BUILD A CLASS WHICH IMPLEMENTS

AN INTERFACE WHICH ALREADY EXISTS.

17 WRITE A PROGRAM TO ILLUSTRATE THE USE OF DIFFERENT

PROPERTIES IN C#.

18 DEMONSTRATE ARRAYS OF INTERFACE TYPES WITH A C#

PROGRAM.

3

Exno: 1

WRITE A PROGRAM IN C# TO CHECK WHETHER A NUMBER IS PALINDROME

OR NOT.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Palindrome

{

class Program

{

static void Main(string[] args)

{

int num,temp;

int digit;

int reverse = 0;

Console.WriteLine("Enter a number");

num = int.Parse(Console.ReadLine());

temp=num;

while(num!=0)

{

digit = num % 10;

reverse = reverse * 10 + digit;

num=num /= 10;

}

4

Console.WriteLine("The reverse of the number is: {0}",reverse);

if (temp == reverse)

{

Console.WriteLine("This number is a palindrome!");

Console.ReadLine();

}

else

{

Console.WriteLine("This number is not a palindrome");

Console.ReadLine();

}

}

}

}

Output

5

Exno: 2

WRITE A PROGRAM IN C# TO DEMONSTRATE COMMAND LINE ARGUMENTS

PROCESSING

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Commandline1

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("\nNumber of CommadLine Arguments :" + args.Length);

Console.Write("\nCommandline Arguments Are :\t");

for (int i = 0; i < args.Length; i++)

{

Console.Write(args[i] + "\t");

}

Console.ReadLine();

}

}

}

Output

6

7

Exno: 3

WRITE A PROGRAM IN C# TO FIND THE ROOTS OF QUADRATIC EQUATION.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Quadratic

{

class Program

{

static void Main(string[] args)

{

float a, b, c;

double disc, deno, x1, x2;

Console.WriteLine("ENTER THE VALUES OF A,B,C...");

a = float.Parse(Console.ReadLine());

b = float.Parse(Console.ReadLine());

c = float.Parse(Console.ReadLine());

if (a == 0)

{

x1 = -c / b;

Console.WriteLine("The roots are Linear:", x1);

}

else

{

8

disc = (b * b) - (4 * a * c);

deno = 2 * a;

if (disc > 0)

{

Console.WriteLine("THE ROOTS ARE REAL AND DISTINCT ROOTS");

x1 = (-b / deno) + (Math.Sqrt(disc) / deno);

x2 = (-b / deno) - (Math.Sqrt(disc) / deno);

Console.WriteLine("THE ROOTS ARE... " + x1 + " and " + x2);

}

else if (disc == 0)

{

Console.WriteLine("THE ROOTS ARE REPEATED ROOTS");

x1 = -b / deno;

Console.WriteLine("THE ROOT IS...: " + x1);

}

else

{

Console.WriteLine("THE ROOTS ARE IMAGINARY ROOTS\n");

x1 = -b / deno;

x2 = ((Math.Sqrt((4 * a * c) - (b * b))) / deno);

Console.WriteLine("THE ROOT 1: " + x1 + "+i" + x2);

Console.WriteLine("THE ROOT 2:" + x1 + "-i" + x2);

}

}

Console.ReadLine();

9

}

}

}

Output

10

Exno:4

WRITE A PROGRAM IN C# TO DEMONSTRATE BOXING AND UNBOXING.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Boxing

{

class Program

{

static void Main(string[] args)

{

int m = 10;

object a = m; // boxing

try

{

Console.WriteLine("Value of m is:" + a);

object n = 20;

int b = (int)n; // attempt to unbox

Console.WriteLine("Value of n is:" + b);

System.Console.WriteLine("Unboxing OK.");

Console.ReadLine();

}

catch (System.InvalidCastException e)

{

11

System.Console.WriteLine("Error: Incorrect unboxing." + e.Message);

}

}

}

}

Output

12

Exno:5

WRITE A PROGRAM IN C# TO IMPLEMENT STACK OPERATIONS

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace stack

{

class Program

{

static void Main(string[] args)

{

int top = -1;

int[] s = new int[10];

Console.WriteLine("Enter The Size of The Stack");

int MAX = int.Parse(Console.ReadLine());

while (true)

{

Console.WriteLine("1.Push");

Console.WriteLine("2.Pop");

Console.WriteLine("3.Display");

Console.WriteLine("4.Exit");

Console.WriteLine("Enter your choice :");

int ch = int.Parse(Console.ReadLine());

switch (ch)

13

{

case 1:

if (top > MAX - 1)

Console.WriteLine("... Stack Overflow ...");

else

{

Console.WriteLine("Enter the item :");

int n = int.Parse(Console.ReadLine());

s[++top] = n;

}

break;

case 2:

if (top == -1)

Console.WriteLine(" ... Stack Underflow ...");

else

{

Console.WriteLine("Popped item :" + s[top--]);

}

break;

case 3:

if (top == -1)

Console.WriteLine("... Stack underflow ...");

else

{

Console.WriteLine("Elements in the stack");

14

for (int i = top; i >= 0; i--)

Console.WriteLine(s[i]);

}

break;

case 4:

return;

default:

Console.WriteLine("Wrong Choice");

break;

}

}

}

}

}

Output

15

Exno:6

WRITE A PROGRAM TO DEMONSTRATE OPERATOR OVERLOADING.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace OperatorOverloading

{

public struct addOpp

{

private double a;

public addOpp(double a)

{

this.a = a;

}

public override string ToString()

{

return string.Format("{0}", a);

}

static public addOpp operator +(addOpp lhs, addOpp rhs)

{

return new addOpp(lhs.a + rhs.a);

}

}

class Program

16

{

static void Main(string[] args)

{

Console.WriteLine("Enter Two Numbers");

addOpp c1 = new addOpp(double.Parse(Console.ReadLine()));

addOpp c2 = new addOpp(double.Parse(Console.ReadLine()));

addOpp c3 = c1 + c2;

Console.WriteLine("First Value is {0}", c1);

Console.WriteLine("Second Value is {0}", c2);

Console.WriteLine("Addition is {0}", c3);

Console.ReadLine();

}

}

}

Output

17

Exno:7

WRITE A PROGRAM IN C# TO FIND THE SECOND LARGEST ELEMENT IN A

SINGLE DIMENSIONAL ARRAY.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Largest

{

class Program

{

static void Main(string[] args)

{

int[] a = new int[10];

int i, j;

Console.WriteLine("Enter the No. of Elements");

int n = int.Parse(Console.ReadLine());

Console.WriteLine("Enter the Elements");

for (i = 0; i < n; i++)

{

a[i] = int.Parse(Console.ReadLine());

}

for (i = 0; i < n; i++)

for (j = 0; j < n - 1; j++)

{

18

if (a[j] < a[j + 1])

{

int temp = a[j];

a[j] = a[j + 1];

a[j + 1] = temp;

}

}

i = 1;

while (a[i] == a[0])

i++;

if (i >= n)

{

Console.WriteLine("Second Largest Element Does Not Exist");

Console.ReadLine();

}

else

{

Console.WriteLine("Second Largest Element is " + a[i]);

Console.ReadLine();

}

}

}

}

19

Output

20

Exno:8

WRITE A PROGRAM IN C# TO MULTIPLY TO MATRICES USING RECTANGULAR

ARRAYS

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Matrixmul

{

class MatrixMultiplication

{

int[,] a;

int[,] b;

int[,] c;

public int m1, n1, m2, n2;

public void ReadMatrix()

{

Console.WriteLine("\n Size of Matrix 1:");

Console.Write("\n Enter the number of rows in Matrix 1 :");

m1 = int.Parse(Console.ReadLine());

Console.Write("\n Enter the number of columns in Matrix 1 :");

n1 = int.Parse(Console.ReadLine());

a = new int[m1, n1];

Console.WriteLine("\n Size of Matrix 2 :");

Console.Write("\n Enter the number of rows in Matrix 2 :");

21

m2 = int.Parse(Console.ReadLine());

Console.Write("\n Enter the number of columns in Matrix 2 :");

n2 = int.Parse(Console.ReadLine());

b = new int[m2, n2];

if (n1 != m2)

{

Console.WriteLine("columns of A & Rows of B matrix are not equal");

Console.ReadLine();

Environment.Exit(0);

}

else

{

Console.WriteLine("\n Enter the elements of Matrix 1:");

for (int i = 0; i < m1; i++)

{

for (int j = 0; j < n1; j++)

{

a[i, j] = int.Parse(Console.ReadLine());

}

}

Console.WriteLine("\n Enter the elements of Matrix 2:");

for (int i = 0; i < m2; i++)

{

for (int j = 0; j < n2; j++)

{

22

b[i, j] = int.Parse(Console.ReadLine());

}

}

} }

public void PrintMatrix() {

Console.WriteLine("\n Matrix 1:");

for (int i = 0; i < m1; i++)

{

for (int j = 0; j < n1; j++)

{

Console.Write("\t" + a[i, j]);

}

Console.WriteLine();

}

Console.WriteLine("\n Matrix 2:");

for (int i = 0; i < m2; i++)

{

for (int j = 0; j < n2; j++)

{

Console.Write("\t" + b[i, j]);

}

Console.WriteLine();

}

Console.WriteLine("\n Resultant Matrix after multiplying:");

for (int i = 0; i < m1; i++)

23

{

for (int j = 0; j < n2; j++)

{

Console.Write("\t" + c[i, j]);

}

Console.WriteLine();

}

Console.ReadLine();

}

public void MultiplyMatrix()

{

c = new int[m1, n2];

for (int i = 0; i < m1; i++)

{

for (int j = 0; j < n2; j++)

{

c[i, j] = 0;

for (int k = 0; k < n1; k++)

c[i, j] = c[i, j] + a[i, k] * b[k, j];

}

}

}

}

class Program

{

24

static void Main(string[] args)

{

MatrixMultiplication MM = new MatrixMultiplication();

MM.ReadMatrix();

MM.MultiplyMatrix();

MM.PrintMatrix();

}

}

}

Output

25

Exno:9

FIND THE SUM OF ALL THE ELEMENTS PRESENT IN A JAGGED ARRAY OF 3

INNER ARRAYS

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Jaggedarray

{

class Program

{

static void Main(string[] args)

{

int[][] jarr = new int[3][];

int s = 0;

for (int i = 0; i < 3; i++)

{

Console.WriteLine("Enter the Size of the Array" +(i + 1));

int n = int.Parse(Console.ReadLine());

jarr[i] = new int[n];

Console.WriteLine("Enter the Values of Array " +(i + 1));

for (int j = 0; j < n; j++)

{

jarr[i][j] = int.Parse(Console.ReadLine());

s = s + jarr[i][j];

26

}

n = n + 0;

}

Console.WriteLine("Sum= " + s);

Console.ReadLine();

}

}

}

Output

27

Exno:10

WRITE A PROGRAM TO REVERSE A GIVEN STRING USING C#.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Reverse

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Enter the String :");

string a = Console.ReadLine();

int len = a.Length;

Console.Write("The Reverse of String is :");

for (int i = len - 1; i >= 0; i--)

{

Console.Write(a[i]);

}

Console.WriteLine();

Console.ReadLine();

}

}

}

28

Output

29

Exno:11

USING TRY, CATCH AND FINALLY BLOCKS WRITE A PROGRAM IN C# TO

DEMONSTRATE ERROR HANDLING.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace errorhandling

{

class Program

{

static void Main(string[] args)

{

int[] a = new int[3];

int n = args.Length;

try

{

if (n == 0)

{

int d = 10 / (n);

}

if (n == 1)

{

a[4] =6;

}

30

}

catch (IndexOutOfRangeException e)

{

Console.WriteLine("Exception"+e);

}

catch (DivideByZeroException e)

{

Console.WriteLine("DivideByZeroException"+e);

}

finally

{

Console.WriteLine("finally block :: End of Program");

}

Console.ReadLine();

}

}

}

Output

31

Exno:12

DESIGN A SIMPLE CALCULATOR USING SWITCH STATEMENT IN C#.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Simplecalculator

{

class Program

{

static void Main(string[] args)

{

float a, b;

int ch;

Console.Write("Enter The First No.: ");

a = float.Parse(Console.ReadLine());

Console.Write("\nEnter the Second No.: ");

b = float.Parse(Console.ReadLine());

while (true)

{

Console.WriteLine("===============================");

Console.WriteLine("1.Addition\n2.Subtraction\n3.Multiplication\n4.Division\n5.Moduler

Division\n6.Square\n7.Square Root\n8.Exit");

Console.WriteLine("===============================");

Console.Write("Enter your Choice : ");

32

ch = int.Parse(Console.ReadLine());

switch (ch)

{

case 1: Console.WriteLine("Addition :" + a + "+" + b + "=" + (a + b));

break;

case 2: Console.WriteLine("Subtraction :" + a + "-" + b + "=" + (a - b));

break;

case 3: Console.WriteLine("Multiplication :" + a + "*" + b + "=" + (a * b));

break;

case 4: Console.WriteLine("Division :" + a + "/" + b + "=" + (a / b));

break;

case 5: Console.WriteLine("Moduler Division:" + a + "%" + b + "=" + (a % b));

break;

case 6: Console.WriteLine("Square(" + a + ") =" + (a * a));

break;

case 7: Console.WriteLine("SquareRoot(" + a + ") =" + Math.Sqrt(a));

break;

default: Console.WriteLine("Invalid Input");

Environment.Exit(0);

break;

}

}

}

}

}

33

Output

34

Exno:13

DEMONSTRATE USE OF VIRTUAL AND OVERRIDE KEY WORDS IN C# WITH A

SIMPLE PROGRAM

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace VirtualKey

{

class person

{

protected string fname;

protected string lname;

public person(string fn, string ln)

{

fname = fn;

lname = ln;

}

public virtual void display()

{

Console.WriteLine("Person :" + fname + " " + lname);

}

}

class emp : person

{

35

public ushort year;

public emp(string fn, string ln, ushort yr)

: base(fn, ln)

{

year = yr;

}

public override void display()

{

Console.WriteLine("Employee :"+fname+" "+lname+" "+year);

}

}

class worker : person

{

public String company;

public worker(string fn, string ln, string c):base(fn, ln)

{

company=c;

}

public override void display()

{

Console.WriteLine("Worker :" + fname + " " + lname + " " +company);

}

}

class Program

{

36

static void Main(string[] args)

{

Console.WriteLine("\n\n*** VIRTUAL AND OVERRIDE KEYWORDS DEMO ***");

person p1 = new person("RAM", "KUMAR");

person p2 = new emp("RAM", "KUMAR",2012);

person p3 = new worker("RAM", "KUMAR","ABC TECH SOLS");

p1.display();

p2.display();

p3.display();

Console.ReadLine();

}

}

}

Output

37

Exno:14

IMPLEMENT LINKED LISTS IN C# USING THE EXISTING COLLECTIONS NAME

SPACE.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace linkedlist

{

class Program

{

static LinkedList<int> ll = new LinkedList<int>();

static LinkedListNode<int> node;

static void Main(string[] args)

{

Console.WriteLine(" LINKED LIST DEMO");

int ch, x;

Console.WriteLine("Linked List Operations");

Console.WriteLine("1.AddFirst\n2.AddLast\n3.RemoveFirst\n4.RemoveLast\n5.Remove

Specified\n6.Display\n7..Exit");

while (true)

{

Console.Write("Enter your Choice : ");

ch = int.Parse(Console.ReadLine());

switch (ch) {

case 1: Console.Write("Enter the Element to AddFirst : ");

38

x = int.Parse(Console.ReadLine());

ll.AddFirst(x);

display();

break;

case 2: Console.WriteLine("Enter the Element to AddLast : ");

x = int.Parse(Console.ReadLine());

ll.AddLast(x);

display();

break;

case 3:

if (ll.Count == 0)

{

Console.WriteLine("Nothing to Delete...!!!");

break;

}

else

{

Console.WriteLine("First Element Removed Successfully");

ll.RemoveFirst();

display();

break;

}

case 4: if (ll.Count == 0)

{

Console.WriteLine("Nothing to Delete...!!!");

39

break;

}

else

{

Console.WriteLine("Last Element Removed Successfully");

ll.RemoveLast();

display();

break;

}

case 5: if (ll.Count == 0)

{

Console.WriteLine("Nothing to Delete...!!!");

break;

}

else

{

Console.WriteLine("Enter the Element to Remove");

x = int.Parse(Console.ReadLine());

bool b=ll.Remove(x);

if (b == true)

{

Console.WriteLine("Element Removed Successfully");

display();

break;

}

40

else {

Console.WriteLine("Specified Node Does not Exist");

break;

}

}

case 6:

display();

break;

default: Environment.Exit(0);

break;

}

}

}

public static void display()

{

if (ll.Count == 0)

{

Console.WriteLine("Nothing to Display...!!!");

}

else

{

Console.Write("Elements in the List are:");

for (node = ll.First; node != null; node=node.Next)

Console.Write(node.Value+" ");

Console.WriteLine();

41

}

}

}

}

Output

42

Exno:15

WRITE A PROGRAM TO DEMONSTRATE ABSTRACT CLASS AND ABSTRACT

METHODS IN C#.

using System;

namespace TryCatch {

abstract class person {

protected string fname;

protected string lname;

public person(string fn, string ln) {

fname = fn;

lname = ln;

}

public abstract void display() {

Console.WriteLine("Person :" + fname + " " + lname);

}

}

class emp : person

{

public ushort year;

public emp(string fn, string ln, ushort yr)

: base(fn, ln) {

year = yr;

}

public override void display() {

Console.WriteLine("Employee :" + fname + " " + lname + " " + year);

43

}

}

class worker : person {

public String company;

public worker(string fn, string ln, string c)

: base(fn, ln)

{

company = c;

}

public override void display() {

Console.WriteLine("Worker :" + fname + " " + lname + " " + company);

}

}

class Program

{

static void Main(string[] args) {

Console.WriteLine("**ABSTRACT CLASS AND ABSTRACT METHODS DEMO **");

person p2 = new emp("RAM", "KUMAR", 2012);

person p3 = new worker("RAM", "KUMAR", "ABC TECH SOLS");

p2.display();

p3.display();

Console.ReadLine();

}

}

}

44

Output

45

Exno:16

WRITE A PROGRAM IN C# TO BUILD A CLASS WHICH IMPLEMENTS AN

INTERFACE WHICH ALREADY EXISTS.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Infc

{

class Point:ICloneable

{

public int x, y;

public Point(int x, int y) {

this.x = x;

this.y = y;

}

public object Clone() {

return new Point(this.x, this.y);

}

public override string ToString()

{

return string.Format("X= {0}; y={1}", x, y);

}

}

class Porgram{

46

static void Main(string[] args)

{

Point p1 =new Point(10,10);

Point p2 =(Point)p1.Clone();

p2.x = 20;

Console.WriteLine(p1);

Console.WriteLine(p2);

Console.Read();

}

}

}

Output

47

Exno:17

WRITE A PROGRAM TO ILLUSTRATE THE USE OF DIFFERENT PROPERTIES IN

C#.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Properties

{

class point

{

int getx, gety;

public int x

{

get { return getx; }

set { getx = value; }

}

public int y

{

get { return gety; }

set { gety = value; }

}

}

class Program

{

48

static void Main(string[] args)

{

point start = new point();

point end = new point();

start.x = 10;

start.y = 20;

end.x = 100;

end.y = 200;

Console.Write("\npoint 1 :" + start.x + " " + end.x);

Console.Write("\npoint 2 :" + start.y + " " + end.y);

Console.ReadLine();

}

}

}

Output

49

Exno:18

DEMONSTRATE ARRAYS OF INTERFACE TYPES WITH A C# PROGRAM.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace IntrDemo {

public interface Shape {

void area();

}

public class Circle : Shape {

public void area() {

Console.WriteLine("*** Calculating Area of Circle ***");

Console.Write("Enter the Radius:");

float r = float.Parse(Console.ReadLine());

Console.WriteLine("Area of Circle = " + (3.142 * r * r));

}

}

public class Square : Shape {

public void area() {

Console.WriteLine("*** Calculating Area of Square ***");

Console.Write("Enter the Length:");

float side = float.Parse(Console.ReadLine());

Console.WriteLine("Area of Square = " + (side * side));

}

50

}

class Program

{

static void Main(string[] args)

{

Console.WriteLine("*** Arrays of Inerface Demo ***");

Shape[] s = new Shape[2];

s[0] = new Circle();

s[1] = new Square();

for (int i = 0; i < s.Length; i++)

{

s[i].area();

Console.ReadLine();

}

}

}

}

Output