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

SECURITY TOOLS

Blog banner

The art of being alone

Blog banner

Process in OS

Blog banner

Fudgy Tahini Date Chocolate Bars

Blog banner

Dove’s Real Beauty Campaign- Case Study

Blog banner

Article on team management software

Blog banner

Traditional Unix System

Blog banner

Every body is beautiful

Blog banner

semaphores

Blog banner

BUFFER OVERFLOW_142

Blog banner

E-mail security

Blog banner

Guidelines for a low sodium diet.

Blog banner

Policies for Service Transition

Blog banner

Instagram

Blog banner

THREADS (assignment 1)

Blog banner

Harsh Rathod

Blog banner

Session Vulnerabilities

Blog banner

Multiple processor scheduling

Blog banner

Process, process creation and process termination

Blog banner

Platonic Solids

Blog banner

Assignment 2

Blog banner

OPERATING SYSTEM OBJECTIVES AND FUNCTIONS

Blog banner

How College Events Build Real-world Skills You Can’t Learn From Textbooks

Blog banner

Study of Backdoor and Trojan tools

Blog banner

Why Data Security Is Important

Blog banner

What is process

Blog banner

RAID

Blog banner

Risk factors in service transistion

Blog banner

Unlocking the Secrets: Basic Operations of Computer Forensic Laboratories

Blog banner

MOVEMBER

Blog banner

Cache memory

Blog banner

Next time you click on "Remind me later", think twice!

Blog banner

Types of threads

Blog banner

Evolution of the Microprocessor ~ Aditya Pai

Blog banner

Smartsheet

Blog banner

Web browser forensics:Tools,Evidence collection and analysis

Blog banner

IS CONVERTING AMBITION INTO PROFESSION?

Blog banner

Process Description

Blog banner

Deadlock

Blog banner

File management

Blog banner

Survey of Which Movies Types people are Prefer to Watch in India.

Blog banner

Paginng In OS

Blog banner