Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania
Viewing all 65225 articles
Browse latest View live

Java - etapy tworzenia aplikacji

$
0
0
Witam Wszystkich !
Muszę napisać aplikację w JAVA. Mam wszystkie wytyczne. Problem w tym, że nie wiem od czego zacząć aby nauka i pisanie aplikacji szło płynnie. Chodzi mi o to, że jeśli napiszę jedną część, to aby była używalna bez większego refactora w dalszej części kodu.
Wymogi aplikacji:
- GUI, wybrałem JavaFX
- komunikacja klient - server (socket ?)
- logowanie na odpowiednie konta
- server czyta dane z sql
- wielowątkowość

Moje pytanie, a w zasadzie prośba to odpowiednie wskazanie drogi, od czego zacząć pisząc taką aplikacje ?
Dzięki Wszystkim za odpowiedzi !
Trzymajcie się w dobie kwarantanny ! :D

zamiana pętli for na while POMOCY!!

$
0
0

Witam, mianowicie dostałam 2 zadania do zrobienia:

Napisać program drukujący na ekranie prostokąt z literek X. Wysokość i szerokość prostokąta wczytujemy z klawiatury. Poniższy prostokąt ma wymiary:

XXXXXXXXXX

XXXXXXXXXX

XXXXXXXXXX

XXXXXXXXXX

(Wszystko razem połączone, bez tych przerw) i bardzo podobne:

Napisz program drukujący na ekranie prostokąt z literek X. Wysokość i szerokość prostokąta wczytujemy z klawiatury: 
 XXXXXXXXXXX        

X                        X      

 XXXXXXXXXXX 
  

I teraz, zrobiłam to pętlą for w taki sposob:

1)

#include <iostream>
#include <ctime>
#include <conio.h> 

using namespace std;

int w,s;

int main()
{
    cout<< "Podaj szerokosc: ";
    cin>>s;
    cout<< "Podaj wysokosc: ";
    cin>>w;

   for(int i=0; i<s;  i++)
   {
       cout<< "X";
   }

cout<<endl;

   for(int b=0; b<w-2; b++)
   {
       cout<< "X";

       for(int c=0; c<s-2; c++)
       {
           cout<< "X";
       }cout<<"X"<<endl;
   }

for(int d=0; d<s; d++)
{
    cout<< "X";
}

 return 0;
}

a 2)

#include <iostream>
#include <ctime>
#include <conio.h> 

using namespace std;

int w,s;

int main()
{
    cout<< "Podaj szerokosc: ";
    cin>>s;
    cout<< "Podaj wysokosc: ";
    cin>>w;

   for(int i=0; i<s;  i++)
   {
       cout<< "X";
   }

cout<<endl;

   for(int b=0; b<w-2; b++)
   {
       cout<< "X";

       for(int c=0; c<s-2; c++)
       {
           cout<< "";
       }cout<<"X"<<endl;
   }

for(int d=0; d<s; d++)
{
    cout<< "X";
}

 return 0;
}

 

I teraz moje pytanie jest takie, w jaki sposob mogę zamienić for na pętle do while?

Nie potrafię tego zamienić, wiec prosiłąbym o szybką pomoc.

Z gory dziekuje:)

Jaki język bądź języki wybrać ??

$
0
0
Witam

Szukam języka który będzie się nadawać do zaprogramowania inteligentnej kuchni coś podobnego do inteligentnego domu, a chodzi mi dokładnie o takie rzeczy jak uruchomienie światła, wysunięcie okapu z blatu bądź szuflady pionowej z przyprawami, zmiana muzyki, możliwość sterowania oknem czyli otwórz-zamknij lub roletami. Jaki język będzie do tego najlepszy. Przypuszczam ze nie jest to łatwe do zrobienia i porywam sie z motyką na słońce ale prawda jest taka ze finalnie nie ja to będę robić a programista ale muszę mieć podstawową a nawet trochę szerszą wiedzę, wiedzieć o czym mówię i co chce i sam na początku już cos działać.

