Der perfekte Anfang
-
"Hello Word" ist bei mir schon an der Reihe gewesen. Jetzt möchte ich gern ein kleines Programm schreiben. Am besten einen Taschenrechner.
Meine 1. Frage: Wie mache ich eine Form, und setze darauf einen Button mit ein paar Events.
-
wenn du nicht zufälligerweise den Borland C++ Builder hast, dann gehts für dich erstmal garnicht. Ok, es ginge, aber da wärst du garantiert verloren.
btw: in ner konsole kann mana uch einen taschenrechner programmieren.
-
Okay, dann in ner Konsole. Wie gehe ich vor?
Also eine Form hab ich schon:// calc // #include <windows.h> #include "calc_res.h" LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK AboutDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); HINSTANCE hInstance; HWND hWindow; // WinMain int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow) { WNDCLASS wc; MSG msg; //HACCEL hAccelTable; if (!hPrevInst) { wc.lpszClassName="calcClass"; wc.lpfnWndProc=MainWndProc; wc.style=CS_OWNDC | CS_VREDRAW | CS_HREDRAW; wc.hInstance=hInst; wc.hIcon=LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON1)); wc.hCursor=LoadCursor(NULL, IDC_ARROW); wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1); wc.lpszMenuName=MAKEINTRESOURCE(IDR_MAINMENU); wc.cbClsExtra=0; wc.cbWndExtra=0; RegisterClass(&wc); } hWindow=CreateWindow("calcClass","Application",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,500,350,NULL,NULL,hInst,NULL); hInstance=hInst; ShowWindow(hWindow,nCmdShow); UpdateWindow(hWindow); //hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_ACCELATOR1); while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } // MainWndProc LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam,LPARAM lParam) { static int wmId, wmEvent; switch(msg) { // WM_COMMAND case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); switch(wmId) { // About case ID_FILE_EXIT: PostQuitMessage(0); break; case ID_HELP_ABOUT: DialogBox(hInstance, (LPSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)AboutDlgProc); break; default: return DefWindowProc(hWnd, msg, wParam, lParam); } break; // WM_DESTROY case WM_DESTROY: PostQuitMessage(0); break; // DEFAULT default: return(DefWindowProc(hWnd, msg, wParam, lParam)); } return 0; } // AboutDlgProc LRESULT CALLBACK AboutDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: break; case WM_COMMAND: if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) { EndDialog(hDlg, LOWORD(wParam)); return TRUE; } break; } return FALSE; }
// calc : Resource File #ifndef WS_VISIBLE #include <windows.h> #endif #include "calc_res.h" IDD_ABOUTBOX DIALOGEX DISCARDABLE 20, 20, 208, 86 STYLE WS_CAPTION | WS_POPUP CAPTION "About calc" FONT 8, "Tahoma" BEGIN DEFPUSHBUTTON "OK",IDOK,151,7,50,14,0 PUSHBUTTON "Cancel",IDCANCEL,151,24,50,14,0 END IDR_MAINMENU MENU DISCARDABLE BEGIN POPUP "&File" BEGIN MENUITEM "&Exit", ID_FILE_EXIT END POPUP "&Help" BEGIN MENUITEM "&About", ID_HELP_ABOUT END END IDI_ICON1 ICON DISCARDABLE "E:/Programme/Relo/images/app.ico"
// calc : Resource Defs #define IDD_ABOUTBOX 1001 #define IDI_ICON1 1002 #define IDR_MAINMENU 1003 #define ID_FILE_EXIT 1004 #define ID_HELP_ABOUT 1005
-
Imho ist so'n richtiger Taschenrechner aber ne nicht wirklich einfache Sache.
Jedenfalls, wenn er Punkt-vor-Strichrechnung und Klammern können soll.
-
Da du ja nach dem perfekten Anfang fragst:
Verstehst du denn den Quellcode soweit selber, den du hier gepostet hast?Wohl nicht, sonst würdest du ihn nicht als Consolenapplikation verkaufen wollen.
Copy&Paste ist Müll
-
Hast wohl was überlesen:
Also eine Form hab ich schon:
Eine Konsole sieht so aus:
#include <stdio.h> int main(int argc, char *argv[]) { getchar(); return 0; }
Zwar check ich 0, aber egal.
Und warum kommt man mir mit soviel ärger entgegen?
-
Hi!
1. Wieso wollen immer alle nach Hello World gleich ein GUI-Programm basteln? Kein Wunder das die Dinger meistens Müll sind (zumindest intern).
2. Visual Studio geht doch auch für Forms, wobei ich zugebe das die Verwendung von Standard-C++ nicht ganz angenehm ist.
3. Mach das mal in der Konsole, das ist auch sehr anspruchsvoll. Vor allem wenn du Klammerrechnung und Punkt-vor-Strich-Rechnung beachtest. Habe hier noch Struppis Taschenrechner rumliegen, weiß grad gar nicht ob der noch online ist (hatte den mal hochgeladen in mehreren Versionen). Aber kannst ja mal versuchen sowas zu programmieren, achja und mit negativen Zahlen muss er auch umgehen können.Code-Hacker
-
@Jen:
Ich komme dir nicht mit Ärger entgegen. Im Gegenteil.Aber wenn du nach dem perfekten Anfang fragst, musst du dir auch sagen lassen, dass es nicht viel bringt, sich ein Programm zusammenzuklicken, ohne es zu verstehen.
Kauf dir ein gutes Buch über C++.
Dies ist kein blöder Spruch, sondern ernstgemeint.
Davon profitierst du jetzt mehr, und kommst auch schneller zu brauchbaren Programmen als so.
-
Jen schrieb:
Und warum kommt man mir mit soviel ärger entgegen?
Vielleicht deswegen:
Zwar check ich 0, aber egal.
Schon verloren. Wenn du es nicht verstehst, wie willst du es dann programmieren?
Versuchs nochmal mit Hello World, wenn du den code von main nicht verstehst.
Warum willst du nicht lieber ein Programm schreiben, das irgendwelche netten Berechnungen macht, oder ein Programm, das nützlicherweise Eingaben in eine Datei umleiten kann und vielleicht ein paar Editor-Funktionen hat, und so weiter?
Einen Taschenrechner programmieren kannst du nach Hello World nicht. Oder du bist ein von uns verkanntes Genie, dann verzeih mir Meister, ich bin nicht würdig
-
Wollt ich heute machen, hab aber vergessen. Naja, morgen hoffentlich.
Ich hab PHP ja auch aus 3 Büchern gelerntAber mit was soll ich nun anfangen?
Ich weiß schon was:Ich möcht gern wissen, wie ich in einer Konsole einfach so 2+2 ausrechnen kann.
Nur die Befehle, wie ich eine Konsole herstellen kann, die dann Ausgibt
2+2=4 (aber das ganze soll ausgerechnet werden)
Wenns geht auch erklären
-
Jen: versuch's doch mal mit nem Tutorial. Auf www.c-plusplus.net sind ganz viele. Ich würde Dir das von Volkard oder von ShadeOfMine empfehlen.
Wenn Du spezielle Fragen hast, dann frag hier jeder Zeit. Aber wir machen hier kein Tutorial wo wir Dir alles erklären. Erst selber nachlesen und wenn Du was nicht verstehst, dann stehen wir Dir gerne zur Verfügung.
MfG Jester
-
@Jan
Tja, du liest eine Zahl ein (von der Tastatur), eine andere ( => auch von der Tastatur), und dann benutzt du "+", um im Quellcode zu schreiben, dass zur Programmlaufzeit eine Addition stattfinden soll. Über die Bildschirmausgabe kannst du es dann lesen.
Nun müsste man nur noch wissen wie man von der Tastatur liest und auf den Bildschirm ausgibt. Hier dürfte dir cout und cin weiterhelfen.
Hier erfährst du alles darüber, was du nicht verstehst, ignorierst du. Du musst soviel wissen, dass du mit
"cout << xyz" etwas ausgibst, wobei xyz ein string, eine Zahl, ein double, o.Ä. sein kann. mit cin >> xyz liest du von der Tastatur, wobei xyz oben genanntes ist.
Das ist schon alles. Noch ein bisschen Tutorials lesen, Hello World studieren, und der Aha-Effekt kommt von selbst.
Ich geb dir keinen Quellcode weil ich mich verpflichtet fühle, dir das selber programmieren beizubringen, o Meister
-
Jen schrieb:
Zwar check ich 0, aber egal.
Lies doch erstmal ein C++ Buch oder Tutorial. Man programmiert ja nicht einfach, weil man meint, man will jetzt programmieren
http://tutorial.schornboeck.net/inhalt.htm
Und warum kommt man mir mit soviel ärger entgegen?
Weil das dein Verhalten verlangt. Du hast anscheinend dich kein bisschen mit C++ außeinander gesetzt und verlangst, dass die Leute hier dein Programm coden.
wmfrs
-
Is ja alles wurscht
Ich schau, das ich morgen mir ein Buch besorg.
-
Hab mir jetzt ein buch von Markt und Technik gekauft mit fast 2000 Seiten. Leider hats mein Vater bis Weihnachten beschlagnahmt :p
-
Ihr hättet ihm besser auch noch gesagt, welche Bücher zu empfehlen sind.
-
Wieso, die "Dicken Dinger" von MuT sind doch alle empfehlenswert
Das C/C++ Kompendium von Dirk Louis z.B. besonders.
-
Hoffentlich heißt es nicht irgendwie "C++ in 21 Tagen"
-
Nicht im 2000er Seiten Bereich
EDIT:
*lol* Hab grad mal reingeschaut - das C++ Kompendium hat ja auch nur knapp 1150
Kommt einem irgendwie mehr vor
-
Optimizer schrieb:
Hoffentlich heißt es nicht irgendwie "C++ in 21 Tagen"
lol
Ich hab das "Visual C++ 6 in 21 Tagen" hier liegen, so ein Schrottbuch, hat aber nur ~840 Seiten