You are on page 1of 6

Bi Tp Ln 1: H

1. Gii thiu

THNG QUN L SN XUT KINH DOANH


Phin bn 1.0

Mt cng ty chuyn sn xut v cung ng cc mt hng ra th trng. Cng ty cn phi qun l lng sn xut c, n t hng t khch hng cng nh cc tnh ton thng k cn thit. Gi nh rng, ch c m cc sn phm l c lu vo trong h thng. m i ca trc, cng ty cn ghi nhn li ton b qu trnh sn xut, kinh doanh.

2. Yu cu
Trong bi tp ln ny, sinh vin s c cung cp mt file cha d liu nhp, bao gm thng tin v mt sn phm tn kho u ca trc v cc s kin n h thng. Mt s kin c th l mt lnh nhp kho v mt sn phm va mi c sn xut ra, hoc xut kho cho mt n t hng v mt sn ph m ca cng ty, hoc l mt yu cu tnh ton thng k ... Sau khi kt thc cng vic, chng trnh s xut ra mn hnh hin trng d liu ca h thng. Cc d liu nhp xut m sinh vin phi x l u c biu din di dng danh sch lin kt (linked list). Chi tit c th cng vic sinh vin phi lm s m t trong phn 4.

3. D liu nhp
D liu nhp ca chng trnh c cha trong file mang tn input.txt. File ny s cha cc thng tin nh sau: Thng tin sn phm tn u ca trc thng tin v cc s kin m nhn 1111 vin trc cn phi x l 0 Nh vy file nhp s bao g m t nht hai dng. Dng u tin s m t thng tin v sn phm t n u ca trc, c nh dng XXXY. Trong XXX l m sn phm v Y l s lng tn. K t dng th hai ca file nhp s m t cc s kin trong ca trc. Mi s kin s c m t bng mt gi tr s, gi l m s kin. ngha tng ng ca t ng s kin c m t trong Bng 1. S s kin l khng c nh, c th thay i tu theo test case, v ti a l 2100 s kin. Mt s kin c th xy ra nhiu ln. Cc s kin c th trnh by thnh nhiu dng. Bng 1 Cc s kin xy ra trong ca trc ngha Ca trc chm dt t ngt Nhp kho Y sn phm XXX Mt s lng Y ca sn phm XXX c khch hng t hng Yu cu thng k lng nhp kho ca sn phm XXX Yu cu thng k lng t hng ca sn phm XXX Yu cu tnh lng tn ca sn phm XXX Yu cu cho bit sn phm no c lng t n nhiu nht Yu cu loi b cc phiu t hng bt hp l

M s kin 0 1XXXY 2XXXY 3XXX 4XXX 5XXX 6 8

V d 1: Vi d liu nhp l 2223 11113 21112 th ban u c 3 sn phm 222 tn. Trong ca trc, c cc s kin sau: S kin 1: nhp kho 3 sn phm 111. S kin 2: c 2 sn phm 111 c t hng.

4. Hin thc chng trnh


Sinh vin s hin thc mt hm storage c prototype nh sau: notesList* storage (notesList theFirst, eventList* pEvent) Trong notesList s l mt danh sch lin kt cha cc ghi ch (v nhp/t hng/thng k kho) trong ca trc, c khai bo nh sau: struct notesList { int nProdID; int nQuan; int nType; notesList* pNext; } //Product ID //s lng, mt s c ti a 2 ch s //kiu note: 1: nhp kho, 2: t hng, 0: thng k

