Program na zaliczenie - Quiz w Delphi

Program na zaliczenie - Quiz w Delphi
S8
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:17
0

Witam wszystkich serdecznie. Pisze do Was z prośbą o napisanie odpłatnie programu typu Quiz w Delphi / Lazarusie. Założenia są następujące:

Baza pytań:

  1. Baza pytań byłaby pobierana z pliku tekstowego.
  2. Pytania byłyby ponumerowane.
  3. W pliku byłaby też w jakiś sposób zaznaczona prawidłowa odpowiedź.
  4. Tylko jedna odpowiedź jest prawidłowa (miejsce odp. poprawnej jest losowe - kwestia napisania w pytaniu).
  5. Cztery odpowiedzi do pytania.
  6. Teraz kwestia co prostsze w wykonaniu:
    a) Liczba pytań jest stała.
    b) Liczba pytań jest zmienna, tzn. mam 10 pytań, ale w przyszłości chciałbym dodać następnych 10 pytań.

Przykład pytania:
Co jest stolicą Polski?
a) W-wa
b) Łódź
c) Poznań
d) Kraków

Program:

  1. Program powinien pozwolić wpisać imię i nazwisko zdającego.
  2. Quiz byłby na czas. Po odliczeniu czasu do 0:00 quiz automatycznie zakańczałbym się i sumował wyniki.
  3. Odpowiedź poprawna byłaby za 1 pkt., zła za 0 pkt.
  4. Brak zaznaczenia odpowiedzi powinien być sygnalizowany wiadomością lub traktowany jako 0 pkt.
  5. Pytania powinny być losowe z zestawu pytań.
  6. Pytania nie powinny się powtarzać.
  7. W trakcie testu widoczny jest licznik ilości zrobionych pytań: np. Pytanie 2 z 10. a także licznik, które pytanie ze zestawu jest teraz wyświetlane Pytanie nr 5.
  8. W trakcie testu widoczny jest licznik czasu.
  9. Powinna być możliwość wrócenia do poprzednich pytań w trakcie trwania quizu.
  10. Użytkownik powinien móc zakończyć wcześniej test przed czasem lub gdy czas dojdzie do 0:00 quiz automatycznie zakańczałbym się i sumował wyniki.
  11. Na końcu testu powinny zostać wyświetlone wyniki dla użytkownika, ilość punktów.

Wyniki:

  1. Po zakończeniu testu przez użytkownika lub gdy czas dobiegł końca przy wyświetleniu wyników, wynik, odpowiedzi na poszczególne pytania oraz imię i nazwisko powinny być zapisywane do pliku txt.

Przykład formy:
title

Działanie:
Użytkownik odpala program, podaje swoje dane, zaczyna quiz, który składa się z 5 pytań losowanych z zestawu 10 pytań (baza pytań w pliku). Pytania mają tylko 1 poprawną odpowiedź. Użytkownik ma 10 minut na quiz. Za poprawną odp. uzyskuje 1 pkt., za brak lub błędną 0 pkt. Po zakończonym teście samemu lub po czasie program wyświetli ilość uzyskanych punktów. Po zakończeniu quizu program zapisuje dane użytkownika, jego odpowiedzi lub ich brak oraz łączną punktację.

Czy jesteście w stanie pomóc. Czekam na propozycje :)

edytowany 2x, ostatnio: Slowik86
0

Ty tworzyłeś tego forma?
Bo tam zawarłeś praktycznie wszystkie odpowiedzi na swoje pytania.

W programowaniu trzeba mieć jaja i umieć samemu wziąć odpowiedzialność za swoje programy.
Możesz cały swój zakres problemów w łatwy sposób ograniczyć stosując logikę.
Pierwsze 5 linii:
Pytanie, odp, odp, odp, odp
z czego pierwsze odpy jest poprawne.
I w ten sposób masz odpowiedź na pierwsze 6 pytań twoich, w trzech konkretach.

Reszta to jakaś baza danych gdzie dopisywałbyś użytkowników, którzy w taki i taki sposób ukończyli quizz.
I tak by się mógł ktoś znaleźć co by oszukał, ale to do szkoły, a tam tylko takie głupie rzeczy się robi.

S8
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:17
0

Za bardzo Pan uprościł program. Z resztą samą logikę to ja znam, gdyż opisałem ją na górze ;)

"W programowaniu trzeba mieć jaja i umieć samemu wziąć odpowiedzialność za swoje programy." --> Tylko bez idei i moralizatorstwa. Zamawiam program odpłatnie i czekam na propozycje współpracy ;) Ma Pan coś do zaoferowania, swój czas, chęci, umiejętności - zapraszam.

edytowany 2x, ostatnio: Slowik86
LG
LG
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 5 lat
0

Z chęcią bym się podjął zleconka, bo lubię grzebać sobie w Pascalu, jednak z pobudek moralnych nie mogę - bo rozumiem, że ten program, będziesz przedstawiał jako swoje działu i poddawane będzie to ocenie jakiegoś nauczyciela ? Jeśli tak to prócz, tego, że to nie etyczne to sprzeczne z regulaminem forum §4 punkt 7.

@Krzywy Szewc - Pomijając fakt, że zlecenie łamie regulamin, to kiepskim argumentem jest mówienie, że ktoś ma to sobie samemu zrobić, jak ten ktoś chce to kupić. Ciekawe jakby w warzywniaku ekspedientka odszczekała by się Tobie, że "tą marchewkę, to sam sobie wyhoduj na ogródku, a nie mi gitarę zawracasz !" ;)

edytowany 1x, ostatnio: lukas_gab
0

Może bym ci to zrobił, ale:
Nie jestem programistą,
Nie jestem panem, pewnie jestem młodszy od ciebie.
Nie wiem czy bym to zrobił dobrze, ale by działało.
Nie mam konta bankowego, nie brałbym pieniędzy.
Jestem nałogowym alkoholikiem i tylko wtedy mam swoją pewność siebie.

I z tym plikiem quizza jest kilka problemów,
Zwykły plik jest plikiem, w którym tylko program wie jak jest zbudowany.
Ale taki XML lub json to tam, bloki można logicznie zakodować i wtedy logika jest w pliku z danymi.
Ale parsowanie jest trudniejsze, albo można posłużyć się jakimiś bibliotekami, ale nigdy to nie jest ciekawe, samodzielna praca jest najlepsza.
Bo wtedy zna się dobrze ten format pliku.
I jeśli nie straciłeś emocji będąc zakochanym w jakiejś dziewczynie, to masz szanse mieć jakąś pasję albo chęć do życia, a tak to nic nie zostaje i to potem wychodzi.

Ja sam nic nie potrafię i nic nie umiem może byle jak to zrobię, ale zawsze zostaje taka nie pewność jak grałeś kiedyś w szachy to wiesz, że kombinacji może być czasem więcej niż gwiazd w widzialnym wszechświecie.

Ale jak ktoś ci napisze prace to bierz i płać jak ci da, ale bądź sumienny i jak nie spełni wymogów to daj mu wcześniej testy akcepcyjne, takie żeby potwierdziły twoje wymagania.
Inaczej każdy cię oszuka, bo nikt nie wie jak jest idealnie dla ciebie.

LG
W podanych wymaganiach nie ma napisanego, że nie może to być xml, czy json. Generalnie to nigdy nie parsuje się żywcem takich plików, tylko pisze się parsery i mapuje się takie pliki na obiekty. W warstwie deserializacji powinno być to wczytane i utworzone obiekty, a reszta na obiektach powinna się oprzeć.
S8
  • Rejestracja:około 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:17
0

Plik z bazą danych to zwykły plik txt. Dziękuję za tak duży odzew w PW :) Zaliczenie to szeroko rozumiane pojęcie :)

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)