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

To travel is to live

Blog banner

Use case of K-means clustering

Blog banner

Python as a tool for data analysis

Blog banner

Quality check in IT services

Blog banner

12 Principles of Animation

Blog banner

Processes: Process Description and Control.

Blog banner

Data-Driven Prediction of Virtual Item Prices in Online Games

Blog banner

Security in Cloud Computing Environment using cryptography - Rushabh Modi

Blog banner

Travelling blog

Blog banner

Why we fail after giving 100% ?

Blog banner

Simple AI Symptom Diagnosis Using LISP – Rule-Based Expert System

Blog banner

BIRYANI ! The history you never knew about

Blog banner

DATA BREACH CAUSES CHALLENGES PREVENTION AND FUTURE DIRECTIONS

Blog banner

Beatbox

Blog banner

Super Garlicky Tomato Soup with Smashed White Beans

Blog banner

OS Assignment 3

Blog banner

Security in Cloud Computing

Blog banner

Privacy in Social Media and Online Services

Blog banner

Tea, Coffee, Red Wine, and Teeth: A Stain Survival Guide

Blog banner

Concurrency management in operating systems

Blog banner

Data Security and Data Privacy in Data Science

Blog banner

EVOLUTION OF THE MIRCOPROCESSOR

Blog banner

GIS Mapping

Blog banner

10 Reasons to Date a South Indian Girl

Blog banner

Deadlock Prevention

Blog banner

AN EVENT-BASED DIGITAL FORENSIC INVESTIGATION

Blog banner

Improving defences Proxy Device(defense in depth)

Blog banner

Blockchain uses and use cases

Blog banner

Utilizing Data-Hiding and Retrieval Techniques in Cyber Forensics

Blog banner

LIMITED EDITION

Blog banner

Clarizen

Blog banner

How to tie a Tie

Blog banner

Instagram

Blog banner

social media issue

Blog banner

clock

Blog banner

About myself

Blog banner

Memory Management

Blog banner

Revolutionary AI Tool: ChatGPT

Blog banner

Flipkart

Blog banner

Demystifying Cryptography: A Beginner's Guide

Blog banner

What is E-commerce

Blog banner

Types of Threads

Blog banner