Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
HaBo Lounge
Nimm Platz an der Bar und entspanne Dich. Hier gehts ausnahmsweise mal nicht um IT-Themen.

Praktikum - Programmierung

Diskussion: Praktikum - Programmierung im Forum HaBo Lounge, in der Kategorie Sonstiges; Anzeige Zitat: Original von IAsh @bitmuncher Ich hoffe das man nicht alles erwartet Oft habe ich aber auch das Gefühl, ...

Antwort
Alt 20.09.09, 07:32   #16 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 441
Standard

Anzeige

Zitat:
Original von IAsh
@bitmuncher
Ich hoffe das man nicht alles erwartet Oft habe ich aber auch das Gefühl, das ein Praktikant quasi als günstige Arbeitskraft eingesetzt wird. Klar, ich will ja auch arbeiten, aber ich habe halt noch überhaupt keine professionelle Erfahrung.
Praktikanten als billige Arbeitskraft zu nutzen ist in Deutschland verboten. Das Ausbildungsverhältnis muss bei einem Praktikum im Vordergrund stehen, sonst liegt ein Arbeitsverhältnis vor, das entsprechend entlohnt werden muss. Siehe dazu auch http://www.praktikumsfuehrer.de/a200...eutung-wehren/ oder http://www.focus.de/karriere/arbeits...id_414809.html
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist offline   Mit Zitat antworten
Alt 20.09.09, 09:03   #17 (permalink)
Themenstarter
 
Registriert seit: 23.11.08
IAsh Leistung: Facit NTK
Likes: 0
Standard

Gut zu wissen vielleicht kann ich das ja mal zu einem gegebenen Zeitpunkt anbringen.

@bitmuncher
Ich fühle mich immer recht unprofessionell wenn ich meinen Quelltext mit cout<<start/ende/hier/methode xy<<endl; voll packe. Wobei ich damit immer zu einer Lösung komme Aber so zwei Stundenoder mehr kann es bei einem komplizierten Fehler schon mal dauern.
IAsh ist offline   Mit Zitat antworten
Alt 21.09.09, 10:46   #18 (permalink)
Moderator
 
Registriert seit: 30.06.08
Chromatin Leistung: K 6-3Chromatin Leistung: K 6-3Chromatin Leistung: K 6-3Chromatin Leistung: K 6-3
Likes: 227
Standard

Zitat:
Und wie denkt ein Programmierer? Abstrakt? Oder doch gleich in der jeweiligen Sprache? Oder denkt ein Programmierer in UML? Heißt denken wie ein Programmierer das man das Problem nicht sieht sondern die Lösung?
Unsere Programmierer denken meisens in deutsch. Und waehrend sie programmieren vermutlich an Pizza und Schokolade (so wie die Arbeitsplaetze aussehen).

Zitat:
Praktikanten als billige Arbeitskraft zu nutzen ist in Deutschland verboten.
Wie süss



@IAsh

Gaehn.
__________________
Wenn ein Gesetz nicht gerecht ist, dann geht die Gerechtigkeit vor dem Gesetz!

Habo Blog - http://blog.hackerboard.de/
Chromatin ist offline   Mit Zitat antworten
Alt 21.09.09, 11:27   #19 (permalink)
 
Benutzerbild von mauralix
 
Registriert seit: 17.04.06
mauralix Leistung: 8086
Likes: 3
Standard

@Chromatin: schön gesagt
mauralix ist gerade online   Mit Zitat antworten
Alt 21.09.09, 11:33   #20 (permalink)
Themenstarter
 
Registriert seit: 23.11.08
IAsh Leistung: Facit NTK
Likes: 0
Standard

In deutsch soso... außerhalb meines Vorstellungsvermögen...

@Chromatin
Gaehn zurück.
IAsh ist offline   Mit Zitat antworten
Alt 21.09.09, 14:01   #21 (permalink)
Moderator
 
Registriert seit: 30.06.08
Chromatin Leistung: K 6-3Chromatin Leistung: K 6-3Chromatin Leistung: K 6-3Chromatin Leistung: K 6-3
Likes: 227
Standard

naja, um auch mal was sinnvolle szu schreiben.

Du schreibst du hast in deiner schulischen Ausbildung C/c++ gelernt. Sicherlich nicht
Und PHP-klassen coding in 2-3 tagen. Alles klar

