wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

Product Discount Calculator

profile
Vaishnavi Nayak
Sep 07, 2025
0 Likes
0 Discussions
1 Reads

The program performs the following key functions:

Takes user input for three product prices, each greater than 0.

Validates that the entered prices are numbers and greater than zero.

Calculates the total bill amount by summing the three product prices.

Applies a discount of 10% on the total amount.

Calculates the final payable amount after discount.


Displays the results:

Price of each product

Total amount before discount

Discount applied

Final payable amount (formatted to 2 decimal places)


Program:


;; Product Discount Calculator


(defun calculate-discount (average total)

"Return discount rate and final amount after discount."

(let ((discount-rate

(cond ((>= average 1000) 0.20)

((>= average 500) 0.10)

((>= average 100) 0.05)

(t 0.0))))

(values discount-rate (* total (- 1 discount-rate)))))


(defun get-valid-price (prompt)

"Ask user for a valid product price (number > 0)."

(format t "~%~A (Enter price > 0): " prompt)

(let ((price (read)))

(if (and (numberp price) (> price 0))

price

(progn

(format t "Invalid price! Please enter a number greater than 0.~%")

(get-valid-price prompt)))))


(defun main ()

(format t "~%Welcome to Product Discount Calculator~%")


;; Get three product prices

(let* ((p1 (get-valid-price "Enter price of Product 1"))

(p2 (get-valid-price "Enter price of Product 2"))

(p3 (get-valid-price "Enter price of Product 3"))

(total (+ p1 p2 p3))

(average (/ total 3.0)))


;; Properly bind discount-rate and final-amount

(multiple-value-bind (discount-rate final-amount)

(calculate-discount average total)


;; Display results

(format t "~%Results:~%")

(format t "Product 1 Price: ~,2F~%" p1)

(format t "Product 2 Price: ~,2F~%" p2)

(format t "Product 3 Price: ~,2F~%" p3)

(format t "Total Price: ~,2F~%" total)

(format t "Average Price: ~,2F~%" average)

(format t "Discount Applied: ~,2F%%~%" (* discount-rate 100))

(format t "Final Payable Amount: ~,2F~%" final-amount))))


;; Run the program

(main)


Output:


Comments ()


Sign in

Read Next

Service Catalogue Management

Blog banner

MAHAKAL LOK UJJAIN

Blog banner

Benefits of yoga and meditation

Blog banner

USPS mail

Blog banner

Fudgy Tahini Date Chocolate Bars

Blog banner

The Peephole

Blog banner

LEMON PICKLE SWEET AND MILD HOT

Blog banner

Self defence

Blog banner

Different types of e-commerce platforms or advantages and disadvantages

Blog banner

From Procrastinator to Performer: How to Beat the Last-Minute Rush

Blog banner

Linux Virtual Machine Process Scheduling

Blog banner

Practical Implementation of Client Server model using TCP/IP.

Blog banner

memory managment

Blog banner

Why Data Security Is Important

Blog banner

Mobile Security

Blog banner

Cache Memory

Blog banner

Linux

Blog banner

IT RISK

Blog banner

Is Social Media Marketing The Next Wave Of Digital Marketing?

Blog banner

SECURITY TOOLS

Blog banner

Record Blocking

Blog banner

IT GOVERNANCE

Blog banner

Subnet Masking

Blog banner

VIRUS

Blog banner

semaphores

Blog banner

Uniprocessor and Types

Blog banner

Yahoo! mail

Blog banner

Virtual Memory

Blog banner

Technological Advancement

Blog banner

Blog name

Blog banner

The Art Of Getting What You Want In Life....

Blog banner

OS Evolution Achievements

Blog banner

Hot Mango Pickle (Methiyu)

Blog banner

Pilgrimage at LOC: A privilege and a paradox

Blog banner

Risk mitigation and management

Blog banner

Why Progressive Web Apps (PWAs) Are Replacing Traditional Websites

Blog banner

Decrypting Cryptocurrency: Tracing Transactions in Cyber Investigations

Blog banner

Operating system

Blog banner

My favourite food

Blog banner

M commerce

Blog banner

The Benefits of Practical Life Activities in Preschool

Blog banner

Microsoft Windows Overview

Blog banner