C programming assignment help

computer science

Description

Assignment(#3:(Structures(on(Disk

The(Problem

Your!task!is!to!write!a!program!that!stores!and!retrieves!structures!in!a!file!on!disk.!!The!file!of!

structures!must!remain!on!the!disk!once!your!program!ends.!!You!should!be!able!to!store!

structures to!the!file and!retrieve from!the!file after!restarting!the!program.

The!record!that!you!will!be!writing!to!file!has!the!following!structure:

struct!contact {

!!!unsigned long!phone_number;

!!long first_name_posn;

!!!long last_name_posn;

!!!long company_name_posn;

!!!long email_posn;

!!!long!next;

};

first_name_posn,!last_name_posn,!company_name_posn,!and!email_posn are!the!position in!

the!file of!the!First!Name,!Last!Name,!Company!Name,!and!Email!variable!strings.!!These!

“locations” will!be!required!for!writing and!reading!the!information!to!be stored.

When!you!write!the!structures!on!disk!you!will!need!to!store the First!Name,!Last!Name,!

Company!Name,!and!Email strings!separately!from!the!contact!structure.!!In!the!file!you will!

write!the!contact!structure!first!followed!by!the!First!Name,!Last!Name,!Company!Name,!and!

Email!strings (if!they!exist).!!The!only!required!information!is!the!Phone!Number!– all!other

information!is optional.

The!position!“next” stores!the!location!in!the!file!where!the!next!contact!record!is!stored.

The!file!can!contain!any!number!of!records!and!associated!strings.!!The!name!of!the!file!will!be!

myContactList.db!and!if!the!file!does!not!exist!then!you!program!must!create!it.

Interface (input(and(output)

Your!program!will!have!an!input!interface!that!does!the!following:

Do(you(wish(to(enter(a(new(contact((Yes(or(No)?:(

First(Name:

Last(Name:

Company(Name:

Phone(Number((enter(only(numbers):

Email:


The!program!will!move!to!the!next!stage when!you!answer!No to!the first!question.!!The!answer!

must!be!No!exactly!– observe!the!upper!case!N!and!lower!case!o.

The!second!stage!interface!is!as!follows:

Do(you(wish(to(retrieve(a(contact((Yes(or(No)?:

Phone(Number:

The!program!will!end!if!you!answer!No to!this!question.!!If!you!answer!Yes then!it!will!ask!for!

the!phone!number of!a!contact.!!Your!program!will!search the!file!for!the!first!record!that!

satisfies!this!request.!!If!it!finds!a!match!then it!will!output!the!following:

First'Name: Deb

Last'Name: Stacey

Company'Name: University'of'Guelph

Phone'Number'(enter'only'numbers): 5198244120

Email: dastacey@uoguelph.ca

If!it!does!not!find!a!match!it!will!output:

No'match'found.

In!both!cases,!the!interface!will!continue!by!going!back!to!the!first!question!P Do!you!wish!to!

enter!a!new!contact!(Yes!or!No)?

The!program!will!create!the!file!myContactList.db!if!it!does!not!exist!upon!program!start up.!!If!it

does!exist!then!it!will!be!opened!for!reading!and!writing!and!the!current!file!pointer!should!be!

positioned!at!the!end!of!the!file.

Example(Session

$!./contacts

Do!you!wish!to!enter!a!new!contact!(Yes!or!No)?:!Yes

First!Name: Deb

Last!Name: Stacey

Company!Name: University!of!Guelph

Phone!Number!(enter!only!numbers): 5198244120

Email: dastacey@uoguelph.ca

Do!you!wish!to!enter!a!new!contact!(Yes!or!No)?:!Yes

First!Name: Donald

Last!Name: Duck

Company!Name:

Phone!Number!(enter!only!numbers): 4162599373

Email: dduck@disney.com

Do!you!wish!to!enter!a!new!contact!(Yes!or!No)?:!Yes


First!Name:

Last!Name:

Company!Name: Ducks!Unlimited

Phone!Number!(enter!only!numbers): 4162344567

Email: ducks@unlimited.ca

Do!you!wish!to!enter!a!new!contact!(Yes!or!No)?:!No

Do!you!wish!to!retrieve!a!contact!(Yes!or!No)?: Yes

Phone!Number: 4161234456

No!match!found.

Do!you!wish!to!enter!a!new!contact!(Yes!or!No)?:!No

Do!you!wish!to!retrieve!a!contact!(Yes!or!No)?: Yes

Phone!Number:!4162599373

First!Name: Donald

Last!Name: Duck

Company!Name:

Phone!Number!(enter!only!numbers): 4162599373

Email: dduck@disney.com

Do!you!wish!to!enter!a!new!contact!(Yes!or!No)?:!No

Do!you!wish!to!retrieve!a!contact!(Yes!or!No)?: No

$

The!file!myContactsList.db!will!contain!three!records!(Deb!Stacey,!Donald!Duck,!and!Ducks!

Unlimited).

The!file!should!be!261!bytes!long!and!the!command!“od!–cd!myContactsList.db” will!produce!

the!following:

0000000 030!351!326! 5!001 \0 \0 \0! 0 \0 \0 \0 \0 \0 \0 \0

59672! 13782! 1! 0 48! 0! 0! 0

0000020 4 \0 \0 \0 \0 \0 \0 \0! ; \0 \0 \0 \0 \0 \0 \0

!! 52! 0! 0! 0 59! 0! 0! 0

0000040 P \0 \0 \0 \0 \0 \0 \0! e \0 \0 \0 \0 \0 \0 \0

!! 80! 0! 0! 0! 101! 0! 0! 0

0000060 D! e! b \0! S! t! a! c! e! y \0! U! n! i! v! e

25924 98! 29779! 25441! 31077! 21760! 26990! 25974

0000100 r! s! i! t! y! o! f! G! u! e! l! p! h \0

29554! 29801 8313! 26223! 18208! 25973! 28780! 104

0000120 d! a! s! t! a! c! e! y! @! u! o! g! u! e! l! p

24932! 29811! 25441! 31077! 30016! 26479! 25973! 28780

0000140 h! .! c! a \0!315! 9!034!370 \0 \0 \0 \0!225 \0 \0

11880! 24931! 52480 7225! 248! 0! 38144! 0

0000160! \0 \0 \0 \0 \0!234 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0

0! 0! 39936! 0! 0! 0! 0! 0

0000200! \0 \0 \0 \0 \0!241 \0 \0 \0 \0 \0 \0 \0!262 \0 \0

0! 0! 41216! 0! 0! 0! 45568! 0

0000220! \0 \0 \0 \0 \0! D! o! n! a! l! d \0! D! u! c! k

0! 0! 17408! 28271! 27745! 100! 30020! 27491

0000240! \0! d! d! u! c! k! @! d! i! s! n! e! y! .! c! o


Related Questions in computer science category