#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define CUSHION 50 /* for array sizes*/
#define RECLMT 20 /* amount of records */
/*------------------DECLARATIONS----------------------*/
struct book
{
char title[CUSHION];
char firstname[CUSHION];
char lastname[CUSHION];
char isbn[13]; /*ISBN Number consists of 13 numbers*/
char publisher[CUSHION];
char dop[4]; /*only the year needed*/
};
struct book Book[RECLMT]; /*20 records*/
int populate(void);
void welcome_menu(void); /* Options menu */
int choice(char);
char * stringer(void); /* prototype for input interface */
/*----------------------------------------------------------------------*/
/* MAIN STARTS HERE */
int main()
{
welcome_menu();
return 0;
}
/* MAIN ENDS HERE */
/*-----------------FUNCTIONS------------------------------------------*/
/* start menu */
void welcome_menu(void)
{
char p;
printf(" ******************************************\n"); printf(" * Welcome to the Mile End Library System *\n"); printf(" ******************************************\n\n"); printf("Enter the number matching your intention :\n\n"); printf("1. ADD A BOOK\n2. UPDATE AN EXISTING ENTRY\n3. BOOK SEARCH\n4. PRINT ALL FILE RECORDS\n"); printf("\n5. (FOR ADMIN USE ONLY) POPULATE FILE\n\n");/*options keys*/
choice(p);
}
/* end of start menu */
/* function to fill file */
int populate(void)
{
printf("\n\nAll entries will be saved in the file, books.dat.\n\n" );
int c=0, x=0;
/* struct book Book[RECLMT]; */
/* char s; */
for(;c<=RECLMT;c++){
strncpy( Book
[x
].
title , stringer
(), CUSHION
);
printf("Author's first name? ");
strncpy( Book
[x
].
firstname , stringer
(), CUSHION
);
printf("Author's last name? ");
strncpy( Book
[x
].
firstname , stringer
(), CUSHION
);
strncpy( Book
[x
].
firstname , stringer
(), CUSHION
);
printf("Year of publication? ");
strncpy( Book
[x
].
firstname , stringer
(), CUSHION
);
}
/*
books = &Book ;
FILE *bibPtr; // file handle
bibPtr=fopen( "books.dat","w" );
if( bibPtr == NULL )
{ printf( "No file found.\n" );}
else
{
fwrite(books,sizeof(*Book),RECLMT,bibPtr);
}
fclose(bibPtr);*/
return 0;
}
/* result of menu choice */
int choice(char p)
{
switch(p)
{
case '1':
break;
case '2':
break;
case '3':
break;
case '4':
break;
case '5':
/*printf("Press 5 again if you are certain\n");
printf( "Anything else takes you back to root menu\n" );
char t;
(t=getchar() == '5') ?*/ populate()/*: welcome_menu*/;
break;
default:
welcome_menu;
}
return 0 ;
}
/* A function to remedy the repeated requests in populate() */
char * stringer(void)
{
int i=0;
char s, str[CUSHION];
while ( ( s
= getchar() ) !='\n' ){ str[i++] = s;
}
str[i]='\0';
/* printf("you typed %s",str); */
return str;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPGN0eXBlLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNkZWZpbmUgQ1VTSElPTiA1MCAvKiBmb3IgYXJyYXkgc2l6ZXMqLwojZGVmaW5lIFJFQ0xNVCAyMCAvKiBhbW91bnQgb2YgcmVjb3JkcyAqLwoKLyotLS0tLS0tLS0tLS0tLS0tLS1ERUNMQVJBVElPTlMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8Kc3RydWN0IGJvb2sKewogICAgY2hhciB0aXRsZVtDVVNISU9OXTsKICAgIGNoYXIgZmlyc3RuYW1lW0NVU0hJT05dOwogICAgY2hhciBsYXN0bmFtZVtDVVNISU9OXTsKICAgIGNoYXIgaXNiblsxM107IC8qSVNCTiBOdW1iZXIgY29uc2lzdHMgb2YgMTMgbnVtYmVycyovCiAgICBjaGFyIHB1Ymxpc2hlcltDVVNISU9OXTsKICAgIGNoYXIgZG9wWzRdOyAvKm9ubHkgdGhlIHllYXIgbmVlZGVkKi8KfTsKCnN0cnVjdCBib29rIEJvb2tbUkVDTE1UXTsgLyoyMCByZWNvcmRzKi8KCmludCBwb3B1bGF0ZSh2b2lkKTsKCnZvaWQgd2VsY29tZV9tZW51KHZvaWQpOyAvKiBPcHRpb25zIG1lbnUgKi8KCmludCBjaG9pY2UoY2hhcik7CgpjaGFyICogc3RyaW5nZXIodm9pZCk7IC8qIHByb3RvdHlwZSBmb3IgaW5wdXQgaW50ZXJmYWNlICovCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLyogTUFJTiBTVEFSVFMgSEVSRSAqLwppbnQgbWFpbigpCnsKICAgIHdlbGNvbWVfbWVudSgpOwoJCglyZXR1cm4gMDsKfQoKLyogTUFJTiBFTkRTIEhFUkUgKi8KCi8qLS0tLS0tLS0tLS0tLS0tLS1GVU5DVElPTlMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiBzdGFydCBtZW51ICovCnZvaWQgd2VsY29tZV9tZW51KHZvaWQpCnsKCWNoYXIgcDsKICAgIHByaW50ZigiICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiIpOwogICAgcHJpbnRmKCIgICogV2VsY29tZSB0byB0aGUgTWlsZSBFbmQgTGlicmFyeSBTeXN0ZW0gKlxuIik7CiAgICBwcmludGYoIiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiIpOwogICAgcHJpbnRmKCJFbnRlciB0aGUgbnVtYmVyIG1hdGNoaW5nIHlvdXIgaW50ZW50aW9uIDpcblxuIik7CiAgICBwcmludGYoIjEuIEFERCBBIEJPT0tcbjIuIFVQREFURSBBTiBFWElTVElORyBFTlRSWVxuMy4gQk9PSyBTRUFSQ0hcbjQuIFBSSU5UIEFMTCBGSUxFIFJFQ09SRFNcbiIpOwoJcHJpbnRmKCJcbjUuIChGT1IgQURNSU4gVVNFIE9OTFkpIFBPUFVMQVRFIEZJTEVcblxuIik7LypvcHRpb25zIGtleXMqLwoKCXA9Z2V0Y2hhcigpOwoJY2hvaWNlKHApOwp9Ci8qIGVuZCBvZiBzdGFydCBtZW51ICovCgovKiBmdW5jdGlvbiB0byBmaWxsIGZpbGUgKi8KaW50IHBvcHVsYXRlKHZvaWQpCnsKCXByaW50ZigiXG5cbkFsbCBlbnRyaWVzIHdpbGwgYmUgc2F2ZWQgaW4gdGhlIGZpbGUsIGJvb2tzLmRhdC5cblxuIiApOwoKICAgIGludCBjPTAsIHg9MDsKCQogICAvKiAgc3RydWN0IGJvb2sgQm9va1tSRUNMTVRdOyAqLwoKICAvKiAgY2hhciBzOyAqLwoKICAgIGZvcig7Yzw9UkVDTE1UO2MrKyl7CgogICAgcHJpbnRmKCJUaXRsZT8gICIpOwogCglzdHJuY3B5KCBCb29rW3hdLnRpdGxlICwgc3RyaW5nZXIoKSwgQ1VTSElPTiApOyAKCiAgICBwcmludGYoIkF1dGhvcidzIGZpcnN0IG5hbWU/ICAiKTsKCglzdHJuY3B5KCBCb29rW3hdLmZpcnN0bmFtZSAsIHN0cmluZ2VyKCksIENVU0hJT04gKTsgCgogICAgcHJpbnRmKCJBdXRob3IncyBsYXN0IG5hbWU/ICAiKTsKCiAgIHN0cm5jcHkoIEJvb2tbeF0uZmlyc3RuYW1lICwgc3RyaW5nZXIoKSwgQ1VTSElPTiApOwogCiAgICBwcmludGYoIklTQk4jOiAgIik7CgoJc3RybmNweSggQm9va1t4XS5maXJzdG5hbWUgLCBzdHJpbmdlcigpLCBDVVNISU9OICk7CiAgIAogICAgcHJpbnRmKCJZZWFyIG9mIHB1YmxpY2F0aW9uPyAgIik7CgogICBzdHJuY3B5KCBCb29rW3hdLmZpcnN0bmFtZSAsIHN0cmluZ2VyKCksIENVU0hJT04gKTsKCiAgICBwcmludGYoIk5leHQgYm9vayAtLT5cbiIpOwogICAgfQovKgpib29rcyA9ICZCb29rIDsKRklMRSAqYmliUHRyOyAvLyBmaWxlIGhhbmRsZSAKYmliUHRyPWZvcGVuKCAiYm9va3MuZGF0IiwidyIgKTsKCWlmKCBiaWJQdHIgPT0gTlVMTCApCgl7ICBwcmludGYoICJObyBmaWxlIGZvdW5kLlxuIiApO30KCWVsc2UKCXsKCQlmd3JpdGUoYm9va3Msc2l6ZW9mKCpCb29rKSxSRUNMTVQsYmliUHRyKTsJCn0KZmNsb3NlKGJpYlB0cik7Ki8KCXJldHVybiAwOwp9CgovKiByZXN1bHQgb2YgbWVudSBjaG9pY2UgKi8KaW50IGNob2ljZShjaGFyIHApCnsKCXN3aXRjaChwKQoJewoJCWNhc2UgJzEnOgoJCQlicmVhazsKCQljYXNlICcyJzoKCQkJYnJlYWs7CgkJY2FzZSAnMyc6CgkJCWJyZWFrOwoJCWNhc2UgJzQnOgoJCQlicmVhazsKCQljYXNlICc1JzoKCQkJLypwcmludGYoIlByZXNzIDUgYWdhaW4gaWYgeW91IGFyZSBjZXJ0YWluXG4iKTsKCQkJcHJpbnRmKCAiQW55dGhpbmcgZWxzZSB0YWtlcyB5b3UgYmFjayB0byByb290IG1lbnVcbiIgKTsKCQkJY2hhciB0OwoJCQkodD1nZXRjaGFyKCkgPT0gJzUnKSA/Ki8gcG9wdWxhdGUoKS8qOiB3ZWxjb21lX21lbnUqLzsKCQkJYnJlYWs7CgkJZGVmYXVsdDoKCQkJd2VsY29tZV9tZW51OwoJCX0KCXJldHVybiAwIDsKfQoKLyogQSBmdW5jdGlvbiB0byByZW1lZHkgdGhlIHJlcGVhdGVkIHJlcXVlc3RzIGluIHBvcHVsYXRlKCkgKi8KCmNoYXIgKiBzdHJpbmdlcih2b2lkKQp7CmludCBpPTA7CmNoYXIgcywgc3RyW0NVU0hJT05dOwp3aGlsZSAoICggcyA9IGdldGNoYXIoKSApICE9J1xuJyApewoJCXN0cltpKytdID0gczsKCQl9CgkJc3RyW2ldPSdcMCc7CgovKiBwcmludGYoInlvdSB0eXBlZCAlcyIsc3RyKTsgKi8KCnJldHVybiBzdHI7Cn0KCg==