1. Текст на програмата:
Да се напишс програма на C++, която въвежда от клавиатурата трите имена, номера в класа и оценките по 4 учебни предмета на ученици от три класа /не повече от 30 вьв всеки/ и ги съхранява в масиви kll. kl2 и k 13 от структури. Програмата да изчисли средния успех на всеки от учениците, да подреди масивите с учениците по успех. като първи с ученикът с най-висок успех и да изведе получените масиви на екрана в табличен вид и да има поне три подпрограми. програмата да съдържа и подпрограми. които записват и четат информацията от файла.
2. Обяснителна записка:
Програмата започва с дефиниране на структурата, която ползваме, след което чрез функцията input се въвеждат данните за учениците. Функциите zapis и chetene служат за записването и четенето на данни от файл.
В четвъртата функция се изчислява бала на всеки ученик като стойността се записва каго елемент от структурата към всеки един ученик. В следващата функция сс сортират масивите по успех като първи е ученикът с най-висок успех. Сортирапето е no мегода на мехурчето, чийто готов сорс съм изпозвал.
Последната функция е за извеждането на масивите, като чрез оператора '\t' се задава извеждането да crane в табличен вид.
В главната функция се задава броя на ученицитс, след което започва извикването наотделните функции за получаване на рсзултатът.
3. Текст на програмата:
#include <iostream.h> #include <fstream.h>
struct student
{
char name[20];
char sname[20];
char family[20];
int num;
float mat,bg,angl,fiz,ball;
}kll[30],kl2[30],kl3[30];
void input(student kll [30],int n)
{int i;
for(i=0;i<n;i++ )
{cout<<"Nomer:"; cin>>k11.num;
cout<<"Ime: "; cin>>kll .name;
cout<<"Prezime:"; cin>>k11.sname;
cout<<"F'amilia: "; cin>>kl1.family:
do{cout<<"Ocenka po Bylgarski ezik: "; cin>>kll.bg;
}while(kil.bg<2||kll.bg>6);
do{cout<<"Ocenka po Matematika:": cin >>kll.mat;
}wlnle (kll .mat<2|| kll.mat>6);
do;cout< "Ocenka ot Angliiski ezik: "; cin>>kll.angl;
}while (kll.angl<2|| kll.angl>6);
do [cout< "Ocenka ot Fizika izpit: "; cin>>kll.fiz;
}while (kll.fiz<2|| kit.fiz>6>;
cout <<’\n’;}}
void zapis(int n,student kl1 [30])
{int i;
for (i=0;i<n;i++)
{ofstream fp;
fp.open("Danni.dat", ios::app);
fp <<kl1.num<<" "<<kl1.name<<" "<<kl1.sname<<" "<<kl1.family<<" "<<kll .bg<<" "<<kll.mat<<" "<<kll.angl<<" "<<kl1.fiz<<'\n';
fp.close( );}}
void chetene(int n.student kl1[30])
{int i:
for (i=0;i<n;i++)
{ifstream fpl("Danni.dat".ios::in);
fpl>>kl1.num>>kl1.name>>k1l.sname>>kl1.family>>kll.bg>>kl1.mat>>kl1.angl>>kll.fiz;
fpl.close( );}}
void ball(student kll [30],int n)
{int i;
for (i=0;i<n;i++)
{kll.bal=(kll.bg+kll.mat+kll.angl+kll.fiz)/4;}}
void sort(student kll[30],int n)
{in i,j;
float x;
for(i=0;i<n-l;i++)
{for(j=n-1 ;j>i;j--)
{if(kll.ball>kl1[j-1].ball)
{x =k11[j].ball;
k11[j].ball=k11[j-1].ball;
kl1[|j-l].ball=x;
}}}}
void output(student kll[30],int n)
{int i,
for (i=0;i<n;i++)
{cout<<kll.ball<<'\t';}
void zapis(studenl kll[30],int n)
{int i;
for(i=0;i<n;i++)
{ofstream fp;
fp.open("Danni.dat", ios::app);
fp<<kll.num<<" "<<kll.name<<" "<<kll.sname<<" "<<kll.family<<" "<<kll.bg<<" "<<kll,mat<<" "<<kll.angl<<" "<<kll.fiz<<" "<<kll[30].ball<<'\n';
fp.closef( );}
}
void chetene(student kll[30], int n)
{int i:
for (i=0;i<n;i++)
{ifstream fpl("Danni.dat".ios::in);
fpl>>k11.num>>k1l.name>>k11.sname>>kl1.farnily>>kll.bg>>kll.rnat>>kll.angl>>kll.ftz>>kll[30].ball;
fpl.close( );}}
void main()
{int n;
do{cout<<"Vyvedete broq u4enici:";cin>>n;} while (n<0||n>30);
cout<<'\n';
cout<<"Za masiva KLl:\n";
input(kll.n);
cout<<'\n';
cout<<"Za masiva KL2:\n";
input(k12,n);
cout<<'\n';
cout<<"Za masiva KL3:\n";
input(kl3,n):
ball(k11,n);
ball(kl2,n);
ball(kl3,n):
sort(k11,n);
sort(k12,n);
sort(kl3,n);
cout<<"Sortiraniq masiv KLl e:\n";
output(kll,n);
cout<<'\n';
cout<<"Sortiraniq masiv KL2 e:\n";
output(kl2,n);
cout<<'\n';
cout<<"Sortiraniq masiv KL,3 c:\n":
output(kl3,n);
cout<<'\n';
zapis(kll.n);
chetene(kll,n);
zapis(k12,n);
chetene(k12,n);
zapis(k13,n);
chctene(kl3,n);}
Тази програма трябва да се поправи да сортира и извежда масивите не само по полето ball/балообразуваща оценка/ а и имената на учениците.