Danh sch ny g i l S kho. Cch xy dng s kho s c m t trong phn 5. theFirst l thng tin sn phm tn u ca trc. nh ngha 1: - NI (NoteInfo) ca mt phn t trong s kho l mt chui s nguyn c 6 ch s c to thnh bng cch ghp cc ch s m sn phm (3 ch s ), s lng (2 ch s ) v kiu (1 ch s). - NsI (NotesInfo) ca mt s kho l mt chui ghp cc NI ca t ng phn t ca danh sch t phn t u tin n phn t cui cng. NsI dng biu din s kho v in ra kt qu khi kt thc chng trnh. V d 2: Nu mt s kho c 3 ghi ch ln lt cha cc b sn phm, s lng v kiu nh sau <11,3,1>, <222,5,1> v <3,12,2>, th cc NI ln lt l 011031, 222051 v 003122. NsI l 011031222051003122. Thng s pEvent l mt con tr tr n danh sch lin kt ca cc s kin c c t file input, c nh ngha nh sau: struct evenList { int nEvenCode; evenList* pNext; }

5. Xy dng s kho
Khi t o, s kho s c mt phn t duy nht l s liu tn kho ban u. V d 3: Vi d liu nhp l 2223 0 (Ca trc kt thc ngay s kin u tin.) Kt qu ca s kho tr v l 222031 (Danh sch c 1 phn t cha 3 sn phm 222).

Trong qu trnh trc, s kho c th thay i da theo cc s kin. Nu trong bt k trng hp no m s kho rng, hm storage s kt thc v tr v NULL. Cc s kin c th nh sau: S1) Nu gp s kin c m l 0, ca trc kt thc, hm storage s tr v s kho hin hnh. (xem v d 3). S2) Nu gp s kin c m 1XXXY hoc 2XXXY, cc phn t tng ng s c thm vo s kho. V d 4: Vi d liu nhp l 2223 12224 23331 Ban u s kho khi t o l 222031. Sau thm vo ln lt cc phn t 222041 v 333012. Kt qu ca s kho tr v l 222031222041333012. S3) Nu gp s kin c m 3XXX, tng YY cc sn phm XXX nhp kho, k c lng t n u ca trc nu c, s c tnh ton. Mt ghi ch mi c t o ra vi cc thng tin l XXXYY1. Nu YY>0, t t c cc phn t ghi ch vic nhp kho ca sn phm XXX, k c ghi ch t n u nu c, s b xa kh i s kho. Ghi ch mi s c thm vo u danh sch. Nu YY=0, ghi ch mi s c thm vo cui s kho. Ghi ch: khi tnh ton, YY c th ln hn 99 (s c nhiu hn 2 ch s). Khi YY s c tnh li bng cch modulo cho 100. V d 5: Vi d liu nhp l 2223 12224 22223 3222 Ban u s kho khi t o l 222031. Sau thm vo ln lt cc phn t 222041 v 222032. Khi gp yu cu thng k lng nhp, chng trnh tnh ton c lng nhp ca sn phm 222 l 7 > 0. Ton b cc phn t nhp kho (k c tn u) s b xa i v phn t mi s c thm vo u s kho. Kt qu ca s kho tr v l 222071222032. V d 6: Vi d liu nhp l 2223 3444 Ban u s kho khi t o l 222031. Sau gp yu cu thng k lng nhp, chng trnh tnh ton c lng nhp ca sn phm 444 l 0. Mt phn t mi s c thm vo cui s kho. Kt qu ca s kho tr v l 222031444001. S4) Nu gp s kin c m 4XXX, tng YY cc sn phm XXX t hng s c tnh ton. Mt ghi ch mi c t o ra vi cc thng tin l XXXYY2. Nu YY>0, tt c cc phn t ghi ch vic t hng ca sn phm XXX s b xa kh i s kho. Ghi ch mi s c thm vo cui danh sch bt k YY=0 hay YY>0. Ghi ch: Tng t nh trong S3, YY c th s c tnh li bng cch modulo cho 100. V d 7: Vi d liu nhp l 2223 22221 22222 4222

