Skocz do zawartości
Forum komputerowe PC Centre
Dudix

[Turbo Pascal] Projekt do szkoły pomocy

Rekomendowane odpowiedzi

Witam na ostatniej lekcji programowania dostałem projekt do zrobienia, od razu pisze nie chodzi mi o to żeby ktoś zrobił mi cały projekt po prostu potrzebuję pomocy z kilkoma procedurami. Temat projektu jest następujący

 

 

Napisz program obsługujący sklep muzyczny.

Program ma umożliwiać

a)założenie nowego pliku (to już mam zrobione)

b)Przyjmowanie danych do bazy (tutaj proszę o pomoc ponieważ nie wiem jakie dane mam wprowadzać)

c)wyświetlanie wszystkich danych (z tym problemu nie będę miał)

d)wyświetlanie pojedyńczego wskazanego rekordu (myślę że z tym problemów tez nie będę miał)

e)możliwość wykonywania zmian w danym rekordzie ( to zrobię)

f)usuwanie rekordu z pliku (to też zrobię)

g)sortowanie rekordów (wogle nie mam pojęcia jak to zrobić)

h) Wykonywanie obliczeń liczbowych z polami w rekordach (nie mam zielonego pojęcia jak to zrobić ale chyba chodzi o to żeby mi np liczył ile zarobiłem w danym dniu czy coś takiego)

 

Każdy podpunkt to inna procedura więc prosiłbym o pomoc w zrobieniu procedury "b" , "g" , "h"

z góry dziękuję

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

B) skoro wszystko będzie w jakimś pliku to musisz sobie ustalić jaki ten plik będzie wyglądać w środku tzn. jakie dane chcesz tam wprowadzać (np. imię, nazwisko, ...). Dla własnej wygody oddzieliłbym np. dane klientów od danych produktów...

g) poczytaj o algorytmach służących do sortowania danych (najprostsze - bąbelkowe, przez wstawianie, bardziej wydajne i trudniejsze - quick sort, itp.). Funkcja służąca do sortowania mogłaby przyjmować jako parametr wejściowy - co ma być brane przy sortowaniu - jaka kolumna (imię, nazwisko, cena, itp.)

h) niektóre pola możesz obliczać - np. podatek vat, ilość zamówień, itp - co tylko głowa podsunie...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Up

Dzięki ale sortowania dalej nie wiem jak zrobić

tak wygląda mój projekt teraz.

Muszę jeszcze zrobić obliczanie ale nie wiem jak :/ więc proszę o pomoc

z tym sortowaniem chyba sobie odpuszczę

 

 

 

 

 

program sklep_muzyczny;
uses crt;
type
dane=record
nazwa_towaru:string[20];
cena:string[20];
nr:integer;
ilosc:string[10];
typ:string[20];
end;
var
licznik:byte;
dane1:dane;
plik:file of dane;
wybrany_klawisz:char;

Procedure wstep;
Begin
Writeln('*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*');
Writeln('*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*');
Writeln('*-*-                                                   -*-*');
Writeln('*-*-           Projekt Na Programowanie 2010r          -*-*');
Writeln('*-*-                  Temat Projektu:                  -*-*');
Writeln('*-*-     Napisz program obslugujacy sklep muzyczny     -*-*');
Writeln('*-*-                                                   -*-*');
writeln('*-*-                     Created by Dominik            -*-*');
Writeln('*-*-                                                   -*-*');
Writeln('*-*-     Aby kontynuowac nacisnij Dowolny Klawisz      -*-*');
Writeln('*-*-                                                   -*-*');
Writeln('*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*');
Writeln('*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*');
Repeat until keypressed;
End;

function istnieje_plik(nazwa_pliku:string):boolean;
begin
(*$i-*)
assign(plik,nazwa_pliku);
reset(plik);
(*$i+*)
if ioresult=0 then
begin
close(plik);
istnieje_plik:=true;
end
else
istnieje_plik:=false;
end;


procedure tworzenie_nowego_pliku;
var
nowy_plik:boolean;
begin
clrscr;
nowy_plik:=true;
textcolor(yellow);
if Istnieje_plik('muzyczny.dan') then
begin
writeln('Wszystkie dotychczasowe dane zostana usuniete z pliku.');
writeln;
repeat
write('Wykonywac dalej? (T)ak/(N)ie');
readln(Wybrany_klawisz);
until wybrany_klawisz in ['T','t','N','n'];
if wybrany_klawisz in['N','n'] then
nowy_plik:=false;
end;
if nowy_plik then
begin
assign(plik,'muzyczny.dan');
rewrite(plik);
close(plik);
end;
end;


procedure wprowadzanie_danych;
begin
clrscr;
writeln('Wprowadzanie danych');
textcolor(yellow);
if istnieje_plik('muzyczny.dan') then
begin
assign(plik,'muzyczny.dan');
reset(plik);
seek(plik,filesize(plik));
writeln;
writeln('Rezygnacja >>X<<+>>Enter<<');
textcolor(lightblue);
repeat
writeln;
write('Podaj nazwe towaru: ');
readln(dane1.nazwa_towaru);
if ((dane1.nazwa_towaru<>'X') and (dane1.nazwa_towaru<>'x')) then
begin
write('Podaj cene towaru:');
readln(dane1.cena);
write('Podaj ilo† sprzedanego towaru: ');
readln(dane1.ilosc);
write('Podaj typ towaru/muzyki: ');
readln(dane1.typ);
dane1.nr:=filepos(plik);
write(plik,dane1);
end;
until (dane1.nazwa_towaru='X') or (dane1.nazwa_towaru='x');
close(plik);
end;
end;

