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

Pytanie o ocene programu

Object Storage Arubacloud
0 głosów
690 wizyt
pytanie zadane 28 maja 2019 w C i C++ przez niezalogowany

Chciałem zadać pytanie czy ktoś jest zainteresowany podobnym tematem i chciałem załączyć program, ale nie udało się bo przekroczył 1500 znaków. Program "rysował" szafki kuchenne dolne w dużym uproszczeniu. "Rysował" tj wklejało się do linicommand tekst z pliku i wtedy rysował. Przez wklejenie bo tak szybciej i scr programie przestał działać, virus czy co. A, że to strasznie wypociny były(lispa tam nie uświadczysz ani żadnego ui), to teraz próbuję go napisać na nowo (na razie rozkroje do txt). I jak by ktoś miał chęć coś poklikać czy ocenić to chętnie udostępnię ten stary program. Nowy jak bym napisał to także nie w celach komercyjnych. Chciałem na githuba wrzucić, ale to jakaś męczarnia, a i lepiej się swoimi wypocinami lokalnie chwalić, niż globalnie a poza tym po polsku.

Tu załączę tylko maina

#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
#include "szafka.hpp"
#include "punkt.hpp"
#include "komenda.hpp"
#include "Tekran_alfanumeryczny.h"
using namespace std;

class dane {

public:
int sz=700,gl=600,wys =820, dl=600,gr=18;

dane (int szsz, int wys);

};

void menu_1 ( string dana,int &a,string opis ="podaj nowa ");
void narysuj(int x=5, int y=1);


Tekran_alfanumeryczny ekran;
int sz=700,gl=600,wys =820, dl=600,gr=18, Y, X=0,suma=0;
string szafki;

//int Szafka::typ;
int main()
{
    system("taskkill /F /IM notepad.exe");

    fstream plik, pdwg;
    plik.open("1.txt",ios::out);
    plik.close();

    ekran.wyczysc();

    Punkt p;
    p={100,200,300};
    p.zmienZnak('<','<');
  //  p.wy(scr,2);
   // p.wy(scr,1);

  int opcja=1;

    while (opcja)
   {
       ekran.napisz(1,1,"[1] szerokosc: ="+to_string(sz)+"[mm]");
       ekran.napisz(1,2,"[2] wysokosc: ="+to_string(wys)+"[mm]");
       ekran.napisz(1,3,"[3] grubosc plyty: ="+to_string(gr)+"[mm]");
       ekran.napisz(1,4,"[4] glebokosc: ="+to_string(gl)+"[mm]");
       ekran.napisz(1,5,"[5] Dodaj szafke!");
       ekran.napisz(1,6,"polozenie uklau wspolzednych");

       ekran.napisz(1,7,"["+to_string(Szafka::ucsX)+",0,0]");

       narysuj();
       cout<<"Wcisnij [0] by zakonczyc menu \n";
       cout<<"podaj opcje menu [0-9]: "<<flush;

       cin>>opcja;

       if (!(cin.good())) {cin.clear(); cin.sync(); continue;}
       switch (opcja)
       {

            case 1: menu_1("szerokosc : ",sz);
            break;

            case 2:  menu_1("wysokosc : ",wys);
            break;

            case 3: menu_1("grubosc : ",gr);
            break;

            case 4: menu_1("glebokosc : ",gl);
            break;

            case 5: { Szafka *sz1=new Szafka(sz,wys,gl,gr);
                    sz1->wys(2);
                    string str1= "|          |";
                    string str2= " Typ "+to_string(Szafka::typ)+" ";
                    size_t poczatek=(str1.size()-str2.size())/2;
                    size_t dlugosc=str2.size();
                    str1.replace(poczatek,dlugosc,str2);
                    ekran.napisz(X+5,Y+2, str1);

                    str1= "|          |";
                    str2= " "+to_string(sz)+" ";
                    poczatek=(str1.size()-str2.size())/2;
                    str1.replace(poczatek,str2.size(),str2);
                    ekran.napisz(X+5,Y+3, str1);
                    X+=str1.size();
                    suma+=sz;
                    string suma1(25,'.');
                    ekran.napisz(0,Y+4, suma1);
                    suma1="suma = "+to_string(suma);
                    ekran.napisz(X/2,Y+4, suma1);
                    ekran.wyswietl();
                    delete sz1;}
            break;

            case 6:  Szafka::typ=0;
            break;

            case 7:  Szafka::typ=1;
            break;

            case 8:  Szafka::typ=2;
            break;

            case 9:  Szafka::typ=3;
            break;
       }

   }

    //system("1.txt");
    //system("D:\\c++\\kuchnia\\szafki\\2.dwg");
    //pdwg.open("1.dwg",ios::out|ios::app);
    //pdwg.close();

    return 0;
}

void menu_1 ( string dana,int &a,string opis){
     do {
        cout<<opis<<dana;
        cin>>a;
        cin.clear(); cin.sync();
       if(!(a)) {cout<<"    bledna liczba       "; continue;}
        } while(!(cin.good()));
}