Ban u s kho khi t o l 222031. Sau thm vo ln lt cc phn t 222012 v 222022. Khi gp yu cu thng k lng t hng, chng trnh tnh ton c lng t hng ca sn phm 222 l 3 > 0. Ton b cc phn t t hng s b xa i v phn t mi s c thm vo cui s kho. Kt qu ca s kho tr v l 222031222032. S5) Nu gp s kin c m 5XXX, lng tn YY cc sn phm XXX s c tnh ton (= tng nhp + lng t n u (nu c) tng t hng). Tt c cc phn t ghi ch vic nhp kho (k c tn u nu c) v t hng ca sn phm XXX s b xa kh i s kho. Mt ghi ch mi vi cc thng tin l XXXYY1 s c thm vo cui danh sch. Ghi ch: Nu YY > 99, YY s c modulo 100. Nu YY < 0, YY s c gn bng 0. V d 8: Vi d liu nhp l 2223 22221 22222 5222 Kt qu ca s kho tr v l 222001. S6) Nu gp s kin c m 6, lng tn (tnh nh trong S5) YY ca t t c cc sn phm c trong s ghi ch s c tnh ton. Sau , ng vi m i sn phm XXX no c lng t n nhiu nht, mt ghi ch mi vi cc thng tin l XXXYY0 s c thm vo ngay sau phn t ghi ch nhp kho/tn kho u sn phm XXX cu i cng. Nu sn phm XXX cha c ln nhp hng/tn u no, ghi ch s c thm ngay vo trc lnh t hng u tin ca XXX. Ghi ch: Nu YY > 99, YY s c modulo cho 100. Nu YY < 0, YY s c gn bng 0. Vic tnh li YY ny s c thc hin trc khi tm gi tr ln nht. V d 9: Vi d liu nhp l 2223 12221 22222 13331 6 Lng tn nhiu nht l 2 ca sn phm 222 (sn phm 333 c lng tn l 1). Kt qu ca s kho tr v l 222031222011222020222022333011. V d 10: Vi d liu nhp l 2223 12221 22225 23334 6 Lng tn nhiu nht tnh ton c l sn phm 222 tn 0 (do 3+1-5=-1 < 0, lm trn thnh 0) v sn phm 333 tn 0 (do 0-4 = -4 <0, lm trn thnh 0). Mt ghi ch 222000 s c thm vo ngay sau ghi ch 222011 v mt ghi ch 333000 s c thm vo ngay trc ghi gh 333042. Kt qu ca s kho tr v l 222031222011222000222052333000333042. S8) Nu gp s kin c m 8, chng trnh s kim tra cc ghi ch t hng t u s tr i. Nu c t hng no m lng tn ca sn phm l khng xut hng th ghi ch c xem l khng hp l v cn phi b lo i tr. Ghi ch: Trong trng hp ny, lng tn ca sn phm khng b modulo cho 100. V d 11: Vi d liu nhp l 2223

12221 13334 22221 23331 22224 8 Khi gp s kin 8, s kho c dng nh sau 222031222011333041222012333012222042. Chng trnh s r sot v thy rng khi nhn t hng 22224 (t 4 sn phm 222), lng tn ca sn ph m 222 ch l 3, do ghi ch ny khng hp l v cn phi c loi b. Kt qu s kho l 222031222011333041222012333012 S9) (Bonus Cu ny ch c tnh im nu bi lm vt qua c t nht 80% cc testcase) Nu s kho sau cng l i xng, nhn vin ca cng ty s c thng. Trong trng hp ny chng trnh s xut mt gi tr chui c bit ra mn hnh (Xem phn 6 bit thm chi tit). V d 12: Nu s kho l 222031130222 th nhn vin cng ty s c thng.

6. Cch dch v thc thi chng trnh


Sinh vin download file Assignment1.zip t trang Web ca mn hc. Khi gii nn file ny, s c c cc file sau: input.txt main.cpp storeman.cpp defs.h Assignment1.pdf Mt file input v d. Chng trnh chnh Chng trnh hin thc bi sinh vin File nh ngha cc cu trc v hm dng chung File m t ni dung bi tp ln

