Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //L4-8:
- //Duota informacija apie studentus: vardas, pavardė, akademinė grupė.
- //Studentų skaičius iš anksto nežinomas.
- // Duota informacija apie individualius studijų planus: plano kodas, studento vardas, pavardė, dalykas, įvertinimas.
- // Planų skaičius iš anksto nežinomas.
- // Plano kodas gali kartotis skirtingiems dalykams.
- //Atspausdinti nurodyto studento individualų planą ir visus jo dalykus.
- //Paskaičiuoti šiam studentui stipendiją, jei bazinė stipendija yra 300 Lt, ją gali gauti tik pažangūs studentai.
- // Jei sesijos vidurkis >= 8, stipendija didinama 25 proc., jei >= 9, didinama 50 proc.
- //S: Kokie dar studentai yra pasirinkę tokius pat dalykus? Atspausdinti visą informaciją apie šiuos studentus dalykais.
- //***************************************************************************************************************************************************
- #include <iostream>
- #include <string>
- #include<fstream>
- #include<sstream>
- #include <iomanip>
- #include <stdio.h> // naudosiu ištrinti failui
- using namespace std;
- //***************************************************************************************************************************************************
- int stipendija (string vards, string pavard, double vid);
- //***************************************************************************************************************************************************
- class studentai{
- public:
- // studento vardas, pavarde, grupe, vieta masyve
- void detiduom(string vard, string pavard, string grup,int i);
- void detistuddalyk(string dal,int i);
- void detistipendija(int stip, int i);
- void detiSLuzd(string sl, int i);
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- string imtiduom(int i);
- string imtistuddalyk(int i);
- int imtistipendija(int i);
- string imtiSLuzd(int i);
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- private:
- string studdalykai[100];
- int stipendijos[100];
- string suzd[1000];
- string vardas[100],pavarde[100],grupe[100];
- };
- //***************************************************************************************************************************************************
- int main()
- {
- // duomenu nuskaitymas is failo
- string vardas[100], pavarde[100], grupe[100];
- // sukuriam objekta duomenims paimti
- ifstream duom1;
- duom1.open("duomenys_apie_studentus.txt");
- int n,i;
- i=0;
- n=0;
- // nuskaitom varda pavarde ir grupe
- cout << "informacija apie studentus"<<endl;
- while(duom1 >> vardas[i] >>pavarde[i]>> grupe[i]){
- n++;
- cout <<vardas[i] <<" "<<pavarde[i]<<" "<< grupe[i]<<endl;
- i++;
- };
- duom1.close();
- ifstream duom2;
- duom2.open("duomenys_apie_planus.txt");
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- cout<<endl<<endl<<"duomenys apie studiju planus"<<endl;
- // plano kovas, plane vadras, plapavarde, dalykas
- string kodas[1000], pvardas[1000],ppavarde[1000],dalykas[1000];
- // dalyko pazimys
- int paz[1000];
- int j,p;
- j=0;
- p = 0; // planus skaiciavimui
- while(duom2 >> kodas[j] >> pvardas[j] >> ppavarde[j] >> dalykas[j]>>paz[j]){
- p++;
- cout << kodas[j] << " " << pvardas[j] << " " << ppavarde[j] << " " << dalykas[j]<< " " <<paz[j]<<endl;
- j++;
- };
- duom2.close();
- // duomenu nuskaitymo pabaiga
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- ofstream fail("failas.txt");
- // paieska duomenyse -- atrenkam dalykus kuriuos mokosi studentas
- for (i=0;i<n;i++){
- // išvedam i faila lengvesniam naudojimui
- fail << left<< setw(15)<< vardas[i] << left<< setw(15)<<pavarde[i]<<left<<setw(10)<< grupe[i]<< left<< setw(25)<< " modulio dalykai yra ";
- for (j=0;j<p;j++){
- if ((pvardas[j]==vardas[i])&&(ppavarde[j]==pavarde[i])){
- fail << left<< setw(15)<< dalykas[j]<<" ";
- }
- };
- fail<< endl;
- };
- fail.close();
- string studdalyk[1000];
- ifstream laik;
- laik.open("failas.txt");
- // getline eilute su studento vardu pavarde ir pasirinktais dalykais
- // juos desiu i klases
- for (i=0;i<n;i++){
- getline(laik,studdalyk[i]);
- cout << studdalyk[i] <<endl;
- };
- laik.close();
- // istrinam tekstini faila
- remove( "failas.txt" );
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- // skaiciuosim vidurkius
- double sum; // pazymiu suma (naudojama tik vidurkio skaiciavumui)
- int k; // dalyku skaicius
- double vidur[100];
- for (i=0;i<n;i++){
- sum=0;
- k=0;
- for (j=0;j<p;j++){
- if ((pvardas[j]==vardas[i])&&(ppavarde[j]==pavarde[i])){
- sum=sum+paz[j];
- k++;
- };
- };
- vidur[i]= sum/k;
- cout<< vidur[i]<<endl;
- };
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- // iskaiciuojam kokios bus stipendijos
- int stipend[100];
- for (i=0;i<n;i++){
- stipend[i] = stipendija (vardas[i],pavarde[i],vidur[i]);
- };
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- // S lygio uzduotis :
- //S: Kokie dar studentai yra pasirinkę tokius pat dalykus? Atspausdinti visą informaciją apie šiuos studentus dalykais.
- cout<< endl<<" S lygio uzduotis :"<<endl<<endl<<endl ;
- int l;
- string A[1000],B[1000],// dalyku masuvo kopijos
- C[1000];// tik skirtingi dalykai
- for (i=0;i<p;i++){
- A[i] = dalykas[i];
- B[i] = dalykas[i];
- }
- l=0;
- for(i = 0;i<p;i++){
- if (A[i]!="n"){
- C[l]=B[i];
- l++;
- for ( j = 0;j<p;j++){
- if(B[i]==B[j]){
- A[j]="n";
- }
- }
- // if 1
- B[i]="n";}
- //for i
- }
- //skirtingu dalyku skaicius
- for(i = 0;i<l;i++){
- cout << C[i]<<endl;
- }
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- ofstream fai("failas.txt");
- // paieska duomenyse -- atrenkam dalykus kuriuos mokosi studentas
- for (i=0;i<l;i++){
- // išvedam i faila lengvesniam naudojimui
- fai<<left<<setw(15)<< C[i] <<left<<setw(25)<<"mokosi sie studentai:";
- for (j=0;j<p;j++){
- if (C[i]==dalykas[j]){
- fai << left<< setw(15)<< pvardas[j]<<left<<setw(15)<<ppavarde[j]<<"|";
- }
- };
- fai<< endl;
- };
- fai.close();
- string S[1000];
- ifstream laikin;
- laikin.open("failas.txt");
- // getline eilute su studento vardu pavarde ir pasirinktais dalykais
- // juos desiu i klases
- for (i=0;i<l;i++){
- getline(laikin,S[i]);
- cout << S[i] <<endl;
- };
- laikin.close();
- // istrinam tekstini faila
- remove( "failas.txt" );
- // system("pause");
- return 0;
- }
- //***************************************************************************************************************************************************
- int stipendija (string vards, string pavard, double vid) {
- int stipendija = 0;
- // stip - bazine stiprdija
- int stip = 300;
- if ((vid > 5 )&&(vid < 8))
- { stipendija = stip;
- cout << vards <<" "<< pavard << " stipendijos gaus " << stipendija << endl;}
- else {
- if ((vid >= 8)&&(vid < 9 ))
- { stipendija = stip+stip*25/100;
- cout << vards <<" "<< pavard << " stipendijos gaus " << stipendija << endl;}
- else {
- if (vid >= 9)
- { stipendija = stip+stip*50/100;
- cout << vards <<" "<< pavard << " stipendijos gaus " << stipendija << endl;}
- else{ stipendija = 0;
- cout << vards <<" "<< pavard << " stipendijos negauna" << endl;}
- }
- }
- return stipendija ;
- }
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- void studentai::detiduom(string vard, string pavard, string grup,int i){
- vardas[i] = vard;
- pavarde[i] = pavard;
- grupe[i] = grup;
- };
- void studentai::detistuddalyk(string dal,int i){
- studdalykai[i]=dal;
- }
- void studentai::detistipendija(int stip, int i){
- stipendijos[i]=stip;
- };
- void studentai::detiSLuzd(string sl, int i){
- suzd[i]=sl;
- };
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- //---------------------------------------------------------------------------------------------------------------------------------------------------
- string studentai::imtiduom(int i){
- return vardas[i],pavarde[i],grupe[i];
- };
- string studentai::imtistuddalyk(int i){
- return studdalykai[i];
- };
- int studentai::imtistipendija(int i){
- return stipendijos[i];
- };
- string studentai::imtiSLuzd(int i){
- return suzd[i];
- };
Add Comment
Please, Sign In to add comment