C Board  

Go Back   C Board > General Programming Boards > C Programming

Reply
 
LinkBack Thread Tools Display Modes
Old 07-30-2009, 07:55 AM   #1
Registered User
 
Join Date: Jul 2009
Posts: 1
Unhappy Traying to search in a file for input number and name

Code:
#include <stdio.h>
#include <string.h>
#include <ctype.h>

typedef struct administratie
{
	int ProgressNummer;
	char voornaam [10];
	char achternaam [10];
	float CijferNetwerk;
	float CijferDigitaal;
	float CijferInfo;

} a;

void GegevenInvoeren (a *);
void HoogsteGemiddeldeCijferOpzoekenEnWeergeven (a *);
//void StudentMetLaagsteGemiddeldeCijferOpzoekenEnWeergeven (a *);
//void HoogsteBehaaldeCijferVanEenVakOpzoekenEnWeergeven (a *);

int keuze=0;
float Resultaat;
float Gemiddelde;
int x;

void main (void)
{
	a admin [6]={0,'\0','\0',0,0,0};
	printf("\n Welkom bij onze administratie programma \n");

	while(keuze!=5)
		{
			printf("\n1 Gegevens en cijfer van een student invoeren \n");
			printf("\n2 Student met het hoogste gemiddelde cijfer opzoeken en weergeven\n");
			printf("\n3 Student met het laagste gemiddelde cijfer opzoeken en weergeven \n");
			printf("\n4 Hoogste behaalde cijfer van een vak opzoeken en weergeven \n");
			printf("\n5 Programma afsluiten \n");

			printf("\n Maak een keuze van de menu:");
			scanf("%d", &keuze);

			if(keuze==1)
				{
					GegevenInvoeren (admin);

				}

			if(keuze==2)
				{
					HoogsteGemiddeldeCijferOpzoekenEnWeergeven (admin);

				}

			if(keuze==3)
				{
					StudentMetHoogsteGemiddeldeCijferOpzoekenEnWeergeven (admin);
				}

			if(keuze==4)
				{
					HoogsteBehaaldeCijferVanEenVakOpzoeken (admin);
				}

			if(keuze==5)
				{
					printf("\n Prgramma afsluiten \n");

				}

		}//end while

}//end main


void GegevenInvoeren (a *b)
{
	FILE *pAppend;
	pAppend=fopen("c:\\opdrachtinfo3.txt","a");

	if (pAppend==NULL)

	printf("\n file cannot be opened\n");

	else
		{
			printf("\n Voer in een progress nummer tussen 10000 en 20000 \n");
			scanf("%d", b[x].ProgressNummer);

			if ( b[x].ProgressNummer<10000 || b[x].ProgressNummer>20000 )
				printf("\n progress nummer is niet in het gebied \n");

			else
				printf("\n nummer is in het gebied \n");


			printf("\n Voer in het Voornaam:");
			scanf("%s", b[x].voornaam);

			printf("\n Voer in een Achternaam:");
			scanf("%s", b[x].achternaam);

			printf("\n Voer in het cijfer van netwerken:");
			scanf("%.1f", b[x].CijferNetwerk);

			if (b[x].CijferNetwerk<1 || b[x].CijferNetwerk>10)
				printf("\n Cijfer is niet in het gebied \n");

			else
				printf("\n nummer is in het gebied\n");



			printf("\n Voer in het cijfer van digitaal:");
			scanf("%.1f", b[x].CijferDigitaal);

			if (b[x].CijferDigitaal<1 || b[x].CijferDigitaal>10)
				printf("\n Cijfer is niet in het gebied \n");

			else
				printf("\n nummer is in het gebied\n");



			printf("\n Voer in het cijfer van info:");
			scanf("%.1f", b[x].CijferInfo);

			if (b[x].CijferInfo<1 || b[x].CijferInfo>10)
				printf("\n Cijfer is niet in het gebied \n");

			else
				printf("\n nummer is in het gebied\n");


			Resultaat=b[x].CijferNetwerk + b[x].CijferDigitaal + b[x].CijferInfo ;

			printf("\n het totaal resultaat is %.1f\n", Resultaat);

			Gemiddelde=Resultaat / 3;

			printf("\n Het Gemiddelde is %.1f \n", Gemiddelde);


			fprintf(pAppend,"%d %s %s %.1f %.1f %.1f \n", b[x].ProgressNummer, b[x].voornaam, b[x].achternaam, b[x].CijferNetwerk, b[x].CijferDigitaal, b[x].CijferInfo);
			fclose(pAppend);

		}//end else

}//end void


void HoogsteGemiddeldeCijferOpzoekenEnWeergeven (a *b)
{
   FILE *pRead;

   int z;

   float max =0;
   float min =0;

   char checkvoornaam [20] ;
   char checkachternaam [20];

   int checkprogressnummer;

   pRead=fopen("c:\\opdrachtinfo3.txt","r");

   if(pRead=NULL)
	   printf("\n file is niet gevonden\n");

   else
	   {

		   printf("\n progressnummer \t Voornaam \t Achternaam \t HoogsteCijfer \n");

		   if(Gemiddelde>max)
			   {
				   max=Gemiddelde;

				}

		    if(b[x].voornaam==checkvoornaam)
				{
					checkvoornaam==b[x].voornaam;

				}

			if(b[x].achternaam==checkachternaam)
				{
					checkachternaam==b[x].achternaam;

				}

			if(b[x].ProgressNummer==checkprogressnummer)
				{
					checkprogressnummer==b[x].ProgressNummer;

				}

			fscanf(pRead,"%d %s %s %.1f",b[x].ProgressNummer,b[x].voornaam,b[x].achternaam,Gemiddelde);

			while(!feof(pRead))
				{
					printf("%d %s %s %.1f",b[x].ProgressNummer, b[x].voornaam, b[x].achternaam,Gemiddelde);

					fscanf(pRead,"%d %s %s %.1f", b[x].ProgressNummer, b[x].voornaam, b[x].achternaam, Gemiddelde);
				}

			}//end else

}//end void
I have a problem with my program. the perpose of the program is that i need to insert the name, lastname, progress nummber, 3 calification (cijfer netwerk,cijferdigitaal,cijferinfo). this calification i need to make a som of them to uptain a result. the totale result i need to devide it by 3 to optain the average an then in option 2 i need to seach in a file for the max average result from a student and the name of the student. below i have post my code
can you pleas help me whit this
shamir is offline   Reply With Quote
Old 07-30-2009, 08:11 AM   #2
Registered User
 
slingerland3g's Avatar
 
Join Date: Jan 2008
Location: Seattle
Posts: 476
I do not see how you have defined this struct member?

Code:
   scanf("%d", b[x].ProgressNummer);   /*what is x here */
slingerland3g is offline   Reply With Quote
Reply

Tags
compiler, float, interger, programming, string

Thread Tools
Display Modes

Forum Jump


All times are GMT -6. The time now is 10:57 PM.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0 RC2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22