How to design a library system

Please respond me as soon as possible regarding this as I'm new user
which is still not used to it and I don't know where or which part
to start

Thomas has newly opened a bookstore, selling at least four diffrent categories of books-
IT reference books, magazine, novels and cookerys books etc. He intends to
expand the variety of books that he in the near future.

In order to build better rapport with the customer, Thomas is setting up a 'Book
Lover's club to attaract customers to sign up as members to his bookstore. With this
'Book Lovers Club' , Thomas will be able to collect his customer's particular, as well
as their preference for books. To become a member, the cuatomer will have to pay
a yearly subscription of $10.

Thomas also intends to implement a saving scheme for his customers. For a customers who
are members of his 'Book Lovers Club',  they will enjoy a 3% discount when they purchase
any items in the bookstore. For members who have spent more than $1000 in a year, they
will be deemed as Godcard member, and they will enjoy 5% discount on any purchases
in the bookstore.

Thomas would like to implement an information system in keeping track of the sales of
each category of books. The system should also indicates the best and worst selling
category so that he can react to the market in time. Thomas would also like to computerise
the enrolment of memebrs into the 'Book's Lovers Club'.The system will keep a database of
members' particular and members' preference in books. Furthermore, the system
should also upgrade the members to gold card members when they qualify for it.

Write a pascal program to implement a information system that is suitable for
Thomas' bookstore. Indicate and explain clearly the type of data structure
used in developing the system.

Requirement from the lecturer:

Indicate and explain clearly the types of data structure using
- Array, linked list stack, queue


Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

we can't do ur homework.
we CAN take ur input and offer suggestions on refinement tho...

so how about offering ur view on how u're gonna solve this problem first?

ie. ask more specific qns instead of the general "help me do this"...
They are wery restrictive here at EE about doing peoples homework, but we could probably guide you on your way.

First of all, you need some differents arrays :

eks Customer array which is an array of a record. The record could be something like this .

Customerrecord =
   custid : integer;
   lastname : string[25];
   firstname : string[25];
   adress : string[30];
   zipcode : string[6];
   phoneno : string[10];
   member : boolean; (* boolean = true or false. True if he/she is a member, false if not)

the customer array should then be an array of this record :

  custommerarray = array[1..200] of customerrecord;

Then you probably need a bookarray which also is an array of a "record". (bookid, title, category, price etc.)

At last you would also need an array of sale, ex : saleno, customerid, date, totalprice. This array should contain an other array which is books. Reason: one sale are often containing more than one book.

This array is probably the mainarray.

When Thomas are selling some books, this is the array he are using. First of all he type in the customerid

(when the user type in the customer id, your system should search in the customer-array and return customerdata if it's found), if not you should type in new customer data, and store dem in the customerarray. The same thing for the bookarray. When you type in a booknumber, the system should go to the bookarray and search for it, and return the bookdata if it's found.

When Thomas sell one book, this book are from a category. Numbers of sold books of this category should therefor be increased. Ex: make a categoryarray of record, like this .

categoryrecord =
   categoryname : string[30];
   soldbooks : intger;
category = array[1..10] of categoryrecord;

When a book has been sold you could use this command to increase no of sold books :


  (bookno = the book he sold)

I think this should help you.

Conclusion :
Make some arrays :

Make some procedures for working with these arrays, eks : saleprocedure, adding a book procedure etc. and make some calls to this procedures from a menu. Ex  of a menu :

writeln('1..... New Customer ');
writeln('2..... New Book');
writeln('3..... Sale');
write('Type in your choice : ");
readln(choice); (*Choice should be a string[1]*)

case string of
  '1' : Newcustomer(* call to new customer procedure)
  '2' : New Book




Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.