Es ist ein himmelweiter Unterschied, in etwa zu wissen worum es geht und dem Code seine Funktion zu entnehmen oder wirklich zu programmieren. Das erlernen einer Sprache ist lediglich das Benutzen eines Werkzeugs zu erlernen.
Allerdings, wenn Du schon so einiges kannst, haste ja auch sicherlich etwas Code den du zeigen kannst. Dann waere allgemeines Feedback viel einfacher.

Ansonsten rate ich dir dringend mit einer gewaltigen Portion Bescheidenheit in ein Vorstellungsgespraech zu gehen
__________________
Wenn ein Gesetz nicht gerecht ist, dann geht die Gerechtigkeit vor dem Gesetz!

Habo Blog - http://blog.hackerboard.de/
Chromatin ist offline   Mit Zitat antworten
Alt 21.09.09, 19:43   #22 (permalink)
Themenstarter
 
Registriert seit: 23.11.08
IAsh Leistung: Facit NTK
Likes: 0
Standard

Es ist etwas schwer Code zu zeigen da das meiste ja aus den Zusammenhang gerissen ist und ich hier nicht massenweise Code posten will. Aber ich denke für dich ist das nicht mehr als 'ne Müde Ausrede deswegen habe ich hier mal was rausgekramt:

Dies sind Code Ausschnitte aus einem Kartenspiel Server. Der Server bekommt Daten und die "Arbeiter"-Klassen kümmern sich um die Ausführung. Als erstes der Code der Basis Arbeiter Klasse und dann einmal eine Klasse die sich um den Shop kümmert wo man Karten kaufen kann und einmal eine Klasse die sich um das einloggen/ausloggen kümmert.

Arbeiter.h   

Code:
#ifndef ARBEITER_H
#define ARBEITER_H

#include <iostream>
#include "datenbank.h"
#include "KartenspielClient.h"
#include "Server.h"
using namespace std;

class Arbeiter{
protected:
    Connection *con;
    static string datentrenner;
    Server* server;
public:
    Arbeiter(Connection* mysqlconnection,Server* aserver);
    static void setDatentrenner(string str);

    virtual bool arbeiten(KartenspielClient *client, string befehl,vector<string>& daten)=0;
};

#endif




ALogin.cpp   

Code:
#include "ALogin.h"

bool ALogin::arbeiten(KartenspielClient *client, string befehl,vector<string>& daten){

    if(befehl == "CallLogin" && daten.size() == 3){
        Query query(con);
        query << "select * from benutzer where name ="<<quote<<daten[0]<<" and passwort like SHA1("<<quote<<daten[1]<<")";
        if(StoreQueryResult res = query.store()){
            if(res.num_rows() == 1 && eingeloggteSpieler.find(daten[0]) == eingeloggteSpieler.end() && daten[2] == version){
                eingeloggteSpieler[daten[0]]=client;
                client->setName(daten[0]);
                client->loginBestaetigung();
                if(daten[0]=="Botti" || daten[0]=="asd"){
                    client->setCheater(true);
                    client->nachrichtenBox("Du bist ein Cheater!");
                }
            }
            else{
                if(daten[2] != version)
                    client->nachrichtenBox("Die Client Version ist ungueltig. Server akzeptiert Version "+version);
                if(eingeloggteSpieler.find(daten[0]) != eingeloggteSpieler.end()){
                    client->nachrichtenBox("Der eingegebene Account ist bereits eingeloggt. Account wurde ausgeloggt.");
                    eingeloggteSpieler[daten[0]]->ausloggen();
                    eingeloggteSpieler.erase(eingeloggteSpieler.find(daten[0]));
                }
                server->datenSenden(client->getId(),"R_CallLogin"+ datentrenner + "0");
            }
        }
        else{
            client->loginAbweisung();
            throw(static_cast<string>("ALogin::arbeiten:") + query.error());
        }
        return true;
    }
    return false;

}

void ALogin::loggtSichAus(string spieler){
    if(eingeloggteSpieler.find(spieler) != eingeloggteSpieler.end()){
        eingeloggteSpieler.erase(eingeloggteSpieler.find(spieler));
    }
    else{
        cout<<"ALogin::loggtSichAus spieler ist nicht eingeloggt"<<endl;
    }
}


AShop.h   

Code:
#include "AShop.h"