Z góry dzięki za odpowiedzi i pozdrawiam

Python - pomija pierwszą linijkę tekstu

$
0
0
dir_path = os.path.dirname(os.path.realpath(__file__))
final_path = dir_path + '/Dni_tygodnia/'

for i in range(5):
    completeName = final_path + 'Dzien {}.txt'.format(i+1)
    with open(completeName, 'r', encoding="utf-8") as file:
        for x in file:
            y = file.read(1)
            print(x.replace("\n","".replace(y,"")))
        

Witam, próbuję napisać program, który zczytuje tekst z pliku, następnie usuwa on liczbę znajdującą się przed tekstem np. 1 Walaszek. Problem wynika z tego, że pomijana jest pierwsza linijka z każdego pliku (zdjęcie załączam).

obrazki img.jpg

$
0
0
po wgraniu obrazków  z około 12  , 3 nie wyświetlają się  jaka to przyczyna  możne ktoś wie

zapytanie o funkcje echo

$
0
0

Witam,  mam problem w internecie nie znalazłem odpowiedzi. 

a wiec tak, chciałbym stworzyć bazę danych. postawiłem tabelke html a w niej chciałem odczytać dane i kod był taki. (częsc kodu)  w międzyczasie na forum się dowiedziałem że lepiej użyć   echo <<<END

