Guest User

Untitled

a guest
Oct 9th, 2013
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.02 KB | None | 0 0
  1. MAIN
  2.  
  3. #include <fstream>
  4. #include <iomanip>
  5.  
  6. using namespace std;
  7.  
  8. #include "Fakultetas.h"
  9.  
  10. const char CD[] = "Duomenys.txt";
  11. const char FR[] = "Rezultatai.txt";
  12.  
  13. void Duomenys(Fakultetas & R);
  14. void Spausdinti(Fakultetas & R, const string & antraste);
  15. void Kurti(Fakultetas & D, Fakultetas & R);
  16.  
  17. int main(){
  18.     ofstream fr(FR);
  19.     fr.close();
  20.     Fakultetas info; // duomenys
  21.     Duomenys(info); // skaitomi duomenys
  22.     Spausdinti(info, "Pradiniai duomenys");
  23.     Kurti(info, info);
  24.     system("pause");
  25.     return 0;
  26. }
  27. // skaitomi pradiniai duomenys i obejekta R
  28. void Duomenys(Fakultetas & R){
  29.     ifstream fd(CD);
  30.     bool yra = true;
  31.     string pv, vd, gr;
  32.     int np, Pz[Studentas::Cpaz];
  33.     Studentas s1;
  34.     int ns = 0;
  35.     while(!fd.eof() && yra){
  36.         getline(fd, pv, ',');
  37.         fd >> ws;
  38.         getline(fd, vd, ',');
  39.         fd >> ws;
  40.         getline(fd, gr, ',');
  41.         fd >> np;
  42.         for(int i=0; i<np; i++)
  43.             fd >> Pz[i];
  44.         fd.ignore();
  45.         s1.Deti(pv, vd, gr, np, Pz);
  46.         if(ns-1 <Fakultetas::CMax)
  47.             R.Deti(s1);
  48.         else
  49.             yra = false;
  50.     }
  51.     fd.close();
  52. }
  53. // Spausdinami objekto R duomenys
  54. void Spausdinti(Fakultetas & R, const string & antraste){
  55.     ofstream fr(FR, ios::app);
  56.     fr << setw(30) << antraste << endl;
  57.     fr << " Pavarde   Vardas   Grupe   Pazymiai " << endl;
  58.     fr << "-------------------------------------" << endl;
  59.     for(int i=0; i<R.Imti(); i++)
  60.         fr <<R.Imti(i).Spausdinti();
  61.     fr << "------------------------------------ " << endl;
  62.     fr.close();
  63. }
  64. void Kurti(Fakultetas & D, Fakultetas & R){
  65.     int ns = 0;
  66.     for(int i=0; i<D.Imti(); i++)
  67.         if(!D.Imti(i));
  68.         else
  69.             R.Deti(D.Imti(i));
  70. }
  71.  
  72. Fakultetas.h
  73.  
  74. #include "Studentas.h"
  75.  
  76. class Fakultetas{
  77. public:
  78.     static const int CMax = 100;
  79. private:
  80.     Studentas St[CMax];
  81.     int n;
  82. public:
  83.     Fakultetas():n(0) {}
  84.     int Imti() {return n;}
  85.     Studentas Imti(int i){return St[i];}
  86.     void Deti(const Studentas & ob) {St[n++] = ob;} // kas cia?
  87.     string Spausdinti();
  88. };
  89.  
  90. Fakultetas.cpp
  91.  
  92. /*#include "Fakultetas.h"
  93.  
  94.  
  95. Fakultetas::Fakultetas(void)
  96. {
  97. }
  98.  
  99.  
  100. Fakultetas::~Fakultetas(void)
  101. {
  102. }
  103. */
  104.  
  105. Studentas.h
  106.  
  107. #include <string>
  108. using namespace std;
  109.  
  110. class Studentas{
  111. public:
  112.     static const int Cpaz = 10;
  113. private:
  114.     string pavarde, vardas, grupe;
  115.     int np, Paz[Cpaz];
  116. public:
  117.     Studentas():np(0), pavarde(""), vardas(""), grupe(""){} // TRUKSTA GAL
  118.     /*Studentas(string pavarde, string vardsas, string grupe, int np):
  119.         pavarde(pavarde), vardas(vardas), grupe(grupe){}
  120.     */void Deti(string pav, string vard, string grup, int np, int pz[]);
  121.     string Spausdinti();
  122.     //
  123. /// PAPILDYMAS!!!
  124. bool Studentas::operator!(){
  125.     for(int i=0; i<np; i++)
  126.         if(Paz[i]<9)
  127.             return true;
  128.     return false;
  129. }
  130. };
  131.  
  132. Studentas.cpp
  133.  
  134.     pavarde = pav;
  135.     vardas = vard;
  136.     grupe = grup;
  137.     Studentas::np = np;
  138.     for(int i=0; i<np; i++){
  139.         Paz[i]=pz[i];
  140.     }
  141. }
  142. // Reiksmiu spaussdinimas i eilute
  143. string Studentas::Spausdinti(){
  144.     stringstream eil;
  145.     eil << left << setw(12) << pavarde << setw(10) << vardas << setw(8) << grupe << right;
  146.     for(int i=0; i<np; i++)
  147.         eil << setw(3) << Paz[i];
  148.     eil << endl;
  149.     return eil.str();
  150. }
Advertisement
Add Comment
Please, Sign In to add comment