ИЗЧИСЛЯВАНЕ НА СРЕДЕН УСПЕХ НА ДИПЛОМАТА

Цяла програма за изчисление на  СРЕДЕН УСПЕХ НА ДИПЛОМАТА
Програмата е писана на Windows XP и e тествана на Windows 7, създава текстов файл - classN.txt в директория: c:\test. Папката test, трябва предварително да я създадете. В раздела: Задачи -> Пример 6: има програма на с++, която създава директория test. Файлът съдържа: Номер в клас; средна оценка от ДЗИ и средния успех на дипломата.
Ако не се показва кирилицата от лентата със задачите на стартираната програма натискаме десен бутон --> properties --> Font --> Lucida Console --> 12.
Може да се копира, като се маркира и след това се натиска долна стрелка .

#include <iostream> //for Code Blocks on Linux Ubuntu
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#include <locale.h>
//#include <clocale>
#include <stdio.h>
#include<math.h>
using namespace std;
main()
{
// setlocale(0, ".1251");
// SetConsoleCP(1251);
SetConsoleOutputCP(1251);
//setlocale (LC_ALL, "bulgarian");
char sreden1[]=" Среден успех на ДИПЛОМАТА/ DIPLOMA =";
double N,d[10];
cout<< "Номер в клас N: ";//cin>>N;
char s2[]="Номер в клас (class) N: ";
char s1[3];
gets(s1); N=atoi(s1);
strcat(s2,s1);
strcat(s2,"-->   ");
FILE *fp1,*fp2;
fp1=fopen("c:/test/classN.txt","a+");
fputs (s2,fp1);
fclose (fp1);
char dip[]=" СРЕДЕН УСПЕХ ОТ ДИПЛОМАТА ";//AnsiToOem (dip,dip);
cout<< dip;
cout<< endl;
//char ime [18][44]= . . .... for Linux
char ime [18][29]={"Български език /BEL ","Английски език/ANG ","Руски език/RUS ","Математика/MAT ","Информатика/INF " ,"Информационни тех./INFTex ","История/Ist ","География/Geo ", "Психология/Psi ","Етика/Etika ","Философия/Filosof ","Свят и личност/Svat ","Биология/Bio ","Физика/Fizika " ,"Химия/Ximia ","Музика/Muzic ","Рисуване/Risuv ","Физкултура/FVS "};
int i,j,n=4;
float c[18],b=0,s=0,S,S1,S2,S3,dzi1,dzi2,a [18][4];
for (i=0;i<18;i++)
{
// AnsiToOem (ime[i],ime[i]);
if((i==6)||(i==7)||(i==13))
{
for (j=1;j<4;j++)
{ do{
cout<< ime[i]<< j+9<< "=>";
cin>>a[i][j];
} while ((a[i][j]<3 || a[i][j]>6) && (a[i][j]< -1 || a[i][j]>0)) ;
a[i][0]=0; b=b+a[i][j];n=3;
c[i]=b/n;
}
}
else if(i==5)
{
for (j=0;j<2;j++)
{ do{
cout<< ime[i]<< j+9<< "=>";
cin>>a[i][j];
} while ((a[i][j]<3 || a[i][j]>6) && (a[i][j]< -1 || a[i][j]>0)) ;
a[i][2]=0; a[i][3]=0;
b=b+a[i][j];n=2;
c[i]=b/n;
}
}
else if((i==12)||(i==14))
{ if ((a[4][2]!=0)||(a[4][3]!=0))
{ for (j=1;j<3;j++)
{ do{
cout<< ime[i]<< j+9<< "=>";
cin>>a[i][j];
} while ((a[i][j]<3 || a[i][j]>6) && (a[i][j]< -1 || a[i][j]>0)) ;
a[i][0]=0; a[i][3]=0;
b=b+a[i][j];n=2;
c[i]=b/n;
}
}
else
{
for (j=1;j<4;j++)
{ do{
cout<< ime[i]<< j+9<< "=>";
cin>>a[i][j];
} while ((a[i][j]<3 || a[i][j]>6) && (a[i][j]< -1 || a[i][j]>0)) ;
a[i][0]=0;
b=b+a[i][j];n=3;
c[i]=b/n;
}
}
}
else if(i==8)
{
do{
cout<< ime[i]<< 9<< "=>";
cin>>a[i][0];
} while ((a[i][0]<3 || a[i][0]>6) && (a[i][0]< -1 || a[i][0]>0)) ;
a[i][1]=0;a[i][2]=0;a[i][3]=0;
c[i]=a[i][0]; b=0;n=4;
}
else if(i==9)
{
do {
cout<< ime[i]<< 10<< "=>";
cin>>a[i][1];
} while ((a[i][1]<3 || a[i][1]>6) && (a[i][1]< -1 || a[i][1]>0)) ;
a[i][0]=0;a[i][2]=0;a[i][3]=0;
c[i]=a[i][1]; b=0;n=4;
}
else if(i==10)
{ do
{
cout<< ime[i]<< 11<< "=>";
cin>>a[i][2];
} while ((a[i][2]<3 || a[i][2]>6) && (a[i][2]< -1 || a[i][2]>0)) ;
a[i][0]=0;a[i][1]=0;a[i][3]=0;
c[i]=a[i][2]; b=0;n=4;
}
else if(i==11){ do{ cout<< ime[i]<< 12<< "=>";
cin>>a[i][3];
} while ((a[i][3]<3 || a[i][3]>6) && (a[i][3]< -1 || a[i][3]>0)) ;
a[i][0]=0;a[i][1]=0;a[i][2]=0;
c[i]=a[i][3]; b=0;n=4;
}
else if(i==15){ do{ cout<< ime[i]<< 9<< "=>";
cin>>a[i][0];
} while ((a[i][0]<3 || a[i][0]>6) && (a[i][0]< -1 || a[i][0]>0)) ;
a[i][1]=0;a[i][2]=0;a[i][3]=0;
c[i]=a[i][0]; b=0;n=4;
}
else if(i==16){ do{ cout<< ime[i]<< 9<< "=>";
cin>>a[i][0];
} while ((a[i][0]<3 || a[i][0]>6) && (a[i][0]< -1 || a[i][0]>0)) ;
a[i][1]=0;a[i][2]=0;a[i][3]=0;
c[i]=a[i][0]; b=0;n=4;
}
else
{
for (j=0;j<4;j++)
{
do{ if((i==4)&&(j==2))cout<< " Напишете 0 (нула),ако сте биология "<< endl;
if((i==4)&&(j==3))cout<< " Напишете 0 (нула),ако сте биология "<< endl;
cout<< ime[i]<< j+9<< "=>";
cin>>a[i][j];
} while ((a[i][j]<3 || a[i][j]>6) && (a[i][j]< -1 || a[i][j]>0)) ;
if(a[i][j]==0) n=n-1;
b=b+a[i][j];
c[i]=b/n;
}
}
cout<< " S="<< c[i]<< endl; b=0;n=4;
}
for (i=0;i<18;i++)
{
s=s+c[i];
// cout<< c[i]<< ", ";
} S1=s/18;
char sreden[]=" Среден успех на предметите/Sreden_uspex_predmeti =";
// AnsiToOem (sreden,sreden);
char DZI[]="    ДЗИ (DZI) = "; //AnsiToOem (DZI,DZI);
char SIP[]="   ЗИП Информатика/Zip Informatika = "; //AnsiToOem (SIP,SIP);
char SIP1[]="   ЗИП Биология/Zip Biologia = "; //AnsiToOem (SIP1,SIP1);
// AnsiToOem (sreden1,sreden1);
cout<< endl<< sreden<< S1<< endl;
if ((a[4][2]==0)||(a[4][3]==0))
{
S3=(c[1]+c[12]+c[14])/3;
cout<< SIP1<< S3 << " <==("<< c[12]<< "+"<< c[14]<< "+"<< c[1]<< "/3) ";
cout<< endl;
}
else
{
S3=(c[1]+c[3]+c[4])/3;cout<< SIP<< S3 << " <==("<< c[4]<< "+"<< c[3]<< "+"<< c[1]<< "/3) ";
cout<< endl;
}
char DZI1[20]="ДЗИ/DZI 1= ";// AnsiToOem (DZI1,DZI1);
char DZI2[]="ДЗИ/DZI 2= ";//AnsiToOem (DZI2,DZI2);
cout<< DZI1;cin>>dzi1;
cout<< DZI2;cin>>dzi2; S2=(dzi1+dzi2)/2;
cout<< DZI<< S2<< endl;
S=(S1+S2+S3)/3;
char* str = new char[30];
char* str2 = new char[30];
sprintf(str, "%.4g", S );
sprintf(str2, "%.4g", S2 );
strcat(DZI, str2);
strcat(DZI, " ");
char sreden12[]="  Среден успех (Sreden uspeh) = ";
cout<< sreden1<< S<< " <== ("<< S1<< "+"<< S2<< "+"<< S3<< "/3 )"<< endl;
strcat(sreden12,str);
strcat(sreden12,"\n");
fp2=fopen("c:/test/classN.txt","a+");
fputs (DZI,fp2);
fputs (sreden12,fp2);
fclose (fp2);
cout<< endl;
system("Pause");
return 0;
}

Благодаря за вниманието Ви !