PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kleines Programm zur Depotverwaltung


Flat_Eric
27.09.2004, 18:58
Hallo Board-Mitglieder,

ich hab da ein Problem mit der Programmierung meines Programms. Ich möchte mir gern ein kleines Programm zur Depotverwaltung mit Pascal basteln. Nun bin ich soweit gekommen, das es die verschiedensten Transaktionen in einer .dat-Datei speichert.
Nun hätte ich gern das es aus den Anteilen und dem Preis den ich eingebe die Summe errechnet und mit in der .dat-Datei speichert.
Zur Veranschaulichung hier mein Quellcode:
PROGRAM Project_Depot;
USES Crt;
Var Point:Integer;
Petition:Char;
Var I:Integer;
K,V,E:Char;
Procedure Headline;
Begin
Clrscr;
Writeln;
Writeln(' T E S T P R O G R A M M ');
Writeln('-------------------------------------------------------------------------');
Writeln;
Writeln(' M E N U: K - KAUF');
Writeln(' V - VERKAUF');
Writeln(' E - PROGRAMMENDE');
Writeln;
Writeln('-------------------------------------------------------------------------');
Writeln;
End;
Procedure Menue;
Begin
Writeln('* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ');
Writeln;
Write('Bitte Anzahl der gewuenschten Transaktionen eingeben: ');
Readln(Point);
Writeln;
Writeln('* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ');
Writeln;
End;
Procedure Buy;
TYPE Buy = RECORD
Date: String[10];
Fund: String[30];
ISIN: String[12];
Shares: String[15];
Price: String[15];
END;
Data_Buy = ARRAY [1..200] OF Buy;
VAR DataSet_Buy: Data_Buy;
i: 1..200;
File_Buy: FILE OF Data_Buy;
BEGIN
ClrScr;
Assign (File_Buy, 'Käufe.dat');
{$I-} Reset (File_Buy);
Read (File_Buy, DataSet_Buy);
Close (File_Buy); {$I+}
IF IORESULT <> 0 THEN ;
REPEAT
Write ('Datenbank-Entrag Nr. (1-200): ');
ReadLn (i);
IF i = 0 THEN Exit;
IF (DataSet_Buy[i].Date = '') THEN
BEGIN
WriteLn ('Datensatz ',i);
Write ('Datum: ');
ReadLn (DataSet_Buy[i].Date);
WriteLn ('Fonds: ');
ReadLn (DataSet_Buy[i].Fund);
Write ('ISIN: ');
ReadLn (DataSet_Buy[i].ISIN);
Write ('Stuecke: ');
ReadLn (DataSet_Buy[i].Shares);
Write ('Preis: ');
ReadLn (DataSet_Buy[i].Price);
WriteLn;
Rewrite (File_Buy);
Write (File_Buy, DataSet_Buy);
Close (File_Buy);
END
ELSE
BEGIN
WriteLn ('Datum: ',DataSet_Buy[i].Date);
WriteLn ('Fonds: ',DataSet_Buy[i].Fund);
WriteLn ('ISIN: ',DataSet_Buy[i].ISIN);
WriteLn ('Stuecke: ',DataSet_Buy[i].Shares);
WriteLn ('Preis: ',DataSet_Buy[i].Price);
END;
UNTIL i = 0;
ReadKey;
End;
Procedure Sell;
TYPE Sell = RECORD
Date: String[10];
Fund: String[30];
ISIN: String[12];
Shares: String[15];
Price: String[15];
END;
Data_Sell = ARRAY [1..200] OF Sell;
VAR DataSet_Sell: Data_Sell;
i: 1..200;
File_Sell: FILE OF Data_Sell;
BEGIN
ClrScr;
Assign (File_Sell, 'Verkäufe.dat');
{$I-} Reset (File_Sell);
Read (File_Sell, DataSet_Sell);
Close (File_Sell); {$I+}
IF IORESULT <> 0 THEN ;
REPEAT
Write ('Datenbank-Entrag Nr. (1-200): ');
ReadLn (i);
IF i = 0 THEN Exit;
IF (DataSet_Sell[i].Date = '') THEN
BEGIN
WriteLn ('Datensatz ',i);
Write ('Datum: ');
ReadLn (DataSet_Sell[i].Date);
WriteLn ('Fonds: ');
ReadLn (DataSet_Sell[i].Fund);
Write ('ISIN: ');
ReadLn (DataSet_Sell[i].ISIN);
Write ('Stuecke: ');
ReadLn (DataSet_Sell[i].Shares);
Write ('Preis: ');
ReadLn (DataSet_Sell[i].Price);
WriteLn;
Rewrite (File_Sell);
Write (File_Sell, DataSet_Sell);
Close (File_Sell);
END
ELSE
BEGIN
WriteLn ('Datum: ',DataSet_Sell[i].Date);
WriteLn ('Fonds: ',DataSet_Sell[i].Fund);
WriteLn ('ISIN: ',DataSet_Sell[i].ISIN);
WriteLn ('Stuecke: ',DataSet_Sell[i].Shares);
WriteLn ('Preis: ',DataSet_Sell[i].Price);
END;
UNTIL i = 0;
ReadKey;
End;
Procedure Transaction;
Begin
Point := Point +1;
For I:= 1 to Point do
Begin
Writeln;
Write('Gewuenschte Transaktionsart: ');
Readln(Petition);
Case Petition of
'K': Buy;
'E': Exit;
'V': Sell;
else;
End
End;
Writeln;
End;
Begin
Headline;
Menue;
Transaction;
End.
Ich hoffe Ihr könnt mir weiterhelfen. Ich wär euch sehr dankbar dafür. Verbesserungvorschläge nehm ich auch gern entgegen, da ich noch ein ziemlicher Anfänger in diesm Gebiet bin.


bullshit
28.09.2004, 21:49
sorry aber ich versteh nicht soganz dein problem?!!!??! ist nun der anteil und der preis schon in der date datei ??!?!?!? ... ich versteh dein problem nicht so ganz *hmm*

see ya


sorry muss jetzt aber sein:
gewöhn dir das mit if (blabalbabla) then Exit; bitte ab
ist ein kleiner tipp .. dazu hast du Schleifen (Strukturierteprogrammierung):p

Flat_Eric
29.09.2004, 15:40
Ja, die Anteile und der Preis werden nach der Eingabe in der Datei gespeichert. Zusätzlich soll es nun aus den beiden Werten die Gesamtsumme (Anteile * Preis) bilden und ebenfalls in der Datei mit abspeichern.

Und, Danke für dein Tip!