0% found this document useful (0 votes)
4 views

Lab Record Notes Code

The document contains multiple C# programs demonstrating various concepts such as student eligibility calculation, inventory management, arithmetic operations, shape area calculations, employee leave management, user-defined exceptions, and bank account operations. Each program includes classes, methods, and user interactions to illustrate the functionality. The programs showcase object-oriented programming principles, including inheritance, encapsulation, and exception handling.

Uploaded by

lhemachandran908
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Lab Record Notes Code

The document contains multiple C# programs demonstrating various concepts such as student eligibility calculation, inventory management, arithmetic operations, shape area calculations, employee leave management, user-defined exceptions, and bank account operations. Each program includes classes, methods, and user interactions to illustrate the functionality. The programs showcase object-oriented programming principles, including inheritance, encapsulation, and exception handling.

Uploaded by

lhemachandran908
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

PROGRAM:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication6

public class student

public string name;

public int In1, In2, IN3, Attendance;

public int Internalmark1, Internalmark2, Internalmark3;

public bool IsEligibleforexam;

public int m1, m2, m3, tot, avg;

public void calculateEligibility()

if (Attendance >= 75)

IsEligibleforexam = true;

else

IsEligibleforexam = false;

}
public void total()

Console.WriteLine("\n enter mark1:");

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

Console.WriteLine("\n enter mark2:");

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

Console.WriteLine("\n enter mark3:");

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

tot = m1 + m2 + m3 / 3;

Internalmark1 = m1 + In1;

Internalmark2 = m2 + In2;

Internalmark3 = m3 + IN3;

Console.WriteLine("\n total marks" + tot + "/300");

if (Internalmark1 >= 40)

Console.WriteLine("subject1:pass");

else

Console.WriteLine("subject1:fail");

if (Internalmark2 >= 40)


{

Console.WriteLine("subject2:pass");

else

Console.WriteLine("subject2:fail");

if (Internalmark3 >= 40)

Console.WriteLine("subject3:pass");

else

Console.WriteLine("subject3:fail");

Console.WriteLine("\n*** OVER ALL REPORT ***");

if (m1 >= 40 && m2 >= 40 && m3 >= 40)

Console.WriteLine("pass");

else

Console.WriteLine("fail");

}
}

internal class program

static void Main(string[] args)

student student = new student();

Console.WriteLine("*** enter student name");

student.name = (Console.ReadLine());

student.In1 = GetValidateMark("enter 1st INTERNAL ASSESSMENT(out of 25):",


25);

student.In2 = GetValidateMark("enter 2rd INTERNAL ASSESSMENT(out of 25):",


25);

student.IN3 = GetValidateMark("enter 3rd INTERNAL ASSESSMENT(out of 25):",


25);

student.Attendance = GetValidateMark("enter Attendance(out of 100):", 100);

student.calculateEligibility();

Console.WriteLine("*** STUDENT MARKSHEET AND EXAMINATION REPORT***");

if (student.IsEligibleforexam)

student.total();

else

Console.WriteLine("Is not eligible for exam");

Console.ReadLine();

}
static int GetValidateMark(string prompt, int maxMark)

int mark;

do

Console.WriteLine(prompt);

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

if (mark < 0 || mark > maxMark)

Console.WriteLine("Invaild input.please enter a value b/w 0 and " + maxMark);

} while (mark < 0 || mark > maxMark);

return mark;

}
OUTPUT:
PROGRAM:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

class Item

public int ID { get; set; }

public string Name { get; set; }

public double Price { get; set; }

public int Quantity { get; set; }

public Item(int id, string name, double price, int quantity)

ID = id;

Name = name;

Price = price;

Quantity = quantity;

public virtual void Display()

