>// The Maximum Length of DATE is 20 Characters
>#define MAXL_DATE 20
You forgot to specify the 20.
>// return true if the Book is borrowed Is it correct?
>bool Book_Borrowed;
Both of these lines are incorrect. The // commenting style is only legal in C99 (which it is safe to assume you aren't using) and C++. Ditto that for bool. In C you can fake it by any number of ways (here is one):
Code:
typedef enum { false, true } bool;
>BookRecord_t; // Why using _t ?
_t means "type", it's a common idiom for typedef'd identifiers. Not required, but it tells you immediately that the type you're using was created with typedef.
>void main()
Bzzt! The only way this would be legal is if you're on a freestanding implementation. Since you're asking for help on these boards it's safe to assume you aren't. Use one of the two legal declarations:
Code:
int main(void) /* No arguments */
int main(int argc, char **argv) /* Command line arguments */
>scanf("%d", &value);
Always check the return value of scanf. Users are very good at breaking perfectly good solutions so we have to add three times the code to cover for it.
>switch (val) {
Don't forget parentheses.
>case 1:
>// What functions to include here?
Functions to encrypt the file. The creation of such functions is up to you though, so I can't tell you what to do.
>case 2:
>// What functions to include here?
Ditto for decryption.
>AddRecord() // What parameters to include?
It depends on what kind of data structure you intend to use. But I can safely assume that it would look something like this:
Code:
/* Guessing */
AddRecord(RecordList);
>RemoveRecord(RecordNum) // I'm not sure about the parameters
Code:
/* Guessing */
RemoveRecord(RecordList, RecordNum);
>UpdateRecord(RecordNum) // also i'm not ....
Code:
/* Guessing */
UpdateRecord(RecordList, RecordNum);
>exit();
exit requires an argument.
Finally, the switch statement should have a default case, otherwise you'll need to check the input from scanf for validity elsewhere.