Implementujte virtuální souborový systém. Souborový systém bude simulován
v pamìti, nejedná se tedy o práci s reálným souborovým systémem Va¹eho poèítaèe. Bude obsahovat dva typy polo¾ek: adresáøe a textové soubory. Souborový systém bude mít hierarchickou strukturu a bude mít teoreticky neomezený rozsah
3. Soubory v tomto souborovém systému budou obsahovat:
jméno,
datum a èas vytvoøení,
obsah ve formì textového øetìzce.
Adresáøe budou obsahovat:
jméno,
datum a èas vytvoøení,
seznam podadresáøù a souborù (obou mù¾e být libovolnì mnoho).
Práce s VSS:
1. Po vytvoøení bude VSS prázdný (tj. bude obsahovat jednu koøenovou
slo¾ku, která se nikdy nevypisuje, nedá se smazat ani jinak upravovat).
2. VSS bude reagovat na pøíkazy pøedávané ve vstupním textovém souboru
a podle nich se upravovat a provádìt dal¹í operace.
3. Pøi interpretaci pøíkazù bude zachovávat následující konvence:
V adresáøi nemohou existovat polo¾ky s duplicitním jménem (soubory
a adresáøe).
Ka¾dý adresáø obsahuje 2 virtuální polo¾ky: . odkazuje na sebe sama
a .. odkazuje na nadøazený adresáø, tyto polo¾ky se nevypisují, ale
slou¾í pouze pro relativní adresování v pøíkazech.
V pøípade nepovedené operace toto oznámí výpisem chybové hlá¹ky
ve smyslu { <Operace> neprobìhla, proto¾e <dùvod>.
V¹echny výpisy jsou seøazeny podle typu polo¾ky (adresáøe pøed soubory)
a abecedního uspoøádání.
V relativních cestách lze pou¾ít jak ji¾ zmínìné symboly . a .. ale
také symbol /, který znaèí pøesun do koøenové slo¾ky.
4. VSS rozeznává tyto pøíkazy:
mf <jmeno souboru> <obsah souboru uzavreny do zavorek> {
vytvoøení souboru v aktuálním adresáøi, datum a èas vytvoøení souboru
odpovídají aktuálnímu datu a èasu operaèního systému. To znamená, ¾e bude omezen pouze velikostí dostupné pamìti, nesmí být omezen napøíklad
deseti soubory v adresáøi.
md <jmeno adresáøe> { vytvoøení adresáøe v aktuálním adresáøi,
datum a èas vytvoøení adresáøe odpovídají aktuálnímu datu a èasu
operaèního systému
rf <jmeno souboru> { smazání souboru v aktuálním adresáøi
rd <jmeno adresáøe> { smazání adresáøe v aktuálním adresáøi
cd <relativní cesta> { zmìna aktuálního adresáøe podle relativní
cesty
pwd { vypsání jména aktuálního adresáøe s plnou cestou
ls { vypsání obsahu aktuálního adresáøe, vypisují se jména a èasové
údaje souborù a adresáøù, u souborù i velikost
lsr { vypsání obsahu aktuálního adresáøe vèetnì v¹ech podslo¾ek,
vypisované údaje stejné jako u ls
type <jmeno souboru> { vypsání obsahu daného souboru
Poznámky
Jména souborù a adresáøù nebudou obsahovat mezery, stejnì tak budou
bez diakritiky. Velká a malá písmena se v¹ak rozli¹ují.
Program bude oèekávat zadání vstupního a výstupního souboru pomocí
parametrù pøíkazové øádky.
VasProgram Vstup Vystup
Do výstupního souboru budou vypisovány v¹echny výpisy.
Pøi návrhu tøíd, jejich vzájemných vztahù a dìdìní se inspirujte návrhov
ým vzorem Kompozit (Composite), viz napøíklad
http://cs.wikipedia.org/wiki/Composite nebo
http://objekty.vse.cz/Objekty/Vzory-Composite
Ukázka
Na zaèátku mám prázdný souborový systém. Zadám-li pøíkaz ls vypí¹e se mi:
0 directory 0 files
Zadám-li pøíkaz pwd vypí¹e se mi /
Zadám pøíkaz
md texty
Tím se vytvoøí podadresáø texty. Zadám-li pøíkaz ls vypí¹e se mi:
12.04.2010 17:36 <dir> texty
1 directory 0 files
Zadám pøíkaz
mf pokus.txt "Tohle je pokusny soubor."
Tím se vytvoøí soubor pokus.txt. Zadám-li pøíkaz ls vypí¹e se mi:
10
12.04.2010 17:36 <dir> texty
12.04.2010 17:37 24 pokus.txt
1 directory 1 files
Zadám pøíkaz
cd texty
Pøejdu do podadresáøe texty. Zadám-li pøíkaz pwd vypí¹e se mi /texty
Zadám pøíkazy
mf dopis1.txt "Ahoj Marenko, pisu Ti dopis."
mf pozdrav.txt "Pozdrav z vyletu zasila Vas povedeny syn."
Tím se vytvoøí soubory dopis1.txt a pozdrav.txt. Zadám-li pøíkaz ls vypí¹e
se mi:
12.04.2010 17:37 28 dopis1.txt
12.04.2010 17:38 41 pozdrav.txt
0 directory 2 files
Zadám pøíkaz
type pozdrav.txt
Vypí¹e se mi:
Pozdrav z vyletu zasila Vas povedeny syn.
Zadám pøíkaz
cd ..
Pøejdu zpìt do koøenového adresáøe. Zadám-li pøíkaz pwd vypí¹e se mi /
Zadám pøíkaz
lsr
Vypí¹e se mi:
12.04.2010 17:36 <dir> texty
12.04.2010 17:37 28 texty/dopis1.txt
12.04.2010 17:38 41 texty/pozdrav.txt
12.04.2010 17:37 24 pokus.txt
1 directory 3 files
neviem čo s tým ... potrebujem pomôcť ... rýýýýchlo
Prosssssssssssssíííííííííííííííííííííííííííííííííííííííííímmmm... budem vďačný za každú pomoc...
virtuálny súborový systém c++
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: virtuálny súborový systém c++
http://www.hojko.com/citajte-pred-zaloz ... 23064.html
Keby si sa neregistroval len kvôli tomuto, tak ti aj skúsim poradiť v teoretickej rovine. Ale dať sem zadanie a ešte nás naháňať že rýchlo je fakt drzosť
Keby si sa neregistroval len kvôli tomuto, tak ti aj skúsim poradiť v teoretickej rovine. Ale dať sem zadanie a ešte nás naháňať že rýchlo je fakt drzosť