PART2 OENECTVES Review the do while loco enew the oawnile lo

PART2 OENECTVES Review the do while loco enew the oa-wnile loop Review how to format the outout in column enew how to format the output in columns Holi to create nd call the user-defnedunctions Apply reference paramenter to uer-detined funcsion

Solution

#include #include #include \"valid.c\"struct purch_detail { char item_desc[20]; int unit_price; int qty; }; void display(); void entryData(); void readFile(); void getName(char *str); void getWriteFileName(char *); void getReadFileName(char *); void getzeroInteger(char *_chr, int *_value); int count=0; int total_price=0; int total_amt=0; char option; char filename [14]; FILE *fp; struct purch_detail *pd_ptr, *tmptr; void main() { clrscr(); pd_ptr = (struct purch_detail *) malloc(sizeof(struct purch_detail) * 10); tmptr = pd_ptr; printf(\"\ Do you want to create the data file type \'y\' for yes and \'n\' for no.\"); scanf(\"%c\", &option); fflush(NULL); if( option == \'y\' || option == \'Y\') { printf(\"\ You can generate bill of maximum 10 item.\ \"); getWriteFileName(filename); display(); } elseif( option == \'n\' || option == \'N\') { getReadFileName(filename); readFile(); } getch(); } void entryData() { while(1) { printf(\"\ Enter item name : \"); getName(tmptr->item_desc); getPosInteger(\"Enter unit price of the item : \", &tmptr->unit_price); getzeroInteger(\"Enter no of qty purchased : \", &tmptr->qty); if(tmptr->qty == 0) break; count ++; if (count >= 10) break; /* if ( count % 2 == 0) if ( (pd_ptr = (struct purch_detail *) realloc(pd_ptr, sizeof(struct purch_detail) * 2)) == NULL) { printf(\"Realloc failed. No enough memory available.\"); break; } */ tmptr++; } } void display() { tmptr = pd_ptr; fprintf(fp,\"\ Item Unit Price Quantity Total Price \"); fprintf(fp,\"\ ______________________________________________________\"); printf(\"\ Item Unit Price Quantity Total Price \"); printf(\"\ ______________________________________________________\"); while(1) { total_price = tmptr->unit_price * tmptr->qty ; fprintf(fp, \"\ %-20s %4d %4d %5d\", tmptr->item_desc, tmptr->unit_price, tmptr->qty, total_price); printf(\"\ %-20s %4d %4d %5d\", tmptr->item_desc, tmptr->unit_price, tmptr->qty, total_price); //printf(\"\"); total_amt += total_price; count--; if ( count <= 0) break; tmptr++; } fprintf(fp, \"\ ______________________________________________________\"); fprintf(fp, \"\ \\t\\t\\t Total Amount : %5d\", total_amt); printf(\"\ ______________________________________________________\"); printf(\"\ \\t\\t\\t Total Amount : %5d\", total_amt); } void getWriteFileName(char *fname) { printf(\"Enter Output File name maxium 14 character : \"); scanf(\"%s\", fname); if( ( fp = fopen(fname, \"wt\") ) == NULL ) { fclose(fp); printf(\"\ Invalid file name entered.\"); } else entryData(); } void getReadFileName(char *fname) { printf(\"Enter Input File name maxium 14 character : \"); scanf(\"%s\", fname); if( ( fp = fopen(fname, \"r+t\") ) == NULL ) { fclose(fp); printf(\"\ Invalid file name entered.\"); } } void readFile() { char chr; while( feof(fp) == 0) { chr = getc(fp); printf(\"%c\",chr); } } void getName(char *str) { int count1=0; char *getstr; char readch=\'\\0\'; int errorflag = 0; fflush(NULL); getstr = str; while(1) { scanf(\"%c\", &readch); if( readch == \'\ \') break; *getstr = readch; count1++; getstr++; if( count1 >= 20 ) break; } fflush(NULL); if(errorflag) getName(str); *getstr=\'\\0\'; } void getzeroInteger(char *_chr, int *_value) { float tempval =1; int _ival=0; printf(\"\ %s\", _chr); _scaint = scanf(\"%f\", &tempval); fflush(NULL); if ( _scaint != 0 ) { _ival = tempval; if ( tempval < 0 ) { printf(\"%s\", \"\ You should enter value greater then or equal to zero. Enter the value again...\"); getzeroInteger(_chr, _value); } elseif ( _ival != tempval) { printf(\"%s\", \"\ Error(decimal value). It will be truncated the digit after the percision. Enter integer number only.\"); getzeroInteger(_chr, _value); } elseif( ! ( (tempval >= -32768 ) && (tempval <= 32767 ) ) ) { printf(\"%s\", \"\ Error out of range entry. You should enter integer value in the range of -32768 to 327678 only.\"); getzeroInteger(_chr, _value); } else { *_value = (int) tempval; } } else { printf(\"\ %s\",\"Error in entry. Enter integers only.\"); getzeroInteger(_chr, _value); } }
 PART2 OENECTVES Review the do while loco enew the oa-wnile loop Review how to format the outout in column enew how to format the output in columns Holi to crea

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site