• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jaki poziom kodu?

Object Storage Arubacloud
+1 głos
180 wizyt
pytanie zadane 20 listopada 2015 w C i C++ przez Patryk Kaczmarek Użytkownik (630 p.)

Chciałem się zapytać na jakim poziomie jest stworzony dzisiaj przeze mnie kod.

#include <iostream>
#include "head.h"

int main()
{
    string login,haslo;
    int zalogowany;
    if (logowanie(login,haslo)==1)//poprawnie zalogowany
        {
            zalogowany=1;
            cout<<"**********************************\n"
                <<"**\t"<<"Witaj "<<login<<"\t\t**\n"
                <<"**********************************\n";
            menu(zalogowany);
        }
    else if(logowanie(login,haslo)==2) cout<<"zaraz przejdziesz do zakladania konta."<<endl;
    else cout<<"BLAD KRYTYCZNY";

}
#include <iostream>
#include "head.h"
#define KONIEC 99
int sprawdzenie(string,string);
void nowe_konto();
//*******************************************************************
int logowanie(string &login, string &haslo)
{
        char wybor=0;
        while(wybor!=KONIEC)
        {
            cout<<"1.Zaloguj.\n2.Utworz nowe konto.\n";
            cin>>wybor;
            if(wybor>='0'&&wybor<='9')
            {
            /*static_cast<int>(wybor); rzutowanie do typu int teraz '1' ma wart 49 zgodnie z ASCII ale brak efektu ??*/
            wybor-=48;              //zmiana 49 znowu na 1
            switch(wybor)           //switch dziala tylko dla int!
            {
            case 1://logowanie
                {   int czy_pierwszy=0;
                    while(sprawdzenie(login,haslo)!=0)
                    {
                    if(czy_pierwszy!=0)cout<<"Zla nazwa uzytkownika lub haslo.Sprobuj jeszcze raz!\n";
                    cout<<"Podaj login: ";cin>>login;
                    cout<<"Podaj haslo: ";cin>>haslo;
                    czy_pierwszy++;
                    }
                    return 1;
                }
                break;
            case 2://nowe konto
                {
                    cout<<"wybrales nowe konto\n";
                    nowe_konto();
                }
                break;
            default:
                {
                    cout<<"Nie ma takiej opcji!\n";
                }
                break;
            }
            }
            else cout<<"Wybrano zle polecenie.\n";
        }
    return 1;
}
//**************************************************************************
int sprawdzenie(string login,string haslo)
{
    string linia;
    fstream sprkonto;
    bool login_ok;
    int linia_ok;
    sprkonto.open("lista_uzytkownikow",ios::in);
    for(int nr_linii=1;getline(sprkonto,linia);nr_linii++)
    {
        if ((nr_linii%2==1)&&(linia==login))
        {
        login_ok=true;
        linia_ok=nr_linii;
        }
        if((nr_linii%2==0)&&(linia==haslo)&&(login_ok)&&(nr_linii==(linia_ok+1)))
        {
            sprkonto.close();
            return 0;
        }
    }
    sprkonto.close();
    //return 0;
}
//********************************************************************
void nowe_konto()
{


    string nazwa_uzyt,haslo,linia;
    cout<<"Podaj nazwe uzytkownika: ";cin>>nazwa_uzyt;

    fstream sprkonto;
    sprkonto.open("lista_uzytkownikow",ios::in);
    for(int nr_linii=1;getline(sprkonto,linia);nr_linii++)  //spr. czy juz istnieje taka nazwa uzytkownika
    {
        if ((nr_linii%2==1)&&(linia==nazwa_uzyt))
        {
            cout<<"Taka nazwa juz istnieje. \nNazwa uzytkownika: ";cin>>nazwa_uzyt;cout<<endl;
        }
    }
    sprkonto.close();

    fstream nkonto;                   //utworzenie zmiennej plikowej 'plik'
    nkonto.open("lista_uzytkownikow",ios::out|ios::app);


    cout<<"Podaj haslo: ";cin>>haslo;

    nkonto<<nazwa_uzyt<<endl;
    nkonto<<haslo<<endl;

    nkonto.close();
}

z head.h

#include <iostream>
#include <cstdlib>
#include <fstream>
using namespace std;
extern int logowanie(string &,string &);
extern void menu(int &);

z menu

#include "head.h"
void menu(int &zalogowany)
{
    if(zalogowany==1)
    {
        cout<<"Witaj w programie!";
    }
}

Program miał:

->logować lub tworzyć nowe konto

->zapisywać dane z logowania 

->nie pozwalać zarejestrować dwóch takich samych użytkowników

->w razie zalogowania przywitać użytkownika i coś wypisać

uczę się samemu od jakiegoś miesiąca. Czy to co napisałem to coś na poziomie jednomiesięcznej nauki czy nie?

1 odpowiedź

0 głosów
odpowiedź 20 listopada 2015 przez arek01996 Stary wyjadacz (12,100 p.)

Nic poza postawami. Cwicz i próbuj pisać obiektowo.

Mimo to jak na miesiąc pracy to GRATULUJE! :)

Jakiś przykładowy kod: (Czy obiektowo nie wygląda ładniej?)

#include <SFML/Graphics.hpp>
#include <iostream>
#include "Updateable.h"

#define PATH "system\\data\\effects\\"

using namespace std;


class SpriteEffect : public sf::Drawable, public Updateable
{

public:

    enum STATUS
    {
        Once = 0x10A,
        Repeat = 0xA0A
    };

    enum Activity
    {
        Active = 0x21D,
        Disactive = 0x21C
    };

    // Constructors
    SpriteEffect(string /* Image path(name) */,
                 sf::Vector2i /* Solo image size */,
                 sf::Vector2f /* Sprite position */,
                 int /* FPS speed*/,
                 int/* Status */,
                 bool /* Object will be automatically deleted from memory */);



public: // Public function
    void setActive(int /* if true update state */ );
    void outOfContrainet(); // If u do not want to continue updating data in container u can use this function
    sf::Sprite* getElement();

protected: // Protected functions
    virtual void Update( float );

private: // Private functions
    virtual bool Destroy() const; // Function charge of delete object from memory when bool in constructor is TRUE
    virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const;


private: // Private variable & class

    int status;
    int frame;
    float FPS_PER_SEC;
    bool autoDelete;
    bool destroyQueue;
    int activity;
    sf::Texture Texture;
    sf::Vector2i spriteSize;
    sf::Vector2f lengthOfTexture;
    sf::Sprite drawableSprite;
    sf::Time time;

};

 

 

komentarz 21 listopada 2015 przez Patryk Kaczmarek Użytkownik (630 p.)
Pewnie lepiej ale jak juz wspomniałem dopiero zaczynam swoją przygodę z c++, więc puki co skupiam się na tym. Czytam "symfonia c++", oglądam Zelenta. Zagłębiam się :P

Podobne pytania

+9 głosów
5 odpowiedzi 664 wizyt
pytanie zadane 30 sierpnia 2017 w Rozwój zawodowy, nauka, praca przez BitCash Początkujący (300 p.)
+3 głosów
14 odpowiedzi 2,478 wizyt
pytanie zadane 20 września 2015 w Rozwój zawodowy, nauka, praca przez uczeń1998 Obywatel (1,930 p.)
+1 głos
1 odpowiedź 201 wizyt
pytanie zadane 25 maja 2022 w C i C++ przez Eskapel Nowicjusz (160 p.)

92,539 zapytań

141,382 odpowiedzi

319,479 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...