Faktr DB, Specyfikacja


Program faktury.exe

Autor: Ryszard Madejski

Program tworzący, modyfikujący oraz wypisujący bazę danych zawierającą faktury. Aby uzyskać dostęp do jego funkcji należy go wywołać z odpowiednimi parametrami:

-d Dodawanie faktur do bazy danych

-u Usuwanie faktur z bazy danych

-w Wypisywanie faktur z bazy danych

Wywołanie programu: faktury -opcja <plik.in>plik.out

W plik.in powinny się znajdowac w zależności od opcji instrukcje dla programu bądź dane wejściowe.

Dla opcji -d plik.in powinien zawierać liczbę faktur do wczytania, oraz następujące po sobie dane dla faktur. Dla opcji -u musi zawierać ilość faktur do usunięcia a następnie numery tych faktur. Dla opcji

-w należy podać dodatkowo parametry określające sposoby wyświetlania faktur i zaleznie od tego

dalsze dane:

'z' a następnie liczbe faktur oraz numery tych faktur

Parametry niedostepne w tej wersji programu:

's' a następnie przedział <a, b> oraz typ sortowania wg którego mają być wyswietlane faktury

'f' a następnie przedział <a, b> określający wielkość/wysokość danych oraz ich typ:

(1-kupujacy, 2-sprzedajacy, 3-kwoty sumaryczne faktur, 4-terminy zapłaty)

w przypadku 1 i 2 trzeba podac słowo leksykograficznie mniejsze badz rowne od sprzedajacych/kupujacych

majacych byc wyswietlonych oraz slowo ograniczajace ich odgórnie np. 1 Politechnika Politechnika

spowoduje wyswietlenie wszystkich faktur gdzie kupujący to Politechnika

Moduły programu

  1. Moduł Faktury: moduł główny programu

  2. Moduł wczytaj: moduł wczytujący faktur do bazy faktur

  3. Moduł usun: moduł usuwający faktury z bazy faktur

  4. Moduł wypisz: moduł wypisujący na różne sposoby faktury z bazy faktur czasami opierając się na tablicach sortowań

  5. Moduł tools: zawiera funkcje pomocnicze programu

sprawdz parametry

if (parametry bledne)

wypisz "Błędnie podane parametry"

else{

switch(parametr){

case 'd': Moduł wczytaj

case 'u': Moduł usuń

case 'w': Moduł wypisz

inne : wypisz "Nie rozpoznawalny parametr"

}

}

otworz plik baza_faktur do edycji

zapamietaj wsk //wskaznik do konca pliku

n = numer poprzedniej faktury //pobiera numer poprzedniej faktury

wczytaj t //t - ilosc faktur

while(t--){

n+=1

zapisz do pliku(n, separator)

wczytaj sprzedajacy

zapisz do pliku(sprzedajacy, separator)

wczytaj kupujacy

zapisz do pliku(kupujacy, separator)//sprzedajacy oraz kupujacy:

//pelne adresy

wczytaj data_sprzedazy

zapisz do pliku(data_sprzedazy, separator)

suma = 0

wczytaj i //i - ilosc produktow

zapisz do pliku(i, separator)

while(i--){

do_zaplacenia = 0

wczytaj nazwa_produktu

zapisz do pliku(nazwa_produktu, separator)

wczytaj miara

zapisz do pliku(miara, separator)

wczytaj ilosc

zapisz do pliku(ilosc, separator)

wczytaj cena_jednostkowa

zapisz do pliku(cena_jednostkowa, separator)

wczytaj VAT

zapisz do pliku(VAT, separator)

do_zaplacenia+=cena_jednostkowa*ilosc*(VAT/100+1)

zapisz do pliku(do_zaplacenia, separator)

suma+=do_zaplacenia

}

zapisz do pliku(suma, separator)

wczytaj forma_platnosci

zapisz do pliku(forma_platnosci, separator)

if (forma_platnosci != zaplacono)

wczytaj termin_platnosci

else

termin_platnosci = -1

zapisz do pliku(termin_platnosci, separator)

zapisz do pliku(koniec_faktury)

}

zamknij plik

aktualizujsort(wsk) //aktyalizacja tablic sortowan, wsk-poczatek nowego bloku