File input.txt l mt file nhp mu nh c m t phn 3. File main.cpp l chng trnh khi to, bao gm cc hm vit sn nh sau: - main(): chng trnh chnh s thc thi - readFile(): hm c file input - display() : hm xut d liu ra mn hnh. Trong hm ny s c li g i n mt hm checkPalindrome kim tra s kho c i xng khng. Hm checkPalindrome c khai bo trong file defs.h v c hin thc trong file storeman.cpp. Sinh vin cn vit li hm ny nu mun c im bonus c m t trong phn S7. Lu rng sinh vin khng c php thay i file main.cpp v defs.h khi hin thc chng trnh. Ngoi ra, cc hm do sinh vin vit khng c xut bt k d liu no ra mn hnh khi thc thi. dch v thc thi chng trnh, sinh vin cha c 3 files main.cpp, storeman.cpp v defs.h trong cng mt th mc; sau ch cn dch v thc thi duy nht file main.cpp. M i cng vic cn phi lm s c hin thc trong file storeman.cpp, tuy nhin khng cn dch v thc thi file ny. V d 14: dch v thc thi chng trnh trn mi trng Linux, thc thi cc lnh sau: g++ main.cpp o main.exe ./main.exe

Lu :
L1) Sinh vin phi s dng danh sch lin kt lp trnh bi tp, KHNG DNG MNG HOC CHUI. Nu dng mng hoc chu i tnh ton, bi lm s KHNG C IM.

L2) Danh sch cc s kin l mt con tr pEvent ch n phn t u tin ca danh sch. Sinh vin ph i t vit on m truy xut trc tip ln lt cc phn t ca danh sch ny khi x l cc s kin. L3) S kho kt qu ca hm storage l mt con tr ch n phn t u tin ca danh sch ghi ch (kiu con tr ca notesList). Sinh vin phi vit cc thao tc trc tip trn danh sch ny trong qu trnh thao tc. Sinh vin c th vit cc on m dng chung thnh cc hm gi li khi cn.

7. Np bi
Khi np bi, sinh vin s dng account c cp pht trn h thng BK Sakai np bi qua mng. Sinh vin ch np ng mt file storeman.cpp (tn file phi c vit thng).Tt c cc file np khc file storeman.cpp s b t ng xo khi chm bi. File c np phi l file chng trnh gc, sinh vin khng c nn file khi np bi. Sinh vin phi kim tra chng trnh ca mnh trn Linux 1 trc khi n p. Thi hn cht np bi xem trn sakai. Sinh vin phi dng account trn h thng Sakai np bi. KHNG nhn bi c gi qua mail hoc bt k hnh thc no khc. Bi np tr s KHNG c nhn.

8. X l gian ln
Bi tp ln phi c sinh vin T LM. Sinh vin s b coi l gian ln nu: C s ging nhau bt thng gia m ngun ca cc bi np. Trong trng hp ny, TT C cc bi np u b coi l gian ln. Do vy sinh vin phi bo v m ngun bi tp ln ca mnh. Cc bi lm ca cc sinh vin cc hc k trc cng s c dng kim tra gian ln. Sinh vin khng hiu m ngun do chnh mnh vit, tr nhng phn m c cung cp sn trong chng trnh khi to. Sinh vin c th tham kho t bt k ngun ti liu no, tuy nhin phi m bo rng mnh hiu r ngha ca t t c nhng dng lnh m mnh vit. Trong trng hp khng hiu r m ngun ca ni mnh tham kho, sinh vin c c bit cnh bo l KHNG C s dng m ngun ny; thay vo nn s dng nhng g c hc vit chng trnh. Trong trng hp b kt lun l gian ln, sinh vin s b im 0 cho ton b mn hc (khng ch bi tp ln). KHNG CHP NHN BT K GII THCH NO - KHNG C BT K NGOI L NO! Sau m i bi tp ln c np, s c mt s sinh vin c g i phng vn ngu nhin chng minh rng bi tp ln va c np l do chnh mnh lm.

Linux l mt h i u hnh ngun m. Hin t i n ang c ci sn trong phng Lab.

You might also like