{
Console.WriteLine("ID: " + ID + ", Name: " + Name + ", Price: " + Price + ",
Quantity: " + Quantity);

class PerishableItem : Item

public string ExpiryDate { get; set; }

public PerishableItem(int id, string name, double price, int quantity, string expiryDate)

: base(id, name, price, quantity)

ExpiryDate = expiryDate;

public override void Display()

base.Display();

Console.WriteLine("Expiry Date: " + ExpiryDate);

class NonPerishableItem : Item

public string Manufacturer { get; set; }

public NonPerishableItem(int id, string name, double price, int quantity, string
manufacturer) : base(id, name, price, quantity)
{

Manufacturer = manufacturer;

public override void Display()

base.Display();

Console.WriteLine("Manufacturer: " + Manufacturer);

class Inventory

private List<Item> Items = new List<Item>();

public void AddItem(Item item)

Items.Add(item);

public void RemoveItem(int id)

Items.RemoveAll(item => item.ID == id);

public void DisplayInventory()

{
foreach (var item in Items)

item.Display();

Console.WriteLine();

class Program

static void Main()

Inventory inventory = new Inventory();

PerishableItem milk = new PerishableItem(1, "Milk", 7.99, 10, "25-03-2025");

NonPerishableItem rice = new NonPerishableItem(2, "Rice", 9.99, 50, "Best


RiceCo");

inventory.AddItem(milk);

inventory.AddItem(rice);

Console.WriteLine("Initial Inventory:");

inventory.DisplayInventory();

inventory.RemoveItem(1);

Console.WriteLine("After removing item with ID 1:");

inventory.DisplayInventory();
Console.WriteLine("Press any key to close this window...");

Console.ReadKey();

}
OUTPUT:
PROGRAM:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ArithmeticCalc

public class Calculator

// Method overloading for different arithmetic operations

public int Add(int a, int b)

return a + b;

public double Add(double a, double b)

return a + b;

public int Subtract(int a, int b)

return a - b;

}
public double Subtract(double a, double b)

return a - b;

public int Multiply(int a, int b)

return a * b;

public double Multiply(double a, double b)

return a * b;

public int Divide(int a, int b)

if (b == 0)

throw new DivideByZeroException("Cannot divide by zero.");

return a / b;

public double Divide(double a, double b)

if (b == 0.0)
{

throw new DivideByZeroException("Cannot divide by zero.");

return a / b;

// Indexer to access and store the last 10 calculation results

private double[] history = new double[10];

private int historyIndex = 0;

public double this[int index]

get

if (index >= 0 && index < history.Length)

return history[(historyIndex - 1 - index + history.Length) % history.Length];

throw new IndexOutOfRangeException("History index out of range.");

private set

history[historyIndex % history.Length] = value;

historyIndex++;

}
private void StoreResult(double result)

this[0] = result;

public static void Main(string[] args)

Calculator calc = new Calculator();

while (true)

Console.WriteLine("Enter an operation (+, -, *, /, history, exit):");

string operation = Console.ReadLine();

if (operation.ToLower() == "exit")

break;

else if (operation.ToLower() == "history")

Console.WriteLine("Calculation History:");

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

Console.WriteLine("Result {i + 1}:" + calc[i]);

continue;
}

Console.WriteLine("Enter the first number:");

double num1;

if (!double.TryParse(Console.ReadLine(), out num1))

Console.WriteLine("Invalid input for the first number.");

continue;

double num2;

Console.WriteLine("Enter the second number:");

if (!double.TryParse(Console.ReadLine(), out num2))

Console.WriteLine("Invalid input for the second number.");

continue;

double result = 0;

try

switch (operation)

case "+":

result = calc.Add(num1, num2); // Compile-time polymorphism in action

break;
case "-":

result = calc.Subtract(num1, num2);

break;

case "*":

result = calc.Multiply(num1, num2);

break;

case "/":

result = calc.Divide(num1, num2);

break;

default:

Console.WriteLine("Invalid operation.");

continue;

Console.WriteLine("Result:" + result);

calc.StoreResult(result); // Store the result in history

catch (DivideByZeroException ex)

Console.WriteLine(ex.Message);

}
OUTPUT:
PROGRAM:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace AreaOfShapes

public abstract class Shape

public abstract double Area { get; }

public virtual void DisplayInfo()

Console.WriteLine("Shape:" + GetType().Name);

Console.WriteLine("Area: " + Area.ToString("F2"));

public class Rectangle : Shape

public double Length { get; set; }

public double Width { get; set; }

public Rectangle(double length, double width)

Length = length;
Width = width;

public override double Area

get { return Length * Width; }

public override void DisplayInfo()

base.DisplayInfo();

Console.WriteLine("Length:" + Length);

Console.WriteLine("Width:" + Width);

public class Circle : Shape

public double Radius { get; set; }

public Circle(double radius)

Radius = radius;

}
public override double Area

