wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

Product Discount Calculator

profile
Vaishnavi Nayak
Sep 07, 2025
0 Likes
0 Discussions
2 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

?Why Does My Breath Still Smell After Brushing?

Blog banner

Instagram

Blog banner

USPS mail

Blog banner

Memory Management

Blog banner

Android Application Components and Activity Lifecycle

Blog banner

File Management system

Blog banner

DMZ: Your Secret Weapon for Data Security

Blog banner

A Survey of Anti-Forensic Techniques: Methods, Challenges, and Countermeasures

Blog banner

Blog on Smartsheet.

Blog banner

ART AND CULTURE OF VRINDAVAN

Blog banner

LiquidPlanner

Blog banner

 " Healing of Yoga "

Blog banner

Deadlock and Starvation

Blog banner

Process states

Blog banner

How to Find the Right Therapist For Me?

Blog banner

Introduction to Solidity Programming for Blockchain Development

Blog banner

Crypto tax evasion

Blog banner

Interrupts in OS

Blog banner

Malware Detection Techniques for Mobile Devices

Blog banner

How to grow followers on Instagram business account?

Blog banner

Cyber Security in Data Breaching

Blog banner

Memory Management

Blog banner

Can ChatGPT Answer All My Questions About Life?

Blog banner

Gamer life

Blog banner

Atlantis - The Lost Island.........

Blog banner

File management

Blog banner

E-Cash (Electronic Cash)

Blog banner

All you need to know about “Off-page SEO”

Blog banner

Geographic Information Systems(By aditi Unnikrishnan)

Blog banner

Partnership in Learning: How Parent Involvement Shapes a Child’s Early Education

Blog banner

File system

Blog banner

Coping with Diagnosis Shock

Blog banner

Women Empowerment

Blog banner

How Does Preschool Help Children Become Better Decision Makers?

Blog banner

The Power of Teamwork: Learning Collaboration Through Everyday Activities

Blog banner

A Weekend at Oak Tree Hotel: The Best Hotel Experience in Arcadia, Florida

Blog banner

Deadlock

Blog banner

A Short History of GIS

Blog banner

Introduction to GIS

Blog banner

File Management

Blog banner

Principles of Concurrency

Blog banner

Pro-Tips On How To Keep your Foot Healthy

Blog banner