Guten Morgen, Mittag, oder Tag - sucht es euch aus.
Da ich gerade mitten in der Vorbereitung auf meine Semesterprüfungen stecke und man ja bekanntlich Programmierung durch nichts besser lernt als durch die praktische Programmierung selbst (in den göttlichen Kreisen auch Coden genannt ) habe ich mir gedacht, passend zum Thema und durch Anregung von cxalgo arbeite ich doch mal an einem kleinen Datenbanksystem.
Gesagt, getan. Innerhalb der letzten Stunde entstand also folgendes Programm, das allerdings noch sehr ausbaufähig ist.
Wie genau ich die aktuellen Marktwerte verschiedener Aktien einfließen lassen kann, darauf bin ich noch nicht gekommen - nach den Prüfungen findet sich dazu aber bestimmt auch eine Lösung - oder vielleicht ja sogar hier?
Ich hoffe ihr könnt etwas damit anfangen, vielleicht finden wir ja gemeinsam eine Lösung zum Einfügen der aktuellen Marktwerte?!
Achja, das ganze ist in C programmiert! (C lebt!... )
edit: Okay, ich kann keine .c Source-Dateien hochladen, also gibts das ganze in Form von Textpassagen hier:
# include <stdio.h>
# include <stdlib.h>
# include <ctype.h>
# define FALSE 0
# define TRUE !FALSE
# define EINGABELAENGE 40
struct s_stock_data
{
char name[EINGABELAENGE];
float buy_price;
float current_price;
};
void write_info()
{
FILE*stocks;
struct s_stock_data stock; //Variable der Struktur struct s_stock_data
char input[EINGABELAENGE+1];
fflush(stdin);
printf("Aktienname: ");
fgets(stock.name, EINGABELAENGE, stdin); //Eingabe des Aktiennamen durch Zugriff auf Struktur
printf("Kaufkurs: ");
stock.buy_price=(float)atof(fgets(input, EINGABELAENGE, stdin)); //Errechnung des Kaufpreises mit Zugriff auf Struktur
stock.current_price=stock.buy_price/11; //Errechnung des aktuellen Preises (Beispielswert!!!)
stocks=fopen("stocks.dat", "a");
if (stocks == NULL)
{
puts("Dateifehler");
exit(1);
}
fwrite(&stock, sizeof(stock), 1, stocks); //Adresse der Struktur, Größe des Datensatzes, Anzahl zu schreibender Datenblöcke, filehandle
fclose(stocks);
puts("Aktie hinzugefuegt!\n");
}
void read_info()
{
FILE*stocks;
struct s_stock_data stock;
int x;
stocks=fopen("stocks.dat", "r");
if (stocks == NULL)
{
puts("Datei ist leer oder nicht vorhanden!\n");
return;
}
while (TRUE)
{
x=fread(&stock, sizeof(stock), 1, stocks);
if (x == 0)
break;
printf("\nName: %s\n", stock.name);
printf("Kaufkurs: EUR %.2f\n", stock.buy_price);
printf("Aktueller Kurs: EUR %.2f\n", stock.current_price);
}
fclose(stocks);
}
int main()
{
char c;
int done=FALSE;
while (!done)
{
puts("\nAktienportfolio\n");
puts("N - Neue Aktie\n");
puts("A - Anzeige Bestand\n");
puts("E - Ende\n");
printf("Ihre Wahl: ");
fflush(stdin);
c=(char)toupper(getchar());
switch(c)
{
case('N'):
puts("Neue Aktie\n");
write_info();
break;
case('A'):
puts("Anzeige Portfolio\n");
read_info();
break;
case('E'):
puts("Ende\n");
done=TRUE;
break;
default:
puts("?");
break;
}
}
return 0;
}
Guten Morgen, Mittag, oder Tag - sucht es euch aus.
Da ich gerade mitten in der Vorbereitung auf meine Semesterprüfungen stecke und man ja bekanntlich Programmierung durch nichts besser lernt als durch die praktische Programmierung selbst (in den göttlichen Kreisen auch Coden genannt
) habe ich mir gedacht, passend zum Thema und durch Anregung von cxalgo arbeite ich doch mal an einem kleinen Datenbanksystem.
Gesagt, getan. Innerhalb der letzten Stunde entstand also folgendes Programm, das allerdings noch sehr ausbaufähig ist.
Wie genau ich die aktuellen Marktwerte verschiedener Aktien einfließen lassen kann, darauf bin ich noch nicht gekommen - nach den Prüfungen findet sich dazu aber bestimmt auch eine Lösung - oder vielleicht ja sogar hier?
Ich hoffe ihr könnt etwas damit anfangen, vielleicht finden wir ja gemeinsam eine Lösung zum Einfügen der aktuellen Marktwerte?!
Achja, das ganze ist in C programmiert! (C lebt!...
)
edit: Okay, ich kann keine .c Source-Dateien hochladen, also gibts das ganze in Form von Textpassagen hier:
# include <stdio.h> # include <stdlib.h> # include <ctype.h> # define FALSE 0 # define TRUE !FALSE # define EINGABELAENGE 40 struct s_stock_data { char name[EINGABELAENGE]; float buy_price; float current_price; }; void write_info() { FILE*stocks; struct s_stock_data stock; //Variable der Struktur struct s_stock_data char input[EINGABELAENGE+1]; fflush(stdin); printf("Aktienname: "); fgets(stock.name, EINGABELAENGE, stdin); //Eingabe des Aktiennamen durch Zugriff auf Struktur printf("Kaufkurs: "); stock.buy_price=(float)atof(fgets(input, EINGABELAENGE, stdin)); //Errechnung des Kaufpreises mit Zugriff auf Struktur stock.current_price=stock.buy_price/11; //Errechnung des aktuellen Preises (Beispielswert!!!) stocks=fopen("stocks.dat", "a"); if (stocks == NULL) { puts("Dateifehler"); exit(1); } fwrite(&stock, sizeof(stock), 1, stocks); //Adresse der Struktur, Größe des Datensatzes, Anzahl zu schreibender Datenblöcke, filehandle fclose(stocks); puts("Aktie hinzugefuegt!\n"); } void read_info() { FILE*stocks; struct s_stock_data stock; int x; stocks=fopen("stocks.dat", "r"); if (stocks == NULL) { puts("Datei ist leer oder nicht vorhanden!\n"); return; } while (TRUE) { x=fread(&stock, sizeof(stock), 1, stocks); if (x == 0) break; printf("\nName: %s\n", stock.name); printf("Kaufkurs: EUR %.2f\n", stock.buy_price); printf("Aktueller Kurs: EUR %.2f\n", stock.current_price); } fclose(stocks); } int main() { char c; int done=FALSE; while (!done) { puts("\nAktienportfolio\n"); puts("N - Neue Aktie\n"); puts("A - Anzeige Bestand\n"); puts("E - Ende\n"); printf("Ihre Wahl: "); fflush(stdin); c=(char)toupper(getchar()); switch(c) { case('N'): puts("Neue Aktie\n"); write_info(); break; case('A'): puts("Anzeige Portfolio\n"); read_info(); break; case('E'): puts("Ende\n"); done=TRUE; break; default: puts("?"); break; } } return 0; }Bearbeitet von whipsaw
<code> Tag eingefügt