dane z bazy się wyświetlają, ale kilka razy  , każdy wynik z bazy (ale też przy każdym wierszu jest nagłówek kolumny.  

echo  <td>  .$row  ['id'].   </td> ;
echo  <td>  .$row  ['imie'].   </td> ;
echo  <td>  .$row  ['nazwisko'].   </td> ;


echo <<<END

  
<div class='main-block'>
  <table>
     <tr>				 <td>  	        				
		 $row[id]		 <td>
		 $row[imie]		 <td>
		 $row[nazwisko]	 
		 
  
   </table>
</div>
END;

 

Czy instalować Kali Linux na dysku?

$
0
0
Hej, mam dylemat. Chciałem zainstalować na wirtualnej maszynie Kali Linuxa, żeby po prostu ogarnąć inny system w wolnym czasie. Słyszałem, jakoby Kali był stworzony "tylko" pod LiveCD bo podobno instalowanie go na vm będzie niebezpieczne. Co o tym sądzić?

edit:

Mam jeszcze pytanie, ile potrzebuje miejsca na dysku, żeby na spokojnie móc z niego korzystać? Czytałem, że kiedy kompilujesz, to potrzeba minimum 150GB. Co to znaczy, że kompiluje? Czy na początku będzie to potrzebne? Ogólnie chcę się z terminalem pobawić, na razie tyle.

zapytanie o wyświetlanie danych w tabelce, źle wyświetla

$
0
0

Witam,  mam problem w internecie nie znalazłem odpowiedzi. 

a wiec tak, chciałbym stworzyć bazę danych. postawiłem tabelke html a w niej chciałem odczytać dane i kod był taki. (częsc kodu)  w międzyczasie na forum się dowiedziałem że lepiej użyć   echo <<<END

dane z bazy się wyświetlają, ale kilka razy  , każdy wynik z bazy (ale też przy każdym wierszu jest nagłówek kolumny.  

echo  <td>  .$row  ['id'].   </td> ;
echo  <td>  .$row  ['imie'].   </td> ;
echo  <td>  .$row  ['nazwisko'].   </td> ;


echo <<<END

  
<div class='main-block'>
  <table>
     <tr>				 <td>  	        				
		 $row[id]		 <td>
		 $row[imie]		 <td>
		 $row[nazwisko]	 
		 
  
   </table>
</div>
END;

 


C#, Unity - czy warto?

$
0
0
hej

Tak troche dopytuje na tym forum, szukam sam w internecie. Aktualnie jestem programistą php + symfony. Zastanawiam się nad rozwojem w kolejną stronę.

Rozważałem C++ ale wpadł mi do głowy dziki pomysł aby zainteresować się szerzej C# + Unity. Tworzenie gier zawsze było gdzieś obok mnie. Bawiłem się serwami tibii, metina, troche minecraft ale w tym ostatnim to raczej postawienie i granie z kolegami aniżeli twórcze zagadnienia.

Czy ktoś z użytkowników forum zajmuje się tworzeniem w unity? Jak to wygląda? Jest to przyjemna sprawa? Nie pytam całkowicie o znalezienie potencjalnej pracy bo na to zbyt wcześniej, chodzi mi raczej ogólnie o język, unity i przyjemność pracy.

 

Pozdrawiam

Cpp, WWW - w czym pisać pod Ubuntu

$
0
0
Witajcie

Rozpoczynam swoją przygodę z Linuksem. W czym polecacie pisać w C++ oraz tworzyć sttony WWW,

Pozdrawiam

Karta Graficzna

$
0
0
witam !!

 Połamałem  wentylator w mojej karcie :) wiem wiem zadacie pytanie jak ??  

karta graficzna to GTX 750ti   , w tym układzie pasuje mi zmienić na lepszą  pytanie jaka ???

SPOJ - Największa różnica

$
0
0

Cześć, problem dotyczy zadania Największa różnica: https://pl.spoj.com/problems/LIKEHELL/

Mianowicie wynik z jakiegoś powodu wychodzi zły, a ja nie mogę namierzyć błędu. Załączam kod i mam nadzieję, że ktoś mądrzejszy wytłumaczy o co chodzi.

#include <iostream>
#include <algorithm>

using namespace std;

const int M = 1 << 21;
const int leaf = 1 << 20;

int tree_min[M + 5];
int tree_max[M + 5];

void dodaj(int a, int x){
    a += leaf;
    
    while(a /= 2){
        if(tree_min[a] == 0) tree_min[a] = M;
        tree_min[a] = min(tree_min[a], x);
        tree_max[a] = max(tree_max[a], x);
    }
}

int roznica(int a){
    int ans = 0;
    a += leaf;
    
    while(a /= 2){
         ans = max(ans, tree_max[(a*2)+1]-tree_min[a]);
    }
    return ans;
}

void zmien(int p, int v){
    p += leaf;
    tree_min[p]=v;
    tree_max[p]=v;

    while(p){
        p/=2;
        if(tree_min[(p*2)+1] == 0) tree_min[(p*2)+1] = M;
        if(tree_min[(p*2)] == 0) tree_min[(p*2)] = M;
        tree_min[p] = min(tree_min[p*2], tree_min[(p*2)+1]);
        tree_max[p] = max(tree_max[p*2], tree_max[(p*2)+1]);
    }
}

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    
    int n, q;
    cin >> n >> q;
    
    for(int i=1; i<=n; i++){
        int x;
        cin >> x;
        dodaj(i, x);
    }
    
    for(int i=0; i<q; i++){
        string z;
        cin >> z;
        if(z == "q")
            cout << roznica(1) <<"\n";
        else if(z == "u"){
            int p, v;
            cin >> p >> v;
            zmien(p, v);
        }
    }    
        
    return 0;
}

 

Użycie Google Maps na stronie - opłaty

$
0
0
Witam.

Chcę wstawić na stronę mapkę Google klikając w: "share" a następnie w "Embed a map" na mapie z wyszukanym miejscem o które mi chodziło. Nie rejestruję się, nie podaję danych ani nie uzyskuję klucza API, z którego z resztą w żaden sposób nie korzystam.

Czy tak użyta mapa na stronie jest bezpłatna? Czy może jednak Google może w jakiś sposób jakieś opłaty naliczyć i następnie zażądać zapłaty?

Problem z JS

$
0
0

Mam problem z JS

https://pastebin.com/VgGVW3SV

Dochodzi do 3 console loga i nie idzie dalej :(

HTML: 

<p id="podjs1">...</p>

Z góry przepraszam - to moja pierwsza strona z wykorzystaniem js, jquery i ajaxa.

Pozdrawiam

iNakeii

Procesor, bios, temperatura.

$
0
0
Witam.

Ostatnio zakupiłem sobie nowy procesor oraz płyte główną. (ryzen 5 3600x oraz msi b450 mortar max)

Wszystko było cacy, chciałem przetestować sobie game boost który znalazłem w biosie i od tamtej pory dzieją sie dziwne rzeczy. Po wyłączeniu game boosta komputer dalej chodzi jakby w trybie podkreconym, nawet gdy nie mam odpalonej zadnej gry, przegladarki, ani czegokolwiek to procesor i tak wrzuca sie na wysokie obroty (4300mhz). Dodatkowo utrzymuje sie ciągle temperatura okolo 50-60 stopni przez co wiatrak zaczyna wchodzić na większe obroty.

Wczytaj, dodaj, uśrednij i wyświetl

$
0
0

Czołem :)

Męczę się z tym oto zadaniem:

Napisz program, który pobierze od użytkownika nazwę pliku, a następnie odczyta liczby całkowite w nim zapisane i wyznaczy odpowiednio sumę oraz średnią tych liczb,

Format pliku jest następujący:

w pierwszej linii podana jest liczba danych, dla których należy obliczyć sumę i wartość średnią,
w następnych liniach dane.
W przypadku braku pliku program powinien wyświetlić komunikat Couldn't open file i zwrócić kod błędu 4. W przypadku błędnych danych w pliku wyświetlić komunikat File corrupted i zwrócić kod błędu 6.

Przykładem błędnych danych może być:

tekst
ujemna liczba liczb
mniejsza liczba liczb (względem nagłówka).
Jeżeli udało się wykonać wszystkie obliczenia to program powinien wyświetlić na ekranie, w osobnych liniach, sumę oraz wartość średnią z wczytanych liczb. Ponadto w takim przypadku program powinien zakończyć pracę z kodem błędu 0.

Przykładowa interakcja z programem - sukces (dla pliku wejściowego text.txt):

Podaj sciezke do pliku:⏎
text.txt⏎
2550⏎
2.014218⏎
Przykładowa interakcja z programem - brak pliku:

Podaj sciezke do pliku:⏎
study.txt⏎
Couldn't open file⏎
Uwaga

W programie nie wolno używać funkcji alokujacych pamięć.
W programie można zadeklarować tylko tablice na 30 znaków (do przechowywania nazw plików). Deklaracja musi wyglądać następująco: nazwa_zmiennej[31];.
W programie nie wolno używać operatora [].

Oto mój kod do niego:

#include <stdio.h>
#include <stdlib.h>


int main()
{
    char tab[31]={0};
    char input[31]={0};
    char *tab_i=&(*(tab+0)), *input_i=&(*(input+0));



    int i;
    printf("Podaj sciezke do pliku\n");
    scanf(" %31[^\n]", input_i);
    for(i=0; i<30; i++)
    {
        *(tab_i+i)=*(input_i+i);
    }

    FILE *f= fopen(tab_i,"rb");
    if(f==NULL)
    {
        printf("Couldn't open file");
        return 4;
    }

    int suma = 0;
    int znak_int;
    char znak;
    while(fread(&znak,1,1,f) != 0)
    {
        if(znak>=48 && znak<=57)
        {

        }
        else if( znak==13 || znak=='\t' || znak=='\0' || znak=='-' || znak==' ' || znak=='\n')
        {

        }
        else
        {
            fclose(f);
            printf("File corrupted");
            return 6;
        }
    }
    i =0;
    int czy_sie_zgadza=0;
    int ile_liczb=0;
    fseek(f,0,SEEK_SET); // ustawiam na pozycje poczatkowa
    while(fscanf(f,"%d",&znak_int)==1)
    {
        suma += znak_int;
        if(i == 0)
        {
            if(suma<0)
            {
                fclose(f);
                printf("File corrupted");
                return 6;
            }
            suma=0;
            ile_liczb=znak_int;
        }
        else
        {
            //printf("Jestem tu!");
            czy_sie_zgadza++;
        }
    i++;
    }
    if(czy_sie_zgadza < ile_liczb )
    {
        fclose(f);
        printf("File corrupted");
        return 6;
    }
    if(suma==0 && ile_liczb==0)
    {
        fclose(f);
        printf("File corrupted");
        return 6;
    }
    printf("Twoja suma: %d\n",suma);
    printf("Twoja srednia: %f",(float)suma/(float)ile_liczb);
    fclose(f);

    return 0;
}

Zauważyłem, że ot choćby dla danych z pewnego przykładowego testu:

http://pp.iis.p.lodz.pl/reports/subsp/20/2309-2309/818/532934-e93f7fecc237e153/0004sugar

podaje złe wyniki. 

Widok konsoli programu -- przebieg interakcji z użytkownikiem:

Podaj sciezke do pliku⏎
sugar⏎
Twoja suma: 46787⏎
Twoja srednia: 134.445404
Program zakończony; kod błędu=0 (Ok)

Test został przerwany; Wyświetlone dane w linii 1 są nieprawidłowe, powinno być '-1761' a jest '46787'

Czemu więc wychodzą tak dziwne wyniki? Domyślacie się może o co chodzi?

Dziwny błąd - czy to wina kodu?

$
0
0

Witam serdecznie w tę jakże ciemnawą noc - wolną od chaosu,

otóż napotkałem się z pewnym błędem. Jednakże zaczne od rozpisania odpowiedzi na pytanie - co to za program?

Mniej więcej służy on tak, że możemy wyswietlać kategorie, dodawać je oraz usuwać. Problem polega na tym, że gdy funkcją remove usuwam plik "categories.txt", to jeśli nie zrestartuje programu, odpalając kolejno void addCategory(); - pytanie o nazwę kategorii wyświetla się dwa razy. Wcześniej miałem taki błąd, że program zamiast wypisywać dwa razy pytanie o nazwę kategorii, tj. sam klikał enter - rozwiązałem to instrukcją: if(name_category=="") goto answer; - no ale problem zamienił się na inny...

Poniżej kodzik z miejsc głównego problemu:

void addCategory() { // dodaje kategorie, w ktorej bedzie mozna dodac baze kont
	system("cls");
	string temp2;
	vector <string> temp;
	int x=0;
	string name_category;
		
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
	cout << endl;
	cout << "-------------------"<< endl;
	cout << "DODAWANIE KATEGORII"<< endl;
	cout << "-------------------"<< endl;
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
	answer_again:
	cout << "Nazwa nowej kategorii: "; getline(cin, name_category);
	if (name_category == "") goto answer_again;
	
	fstream zapis; // zapisuje nazwe kategorii z uprzednio zapisanym numerem
	zapis.open("bin/categories.txt", ios::out | ios::app);
	if (zapis.good() == false) cout << "Nie mozna otworzyc pliku z kategoriami!";
	else {
		zapis << name_category << endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
		cout << endl << "Pomyslnie utworzono nowa kategorie.";
		Sleep(1500);
	}
	zapis.close();
}

void removeCategory() { // usuwa jedna wybrana kategorie
	system("cls");
	int choice; // wybor kategorii do usuniecia
	int o = 0; // do wyswietlania numerow kategorii
	char w; // w jak wait, pomocna
	string answer; // do uzycia w: czy na pewno usunac kategorie ... ? odp. y/n
	vector <string> temp;
	vector <string> temp3; // tu bedzie wpisana kopia nazw bez zadnego "" i tworzony po chwilii nowy plik.txt

	ifstream odczyt;
	odczyt.open("bin/categories.txt");
	if (odczyt.good() == false) {
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4);
		cout << "Nie stworzyles jeszcze zadnej kategorii!";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
		Sleep(1500);
	}
	else {
		string temp2;
		while (!odczyt.eof()) {
			getline(odczyt, temp2);
			temp.push_back(temp2);
		}
		odczyt.close();

		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
		cout << "------------------"<< endl;
		cout << "USUWANIE KATEGORII"<< endl;
		cout << "------------------"<< endl;
		cout << "Posiadane kategorie:"<< endl << endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);

		for (size_t i = 0; i < temp.size(); i++) { // pokazuje kategorie numerowane kolejno
			if (i == temp.size() - 1) continue; // inaczej przy wyswietlaniu ostatni numer nie posiada kategorii
			cout << ++o << ". "<< temp[i] << endl;
		}
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
		cout << endl << "Wcisnij numer kategorii, ktora chcesz usunac: ";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);

		cin >> choice;

		choice = choice - 1;

	one_more:
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
		cout << endl << "Czy na pewno usunac kategorie o nazwie ";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4);
		cout << temp[choice];
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
		cout << " ? Wpisz TAK lub NIE: ";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
		cin >> answer;

		if (answer == "nie" || answer == "NIE") {
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);
			cout << endl << "Za 3 sekundy nastapi wyjscie z programu...";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
			Sleep(3000);
			exit(0);
		}
		else if (answer == "tak" || answer == "TAK" ) temp[choice] = "";
		else goto one_more;

		for (size_t i = 0; i < temp.size(); i++) { // kopiowanie danych ze zmiennej temp do zmiennej temp3 bez pustych ""
			if (temp[i] == "") continue;
			else {
				temp3.push_back(temp[i]);
			}
		}

		if (remove("bin/categories.txt") == 0) { // usuwamy plik aby zaraz utworzyc nowy
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);
			cout << endl << endl << endl << "Prawidlowo usunieto plik z kategoriami";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
			Sleep(1500);
			
			fstream zapis;  // bedziemy tutaj zapisywac dane ze zmiennej kontenerowej temp3
		    zapis.open("bin/categories.txt", ios::out);
		    if (zapis.good() == false) {
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4);
			    cout << endl << "Nie udalo sie utworzyc pliku categories.txt";
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
			    Sleep(1500);
		    }
			else {
			zapis.seekp(0);
			for (size_t i = 0; i < temp3.size(); i++) { // wczytujemy nowe dane do nowego pliku
				zapis << temp3[i] << endl;
			}
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);
			cout << endl << "Prawidlowo dodano nowy plik z aktualnymi kategoriami";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
			Sleep(1500);
			zapis.close();
			}

		}
		else {
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4);
			cout << endl << "Nie udalo sie usunac pliku z kategoriami";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
			Sleep(1500);
		}
	}
}

A poniżej kodzik z głównego kodu programu na wszelki:

#include "spis_tresci.h"

void main_menu() {
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
	system("cls");
	cout << "-----------"<< endl;
	cout << "MENU GLOWNE"<< endl;
	cout << "-----------"<< endl;
	cout << "[1] Wyswietl dostepne kategorie"<< endl;
	cout << "[2] Dodaj kategorie"<< endl;
	cout << "[3] Usun kategorie"<< endl;
	cout << "[4] Dodaj konto do istniejacej kategorii"<< endl;
	cout << "[5] Usun konto z istniejacej kategorii"<< endl;
	cout << "----------------------------------------"<< endl;
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
}

void showCategories() { // pokazuje dostepne kategorie
	system("cls");

	int x=0; // dodaje kolejno numery kategorii
	char w; // w jak wait, poczekaj na przycisk, jesli bedzie nim 1, wrocisz od menu glownego

	vector <string> temp;

	ifstream odczyt;
	odczyt.open("bin/categories.txt");
	if (odczyt.good() == false) {
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4);
		cout << "Nie stworzyles jeszcze zadnej kategorii!";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
		Sleep(1500);
	}
	else {
		string temp2;
		while (!odczyt.eof()) {
			getline(odczyt, temp2);
			temp.push_back(temp2);
		}
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
		cout << "-------------------"<< endl;
		cout << "POSIADANE KATEGORIE"<< endl;
		cout << "-------------------"<< endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);

		for (size_t i = 0; i < temp.size(); i++) { // pokazuje kategorie numerowane kolejno
			if (i == temp.size()-1) continue; // inaczej przy wyswietlaniu ostatni numer nie posiada kategorii
			cout << ++x << ". "<< temp[i] << endl;
		}
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
		cout << endl << "Nacisnij 1, by wrocic do menu...";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
		w = _getch();
		if (w == '1') odczyt.close();
	}
	
}

void addCategory() { // dodaje kategorie, w ktorej bedzie mozna dodac baze kont
	system("cls");
	string temp2;
	vector <string> temp;
	int x=0;
	string name_category;
		
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
	cout << endl;
	cout << "-------------------"<< endl;
	cout << "DODAWANIE KATEGORII"<< endl;
	cout << "-------------------"<< endl;
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
	answer_again:
	cout << "Nazwa nowej kategorii: "; getline(cin, name_category);
	if (name_category == "") goto answer_again;
	
	fstream zapis; // zapisuje nazwe kategorii z uprzednio zapisanym numerem
	zapis.open("bin/categories.txt", ios::out | ios::app);
	if (zapis.good() == false) cout << "Nie mozna otworzyc pliku z kategoriami!";
	else {
		zapis << name_category << endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
		cout << endl << "Pomyslnie utworzono nowa kategorie.";
		Sleep(1500);
	}
	zapis.close();
}

void removeCategory() { // usuwa jedna wybrana kategorie
	system("cls");
	int choice; // wybor kategorii do usuniecia
	int o = 0; // do wyswietlania numerow kategorii
	char w; // w jak wait, pomocna
	string answer; // do uzycia w: czy na pewno usunac kategorie ... ? odp. y/n
	vector <string> temp;
	vector <string> temp3; // tu bedzie wpisana kopia nazw bez zadnego "" i tworzony po chwilii nowy plik.txt

	ifstream odczyt;
	odczyt.open("bin/categories.txt");
	if (odczyt.good() == false) {
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4);
		cout << "Nie stworzyles jeszcze zadnej kategorii!";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
		Sleep(1500);
	}
	else {
		string temp2;
		while (!odczyt.eof()) {
			getline(odczyt, temp2);
			temp.push_back(temp2);
		}
		odczyt.close();

		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
		cout << "------------------"<< endl;
		cout << "USUWANIE KATEGORII"<< endl;
		cout << "------------------"<< endl;
		cout << "Posiadane kategorie:"<< endl << endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);

		for (size_t i = 0; i < temp.size(); i++) { // pokazuje kategorie numerowane kolejno
			if (i == temp.size() - 1) continue; // inaczej przy wyswietlaniu ostatni numer nie posiada kategorii
			cout << ++o << ". "<< temp[i] << endl;
		}
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
		cout << endl << "Wcisnij numer kategorii, ktora chcesz usunac: ";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);

		cin >> choice;

		choice = choice - 1;

	one_more:
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
		cout << endl << "Czy na pewno usunac kategorie o nazwie ";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4);
		cout << temp[choice];
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
		cout << " ? Wpisz TAK lub NIE: ";
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
		cin >> answer;

		if (answer == "nie" || answer == "NIE") {
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);
			cout << endl << "Za 3 sekundy nastapi wyjscie z programu...";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
			Sleep(3000);
			exit(0);
		}
		else if (answer == "tak" || answer == "TAK" ) temp[choice] = "";
		else goto one_more;

		for (size_t i = 0; i < temp.size(); i++) { // kopiowanie danych ze zmiennej temp do zmiennej temp3 bez pustych ""
			if (temp[i] == "") continue;
			else {
				temp3.push_back(temp[i]);
			}
		}

		if (remove("bin/categories.txt") == 0) { // usuwamy plik aby zaraz utworzyc nowy
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);
			cout << endl << endl << endl << "Prawidlowo usunieto plik z kategoriami";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
			Sleep(1500);
			
			fstream zapis;  // bedziemy tutaj zapisywac dane ze zmiennej kontenerowej temp3
		    zapis.open("bin/categories.txt", ios::out);
		    if (zapis.good() == false) {
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4);
			    cout << endl << "Nie udalo sie utworzyc pliku categories.txt";
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
			    Sleep(1500);
		    }
			else {
			zapis.seekp(0);
			for (size_t i = 0; i < temp3.size(); i++) { // wczytujemy nowe dane do nowego pliku
				zapis << temp3[i] << endl;
			}
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 2);
			cout << endl << "Prawidlowo dodano nowy plik z aktualnymi kategoriami";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
			Sleep(1500);
			zapis.close();
			}

		}
		else {
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4);
			cout << endl << "Nie udalo sie usunac pliku z kategoriami";
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
			Sleep(1500);
		}
	}
}

 

Skrócenie komunikatów z node.js

$
0
0

Cześć

Nieraz irytujące są dla mnie komunikaty z konsoli przy kompilacji kodu webpackiem, konkretnie w Laravelu.

Chodzi o coś takiego:

Ktoś z was nie zastanawiał się może czy da się skrócić te komunikaty, tak żeby pokazywało głównie to gdzie występuje błąd, bez tych wszystkich at itd.?

Może jest to kwestia jakiejś konfiguracji?

 

 

 

Problem z kolejką w C

$
0
0

Cześć, mam problem z programem który ma symulować kolejkę połączeń w callcenter. Mianowicie, chodzi o wywołania pętli w funkcji main, która nie wykonuje się tyle razy ile powinna (mniej razy). Np gdy powinna wykonuje się 2 razy, wykonuje się raz, a gdy powinna 6 razy to wykonuje się tylko 4 razy.  Przykładowe dane wejściowe powinny wyglądać następująco: 

2   // liczba kolejnych wierszy

a 24 111222333  // tutaj: a-informacja czy a(add) do kolejki lub r(remove); 24- dl. polaczenia; 11...33 - numer tel.

r 28 

Czy mógłby ktoś mi wytłumaczyć dlaczego program tak się zachowuje?

#include <stdio.h>
#include <stdlib.h>
#define N 100
#define S 15

struct Operation{
    char typ;
    char *number[S];
    int secs;
};

struct Queue{
    int rear, front, size;
    struct Operation arr[N];
};

struct Queue* creat_queue(){
    struct Queue* queue = (struct Queue*)malloc(sizeof(struct Queue));
    queue->rear=N-1;
    queue->front = queue->size = 0;
    return queue;
};

void add_to_queue(struct Queue* queue, struct Operation item){
    queue->rear=(queue->rear+1)%N;
    queue->arr[queue->rear]=item;
    queue->size=queue->size+1;
}

struct Operation remove_from_queue(struct Queue* queue){
            struct Operation item = queue->arr[queue->front];
            queue->front=(queue->front+1)%N;
            queue->size=queue->size -1;
            return item;
}

int isEmpty(struct Queue* queue) {
     return (queue->size == 0);
 }

void output(struct Queue* queue){
    struct Operation operation;
    while(!isEmpty(queue)){
        operation=remove_from_queue(queue);
        printf("%s %d\n", operation.number, operation.secs);
    }
}

void object(struct Queue* queue){
        struct Operation operation;
        scanf("%c %d %s", &operation.typ, &operation.secs, operation.number);
        if(operation.typ=='a'){
            add_to_queue(queue, operation);
            }
        else if(operation.typ=='r'){
            struct Operation tmp;
                tmp=remove_from_queue(queue);
                tmp.secs=operation.secs-tmp.secs;
                add_to_queue(queue, tmp);
            }

}

int main()
{
    int k;
    scanf("%d", &k);
    struct Queue* queue = creat_queue();
    while(k--){
    object(queue);
    }
    output(queue);
    return 0;
}

 

Rozbudowa komputera biurowego

Viewing all 65225 articles
Browse latest View live