filmdatenbank
-
press any key
logisch, hab ich gleich geaendert...
Do you still want to quit ? (y/n):
ich glaube das ist eine reine geschmackssache, ich finde das jetzige besser
und die exportfunktion soll auch dort sitzen bleiben, das hat einen tieferen sinn...
Selbstverständlich muss noch eine Menge Verbesserungen vorgenommen werden.
was waeren das denn fuer aenderungen? jetzt mit ausnahme des GUIs (kommt bestimmt auch noch, aber was genau ich da nehmen soll weiss ich nicht->von wegen plattformunabhaengig und in C usw...)
-
was waeren das denn fuer aenderungen?
1. Auf mich wirkt das Menü unruhig. ich würde die ------ zwischen Menüpunkten weglassen, obwohl ich verstehe natürlich warum du das so gemacht hast.
2.Ich würde dieses "please choose optio"n unter dem Menü ausgeben soetwa:........... 0: exit ------------------------------------------------------------ please choose option:
Das gleiche gilt für andere Aufforderungsmeldungen.
3.Die Fehler behandlung ist unvollständig, wenn ich an statt einer Zahl
z.B abc eingebe müsste das Programm zumindest eine Meldung ausgeben z.B:Unzlaessige Eingabe!
Dann eventuell.
Wollen Sie die Eingabe wiederholen? (j/n):
4. Hinzufügen von Filmen: bei Eingabe einer leern Zeile sollte das Feld automatisch mit einem Standardwert belegt werden z.B:
Eingegeben:enter name of film (50 characters) enter genre(s) of film (50 characters)
Die Felder werden automatisch mit "unbekannt" beglegt:
name..........unbekannt genre.........unbekannt ......
5. Das Programm braucht Fehler behandlung für korrupte *.fdb Dateien.
Ausserdem, was den Quellcode angeht, ist mir rätselhaft warum du manche Schachen so Programiert hast z.B:
1.Wieso:
void input_int(int *choice)
und nicht:
int input_int()
Es wäre es doch viel leichter zu handhaben.
2. Hat das eine Sinn das du sie Funktion strcmp nachgebaut hast ?:
int str_cmp(char *to_cmp1, char *to_cmp2)
3.Hat das einen tieferen Sinn dass der Pointer load static ist ?
struct dvd *load(char string[MAX_WHOLE]) { static struct dvd *load;[cpp] ............
Es ist nicht ersichtlich wozu man das braucht.
So das wären ein paar Anmerkungen von mir.
-
zu den allgemeinen anmerkungen:
zu2:
finde ich sinnvollzu 3:
gute ideezu 4:
sehr gute ideezu 5:
hab ich mir auch schon ueberlegt, weiss allerdings noch nicht so recht wie ich das anstellen koenntezu den quellcodefragen:
zu 1:
dann brauch ich keine zusaetzliche variable die speicher belegt und kann direkt in die entsprechende schreiben... erschien mir als resourcenschonender (wenn auch ueberfluessig) aber was ist an deiner variante leichter zu handhaben?zu 2:
die funktion ist kein richtiges stringcompare, sie vergleicht die zwei strings die man ihr giebt und sagt welcher der beiden bei alpabetischer sortierung weiter vorne steht...zu3:
static deshalb, damit der speicher nicht gleich wieder freigegeben wird, wenn man die funktion verlaesst...//edit: ich bin mir momentan gar nicht mehr so sicher, muss ich mir noch mal anschauen
btw: ich danke dir, dass du dich so intensiv mit meinem programm auseinandersetzt
-
kennst du vielleicht diesen satz:
90% der zeit werden in 10% des codes verbraucht..ich glaube das aufrufen der funktionen usw gehoert nicht zu den 10%. lass also das optimieren lieber und schreib schoeneren code.
und vermeide pointer wann immer es moeglich ist..
nur so als gut gemeinter rat..
mfg aman..
-
und vermeide pointer wann immer es moeglich ist..
aber warum? ohne begruendung glaub ich gar nichts
-
because they are evil..
man hat mit pointer viel mehr zu tun, ein new muss her, am ende ein delte, beim vergleichen muss man aufpassen, usw usw..
pointer sollten me nur verwendet werden, wenn es noetig ist..
statt
int str_cmp(char *to_cmp1, char *to_cmp2)
wuerde ich
int str_cmp(const char &to_cmp1, const char &to_cmp2)
schreiben..
mfg aman..
-
@aMan
Ist dir aufgefallen, dass das ein C Programm ist ?was ist an deiner variante leichter zu handhaben?
Ich finde das:
choice = input_int();
leichter verstänlicher wirkt als:
input_int(&choice);
Außerdem lässt sich die Funktion auch ohne extra Variable verwenden:
if (input_int() == 5)
Ich finde halt meine Version bequemer, die andere Version ist aber auch ok.
sagt welcher der beiden bei alpabetischer sortierung weiter vorne steht...
Naja, strcmp tut es eigentlich auch, deshalb meine Frage.
nicht gleich wieder freigegeben wird
Ja stimmt, aber es gibt keine Grund dies nicht zu tun.
Der Zeiger den du über Funktionswert erhälst muss sowieso woanders gespeichert werden, damit ist es egal was mit ihm passiert.
-
Naja, strcmp tut es eigentlich auch, deshalb meine Frage.
wusste ich gar nicht... wieder was dazugelernt
Ja stimmt, aber es gibt keine Grund dies nicht zu tun.
Der Zeiger den du über Funktionswert erhälst muss sowieso woanders gespeichert werden, damit ist es egal was mit ihm passiert.hast recht, hab ich falsch gedacht
hab die ueberarbeitete fassung mit allen aenderungen hochgeladen
-
ah, du meinst wegen new usw?
stimmt, hab mich vertan.
aber mit malloc usw gilt ja das gleiche, oder?
mfg aman..
-
aber mit malloc usw gilt ja das gleiche
was meinst du damit?
-
dass gleiche wie mit new.
man hat mit pointer viel mehr zu tun, ein new muss her, am ende ein delte, beim vergleichen muss man aufpassen, usw usw..
ich hab mich nie laenger mit c befasst, nur ganz am anfang. aber diese "regel" sollte doch aehnlich sein, oder?
mfg aman..
-
naja c ist:
ein malloc am anfang ein free am ende
dass man immer dereferenziert wenn man vergleicht sollte einem c programmierer eigentlich klar sein...
-
@aMan
Das geht in C auch nicht:int str_cmp(const char &to_cmp1, const char &to_cmp2)
Und diese Pointer-Furcht verstehe ich auch nicht. Ja ich weiss dass einige dieser Meinung sind, aber es ist eher idologisch bedingt.
Zeiger sind technisch unproblematisch und jedenfalls hier, verschlechtern sie die Lesbarkeit des Codes nicht.man hat mit pointer viel mehr zu tun, ein new muss her, am ende ein delte
Unabhänig davon ob das C oder C++ ist, wie soll man so ein Programm sonst Programieren alles auf den Stack packen ? Ich wüsste nicht wie man das hier ohne malloc beweltigen könnte.
-
Kritik:
- Size of film --> In welchen Angaben? In Äpfeln?
- Length of film --> Das gleiche
Also die Angaben sollten deutlicher werden. Nicht jeder weiß, dass in Length die Minuten angegeben werden - und nur eine Zahl... - ich habe "3 Stunden" geschrieben; glücklicherweise fängst du soetwas jetzt ja ab.
Also einfach nochmal überarbeiten.
Was die GUI angeht: Ich bin ein Fan von grafischen Oberflächen, am besten du arbeitest gleich mit DirectX und machst bei jeder Menüauswahl einen Special-Effect.
-
Also die Angaben sollten deutlicher werden. Nicht jeder weiß, dass in Length die Minuten angegeben werden
ich hatte das eigentlich schon eingebaut, ist wohl irgendwie verloren gegeangen... ist jetzt aber wieder drin, die windows executable fehlt allerdings noch
Was die GUI angeht: Ich bin ein Fan von grafischen Oberflächen, am besten du arbeitest gleich mit DirectX und machst bei jeder Menüauswahl einen Special-Effect.
das ganze sollte moeglichst plattformunabhaengig sein, weshalb directx schon mal ausscheidet. allerdings halte ich das auch fuer ein wenig ueberdimensioniert mit solch einer api oder einer anderen vergleichbaren, die ja nicht gerade fuer fensterchen ausgelegt ist eine GUI zu basteln...
ich bin immer noch auf der suche nach etwas, mit dem ich auch meinen c code gut einbauen kann und halt, wie gesagt, plattform unabhaengig ist. vielleicht hat ja auch da jemand tipps?
-
Enter parts of film --> Enter number of parts
-
war schon in der linux version, hab es nur noch nicht fuer windows compiled, aber danke
-
Moh schrieb:
das ganze sollte moeglichst plattformunabhaengig sein, weshalb directx schon mal ausscheidet. allerdings halte ich das auch fuer ein wenig ueberdimensioniert mit solch einer api oder einer anderen vergleichbaren, die ja nicht gerade fuer fensterchen ausgelegt ist eine GUI zu basteln...
Das war auch ironisch gemeint, bezüglich eines früheren Beitrages.
ich bin immer noch auf der suche nach etwas, mit dem ich auch meinen c code gut einbauen kann und halt, wie gesagt, plattform unabhaengig ist. vielleicht hat ja auch da jemand tipps?
Mit welchem Compiler arbeitest du denn? - Ich persönlich könnte (hab's aber nur unter Windows testen können) Dev-C++ empfehlen.
- Sphy
-
WebFritzi schrieb:
Enter parts of film --> Enter number of parts
Öhm. Eher "Sequels" oä, "number of parts" ist Extrem-Denglisch.
-
Mit welchem Compiler arbeitest du denn? - Ich persönlich könnte (hab's aber nur unter Windows testen können) Dev-C++ empfehlen.
ich meinte, dass ich etwas suche um ein GUI zu programmieren... aber ich versteh generell nicht was du mir hiermit sagen wolltest
Eher "Sequels" oä, "number of parts" ist Extrem-Denglisch
einverstanden