can anyone here show me some examples of converter like Currency converter or
universal measurement converter...i tried to search but no working example..
universal measurement converter...i tried to search but no working example..
kilometers km distance 1000 yards yd distance 0.9144 meters m distance 1 quarts qt volume 0.94635 liters l volume 1 gallons gal volume 3.7854 milliliters ml volume 0.001 kilograms kg mass 1 grams g mass 0.001 slugs slugs mass 0.14594 my code is this i
#include <stdio.h> void calculate conversion(double input) char input_oldunit; double input_value; char input_newunit; struct unit 4{ char oldunit[12]; char SI [5]; char newunit[10]; double value; }; int main() { struct unit h[20]; int k = 0.0; char choice FILE *measurement; printf("\THIS IS A UNIVERSAL MEASUREMENT PROGRAMn"); measurement = fopen("unit.dat","r"); do{ printf("\nPlease select q to quit or other to enter conversion program:"); scanf("%s",&choice); printf("You have selected option %d\n\n",choice); switch(choice) { case q: printf("thank s and have a nice day\n); return 0; break; } default:{ if (measurement == NULL) printf("Error opening data file.\n"); else { while(fscanf(measurement,"%s %s %s %lf ",&h1[k].oldunit,&h1[k].SI,&h1[k].newunit,&h1[k].value)==4) { printf(" input your values followed with it's measurement name or SI unit and the target measurement's name or SI unit.\n"); scanf(" %lf %s %s",&input_value,&input_oldunit,&input_newunit); calculate conversion(input); } } } fclose(measurement); } printf("If you want to quit, press q or else press any key to continue\n"); scanf("%s",&choice); }while(optn!=q); printf("To the infinite..and BEYOND....!!!!!\n\n"); break; return; }
int binary search(int arr[],int size,int target) { int middleposition; int middlevalue; int result = -1; int low = 0; int high = SIZE - 1; while(result == -1&& low <= high) { middleposition = (low -high)/2; middlevalue = arr[[middleposition]; if(target ==middlevalue) { result = middleposition; } else if (target<middlevalue) high = middleposition -1; else low = middleposition +1; } return result; }
#include<stdio.h> #include<string.h> #define NOT_FOUND -1 typedef struct { char name[30]; char abbrev[15]; char class[20]; double standard; } unit_t int fscan_unit(FILE *filep,unit_t *unitp){ int status; status = fscanf(filep, "%s%s%s%lf",(*unitp).name,(*unitp).abbrev,(*unitp).class,&(*unitp).standard); if(status == 4) status = 1; else if (status != EOF) status = 0; return (status); } void load_units(int unit_max, unit_t units[], int *unit_sizep) { FILE *inp; unit_t data; int i, status; inp = fopen("units.dat","r"); i = 0; for (status = fscan_unit(inp, &data); status == 1 && i < unit_max; status = fscan_unit(inp, &data)) { units[i++] = data; } fclose(inp); if (status == 0) { printf("\n*** Error in data format ***\n"); printf("*** Using first &d data format ***\n"); } else if (status != EOF) { printf("\n*** Error: too much data in file ***\n"); printf("*** Using first %d data values ***\n", i); } *unit_sizep = i; } int search(const unit_t units[], const char *target, int n) { int i, found = 0, where; i = 0; while (!found && i < n) { if (strcmp(units[i].name, target) == 0 || strcmp(units[i].abbrev, target) == 0) found = 1; else ++i; } if(found) where = i; else where = NOT_FOUND; return(where); } double convert(double quantity,double old_stand, double new_stand) { return(quantity*old_stand/new_stand); } int main(void) { unit_t units[20]; int num_units; char old_units[30],new_units[30]; int status; double quantity; int old_index,new_index; load_units(20,units,&num_units); printf("Enter a conversion problem or q to quit.\n"); printf("To convert 25 kilometers to miles,you would enter\n"); printf(">25 kilometers miles\n"); printf(" or,alternatively,\n"); printf(">25 km mi\n>"); for(status = scanf("%lf %s%s",&quantity,&old_units,&new_units); status == 3; status = scanf("%lf %s%s",&quantity,&old_units,&new_units)){ printf("attempting conversion of %.4e %s to %s ...\n",quantity,&old_units,&new_units); old_index = search(units,old_units,num_units); new_index = search(units,old_units,num_units); if (old_index == NOT_FOUND){ printf("Unit %s not in database\n",old_units); } else if (new_index == NOT_FOUND){ printf("UNit %s not in database\n",new_units); } else if (strcmp(units[old_index].class,units[new_index].class)!=0) else printf(" Cannot convert %s(%s) to %s (%s)\n",old_units,units[old_index].class,new_units,units[new_index].class); else printf("%.4e %s = %.4e %s\n",quantity,old_units,convert(quantity,units[old_index].standard,units[new_index].standard),new_index); printf("\nEnter a conversion problem or q to quit\n"); } return(0); }
Comment