wczytaj n //ilosc faktur do usuniecia

while(n--){

wczytaj numer_faktury

while(faktura!=faktura do usuniecia)

przepisuj wszystko do pliku tymczasowego

pomin fakture do usuniecia

dopisz reszte faktur do pliku tymczasowego

usun baze faktur

utworz nowa baze faktur

przepisz wszystko z pliku tymczasowego do nowej bazy faktur

usun plik tymczasowy

}

wczytaj sposob //sposob wypisywania danych

if(sposob dobrze zadany){

switch(sposob){

case 'z': wczytaj n

wczytaj n razy numery_faktur[]

wypiszfakt(n, numery_faktur[])

//s i f niedostepne

case 's': wczytaj typ, a,b //a-poczatek przedzialu, b-koniec

sortwypisz(a, b, typ)

case 'f': wczytaj typ, a,b //a-element dolny, b-koncowy

selectwypisz(a, b, typ)

inne: wypisz "Nieznane parametry"

}

}

else

wypisz "Źle podane parametry"

//funkcja niedostepna

funkcja aktualizujsort(wsk){ //wsk do poczatku nowego bloku w pliku

otworz plik baza_faktur do odczytu //aktualizuje tablice sortowan po wstawieniu bloku faktur

otworz plik tablicesort do edycji //baza_faktur

While(wskaznik nie wskazuje na koniec pliku){

kupujacy = wsk kupujacego z bazy faktur

i=1

iter_srt = wsk tablicesort(1,i) //1 linia tablic_sortowan zawiera wskazniki

While(iter_srt(1,i) >L kupujacy) //do linii faktur w takiej kolejnosci, aby

i+=1 //kupujacy byli uporzadkowani leksykograficznie

wstaw wsk

sprzedajacy = wsk sprzedajacego z bazy faktur

i=1

iter_srt = wsk tablicesort(2,i) //2 linia tablic_sortowan zawiera wskazniki

While(iter_srt(2,i) >L sprzedajacy) //do linii faktur w takiej kolejnosci, aby

i+=1 //sprzedajacy byli uporzadkowani leksykograficznie

wstaw wsk

kwota = wsk kwoty do zaplacenia z bazy faktur

i=1

iter_srt = wsk tablicesort(3,i) //3 linia tablic_sortowan zawiera wskazniki

While(iter_srt(3,i) > kwota) //do linii faktur w takiej kolejnosci, aby

i+=1 //kwoty do zaplacenia były uporzadkowane rosnaco

wstaw wsk

termin = wsk terminu do zaplacenia z bazy faktur

i=1

iter_srt = wsk tablicesort(3,i) //4 linia tablic_sortowan zawiera wskazniki

While(iter_srt(4,i) > termin) //do linii faktur w takiej kolejnosci, aby

i+=1 //terminy do zaplacenia były uporzadkowane rosnaco

wstaw wsk

wsk <- wsk na nastepna linie

}

zamknij pliki

}

//funkcja niedostepna

funkcja repairsort(wsk){ //wsk - do usuwanej faktury

otworz plik tablicesort do edycji //naprawia tablice sortowan po usunieciu 1 faktury

j=1

while(j<=4){

i=1

while(iter_srt(j,i)!=EOL){

if (iter_srt(j,i)==wsk)

usun iter_srt(j,i) z tablicesort

else if(iter_srt(j,i)->numer faktury > wsk-> numer faktury){

iter_srt(j,i)-=1 //bedzie wskazywal na wiersz cofniety w pliku o 1

}

}

j+=1;

}

zakmnij plik

}

funkcja wypiszfakt(n){ //wypisuje fakture o numerze n

otworz plik baza_faktur do odczytu

znajdz fakture o numerze n

wypisz fakture

zamknij plik

}

//funkcja niedostepna

funkcja sortwypisz(a,b, typ){ //wypisuje faktury od a-tej to b-tej w zadanej kolejnosci

otworz pliki tablicesort i baza_faktur do odczytu //kol(1-kupujacy, 2-sprzedajacy, 3-kwoty, 4-terminy)

i=0

while(a+i<=b){

wypisz fakture na ktora wskazuje wskaznik (typ,a+i)

}

zamknij pliki

}

