View Full Version: need help please

C++ Learning Community > C++ Works in Progress > need help please


Title: need help please
Description: i need some help on records and function


needCee - September 23, 2005 07:14 PM (GMT)
Hello all,
I got the follwoing program need to make it upside down any help
as i have to create for each switch its own header and source file.
the idea is to have adding deleting editing and searching and showing but each one should have its own source file and header any idea ?

thanks here is the codes:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<process.h>

main()
{
struct cee
{
long float vuosi_maali,ajettu,hinta;
char auton_nimi[15],omistaja_nimi[20],maali_dis,ajettu_dis,hinta_dis;

}
s,arr[100],temp;
int valinta,i,c,k,flag,ruttu,laskuri;
char nomistaja_nimi[20],nauton_nimi[15];
long int recsize;
FILE *fp,*ft;


recsize=sizeof(s);
fp=fopen("c:\\temp\\hello.bin","rb+");
if(fp==NULL)
{
fp=fopen("c:\\temp\\hello.bin","wb+");
if(fp == NULL)
{
printf("\n\nFilukan avaminen ei onnistui");
getch();
exit(0);
}
}


while(1)
{
printf("*********************************************************************\n");
printf("*********************** VALINTA *********************************\n");
printf("*********************************************************************\n");
printf("\n1:Uusi Auto\n2:Editoi\n3:Deletointi\n4:Etsi\n5:Naytta Kaikki autot\n6:Poisto -> ");
scanf("%d",&valinta);

switch(valinta)
{
case 1 :
{
fseek(fp,0,2);

s.maali_dis=NULL;
s.ajettu_dis=NULL;
s.hinta_dis=NULL;


printf("\n\nAnna Auton Nimi: ");
scanf("%s",s.auton_nimi);
printf("Anna Omistjan Nimi: ");
scanf("%s",s.omistaja_nimi);

printf("Auton Vuosi Maali: ");
scanf("%lf",&s.vuosi_maali);
printf("Auto Ajettu: ");
scanf("%lf",&s.ajettu);
printf("Auton Hinta: ");
scanf("%lf",&s.hinta);
if(s.vuosi_maali == 0)
s.maali_dis='0';
if(s.ajettu == 0)
s.ajettu_dis='0';
if(s.hinta == 0)
s.hinta_dis='0';
fwrite(&s,recsize,1,fp);
i=0;
rewind(fp);
while(fread(&s,recsize,1,fp)==1)
{
arr[i]=s;
i++;
}
for(c=0;c<i-1;c++)
{
for(k=0;k<i-1;k++)
{
if( strcmp(arr[k].omistaja_nimi,arr[k+1].omistaja_nimi) > 0 )
{
temp=arr[k];
arr[k]=arr[k+1];
arr[k+1]=temp;
}
}
}
rewind(fp);
for(k=0;k<i;k++)
fwrite(&arr[k],recsize,1,fp);

break;
}
case 2 :
{
rewind(fp);

printf("\n\nEditoi auton tiedot: ");
printf("\nAnna auton nimi: ");
scanf("%s",nauton_nimi);
printf("Anna omistjan nimi: ");
scanf("%s",nomistaja_nimi);
flag=0;
while( fread(&s,recsize,1,fp)==1)
if( (strcmp(s.omistaja_nimi,nomistaja_nimi)==0) && (strcmp(s.auton_nimi,nauton_nimi)==0) )
flag=1;
if(flag==0)
{
printf("\n\n*********************************************************************\n");
printf("******************* Antamasi tiedot ei loytyi ********************\n");
printf("*********************************************************************\n");



break;
}
rewind(fp);
while( fread(&s,recsize,1,fp) == 1)
{
if( strcmp(s.omistaja_nimi,nomistaja_nimi) == 0)
{
if( strcmp(s.auton_nimi,nauton_nimi) == 0)
{
printf("\n\nLisaa uusi data: ");
s.maali_dis=NULL;
s.ajettu_dis=NULL;
s.hinta_dis=NULL;
printf("\n\nAuton nimi: ");
scanf("%s",s.auton_nimi);
printf("Auton Omistja: ");
scanf("%s",s.omistaja_nimi);

printf("Vuosi maali: ");
scanf("%lf",&s.vuosi_maali);
printf("Ajettu: ");
scanf("%lf",&s.ajettu);
printf("Auton hinta: ");
scanf("%lf",&s.hinta);
if(s.vuosi_maali == 0)
s.maali_dis='0';
if(s.ajettu == 0)
s.ajettu_dis='0';
if(s.hinta == 0)
s.hinta_dis='0';
fseek(fp,-recsize,1);
fwrite(&s,recsize,1,fp);
break;
}
}
}

i=0;
rewind(fp);
while(fread(&s,recsize,1,fp)==1)
{
arr[i]=s;
i++;
}
for(c=0;c<i-1;c++)
{
for(k=0;k<i-1;k++)
{
if( strcmp(arr[k].omistaja_nimi,arr[k+1].omistaja_nimi) > 0 )
{
temp=arr[k];
arr[k]=arr[k+1];
arr[k+1]=temp;
}
}
}
rewind(fp);
for(k=0;k<i;k++)
fwrite(&arr[k],recsize,1,fp);

break;
}

case 3 :
{
rewind(fp);
ft=fopen("c:\\temp\\temp.dat","wb++");

printf("\n\nMika auton tiedot poistat ?: ");
printf("\nAnna auton nimi: ");
scanf("%s",nauton_nimi);
printf("Anna auton omistaja: ");
scanf("%s",nomistaja_nimi);
flag=0;
while( fread(&s,recsize,1,fp)==1)
if( (strcmp(s.omistaja_nimi,nomistaja_nimi)==0) && (strcmp(s.auton_nimi,nauton_nimi)==0) )
flag=1;
if(flag==0)
{
printf("*********************************************************************\n");
printf("******************* Ei ole sellainen auto ********************\n");
printf("*********************************************************************\n\n\n");

break;
}
rewind(fp);
while( fread(&s,recsize,1,fp) == 1)
{
if( (strcmp(s.omistaja_nimi,nomistaja_nimi) != 0) || (strcmp(s.auton_nimi,nauton_nimi) != 0) )
fwrite(&s,recsize,1,ft);
}
if(flag == 1)

printf("*********************************************************************\n");
printf("******************* Auto tidot poistettu ********************\n");
printf("*********************************************************************\n");




getch();
fclose(fp);
fclose(ft);
remove("c:\\temp\\hello.bin");
rename("c:\\temp\\temp.dat","c:\\temp\\hello.bin");
fp=fopen("c:\\temp\\hello.bin","rb++");
i=0;
rewind(fp);
while(fread(&s,recsize,1,fp)==1)
{
arr[i]=s;
i++;
}
for(c=0;c<i-1;c++)
{
for(k=0;k<i-1;k++)
{
if( strcmp(arr[k].omistaja_nimi,arr[k+1].omistaja_nimi) > 0 )
{
temp=arr[k];
arr[k]=arr[k+1];
arr[k+1]=temp;
}
}
}
rewind(fp);
for(k=0;k<i;k++)
fwrite(&arr[k],recsize,1,fp);

break;
}


case 4 :
{
rewind(fp);
flag=0;

printf("\n\nMika auto etsit: ");
printf("\nAnna auton nimi: ");
scanf("%s",nauton_nimi);
printf("Anna omistajan nimi: ");
scanf("%s",nomistaja_nimi);
while( fread(&s,recsize,1,fp)==1)
{
if( (strcmp(s.omistaja_nimi,nomistaja_nimi)==0) && (strcmp(s.auton_nimi,nauton_nimi)==0) )
{
flag=1;

printf("\n*********************************************************************\n");
printf("******************* tiedot loytyii ********************\n");
printf("*********************************************************************\n");
printf("Auton nimi X Omistaja X Vuosi maali X Ajettu X Hinta X\n");



printf("Name : %-15s%-13s",s.omistaja_nimi,s.auton_nimi);
if(s.maali_dis == NULL)
printf("%-12.0lf",s.vuosi_maali);
else
printf("%6c",s.maali_dis);
if(s.ajettu_dis == NULL)
printf("%-12.0lf",s.ajettu);
else
printf("%6c",s.ajettu_dis);
if(s.hinta_dis == NULL)
printf("%-12.0lf\n",s.hinta);
else
printf("%6c",s.hinta_dis);


break;
}
}
if(flag==0)


printf("******************* tiedot EI loytyii ********************\n");


break;
}

case 5 :
{
rewind(fp);
laskuri=1;
ruttu=0;

printf("\n\n*********************************************************************\n");
printf("Auton nimi Omistaja Vuosi maali Ajettu Hinta \n");

while(fread(&s,recsize,1,fp)==1)
{
printf("%2d) %-14s%-13s",laskuri,s.auton_nimi,s.omistaja_nimi);laskuri++;
if(s.maali_dis == NULL)
printf("%-12.0lf",s.vuosi_maali);
else
printf("%4c",s.maali_dis);
if(s.ajettu_dis == NULL)
printf("%-12.0lf",s.ajettu);
else
printf("%6c",s.ajettu_dis);
if(s.hinta_dis == NULL)
printf("%-12.0lf\n",s.hinta);
else
printf("%7c\n",s.hinta_dis);
ruttu++;
if(ruttu==15)
{
ruttu=0;
printf("\nHit ENTER to continue ");
getch();

printf("\n*********************************************************************\n");
printf("Auton nimi X Omistaja X Vuosi maali X Ajettu X Hinta X\n");
}
}

break;
}


case 6 :
{
fclose(fp);


exit(0);
break;
}

default :
printf("\n\nValitst oikein\n ");
}
}

}


Neken - September 23, 2005 07:19 PM (GMT)
:codeblks:

MonkeyMan - September 25, 2005 02:31 AM (GMT)
Others will have to help you with your questions as I don't fully understand it. The part I did understand is usually user preference unless you are simpilaly having errors. Also a few other notes:
A. Please use the code blocks as stated by Neken.
B. For this is not a showing of a upcoming project rather than help it would fit under C++ Help.

Neken - September 25, 2005 04:15 PM (GMT)
You should try first making the different functions in the same cpp.

In this particular case, you shouldn't place them in different source and headers because they are very related to the main one.

You could create a library of functions to help you in your program thought, and it could be in another source.




Hosted for free by InvisionFree