procedure wypisywanie_danych;
begin
clrscr;
licznik:=0;
if istnieje_plik('muzyczny.dan') then
begin
assign(plik,'muzyczny.dan');
reset(plik);
textcolor(white);
writeln('-----------------------------------------------------------');
writeln('Nr         Nazwa towaru             Cena              Ilosc');
writeln('-----------------------------------------------------------');
textcolor(yellow);
while not eof(plik) do
begin
licznik:=licznik+1;
read(plik,dane1);
gotoxy(1,licznik+4);
write(dane1.nr);
gotoxy(12,licznik+4);
write(dane1.nazwa_towaru);
gotoxy(37,licznik+4);
write(dane1.cena);
gotoxy(54,licznik+4);
write(dane1.ilosc);
if licznik=21 then
begin
readln;
clrscr;
licznik:=0;
end;
end;
textcolor(white);
gotoxy(1,licznik+6);
writeln('***********************************************************');
close(plik);
end;
end;


procedure pojedynczy_towar;
var
szukany_towar:string[25];
towar_jest_w_pliku:boolean;
begin
clrscr;
if istnieje_plik('muzyczny.dan') then
begin
towar_jest_w_pliku:=false;
write('Prosze podac nazwe poszukiwanego towaru: ');
readln(szukany_towar);
assign(plik,'muzyczny.dan');
reset(plik);
writeln;
textcolor(red);
if eof(plik) then
writeln('W pliku nie ma zadnego zapisu.');
textcolor(white);
while not eof(plik) do
begin
read(plik,dane1);
if dane1.nazwa_towaru=szukany_towar then
begin
writeln('Nazwa towaru....................',dane1.nazwa_towaru);
writeln('Cena............................',dane1.cena);
writeln('Ilosc sprzedanego towaru........',dane1.ilosc:1);
writeln('Nr towaru.......................',dane1.nr);
writeln('typ towaru/muzyki...............',dane1.typ);
towar_jest_w_pliku:=true;
end;
end;
if not towar_jest_w_pliku then
writeln('Szukany towar nie znajduje sie w spisie!!!');
close(plik);
end;
end;


procedure usuwanie_towaru;
var
okno_tymczasowe:file of dane;
usuwany_numer:integer;
begin
writeln;
if istnieje_plik('muzyczny.dan') then
begin
assign(plik,'muzyczny.dane');
reset(plik);
textcolor(lightRed);
writeln('Prosze podac numer usuwanego towaru: ');
readln(usuwany_numer);
assign(okno_tymczasowe,'czasowe.dan');
rewrite(okno_tymczasowe);
while not eof(plik) do
begin
read(plik,dane1);
if (dane1.nr)<>usuwany_numer then
begin
dane1.nr:=filepos(okno_tymczasowe);
write(okno_tymczasowe,dane1);
end;
end;
close(plik);
close(okno_tymczasowe);
erase(plik);
rename(okno_tymczasowe,'muzyczny.dan');
end;
end;


procedure zmiany;
var
podany_numer:integer;
begin
clrscr;
if istnieje_plik('muzyczny.dan') then
begin
textcolor(lightgreen);
assign(plik,'muzyczny.dan');
reset(plik);
write('Prosze podac numer towaru, ktorego dane maja byc zmienione.');
readln(podany_numer);
seek(plik,podany_numer);
(*$I-*)
read(plik,dane1);
(*$I+*)
if ioresult=0 then
begin
textcolor(white);
writeln;
writeln('dotychczasowe dane sprzedazy');
writeln('-----------------------------------------------------------');
writeln;
textcolor(yellow);
writeln('Nazwa towaru...............:',+dane1.nazwa_towaru);
writeln('Cena towaru................:',+dane1.cena);
writeln('Ilosc sprzedanego towaru...:',+dane1.ilosc);
writeln('Typ towaru/muzyki..........:',+dane1.typ);
seek(plik,podany_numer);
writeln;
textcolor(white);
writeln('-----------------------------------------------------------');
writeln;
textcolor(lightred);
writeln('Nowe dane sprzedanych towarow');
writeln('-----------------------------------------------------------');
writeln;
textcolor(white);
write('Nazwa towaru...........:');
readln(dane1.nazwa_towaru);
write('Cena towaru............:');
readln(dane1.cena);
write('Ilosc..................:');
readln(dane1.ilosc);
write('Typ towaru/muzyki......:');
readln(dane1.typ);
write(plik,dane1);
close(plik);
end;
end;
end;


procedure koniec;
begin
halt;
end;
function menu:char;
var
znak:char;
Tak_Nie:char;
begin
write('Dane');
repeat
clrscr;
writeln('Wybierz');
writeln('1-Tworzenie nowego pliku');
writeln('2-Wprowadzanie danych');
writeln('3-Wypisz wszystkie dane');
writeln('4-Wskaz pojedynczy towar');
writeln('5-Usuniecie wskazanego towaru');
writeln('6-Zmiany danych sprzedazy');
writeln('0-Koniec');
readln(znak);
case znak of
'1':tworzenie_nowego_pliku;
'2':wprowadzanie_danych;
'3':wypisywanie_danych;
'4':pojedynczy_towar;
'5':usuwanie_towaru;
'6':zmiany;
'0':koniec;
end;
writeln('Czy chesz wykonac kolejna czynnosc? (T)ak');
Tak_Nie:=Upcase(readkey);
until not(Tak_Nie='T');
end;


begin
clrscr;
textcolor(lightgreen);
wstep;
menu;
end.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

×
×
  • Dodaj nową pozycję...