void narysuj(int x, int y){

    int z=20;

    y=4; x=30;
    ekran.napisz(x,y-3, "         ___________ ___");
    ekran.napisz(x,y-2, "....... /          /|  |");
    ekran.napisz(x,y-1, "...... /          / |  |");
    ekran.napisz(x,y-0, "..... /__________/  |[2]wysokosc = "+to_string(wys));
    ekran.napisz(x,y+1, "......|         |   |  |..............................||..");
    ekran.napisz(x,y+2, "......|         |   | _|_.............................||..");
    ekran.napisz(x,y+3, "......|         |  /   /..............................||..");
    ekran.napisz(x,y+4, "......|         | /[4]glebokosc = "+to_string(gl)+"....[3]grubosc plyty ="+to_string(gr)+" ");
    ekran.napisz(x,y+5, "......|_________|/ __/");
    ekran.napisz(x,y+6, "......|         | ");
    ekran.napisz(x,y+7, "......|__     __|");
    ekran.napisz(x,y+7, " [1]szerokosc = "+to_string(sz)+" ");


    string str1= "|_________|";
    string str2= " "+to_string(sz)+" ";
    str1.replace(3,str2.size(),str2);
   y=13; x=4;
    ekran.napisz(x,y-0, "___________");
    ekran.napisz(x,y+1, "|         |");
    ekran.napisz(x,y+2, "|   bez   |");
    ekran.napisz(x,y+3, "|_________|");
    ekran.napisz(x,y+4, "| frontu  |");
    ekran.napisz(x,y+5, "|_________|");
    ekran.napisz(x,y+6, str1);
    ekran.napisz(x-2,y+7, " [6] Typ 0   ");

    x+=z;
    ekran.napisz(x,y,   "___________ ");
    ekran.napisz(x,y+1, "|        O|");
    ekran.napisz(x,y+2, "|         |");
    ekran.napisz(x,y+3, "|         |");
    ekran.napisz(x,y+4, "|         |");
    ekran.napisz(x,y+5, "|_________|");
    ekran.napisz(x,y+6, str1);
    ekran.napisz(x-2,y+7, " [7] Typ 1   ");

    x+=z;
    ekran.napisz(x,y,   "___________");
    ekran.napisz(x,y+1, "|   O|O   |");
    ekran.napisz(x,y+2, "|    |    |");
    ekran.napisz(x,y+3, "|    |    |");
    ekran.napisz(x,y+4, "|    |    |");
    ekran.napisz(x,y+5, "|____|____|");
    ekran.napisz(x,y+6, str1);
    ekran.napisz(x-2,y+7, " [8] Typ 2   ");

    x+=z;
    ekran.napisz(x,y,   "___________");
    ekran.napisz(x,y+1, "|____O____|");
    ekran.napisz(x,y+2, "|    O    |");
    ekran.napisz(x,y+3, "|_________|");
    ekran.napisz(x,y+4, "|    O    |");
    ekran.napisz(x,y+5, "|_________|");
    ekran.napisz(x,y+6, str1);
    ekran.napisz(x-2,y+7, " [9] Typ 3   ");


    ekran.napisz(30,y+9, "   Obecny Typ "+to_string(Szafka::typ)+"    ");

    Y=y+9;
   // ekran.napisz(x+4,y+1, nazwa);
  //  ekran.napisz(x+7,y+2, to_string(pokazuje));
  //  ekran.napisz(x+14,y+2, jednostki);
    ekran.wyswietl();
}

 

komentarz 6 czerwca 2019 przez j23 Mędrzec (194,920 p.)
Nie działa, bo strumieniem pobierasz najpierw grubość, później nazwę, a w argumencie podajesz odwrotnie.

Linię 23 powinieneś przesunąć przed 30. Linię 27 usunąć.
komentarz 6 czerwca 2019 przez niezalogowany

ok, działa ale był jeszcze jeden błąd

 a( std::string n="" ,int g=0)
        :name(std::move(n)), grubosc(g)
    {
             std::string gruboscString="";
             std::string temp = this->name+" "+std::to_string(g);
             if(g==0){
                  std::istringstream ssdane(name);
            ssdane >> this->grubosc>> this->name ;
            std::string  // to pewnie mi krwi napsuło
temp = this->name+" "+std::to_string(this->grubosc); // a to już działa elegancko
           fo2(name,grubosc);
             }
             a_typ.insert(std::move(temp));
    }

 

komentarz 6 czerwca 2019 przez niezalogowany
dzięki właśnie to zrobiłem jak tylko zobaczyłem wynik w klasie.

a błąd ssdane >> this->grubosc>> this->name ; // wynikał z próby przeładoawania konstruktora a(int,string), a(string) bo a(string="",int=0), a(string) powodował błąd kompilacji
komentarz 6 czerwca 2019 przez j23 Mędrzec (194,920 p.)

Uprościłem nieco ten konstruktor:

a(std::string n = "", int g = 0)
    : grubosc(g)
{
    if (g == 0) std::istringstream(n) >> grubosc >> name;
    else name = std::move(n);
    a_typ.insert(name + " " + std::to_string(g));
}

 

komentarz 6 czerwca 2019 przez niezalogowany
wygląda lux

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 90 wizyt
0 głosów
1 odpowiedź 226 wizyt
pytanie zadane 30 czerwca 2019 w Sprzęt komputerowy przez Grz3siu Nowicjusz (120 p.)
0 głosów
1 odpowiedź 134 wizyt
pytanie zadane 27 grudnia 2018 w C i C++ przez XezolPL Obywatel (1,530 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 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!

...