All pastes #990024 Raw Edit

Unnamed

public text v1 · immutable
#990024 ·published 2008-04-19 22:51 UTC
rendered paste body
#include<iostream.h> // biblioteka <iostream.h>
# define MAX 50 // definirame promenliva MAX na 50 simvola


struct uchenik // struct,za vyvejdane na danni na uchenika
{
	char ime[MAX]; // tip char, masiv s promenliva ime, na uchenika s definirano 50 simvola
	char addr[MAX]; // adres s masiv 50 simvola
	short klas; // tip short, klas  
	float sr_uspeh; // tip float za sreden uspeh, 7 simvola zad desetichnata zapetaq

};
int menu(); // tip integer, za vyvejdane na menu 
void input(uchenik masiv[],int index); // menu za vkarvane na informaciq
void output(uchenik masiv[],int index); // menu za izkarvane na informaciq

int main()
{
	int operacia; // tip integer, za izbirane na operacia na menuto 
	uchenik masiv[10]; //promenliva, za masiv
	float sum_uspeh=0.0f; // sredniq uspeh na vsichki uchenici zaedno
	int broj=0; //promenliva, koqto pomaga za izvejdane i smqtane 
	int IBS=0;//IBS=Index of Best Student (izvejdane na nai-dobrite uchenici)
	for(;;)
	{
		operacia=menu(); // promenlivata operacia stava na menu()
		switch(operacia) //vryzka za operaciata menu
		{
		case 1: // vyvejdane na danni za uchenik
			{
				input(masiv,broj);

				if(masiv[broj].sr_uspeh>masiv[IBS].sr_uspeh)
					IBS=broj;
				sum_uspeh+=masiv[broj].sr_uspeh;
				broj++;
			}break;

		case 2: //pri 2-ka v dadenoto menu shte vi izvede vyvedenite danni za uchenika
			{
				cout<<"\nVyvedeni danni:\n";
				for(int i=0;i<broj;i++)
					output(masiv,i);	
			}break;
		case 3: //pri 3-ka v dadenoto menu shte izvede sredniq uspeh na uchenicite
			{
				cout<<"\nSr uspeh na vs uchenici e:\t"<<sum_uspeh/broj<<"\n\n";	
			}break;
		case 4: // izvejdane na uchenici,koito sa s uspeh po-malyk ot sredniq uspeh
			{
				cout<<"\nUchenici sys sr.uspeh pod srednia sa:\n";
				for(int j=0;j<broj;j++)
				{
					if(masiv[j].sr_uspeh<sum_uspeh/broj)
						output(masiv,j);
				}
			}break;
		case 5: //pri 5-ca ot klav se izvejdane na uchenik, s nai-visok uspeh
			{
				cout<<"\nUchenikyt sys naj-dobyr uspeh e:\n";
				output(masiv,IBS);
			}break;
		case 6: // pri natiskane na 6-ca ot klav se izliza ot programata
			{
				return 0; //izhod ot programata
			}
		}
	}//for

}
int menu() // obosnovqvane na funkciqta menu.
{
	int izbor; // vyvejdane na promenliva za izbor ot chislata 1 do 6 za syotvetnite menuta
	do // da vyrshi tezi deistviq
	{
		cout<<"MENU \n\n"; // menu vyzmojnost za izbirane na syotvetnata zadacha
		cout<<"1.Vyvejdane na danni za u4enik\n";
		cout<<"2.Izvejdane na vyvedenite danni \n";
		cout<<"3.Izvejdane na sr.uspeh \n";
		cout<<"4.Uchenici s uspeh pod srednia \n";
		cout<<"5.Uchenik s naj-visok uspeh \n";
		cout<<"6.EXIT \n";
		cout<<"Molia izberete operacia: ";
		cin>>izbor;
		fflush(stdin); //izbirane na case funkciqta za menu 1-2-3-4-5-6
		if(izbor>6||izbor<1) cout<<"\n\t-=NEKOREKTEN IZBOR=-\n Opitajte otnovo\n"; 
		else break; 
	}while(true); //uslovie while(dokato uslovieto e vqrno )
	return izbor; // minavane kym dadeniqt izbor
}
void input(uchenik masiv[],int index)
{
	if(index>=MAX) //ako se previshi limita to nqma poveche vyvejdane ;)
	{
		cout<<"\n\t\t-=DOSTIGNAT LIMIT NA VYVEDENITE DANNI=-\n";
		return;
	}
	cout<<"Ime:\t\t"; // izvejdane na ime - \t - edna tabulaciq napred (demek svobodno mqsto)
	cin.getline(masiv[index].ime,MAX); // izpolzvanite masiv[index], ime , max
	cout<<"Adres:\t\t"; // syshtoto .. nadolu pak
	cin.getline(masiv[index].addr,MAX);
	cout<<"Klas:\t\t";
	cin>>masiv[index].klas;
	cout<<"Sr.Uspeh:\t";
	cin>>masiv[index].sr_uspeh;

}

void output(uchenik masiv[],int index) //za izvejdane na danni 
{
	cout<<"Ime:\t\t"<<masiv[index].ime<<"\n";
	cout<<"Adres:\t\t"<<masiv[index].addr<<"\n";
	cout<<"Klas:\t\t"<<masiv[index].klas<<"\n";
	cout<<"Sr.uspeh:\t"<<masiv[index].sr_uspeh<<"\n\n";
}