wisemonkeys logo
FeedNotificationProfileManage Forms
FeedNotificationSearchSign in
wisemonkeys logo

Blogs

Product Discount Calculator

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

Disk scheduling

Blog banner

AOL Mail

Blog banner

Stay Close To Adventure In Arcadia, Florida At Oak Tree Hotel

Blog banner

5 Things I As A Dentist Would Never Do (And What You Can Learn From It)

Blog banner

The Impact of Tolerances and Wall Thickness on Pipeline Integrity

Blog banner

TRAIN TRAVELING

Blog banner

Python as a tool for Data science task & project

Blog banner

LINUX

Blog banner

Modern Operating System

Blog banner

POVERTY:Causes and solutions to problems

Blog banner

Building Confidence in Children Through Daily Routines and Play

Blog banner

E-learning in today's world

Blog banner

Pipedrive

Blog banner

Embracing the power of Modern Machine UNIX

Blog banner

Memory Management

Blog banner

Guidelines for a Low sodium Diet.

Blog banner

LTE Technology

Blog banner

File sharing

Blog banner

Cloud Computing: Threats and Vulnerabilities

Blog banner

Paging

Blog banner

Socket Programming in Java

Blog banner

Riddhi Miyani 53003220140

Blog banner

Security in Operating Systems

Blog banner

Process states

Blog banner

Fitness regime by Deepesh

Blog banner

Topic: Sessions in Operating system

Blog banner

Cache memory

Blog banner

MQTT (MQ Telemetry Transport) in Data Science

Blog banner

OPERATING SYSTEM

Blog banner

How Schools Can Reduce Exam Stress in Students?

Blog banner

NETSUITE

Blog banner

Virtualisation

Blog banner

IO Buffers

Blog banner

Virtual Machine

Blog banner

Affiliate Marketing V/S Influencer Marketing

Blog banner

Exploring Virtual Machines and Computer Forensic Validation Tools

Blog banner

Importance of Network Security Risk

Blog banner

Data Mining

Blog banner

26/11 The Black Day Of Mumbai

Blog banner

Memory Management - operating system

Blog banner

Navigation With Indian Constellation(NavIC) by ISRO in Geographic Information Systems

Blog banner

What your Favorite colour says about You?

Blog banner