Zadanie maturalne-bazy danych

0

Witam,
niedługo będę pisać maturę i planuję wybrać Informatykę jako jeden z przedmiotów.
Zaciekawiło mnie zadanie z 2010r. Chodzi o zadanie 6, na stronie 4.
http://www.cke.edu.pl/images/stories/001_Matura/Informatyka/pp_ii.pdf

Oto treść:

Pliki noworodki.txt oraz mamy.txt zawierają dane o dzieciach i ich matkach.
W pliku noworodki.txt każdy wiersz zawiera następujące informacje o jednym dziecku,
rozdzielone znakami odstępu: identyfikator, płeć (c – córka, s – syn), imię, data urodzenia,
waga [g], wzrost [cm] oraz identyfikator matki.
Przykład:
1 c Agnieszka 20-lis-1999 2450 48 33
W pliku mamy.txt każdy wiersz zawiera informacje o jednej kobiecie, rozdzielone znakami
odstępu: identyfikator matki, imię, wiek.
Przykład:
1 Agata 25
Identyfikator matki z pliku noworodki.txt odpowiada identyfikatorowi w pliku
mamy.txt.
Wykorzystując dane zawarte w plikach mamy.txt i noworodki.txt oraz dostępne
narzędzia informatyczne, wykonaj poniższe polecenia. Odpowiedzi umieść w pliku
tekstowym zadanie6.txt, każdą odpowiedź poprzedź literą oznaczającą stosowny
podpunkt.
a) Podaj imię i wzrost najwyższego chłopca oraz imię i wzrost najwyższej dziewczynki.
Uwaga: Jest tylko jeden taki chłopiec i tylko jedna taka dziewczynka.
b) W którym dniu urodziło się najwięcej dzieci? Podaj datę i liczbę dzieci.
Uwaga: Jest tylko jeden taki dzień.
c) Podaj imiona kobiet w wieku poniżej 25 lat, które urodziły dzieci o wadze powyżej 4000 g.
d) Podaj imiona i daty urodzenia dziewczynek, które odziedziczyły imię po matce.
e) W pliku noworodki.txt zapisane są informacje o narodzinach bliźniąt. Bliźnięta
można rozpoznać po tej samej dacie urodzenia i tym samym identyfikatorze matki.
Pamiętaj, że przykładowo Jacek i Agatka oraz Agatka i Jacek to ta sama para. Możesz
założyć, że w danych nie ma żadnych trojaczków, czworaczków, itd. Podaj daty,
w których urodziły się bliźnięta.

Po przeczytaniu zadania od razu na myśl wysuwa się robienie tego za pomocą zapytań SQL. Pytanie tylko jak przetransportować dane z plików .txt do bazy danych.
A może takie zadania na maturze robi się inaczej?
Jak najlepiej zrobić to zadanie?

0

Jeżeli można wykorzystać PHP, to wg mnie najlepiej było zapisać dane z plików do tablicy
$tablica = file('noworodki.txt');
$tablica2 = file('mamy.txt');

Potem za pomocą pętli while i funkcji explode() przeparsować całość.

Następnie utworzyć plik zadanie6.txt i umieścić odpowiednie dane.

0

Zadania tego typu robi się w Accessie, a na pytania odpowiada tworząc kwerendy.

Oczywiście możesz sparsować wszystko w C, ale po co stracony czas i nerwy przy kolejnym access violation.

0

Poradziłem sobie ze wszystkimi zadaniami oprócz tego:

W pliku noworodki.txt zapisane są informacje o narodzinach bliźniąt. Bliźnięta
można rozpoznać po tej samej dacie urodzenia i tym samym identyfikatorze matki.
Pamiętaj, że przykładowo Jacek i Agatka oraz Agatka i Jacek to ta sama para. Możesz
założyć, że w danych nie ma żadnych trojaczków, czworaczków, itd. Podaj daty,
w których urodziły się bliźnięta.

Za bardzo nie wiem jak można wypisać tylko te daty, gdzie powtarzają się daty urodzeń i ID matek.
Kombinowałem dość długo np. z GROUP BY, ale nie potrafię tego zrobić.
Proszę o pomoc.

0

Zrobiłem kiedyś to zadanie, gdy uczyłem się do sprawdzianu z baz danych. Tu masz rozwiązanie - mam nadzieję, że wszystko tam zrozumiesz, jak nie to pytaj (chociaż sam musiałbym przeanalizować zadanie, bo już dobrze nie pamiętam).
Plik:
http://www65.zippyshare.com/v/60619971/file.html

0

Spokojnie możesz to zrobić przy pomocy języka programowania. Wystarczy wczytać dane i wykorzystać najprostszy z możliwych sposobów wyszukiwania informacji z pośród danego zbioru. Sam zdaję maturę rozszerzoną z infy i nie rozumiem co tutaj jest trudnego, tą maturą tylko straszą jednak patrząc na zadania z poprzednich lat nie ma w niej nic trudnego tym bardziej jeśli wybrało się język c++ i zna podstawowy stl'a, który rozwiązuje połowę problemów. Możesz również wykorzystać tutaj acess'a czy tam jego odpowiednik z open office'a (przy pomocy odpowiednio skonstruowanych kwerend).

0

@JumpSmerf, dzięki Twoje rozwiązanie naprowadziło mnie na własne rozwiązanie. Myślę, że nie zrobiłeś tego najprostszym sposobem. Niepotrzebnie łączyłeś z inną tabelą i niepotrzebnie sprawdzałeś dwa warunki.

@buahaha, wcale nie napisałem, że matura z infy jest trudna i wcale nie pisałem, że będę ją pisać w tym roku, więc się nie popisuj bo Ci średnio wychodzi ;)

0

no skoro nie wiesz jak przenieść dane z txt do bazy danych to chyba nie jest dla ciebie łatwa?

0
buahaha napisał(a)

no skoro nie wiesz jak przenieść dane z txt do bazy danych to chyba nie jest dla ciebie łatwa?

Jakbyś przeczytał temat to byś wiedział, że sobie z tym poradziłem sam, Arystotelesie ;)
Nie wiedziałem tyko, że na naturze dostępny jest Acces.

0 użytkowników online, w tym zalogowanych: 0, gości: 0