bool AShop::arbeiten(KartenspielClient *client, string befehl,vector<string>& daten){


    //////// Shop

    //// GetGeld()
    if(befehl == "GetGeld"){
        client->infoGeld();
        return true;
    }

    //// GetShopArtikel()
    if(befehl == "GetShopArtikel"){
        Query query(con);
        query<<"select name from artikel";
        string daten;
        if(StoreQueryResult res = query.store()){
            for(unsigned int i=0; i<res.num_rows(); ++i){
                if(i)
                    daten+=datentrenner;
                daten+=(string)res[i]["name"];
            }
            client->infoShopArtikel(daten);
        }
        else{
            cout << "GetShopArtikelFailed to get item list: " << query.error() << endl;
        }
        return true;
    }

    //// GetKaufBeschreibung(artikel)
    if(befehl == "GetKaufBeschreibung" && daten.size() == 1){
        Query query(con);
        query<<"select beschreibung,anzahl,preis from artikel where name="<<quote<<daten[0];
        if(StoreQueryResult res = query.store()){
            if(res.num_rows()){
                    client->infoKaufbeschreibung((string)res[0]["beschreibung"]+
                                                  "<br>Anzahl: "+(string)res[0]["anzahl"]+
                                                  "<br>Preis: "+(string)res[0]["preis"]);
            }
        }
        else{
            cout << "GetKaufBeschreibung to get item list: " << query.error() << endl;
        }
        return true;
    }

    // CallKaufen(artikel)
    if(befehl == "CallKaufen" && daten.size() == 1){
        cout<<"bin in kaufen"<<endl;
        Query query(con);
        query<<"select * from artikel where name="<<quote<<daten[0];
        if(StoreQueryResult res = query.store()){
            cout<<"gefunden"<<endl;
            if(res.num_rows()){
                    if((int)res[0]["preis"] > client->getGeld()){
                        client->nachrichtenBox("Du hast zu wenig Geld");
                    }
                    else{
                        if((int)res[0]["anzahl"] == 0){
                          client->nachrichtenBox("Der Artikel ist ausverkauft");
                        }
                        else
                        {
                            query<<"update artikel set anzahl=anzahl-1 where name ="<<quote<<daten[0];
                            query.execute();
                            client->setGeld(client->getGeld()-(int)res[0]["preis"]);
                            // Es wird gekauft
                            if((string)res[0]["anzahlzufallskarten"] == "0"){
                                query<<"select kartenid,karten.name from artikelkarten\n"
                                     <<"inner join karten on artikelkarten.kartenid=karten.id\n"
                                     <<"where artikelid="<<quote<<res[0]["id"];
                                string neuekarten;
                                if(StoreQueryResult res = query.store()){
                                    for(unsigned int i=0; i<res.num_rows(); ++i){
                                            cout<<"gib karte"<<endl;
                                            if(i)
                                                neuekarten+=datentrenner;
                                            neuekarten+=(string)res[0]["name"];
                                            query<<"INSERT INTO benutzerkarten(benutzerid,kartenid) VALUES((select id from benutzer where name\n"<<
                                            "="<<quote<<client->getName()<<"),"<<res[i]["kartenid"]<<")";
                                            query.execute();
                                    }
                                }
                                else{
                                    cout << "CallKaufen2 to get item list: " << query.error() << endl;
                                }
                                client->gibNeueKarten(neuekarten);
                            }
                            else{

                                int sehr_haeufig=(int)res[0]["anzahlzufallskarten"]*0.4;
                                int normal=(int)res[0]["anzahlzufallskarten"]*0.4;
                                int rar=(int)res[0]["anzahlzufallskarten"]*0.15;
                                int selten=(int)res[0]["anzahlzufallskarten"]*0.05;
                                string neuekarten;
                                cout<<"zufallskauf!"<<endl;
                                string hk;
                                int anz=0;
                                for(int k=0;k<4;++k){
                                    if(k==0){
                                        hk="normal";
                                        anz=normal;
                                    }
                                    if(k==1){
                                        hk="rar";
                                        anz=rar;
                                    }
                                    if(k==2){
                                        hk="selten";
                                        anz=selten;
                                    }
                                    if(k==3){
                                        hk="sehr haeufig";
                                        anz=sehr_haeufig;
                                    }

                                    query<<"select karten.id,karten.name from ((artikelkarten inner join karten on\n"
                                         <<"artikelkarten.kartenid=karten.id) inner join artikel\n"
                                         <<"on artikelkarten.zufallsid=artikel.zufallsid)\n"
                                         <<"inner join haeufigkeiten on haeufigkeiten.id = karten.haeufigkeit\n"
                                         <<"where haeufigkeiten.bezeichnung like "<<quote<<hk<<" and\n"
                                         <<"artikelkarten.artikelid="<<quote<<res[0]["id"];

                                    if(StoreQueryResult res2 = query.store()){
                                        if(res2.num_rows()){
                                            for(int i=0;i<anz;++i){
                                                if(neuekarten != "")
                                                    neuekarten+=datentrenner;
                                                cout<<"zufallskarte"<<endl;

                                                int z=rand()%res2.num_rows();
                                                neuekarten+=(string)res2[z]["name"];

                                                query<<"INSERT INTO benutzerkarten(benutzerid,kartenid) VALUES((select id from benutzer where name\n"<<
                                                "="<<quote<<client->getName()<<"),"<<res2[z]["id"]<<")";
                                                query.execute();
                                            }
                                        }
                                    }
                                    else{
                                        cout << "CallKaufen3 to get item list: " << query.error() << endl;
                                    }

                                }
                                client->gibNeueKarten(neuekarten);
                            }
                        }
                    }
            }
        }
        else{
            cout << "CallKaufen1 to get item list: " << query.error() << endl;
        }
        return true;
    }
    return false;
}
IAsh ist offline   Mit Zitat antworten
Alt 21.09.09, 22:37   #23 (permalink)
 
