Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Maain Funkcija
- #include <iostream>
- #include <fstream>
- #include <iomanip>
- #include <string>
- #include "Figura.h"
- #include "FiguruKoteineris.h"
- using namespace std;
- const char CD[] = "Duomenys.txt";
- const char FR[] = "Rezultatai.txt";
- const int CMaxx = 100;
- void Ivesti(FiguruKoteineris & fgk, const char CD[CMaxx], int & n);
- void Spausdinti(FiguruKoteineris & fgk, const char FR[CMaxx]);
- void KokiuIrKiek(FiguruKoteineris & fgk, int n, int & ap, int & tr, int & kv);
- void SpausdintiKokiuIrkKiek(FiguruKoteineris & fgk, int n, int ap, int tr, int kv);
- void MaxPerimetras(FiguruKoteineris & fgk, int n);
- int main(){
- FiguruKoteineris fgk;
- int n=0;
- int ap = 0; // apskaiciuoja apskritimu skaiciu
- int tr = 0; // apskaiciuoja trikampiu skaiciu
- int kv = 0; // apaskaiciuoja kavadratu skaiciu
- Ivesti(fgk, CD, n);
- Spausdinti(fgk, FR);
- KokiuIrKiek(fgk, n, ap, tr, kv);
- SpausdintiKokiuIrkKiek(fgk, n, ap, tr, kv);
- MaxPerimetras(fgk, n);
- system("pause");
- return 0;
- }
- void Ivesti(FiguruKoteineris & fgk, const char CD[CMaxx], int & n){
- double x, y, s;
- string pavadinimas;
- string appav, trpav, ktpav;
- Figura f;
- ifstream fd(CD);
- while(!fd.eof()){
- fd >> pavadinimas >> n;
- f.Tikrinimas(n);
- f.DetiPav(pavadinimas);
- f.DetiN(n);
- if(n==3){
- f.Tikrinimas(n);
- fd >> x >> y >> s;
- f.DetiKordAp(0, x, y, s);
- }else
- for(int i=0; i<n/2; i++){
- fd >> x >> y;
- f.DetiKord(i, x, y);
- }
- fgk.Deti(f);
- }
- fd.close();
- }
- void Spausdinti(FiguruKoteineris & fgk, const char FR[CMaxx]){
- ofstream fr(FR);
- for(int i=0; i<fgk.Imti(); i++){
- Figura f=fgk.Imti(i);
- fr << f.Spausdinti() << endl;
- }
- fr.close();
- }
- // 1 uzduotis
- void KokiuIrKiek(FiguruKoteineris & fgk, int n, int & ap, int & tr, int & kv){
- for(int i=1; i<=n; i++){
- if(i==3){
- ap++;
- }else if(i==4){
- kv++;
- }else if(i==6){
- tr++;
- }
- }
- }
- void SpausdintiKokiuIrkKiek(FiguruKoteineris & fgk, int n, int ap, int tr, int kv){
- ofstream fr(FR, ios::app);
- Figura f;
- fr << endl;
- fr << f.Tikrinimas(3) << " " << ap << endl;
- fr << f.Tikrinimas(6) << " " << tr << endl;
- fr << f.Tikrinimas(8) << " " << kv << endl;
- fr.close();
- }
- // 2 uzduotis // Kazkas negerai su sita finkcija
- void MaxPerimetras(FiguruKoteineris & fgk, int n){
- Figura f;
- double trper = 0;
- double kvper = 0;
- double PI = 3.141592653589793238462;
- double maxPerimetras = 0.0;
- for (int i=0; i < fgk.Imti(); i++){ // fgk.Imti() suka cikla iki 3
- for(int j = 0; j < n/2; j++){
- fgk.Imti(i).Krastines(j);
- cout << fgk.Imti(i).Perimetras(j) << endl;
- }
- }
- }
- Figura.h failas
- #include <string>
- using namespace std;
- #pragma once
- class Figura{
- public:
- static const int CMax = 100;
- private:
- string pavadinimas;
- double xkoordinate[CMax];
- double ykoordinate[CMax];
- double spindulys;
- double perimetras;
- double plotas;
- double izambine;
- double krastine[CMax];
- int n; // nusako kiek bus koordinaciu
- public:
- // Konstruktorius
- Figura(): pavadinimas(""), n(0){}
- Figura(string pavadinimas, int n):
- pavadinimas(pavadinimas), spindulys(spindulys), n(n) {}
- Figura(string pavadinimas, double spindulys, int n):
- pavadinimas(pavadinimas), spindulys(0.0), n(0){}
- //
- void DetiPav(string pa) {pavadinimas = pa;}
- void DetiN(int nn) { n = nn;} // negalima rasyti n=n!, nes kompiliatorius nezino kam priskirti
- void DetiKordAp(int i, double x, double y, double s) {xkoordinate[i] = x; ykoordinate[i] = y; spindulys = s;}
- void DetiKord(int i, double x, double y) {xkoordinate[i] = x; ykoordinate[i] = y;}
- string Spausdinti();
- string Tikrinimas(int n);
- double Krastines(int v);
- double Perimetras(int j);
- };
- Figura.cpp
- #pragma once
- #include "Figura.h"
- #include <sstream>
- #include <iomanip>
- #include <cmath>
- #include <iostream>
- #include <string>
- #include <cmath>
- using namespace std;
- string Figura::Tikrinimas (int n){
- string pavadinimasfig;
- if(n==3){
- pavadinimasfig = " Apskritimas";
- }else if(n == 6){
- pavadinimasfig = " Trikampis";
- }else if(n==8){
- pavadinimasfig = " Keturkampis";
- }else
- pavadinimasfig = " Nezinoma figura";
- return pavadinimasfig;
- }
- string Figura::Spausdinti(){
- stringstream srautas;
- srautas << " " << pavadinimas << " ";
- if(n==3){
- srautas << setw(6) << xkoordinate[0]
- << setw(5) << ykoordinate[0] << setw(7) << spindulys;
- return srautas.str();
- }else
- for(int i=0; i<n/2; i++){
- srautas << setw(2) << xkoordinate[i] << setw(5) << ykoordinate[i];
- }
- return srautas.str();
- }
- double Figura::Krastines(int v){
- double skper = 0.0;
- if((this->n/2 == 4 || this->n/2 == 3) && (v < this->n / 2 && n >= 0)){
- int a;
- if(v + 1 == this->n / 2){
- a = 0;
- }else{
- a = v + 1;
- }
- return sqrt(pow(xkoordinate[v] - xkoordinate[a], 2) + pow(ykoordinate[v] - ykoordinate[a], 2));
- }/*else{
- if((this->n == 3) && (v-1 < this->n && n > 0)){
- double PI = 3.141592653589793238462;
- skper = 2 * PI * spindulys;
- return skper;
- */
- //}
- //}
- return 0;
- }
- double Figura::Perimetras(int j){
- int i=0;
- double trper = 0.0;
- double kvper = 0.0;
- double skper = 0.0;
- double PI = 3.141592653589793238462;
- if(n==3){
- skper = 2 * PI * spindulys;
- return skper;
- }
- if(n==6){
- while(i<n/2){
- trper = trper + krastine[i];
- i++;
- }
- return trper;
- }else if(n==8){
- while(i<n/2){
- kvper = kvper + krastine[i];
- i++;
- }
- return kvper;
- }
- }
- FiguruKoteineris.h
- #include "Figura.h"
- using namespace std;
- class FiguruKoteineris{
- public:
- static const int CMaxi = 100;
- private:
- Figura Figuros[CMaxi];
- int n; // figuru skaicius
- public:
- // konstruktorius
- FiguruKoteineris():n(0) {}
- //
- Figura Imti(int i) { return Figuros[i]; }
- int Imti(){ return n; }
- void Deti(Figura fgk) {Figuros[n++] = fgk;}
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement