Skocz do zawartości
Zapraszamy do udziału w tradycyjnym plebiscycie CMF Awards, edycji 2017! Swój głos można oddać w poniższym dziale do 25.01 do godziny 23:59.
CMF Awards 2017

Rekomendowane odpowiedzi

teraz działa :*

Udostępnij tego posta


Odnośnik do posta

Witam.

Teraz mam inne pytanie, z zagadnienia projektowania baz danych.

Jest sobie forma ktora przedaje wycieczki, wczasy itp. Jest sobie tabela "Zamowienia". Sa w niej informacje ktory klient zamowil jaka wycieczke itd. ale ma byc tez informacja na temad opcji dodatkowych. chodzi o dodatkowe wyzywienie, jakies dodatkowe wycieczki fakultatywne i inne atrakcje. W zwiazku z tym mam pytanie, jak byscie to zaprojektowali, bo kazdy klient moze zamowic inna ilosc dodatkowych opcji, tak ze jedno pole na to to tak srednio moze wystarczyc, wiec jak proponujecie to rozwiazac, bo na razie nie mam za bardzo pomyslu:/

W ogole moze ktos z was ma jakis diagram ERD takiej bazy dla firmy wycieczkowej (a dokladnie sprzedajacej wycieczki)

Pozdrawiam!

Udostępnij tego posta


Odnośnik do posta

Hmm, zależy jak opisane są te dodatkowe opcje. Jeśli to tylko nazwa i koszt (lub podobna struktura) to dajesz nowa tabelę z opcjami i kluczem obcym do tabeli zamówienia (relacja n-1). Jeśli dodatki mogą mieć różnorodne opcje, to trzeba bardziej się nagimnastykować.

 

PS. Temat o bazach już jest http://forumcm.net/index.php?showtopic=731

Udostępnij tego posta


Odnośnik do posta

To jeszcze jedno pytanie..

Jak w PHP wczytac zawartosc pliku linijka po linijce, tak zeby kazda linijka byla oddzielnym elementem w tablicy?

Udostępnij tego posta


Odnośnik do posta

$plik = explode(';', file('nazwa_pliku'));

 

jeśli linia kończy się średnikiem.

 

O to chodziło?

Udostępnij tego posta


Odnośnik do posta

Przekombinowałem ;)

 

Ale PHP to ja znam mało i raczej algorytmicznie (nie znam funkcji, jak chcę coś zrobić, to szukam w manualu , czy taka funkcja istnieje).

Udostępnij tego posta


Odnośnik do posta
@Gabe - samo file() zwraca tablicę zawierającą linie z pliku. Explode niepotrzebny. Chyba pomyliło Ci sie z file_get_contents()

Dzieki:) o to wlasnie chodzilo:)

teraz problem z baza danych, a razej cos z ze skladnia sql'a:/ ale totalna porazka:/ zwyklu insert into sie wykrzacza:/ ponad 2h siedzialem nad tym:/ moze jakies zacmienie mam, albo nie wiem:/ wczoraj szlo wysztsko obrze a dzis nic sie nie udalo zrobic:/ ale nic kumplowi wyslalem, zobacze co on o tym powie:P a ja z tym problemem uciekam do tematu o bazach, nikt tam jeszcze wwosikowie nie odpisal;)

Pozdrawiam:)

Udostępnij tego posta


Odnośnik do posta

to jeszcze raz ja;p

chodzi mi teraz o przeciazenie operatorow w c++, prog. obiektowym. Potrzebuje przeciazyc operator <<, jak robie to normalnie to bez problemow dzial, ale jak chce to robic poprzez funkcje zaprzyjazniona to mi nie dziala. jest klasa Stack, jest to stos i ten operato ma dodawac do stosu kolejna wartosc, tak ze w zasadzie jedynym jego argumentem ma byc liczba jaka ma do stosu byc wpisana, ale poprzez funkcje zaprzyjazniona sie tak chyba nie da zrobic. Jak daje jeden arg, to mi pisze ze jest zle, jak dam dwa arg. tzn ta referencje do obiektu tej klasy, orez liczbe jaka ma byc wpisana, to mi pisze ze za duzo arg. Niestey nie moge wkleic kodu bo nie jestem w domu i nie mam go, jak os to postaram sie go jutro wkleic zeby bardziej sprawe rozjasnic. ale prosze bardzo o pomoc, bo do niedzieli musze to zrobic.

Pozdrawiam:)

Udostępnij tego posta


Odnośnik do posta

Nie wiem jak zrobic Edita;)

Problem rozwiazany, jak ktos by potrzebowal cos z tego to prosze pisac;)

Pozdrawiam:)

Udostępnij tego posta


Odnośnik do posta

jak napisac metode sprawdzajaca roznowartosciowosc tablicy dwuwymiarowej?

Udostępnij tego posta


Odnośnik do posta

W zwiazku z tym, ze zapanowal tutaj temat javy troche glupie pytanie ale na takie czasem przychodzi czas - jaka funkcja mozna zablokowac okienko programu by sie nie zamykal zaraz po wykonaniu? :co:

Udostępnij tego posta


Odnośnik do posta

a kiedy?

 

mozna napisac druga funkcje typu void ktora bedzie konczyla dzialanie innej funkcji gdy spelniony bedzie odpowiedni warunek

Udostępnij tego posta


Odnośnik do posta

Można odpalić program w konsoli, czy też dać pętlę oczekującą na naciśnięcie klawisza na koniec programu.

Udostępnij tego posta


Odnośnik do posta

Wiem, ale wolalbym nie odpalac konsoli dopiero przy Execute :). Jak mozesz to o ta petle bym prosil. Klawisz moze byc spacja badz enter :>

Udostępnij tego posta


Odnośnik do posta

mam taki problem

 

mam klasy z nastepujacymi polami:

Osoba(string nazwisko, string imie, string pesel)

Pracownik (int urlopDoWykorzystania, double pensja)

Student (double ocena1, double ocena2)

 

Pracownik i Student dziedzicza wszystkie pola z klasy Osoba

 

tworze sobie tablice obiektow osoba typu Osoba i potrzebuje zrobic myk zeby pracownikowi o danym nazwisku przydzielić daną ilość dni urlopu - dane wczytuje z klawiatury (string nazw, int urlop)

 

mam taki kod:

 

for (int i=0; i<liczba; i++)
	{
	if(osoba[i] instanceof Pracownik) 
		{

		if(nazw.equals(osoba[i].nazwisko)) osoba[i].urlopDoWykorzystania = urlop;
		}
	}

 

kompilacja sie wywala z bledem, ze nie mozna odnalezc pola urlopDoWykorzystania, ktore przeciez istnieje w klasie Pracownik...

 

any ideas?

Udostępnij tego posta


Odnośnik do posta

Jedyne co mi przychodzi na myśl to rzutowanie:

 

((Pracownik) osoba).urlopDoWykorzystania = urlop;

Udostępnij tego posta


Odnośnik do posta

dobra, napisalem sobie calego maina, ale teraz nie wszystko dziala tak jak powinno

 

wstawie tutaj fragment kodu:

 

	StreamTokenizer strTok = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
System.out.println("Wprowadz nazwisko pracownika:");
strTok.nextToken();
String nazw = strTok.sval;
System.out.println("O ile przedluzyc urlop pracownika?");
strTok.nextToken();
int urlop = (int) strTok.nval; 
int i=0;
while (osoba[i] instanceof Student && nazw != osoba[i].nazwisko) i++;	 
	{
		((Pracownik)osoba[i]).urlopDoWykorzystania += urlop;
		System.out.println("Nowy urlop pracownika o nazwisku: "+osoba[i].nazwisko+"wynosi: "+((Pracownik)osoba[i]).urlopDoWykorzystania);
	}


System.out.println("Wprowadz nazwisko studenta");
strTok.nextToken();
String nazw2 = strTok.sval;
System.out.println("Wprowadz ocene z analizy");
strTok.nextToken();
double ocena1 = strTok.nval;
System.out.println("Wprowadz ocene z algebry");
strTok.nextToken();
double ocena2 = strTok.nval;	

int j=0;
while (osoba[j] instanceof Pracownik && nazw2 != osoba[i].nazwisko) j++;
   	{
		((Student)osoba[j]).ocenaZAlgebry = ocena1;
   		((Student)osoba[j]).ocenaZAnalizy = ocena2;
   	}


  System.out.println("Wprowadz pensje, do ktorej chcesz porownwywac");
  strTok.nextToken();
  double pensja1 = strTok.nval;

  for(int k=0; i<liczba; i++)
   if (osoba[k] instanceof Pracownik)
	   if (((Pracownik)osoba[k]).pensja < pensja1) 
		   ((Pracownik)osoba[k]).pensja *= 1.1;

  System.out.println("Wszyscy pracownicy:"); 
  for(int k=0; k<liczba; k++)
  {
   if(osoba[k] instanceof Pracownik) System.out.println(osoba[k]);
  }

  System.out.println("Wszyscy studenci: ");
  for (int k=0; k<liczba; k++)
  {
   if (osoba[k] instanceof Student) System.out.println(osoba[k]);
  }

	}

 

generalnie rzecz biorac to problem polega na tym ze ewentualne zmiany ze stanu poczatkowego (wpisywanie nowych ocen, podwyzszanie pensji) nie dziala, tzn program to wykonuje, ale gdy potem wywolam metoda wypisujaca wszystkie wartosci to sie okazuje, ze zachowane sa pierwotne wartosci, a nie te "nowe"

 

dla zwiekszania urlopu dziala samo powiekszenie, ale program zmienia te wartosc tylko dla pierwszego obiektu z klasy Pracownik, bez wzgledu na to, jakiego stringa wpisze jako nazwisko (podejrzewam, ze zamiast operatora przyrownania trzebaby zrobic to metodą equals, ale nie udalo mi sie jej poprawnie zastosowac...)

 

moze ktos poradzi jak zrobic, zeby wswietlanie wartosci dzialalo poprawnie i pokazywaly sie te nowe, zmodyfikowane?

Udostępnij tego posta


Odnośnik do posta

Przede wszystkim - masz rację co do użycia metody equals. Jeśli chcesz porównywać napisy, a nie referencje do nich, musisz używać equals ;) Użycie tej metody nie jest trudne, zamiast np.

nazw != osoba[i].nazwisko

piszesz po prostu

!nazw.equals(osoba[i].nazwisko)

[CIACH - tu były bzdety, sorka ;)]

Poza tym - druga pętla while i literówka: (osoba[j] instanceof Pracownik && nazw2 != osoba[i].nazwisko) j++;

Trzecia pętla, tym razem for, to również literówki:

for(int k=0; i<liczba; i++)

if (osoba[k] instanceof Pracownik)

if (((Pracownik)osoba[k]).pensja < pensja1)

((Pracownik)osoba[k]).pensja *= 1.1;

To tak na pierwszy rzut oka

Udostępnij tego posta


Odnośnik do posta

takie male pytanko:

 

mam klase Pracownik, ktorej konstruktor wyglada mniej wiecej tak:

Pracownik (String nazwisko, double etat)

{...}

 

jest tez klasa Urzednik dziedziczaca po klasie Pracownik

Urzednik(String nazwisko, double etat, int pensja)

{...}

 

oczywiscie nazwisko i etat Urzednika sa dziedziczone z Pracownika (super)

teraz musze napisac metode, ktora wygeneruje nowy obiekt (Urzednik) ale moge przekazac w metodzie tylko argumenty (String nazwisko, double etat)

nie bardzo wiem jak taki "niepelny" obiekt utworzyc (czy to w ogole mozliwe...) ale tez nie wiem czy moge po prostu wsadzic int pensja = 0 ?

Udostępnij tego posta


Odnośnik do posta

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się

  • Przeglądający   2 użytkowników

×