Benutzerbild von benediktibk
 
Registriert seit: 03.05.07
benediktibk Leistung: 8086benediktibk Leistung: 8086
Likes: 50
Standard

Ja, ich bin pingelig, ich stehe dazu:
1. Bei Vektoren bietet es sich an statt operator[] die Funktion at(...) zu verwenden, da diese den Bereich überprüft und bei Fehlern eine Exception wirft anstatt undefiniertes Verhalten zu produzieren.
2. in ALogin.cpp übergibst du Daten by reference, aber nicht konstant. Soweit ich jetzt nichts übersehen habe ist dieser Parameter aber auch ein reiner In-Parameter, weshalb ein const wohl angebracht wäre.

Jetzt bin ich glücklich

mfg benediktibk
__________________
The essential prerequisite for building an expert system is to have an expert. - Frederick P. Brooks, Junior

Und wenn Ihr einen Politiker trefft der das gut findet - trefft ihn bitte ordentlich. - Chromatin
benediktibk ist offline   Mit Zitat antworten
Alt 22.09.09, 12:07   #24 (permalink)
Moderator
 
Registriert seit: 30.06.08
Chromatin Leistung: K 6-3Chromatin Leistung: K 6-3Chromatin Leistung: K 6-3Chromatin Leistung: K 6-3
Likes: 227
Standard

Code:
int sehr_haeufig=(int)res[0]["anzahlzufallskarten"]*0.4;                                 
            int normal=(int)res[0]["anzahlzufallskarten"]*0.4;
Ihr Gauner!
__________________
Wenn ein Gesetz nicht gerecht ist, dann geht die Gerechtigkeit vor dem Gesetz!

Habo Blog - http://blog.hackerboard.de/
Chromatin ist offline   Mit Zitat antworten
Alt 22.09.09, 16:41   #25 (permalink)
Themenstarter
 
Registriert seit: 23.11.08
IAsh Leistung: Facit NTK
Likes: 0
Standard

Wie gemein Hat aber alles momentan seinen Sinn. Außerdem habe ich eigentlich kein Problem in der Plural-Form angesprochen zu werden doch so öffentlich macht das doch einen recht schizophrenen Eindruck.

@benediktibk
at statt [] hat demnach wirklichen einen entscheidenden Vorteil. Wobei ich subjektiv [] einfach lieber mag. Und bei const Schlampe ich immer ahrr.. Ich Maße mir nicht an zu sagen das es sinnlos ist aber für das was ich programmiere bringt mehr es nur wenig Mehrwert. Wobei demnach ich in einer Klasse auch alles public deklarieren könnte... was ich aber nicht mache. Meine Argumentation befriedigt nicht wirklich^^
IAsh ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Sonstiges » HaBo Lounge » Praktikum - Programmierung
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Stipendium für 3 wöchiges Praktikum in den USA :::Lük::: HaBo Lounge 6 06.04.09 19:24
Programmierung AaFreak HaBo-Marktplatz 14 17.03.09 08:38
Studiengang der ein Praktikum Voraussetzt gesucht R!K3R HaBo Lounge 3 10.07.08 19:55
Praktikum Hashishin Off topic-Zone 5 18.07.05 20:34


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 51 52 53 54 55 56 57 58 59 60 61