get { return Math.PI * Radius * Radius; }

// Override the DisplayInfo method

public override void DisplayInfo()

base.DisplayInfo();

Console.WriteLine("Radius:" + Radius);

public class Triangle : Shape

// Properties specific to Triangle

public double Base { get; set; }

public double Height { get; set; }

public Triangle(double baseValue, double height)

Base = baseValue;

Height = height;

public override double Area

get { return 0.5 * Base * Height; }

}
public override void DisplayInfo()

base.DisplayInfo();

Console.WriteLine("Base:" + Base);

Console.WriteLine("Height:" + Height);

public class ShapeCalculator

public static void Main(string[] args)

List<Shape> shapes = new List<Shape>();

shapes.Add(new Rectangle(5, 10));

shapes.Add(new Circle(7));

shapes.Add(new Triangle(8, 6));

Console.WriteLine("AREA OF SHAPES");

foreach (Shape shape in shapes)

Console.WriteLine("--------------------");

shape.DisplayInfo();

Console.ReadKey();

}
OUTPUT:
PROGRAM:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace EmployeeLeaveDelegate

public delegate bool LeaveApprovalDelegate(Employee emp, int requestedDays);

public class Employee

public int EmpID { get; set; }

public string Name { get; set; }

public int LeaveBalance { get; set; }

public Employee(int id, string name, int leaveBalance)

EmpID = id;

Name = name;

LeaveBalance = leaveBalance;

public class LeaveManager

{
public void ApplyLeave(Employee emp, int days, LeaveApprovalDelegate
approvalDelegate)

Console.WriteLine("\nLeave Request: " + emp.Name + " (ID: " + emp.EmpID + ")


requested " + days + " day(s) leave.");

if (approvalDelegate(emp, days))

emp.LeaveBalance -= days;

Console.WriteLine("Leave Approved. Remaining Leave Balance: " +


emp.LeaveBalance);

else

Console.WriteLine("Leave Rejected due to insufficient leave balance.");

class Program

static bool CheckLeaveEligibility(Employee emp, int days)

return emp.LeaveBalance >= days;

static void Main(string[] args)

{
Console.WriteLine("=== Employee Leave Application ===");

LeaveManager manager = new LeaveManager();

for (int i = 1; i <= 5; i++)

Console.WriteLine("\n--- Employee " + i + " ---");

Console.Write("Enter Employee ID: ");

int empId = Convert.ToInt32(Console.ReadLine());

Console.Write("Enter Employee Name: ");

string empName = Console.ReadLine();

int leaveBalance = 5; // default leave balance

Employee emp = new Employee(empId, empName, leaveBalance);

Console.Write("Enter number of leave days to apply: ");

int days = Convert.ToInt32(Console.ReadLine());

manager.ApplyLeave(emp, days, newLeaveApprovalDelegate(CheckLeaveEligibility));

Console.WriteLine("\nAll employee leave requests processed.");

Console.ReadLine();

}}}
OUTPUT:
PROGRAM:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace UserDefinedException

// Define the user-defined exception

public class LowAttendanceException : Exception

public LowAttendanceException(string message)

: base(message)

class Program

static void Main(string[] args)

try

// Input student details

Console.Write("Enter Student Name: ");

string studentName = Console.ReadLine();


Console.Write("Enter Total Classes Held: ");

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

Console.Write("Enter Classes Attended by Student: ");

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

// Calculate attendance percentage

double attendancePercentage = (attendedClasses / (double)totalClasses) * 100;

Console.WriteLine("\nAttendance Percentage: " + attendancePercentage.ToString("F2") +


"%");

// Check eligibility

if (attendancePercentage < 75)

throw new LowAttendanceException("Student is not eligible to write the exam


due to low attendance.");

Console.WriteLine("Student is eligible to write the exam.");

catch (LowAttendanceException ex)

Console.WriteLine("Exception: " + ex.Message);

catch (FormatException)

Console.WriteLine("Please enter valid numeric input.");

}
catch (Exception ex)

Console.WriteLine("An error occurred: " + ex.Message);

Console.WriteLine("\nPress any key to exit");

Console.ReadKey();

}
OUTPUT:
PROGRAM:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading;

class BankAccount

private decimal balance;

private Mutex mutex = new Mutex();

public BankAccount(decimal initialBalance)

balance = initialBalance;

public void Deposit(decimal amount)

mutex.WaitOne();

try

balance += amount;

Console.WriteLine("Deposited: " + amount + ". New balance: " + balance);

finally

{
mutex.ReleaseMutex();

public void Withdraw(decimal amount)

mutex.WaitOne();

try

if (balance >= amount)

balance -= amount;

Console.WriteLine("Withdrew: " + amount + ". New balance: " + balance);

else

Console.WriteLine("Insufficient funds to withdraw " + amount + ". Current


balance: " + balance);

finally

mutex.ReleaseMutex();

public decimal GetBalance()


{

mutex.WaitOne();

try

return balance;

finally

mutex.ReleaseMutex();

class Program

static void Main(string[] args)

BankAccount account = new BankAccount(1000m);

while (true)

Console.WriteLine("Enter a command: 'deposit', 'withdraw', 'balance', or 'exit'


to quit.");

string command = Console.ReadLine().ToLower();

if (command == "exit")

break;
}

else if (command == "deposit")

Console.Write("Enter the amount to deposit: ");

decimal amount;

if (decimal.TryParse(Console.ReadLine(), out amount))

Thread depositThread = new Thread(() => account.Deposit(amount));

depositThread.Start();

depositThread.Join();

Console.WriteLine("Current balance: " + account.GetBalance());

else

Console.WriteLine("Invalid amount. Please try again.");

else if (command == "withdraw")

Console.Write("Enter the amount to withdraw: ");

decimal amount;

if (decimal.TryParse(Console.ReadLine(), out amount))

Thread withdrawThread = new Thread(() => account.Withdraw(amount));

withdrawThread.Start();

withdrawThread.Join();

Console.WriteLine("Current balance: " + account.GetBalance());


}

else

Console.WriteLine("Invalid amount. Please try again.");

else if (command == "balance")

Console.WriteLine("Current balance: " + account.GetBalance());

else

Console.WriteLine("Unknown command. Please try again.");

Console.WriteLine("Exiting program.");

}
OUTPUT:
PROGRAM:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace UOperatorOverLoading

class Calculator

public int number1, number2;

public Calculator(int num1, int num2)

number1 = num1;

number2 = num2;

public static Calculator operator --(Calculator c1)

c1.number1 = c1.number1 - 2;

c1.number2 = c1.number2 - 2;

return c1;

public static Calculator operator ++(Calculator c2)

{
c2.number1 = c2.number1 + 2;

c2.number2 = c2.number2 + 2;

return c2;

public void Print()

Console.WriteLine("Number1=" + number1);

Console.WriteLine("Number2=" + number2);

}
OUTPUT:
PROGRAM:

using System;

namespace ComplexNumberAddition

class Complex

public double Real { get; set; }

public double Imaginary { get; set; }

public Complex(double real, double imaginary)

Real = real;

Imaginary = imaginary;

public static Complex operator +(Complex c1, Complex c2)

return new Complex(c1.Real + c2.Real, c1.Imaginary + c2.Imaginary);

public override string ToString()

return Real + " + " + Imaginary + "i";

class Program
{

static void Main(string[] args)

Console.WriteLine("Enter real part of first complex number:");

double real1 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Enter imaginary part of first complex number:");

double imaginary1 = Convert.ToDouble(Console.ReadLine());

Complex num1 = new Complex(real1, imaginary1);

Console.WriteLine("Enter real part of second complex number:");

double real2 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("Enter imaginary part of second complex number:");

double imaginary2 = Convert.ToDouble(Console.ReadLine());

Complex num2 = new Complex(real2, imaginary2);

Complex result = num1 + num2;

Console.WriteLine("First complex number: " + num1);

Console.WriteLine("Second complex number: " + num2);

Console.WriteLine("Sum: " + result);

Console.WriteLine("\nPress Enter to Exit...");

Console.ReadLine();

}}
OUTPUT:

You might also like