viper2005 Δημοσ. 28 Ιανουαρίου 2015 Δημοσ. 28 Ιανουαρίου 2015 Λοιπον ο κωδικας ειναι αυτος και προφανως ειναι καπου λανθασμενος using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace GroceryStore { class Product { private const double foodVATRate = 0.12, otherVATRate =0.25; private string name; private int count; private double value; private double resultFood; public void Start() { //Read input ReadInput(); //Calculate tatal tax CalculateValues(); //Calculate totalNetPrice, total price PrintReceipt(); } private void ReadInput() { //1. Read name of the product ReadName(); //2. Read price without Vat ReadNetUnitPrice(); //3. Ask the user if the item is a food item ReadIfFoodItem(); //4. Read number of items (quantity) ReadCount(); } private String ReadName() { Console.Write("Enter Product NaME:"); name = Console.ReadLine(); return name; } private bool ReadIfFoodItem() { Console.Write("Food item (y/n): "); char responce = char.Parse(Console.ReadLine()); if ((responce == 'y') || (responce == 'Y')) return true; else return false; } private double ReadNetUnitPrice() { Console.WriteLine("Net unit price:"); value = Double.Parse(Console.ReadLine()); return value; } private int ReadCount() { Console.WriteLine("Count:"); count = int.Parse(Console.ReadLine()); return count; } private double CalculateValues() { //double resultFood; if (ReadIfFoodItem() == true ) { resultFood = ReadNetUnitPrice() * foodVATRate * ReadCount(); } else { resultFood = ReadNetUnitPrice() * otherVATRate * ReadCount(); } return resultFood; } private void PrintReceipt() { Console.WriteLine("++++++++++++++WELCOME TO APU's SUPERMARKET+++++++++++++"); Console.WriteLine("+++"); Console.WriteLine("+++ NAME OF THE PRODUCT\t\t\t" + name); Console.WriteLine("+++ Quantity\t\t\t"+ count); Console.WriteLine("+++ Unit Price\t\t\t" + value); if (ReadIfFoodItem() == true) { Console.WriteLine("+++ Including VAT at 12%" + resultFood); Console.WriteLine("+++ Food Item" ); } else { Console.WriteLine("+++ Including VAT at 25%" + resultFood); Console.WriteLine("+++ Food Item" ); } Console.WriteLine("+++ Total Amount to pay" + CalculateValues()); Console.WriteLine("++++++++++++++DO COME AGAIN!+++++++++++++++++++++"); } } } class product { static void Main(string[] args) { Console.Title = "APU's SUPERMARKET"; Product product = new Product(); product.Start(); Console.WriteLine("Press Enter to Exit!"); Console.ReadLine(); } } μου βγαζει σφαλμα στις τελευταιες σειρες: The type or namespace name 'Product' could not be found (are you missing a using directive or an assembly reference?) (CS0246) So η ερωτηση ειναι: πρεπει να γραψω τα products καπου ή εχει γινει κατι αλλο? υγ το τελικο αποτελεσμα θα πρεπει να ειναι καπως ετσι υγ2 προφανως και δεν ξερω τπτ απο προγραμματισμο... thanks
we_will_rise Δημοσ. 28 Ιανουαρίου 2015 Δημοσ. 28 Ιανουαρίου 2015 Την κλάση product (με μικρό p) την έχεις έξω απ'το namespace.
Tmark Δημοσ. 28 Ιανουαρίου 2015 Δημοσ. 28 Ιανουαρίου 2015 Ναι, βάλε την τελευταία αγκύλη πριν την class product στο τέλος του κώδικα.
viper2005 Δημοσ. 28 Ιανουαρίου 2015 Μέλος Δημοσ. 28 Ιανουαρίου 2015 Την κλάση product (με μικρό p) την έχεις έξω απ'το namespace. Ναι, βάλε την τελευταία αγκύλη πριν την class product στο τέλος του κώδικα. thanks για την βοηθεια αλλα καπου εχω κανει καποιο αλλο λαθος επειδη πηρα αυτο το μυνημα... ξαναποσταρω τον κωδικα using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace GroceryStore { class Product { private const double foodVATRate = 0.12, otherVATRate = 0.25; private string name; private int count; private double value; private double resultFood; public void Start() { //Read input ReadInput(); //Calculate tatal tax CalculateValues(); //Calculate totalNetPrice, total price PrintReceipt(); } private void ReadInput() { //1. Read name of the product ReadName(); //2. Read price without Vat ReadNetUnitPrice(); //3. Ask the user if the item is a food item ReadIfFoodItem(); //4. Read number of items (quantity) ReadCount(); } private String ReadName() { Console.Write("Enter Product NaME:"); name = Console.ReadLine(); return name; } private bool ReadIfFoodItem() { Console.Write("Food item (y/n): "); char responce = char.Parse(Console.ReadLine()); if ((responce == 'y') || (responce == 'Y')) return true; else return false; } private double ReadNetUnitPrice() { Console.WriteLine("Net unit price:"); value = Double.Parse(Console.ReadLine()); return value; } private int ReadCount() { Console.WriteLine("Count:"); count = int.Parse(Console.ReadLine()); return count; } private double CalculateValues() { //double resultFood; if (ReadIfFoodItem() == true) { resultFood = ReadNetUnitPrice() * foodVATRate * ReadCount(); } else { resultFood = ReadNetUnitPrice() * otherVATRate * ReadCount(); } return resultFood; } private void PrintReceipt() { Console.WriteLine("++++++++++++++WELCOME TO APU's SUPERMARKET+++++++++++++"); Console.WriteLine("+++"); Console.WriteLine("+++ NAME OF THE PRODUCT\t\t\t" + name); Console.WriteLine("+++ Quantity\t\t\t" + count); Console.WriteLine("+++ Unit Price\t\t\t" + value); if (ReadIfFoodItem() == true) { Console.WriteLine("+++ Including VAT at 12%" + resultFood); Console.WriteLine("+++ Food Item"); } else { Console.WriteLine("+++ Including VAT at 25%" + resultFood); Console.WriteLine("+++ Food Item"); } Console.WriteLine("+++ Total Amount to pay" + CalculateValues()); Console.WriteLine("++++++++++++++DO COME AGAIN!+++++++++++++++++++++"); } } class product { static void Main(string[] args) { Console.Title = "APU's SUPERMARKET"; Product product = new Product(); product.Start(); Console.WriteLine("Press Enter to Exit!"); Console.ReadLine(); } } } thanks
we_will_rise Δημοσ. 28 Ιανουαρίου 2015 Δημοσ. 28 Ιανουαρίου 2015 Έχεις αρκετά λαθάκια αλλά μπορείς σίγουρα να τα βρεις μόνος σου.. Είναι άσκηση απ'το distance course του MAH, σωστά; Διάβασε ξανά τα pdf και θα τα βρεις όλα Η μασημένη τροφή δε θα σε βοηθήσει.. 1
viper2005 Δημοσ. 28 Ιανουαρίου 2015 Μέλος Δημοσ. 28 Ιανουαρίου 2015 Ποιο μύνημα πήρες? για την λουπα και για τα 2 unit price αναφερομαι Έχεις αρκετά λαθάκια αλλά μπορείς σίγουρα να τα βρεις μόνος σου.. Είναι άσκηση απ'το distance course του MAH, σωστά; Διάβασε ξανά τα pdf και θα τα βρεις όλα Η μασημένη τροφή δε θα σε βοηθήσει.. τσου, επισης, δεν ζητησα να μου γραψει καποιος τον κωδικα αλλα να μου πει που ειναι τα λαθη...
we_will_rise Δημοσ. 28 Ιανουαρίου 2015 Δημοσ. 28 Ιανουαρίου 2015 τσου, επισης, δεν ζητησα να μου γραψει καποιος τον κωδικα αλλα να μου πει που ειναι τα λαθη... Α οκ, τότε.. Καταρχήν χρησιμοποιείς WriteLine αντί για Write, γι'αυτό πηγαίνει ο κέρσορας από κάτω. Κατά δεύτερον στην ReadInput διαβάζεις κάποιες τιμές τις οποίες δεν αποθηκεύεις σε καμία μεταβλητή σε κάποιες περιπτώσεις. Η λούπα παρατηρείται επειδή καλείς τις Read και την Calculate > 1 φορές.
viper2005 Δημοσ. 29 Ιανουαρίου 2015 Μέλος Δημοσ. 29 Ιανουαρίου 2015 okay κολλησα να υποθεσω οτι τα variable ua πρεπει να μπουν στο Main κομματι? κατι σαν και αυτο? namespace VariableDefinition { class Program { static void Main(string[] args) { short a; int b ; double c; /* actual initialization */ a = 10; b = 20; c = a + b; Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c); Console.ReadLine(); } } } thanks
we_will_rise Δημοσ. 29 Ιανουαρίου 2015 Δημοσ. 29 Ιανουαρίου 2015 Η Main είναι μια μέθοδος όπως όλες οι άλλες όσον αφορά στις μεταβλητές. Οι μεταβλητές που έχεις μέσα στην Main είναι τοπικές και τις βλέπει μόνο αυτή (εκτός αν τις στέλνεις ως arguments). Για να είναι απτή από περισσότερες μεθόδους η μεταβλητή σου πρέπει να την δηλώσεις έξω απ'την μέθοδο αλλά προφανώς μέσα στην κλάση. Κάπτως έτσι.. namespace VariableDefinition { class Program { short a; int b ; double c; static void Main(string[] args) { /* actual initialization */ a = 10; b = 20; c = a + b; Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c); Console.ReadLine(); } } } 1
albNik Δημοσ. 29 Ιανουαρίου 2015 Δημοσ. 29 Ιανουαρίου 2015 Η Main είναι μια μέθοδος όπως όλες οι άλλες όσον αφορά στις μεταβλητές. Οι μεταβλητές που έχεις μέσα στην Main είναι τοπικές και τις βλέπει μόνο αυτή (εκτός αν τις στέλνεις ως arguments). Για να είναι απτή από περισσότερες μεθόδους η μεταβλητή σου πρέπει να την δηλώσεις έξω απ'την μέθοδο αλλά προφανώς μέσα στην κλάση. Κάπτως έτσι.. namespace VariableDefinition { class Program { short a; int b ; double c; static void Main(string[] args) { /* actual initialization */ a = 10; b = 20; c = a + b; Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c); Console.ReadLine(); } } } Η Main ειναι static και δεν βλεπει τις non-static
we_will_rise Δημοσ. 29 Ιανουαρίου 2015 Δημοσ. 29 Ιανουαρίου 2015 Η Main ειναι static και δεν βλεπει τις non-static Σωστός, μου ξέφυγε. Έτσι κι αλλιώς δεν χρειάζεται τις μεταβλητές στην main για το παράδειγμά του
viper2005 Δημοσ. 29 Ιανουαρίου 2015 Μέλος Δημοσ. 29 Ιανουαρίου 2015 Okay, ας το πάρουμε σαν παραδείγματα. Στον κώδικα που είχα ποσταρει πιο πάνω (grocery store) γιατι δεν μου ξαναζηταει το product name? Γιατι το αποθηκεύσε και τα υπόλοιπα δεν τα αποθηκεύει; Thanks
we_will_rise Δημοσ. 29 Ιανουαρίου 2015 Δημοσ. 29 Ιανουαρίου 2015 Έλα να το πάρουμε μαζί κομμάτι, κομμάτι.. Καταρχήν να ξέρεις ότι αρχή και τέλος σου είναι η main. Την main σου την είχες μια χαρά και στο αρχικό παράδειγμα. Μέσα στην Main, απ'ό,τι βλέπω καλείς την Start(). Μέσα στην Start() έχεις ακριβώς τα βήματα που χρειάζεσαι! 1. Διάβασε τιμές 2. Κάνε υπολογισμούς 3. Τύπωσε αποτελέσματα Όλα κομπλέ! Πάμε στο 1. Διαβάζεις τιμές, αλλά δεν τις αποθηκεύεις πουθενά! Το tip που θα σου δώσω είναι ότι και τις σωστές μεταβλητές έχεις δηλωμένες και οι ReadName, ReadUnitPrice κλπ είναι μια χαρά. Το πρόβλημα είναι ότι τις τιμές που επιστρέφουν δεν τις εκμεταλλεύεσαι.. Για εκμεταλλεύσου τις λοιπόν ;-)
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα