You are not logged in.

  • Login

1

Sunday, November 12th 2006, 8:19pm

Registrierkasse...

Hi!

langsam kotzt es mich an, das wir immer Aufgaben bekommen, wo Sachen drin vorkommen, die wir in der Vorlesung nicht schaffen (Arrays, Strings).
Also ich soll ein Programm schreiben, welches eine Registrierkasse simuliert. Der "Kunde" gibt Produkt + Preis ein, und zwar solange bis er das Wort "ende" eingibt. Das Programm soll dann alles als Kassenzettel (mit vorgegebener Formatierung) als Tabelle mit Endsumme ausgeben. Hab heute viel rumprobiert, immer wieder geändert usw. Debugger meckert auch nicht, aber statt der Ausgabe kommen nur komische Symbole *seufz*

Quelltext (wäre schön, wenn ihr euch daran orientieren könnt :roll: :wink: ):

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <string>
 
using namespace std;
 
int main ()
{
 
string s[10];
char ende=0;
double preis[10];
int k=0;
 
cout << " Registrierkasse, ihre Eingabe bitte, Ende mit mit dem Wort 'ende'!" << endl;
 
while ((k<10) && (ende='0'))
{
	cout << " Produkt: ";
	cin >> s[k];
	cout << " Preis: ";
	cin >> preis[k];
 
	if (s[k]=="ende")
	{
       ende='1';
	   while (k<9)
	   {
		   k=k+1;
		   s[k]=="nichts";
		   preis[k]='0';
	   }
 
	}
 
	k=k+1;
}
 
s[10]=="nichts";
preis[10]='0';
k=0;
 
while (k<11)
{
cout << "Produkte: " << s[k] << " - " << preis[k] << endl;
k=k+1;
}
 
system("pause");
return 0;
}


Das Hauptproblem ist, dass ich nicht weiß, wann das Wort ende eingegeben wird und deshalb die letzten "k" mit 0 belegen muss (soll man wohl nicht so machen...). Naja wenigstens sind keine Gotos drin, (@ void :) )

danke an alle die mir hier immer so nett helfen ;) Bevor das nicht funktioniert brauch ich mich um die Formatierung gar nicht kümmern...

cewbie

2

Sunday, November 12th 2006, 9:16pm

Re: Registrierkasse...

Quoted from ""cewbie""

Naja wenigstens sind keine Gotos drin, (@ void :) )

Ja,das sieht schon bedeutend besser aus.
Aber jetzt erstmal einiges grundlegendes.
Wenn du nen Array der Größe 10 anlegst,dann sind 0-9 gültige Indexe.
Deshalb ist das:

C Quellcode

1
2
s[10]=="nichts";
preis[10]='0';

und das

C Quellcode

1
while (k<11)

der Tod deines Programms :wink: .

Und dann das hier:

C Quellcode

1
preis[k]='0';

'0' ist ein char und somit ein integraler Datentyp.Den kannst du zwar nem double zuweisen,allerdings entspricht dass dann dem ASCII Wert den das Zeichen 0 hat.
Somit steht da in etwa preis[k] = 48.
Richtig wäre preis[k]=0.0;

Gruß void

3

Sunday, November 12th 2006, 9:54pm

Re: Registrierkasse...

Quoted from ""void""



Und dann das hier:

C Quellcode

1
preis[k]='0';

'0' ist ein char und somit ein integraler Datentyp.Den kannst du zwar nem double zuweisen,allerdings entspricht dass dann dem ASCII Wert den das Zeichen 0 hat.
Somit steht da in etwa preis[k] = 48.
Richtig wäre preis[k]=0.0;

Gruß void


Hast wie immer recht, es funktioniert.

Similar threads

Social bookmarks