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: