-
January 23rd, 2013, 01:45 PM
#1
Issue with Receipt Generator Application
Hey everyone,
I'm having issues priming the with the GetPrices function within my receipt generator program. Essentially, I am only able to enter in a single numerical value for the price. I release it's because I have a logic error within my do-while loop, but I'm having trouble converting that logic into a priming loop form.
Ideally, I would like to input a series of numbers, each followed by a bool prompt after each entry asking "Do you want to input another value?" When the entry is finished, the application will generate a receipt that lists subtotal, tax, and the grand total.
Essentially, the logic is as follows:
1. Display price prompt
2. Get price information
3. Display continue prompt
4. Get continue answer
5. Loop to #1 while continue answer is "Y" or "y"
My issue is that I can't figure out how to implement steps 4 and 5 within my program. I would greatly appreciate your help, as I am a complete newbie when it comes to C#.
Thanks in advance!
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ProgramName
{
class Program
{
static void Main(string[] args)
{
List<double> prices;
double subtotal;
double tax;
double taxValue = 0.09; //the rate of tax to be paid; in this case, 9%
double total;
prices = GetPrices(); //capitalize all words in functions; variables start with a lowercase
subtotal = CalcSubtotal(prices);
tax = CalcTax(subtotal, taxValue);
total = Total(subtotal, tax);
PrintReceipt(prices, subtotal, tax, total);
}
static List<double> GetPrices()
{
List<double> prices = new List<double>(); //creates an array for us, so all we have to do is add and subtract
//To Do: Get Prices
string buffer;
double price;
Console.WriteLine("Please enter the price of the item.");
do
{
buffer = Console.ReadLine();
if (double.TryParse(buffer, out price))
{
prices.Add(price);
}
else
{
Console.WriteLine("Incorrect data was input. Please enter the price as a numerical value.");
buffer = Console.ReadLine();
}
Console.WriteLine("Do you wish to add more items? Please type either Y or N and press the enter key.");
{
if (Console.ReadLine("Y" || "y")); //my latest additions here
{
prices.Add(price);
}
else if (Console.ReadLine("N" || "n"));
{
Console.WriteLine("Processing your receipt.");
}
}
while (buffer == "Y" || buffer == "y");
return prices;
}
static double CalcSubtotal(List<double> prices)
{
double subtotal = 0.00;
foreach (double temp in prices)
{
subtotal += temp;
}
return subtotal;
//function that calculates the subtotal by taking
}
static double Total (double subtotal, double tax)
{
double total = 0.00;
total=subtotal + tax;
return total;
}
static double CalcTax(double subtotal, double taxValue)
{
double tax;
tax = subtotal * taxValue;
return tax;
}
static void PrintReceipt(List<double> prices, double subtotal, double total, double tax)
{
Console.WriteLine("Welcome to our store!");
{
foreach (double temp in prices)
{
Console.WriteLine(temp);
}
}
Console.WriteLine("The subtotal is..." + subtotal);
Console.WriteLine("The amount of tax to be paid is..."+ tax);
Console.WriteLine("The grand total is..." + total);
Console.WriteLine("Thank you for shopping with us!");
}
}
}
-
January 24th, 2013, 04:02 PM
#2
Re: Issue with Receipt Generator Application
Generally, the way I've seen this work is as follows:
1. Display price prompt
2. Get price information
3. If price information is end of data code continue else goto 1
4. Process and print recript
You just have to decide what will be the end of data code to pass when you are finished entering price data.
Last edited by CGKevin; January 24th, 2013 at 04:04 PM.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|