//funkcja niedostepna

funkcja selectwypisz(a,b,typ){ //wypisuje faktury z przedzialu <a,b> dla zadanego typu

otworz pliki tablicesort i baza_faktur do odczytu

i=1

while(iter_srt(typ,i)->typ < a)

i+=1

while(iter_srt(typ,i)->typ <= b){

wypisz fakture na ktora wskazuje wskaznik (typ, i)

i+=1

}

zamknij pliki

}

Diagram hierarchii modułów

0x08 graphic

Schematy strukturalne

Moduł główny

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

Moduł wczytaj

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

Moduł usun

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

Moduł wypisz

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

RYSZARD MADEJSKI gr. 5 INF

Moduł główny

Faktury

Moduł wczytaj

Moduł usun

Moduł wypisz

tools

START

parametry błędne

TAK

NIE

switch

parametr

'z'

wczytaj

's'

usun

'f'

wypisz

default

wypisz "Nie rozpoznawalny parametr

STOP

START

n = numer poprzedniej faktury

wczytaj t

zapamietaj wsk

t-=1

n+=1

wczytaj/zapisz do pliku sprzedajacy, kupujacy, data_sprzedarzy

suma=0

wczytaj/zapisz i

i-=1

do_zaplacenia = 0

wczytaj/zapisz nazwa_pr, miara, ilosc, cena_jedn, VAT

zapisz do_zaplacenia += cena_jednostkowa * ilosc*(VAT/100+1)

suma+=do_zaplacenia

i=0

NIE

TAK

zapisz suma

wczytaj/zapisz forma_platnosci

forma_platnosci != zaplacono

NIE

TAK

termin_platnosci = -1

termin_platnosci = -1

zapisz termin_platnosci

zapisz koniec_faktury

t=0

NIE

TAK

aktualizujsort(wsk)

STOP

wczytaj n

START

n-=1

wczytaj numer_faktury

numer_faktury istnieje

TAK

NIE

Przejdz do linii: numer_faktury

repairsort(wskaznik do usuwanej lini)

Usun linie

wypisz "Nie ma faktury o numerze numer_faktury w bazie faktur

jestesmy na koncu pliku

NIE

TAK

Zamien:

numer_faktury -> numer_faktury-1

Przejdz do nastepnej linii

n=0

NIE

TAK

STOP

STOP

wypisz "Nieznane parametry"

default

'f'

wczytaj typ, a,b

selectwypisz(a, b, typ)

's'

wczytaj typ, a,b

sortwypisz(a, b, typ)

'z'

wczytaj n

wczytaj n razy numery_faktur[]

wypiszfakt(n, numery_faktur[])

switch

sposob

NIE

TAK

sposob zle podany

START

wczytaj sposob

wypisz "Źle podany parametr"



Wyszukiwarka

Podobne podstrony:
Uczen ze specyficznymi trudnosciami
SPECYFIKA CHORÓB UKŁADU NERWOWEGO OKRESU ROZWOJOWEGO
Specyfika rehabilitacji w chorobach wewnętrznych
Specyfika Oddziału Intensywnej Terapii
W21 Specyfikacja wymagan
Specyfika zachodniej strategii powstrzymywania, ★ Studia, Bezpieczeństwo Narodowe, Bezpieczenswo Nar
specyficzne, języki
Specyffikaczka techniczka
SPECYFIKACJA TECHNICZNA?TONU PRZEZNACZONEGO DO WYKONANIAPŁYTY?TONOWEJ GALERII HANDLOWEJ
SPECYFICZNO c5 9a c4 86 ENZYMU
Bernadetta Specyfika i rodzaje d u¬nych i udzia owych papierˇw wartoÂciowych notatka
Str 8 Specyfikacja studni (a3)
Specyfikacja Techniczna SST Roboty?tonowe
7 Specyficzne cechy marketingu dóbr przemysłowych (inwestycyjnych)
G DUO Specyfikacja PL
(DB) Diagramy Brouwera
MIO specyfikacja id 302606 Nieznany
nakladki dotykowe specyfikacja seria e

więcej podobnych podstron