Utilizarea claselor pentru instrumentatia virtuala

📝Notite --- 📠 Functii si Clase --- 🍮 Rezolvari

Aplicatii C#

In cadrul acestui laborator se vor utiliza diverse instrumente virtuale create la curs.


Vezi codul sursa

namespace Oop_instr_test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        System.Drawing.Graphics desen;
        osciloscop os1;
        voltm v1;
        termo t1;
        ser s1;
        histo h1;
        turom tr1;
        barom b1;
        manom m1;
        anemom a1;
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            desen = this.CreateGraphics();

            // Osciloscop

            os1 = new osciloscop(desen, 10, 10, 300, 185, 1.2, -1.2, Color.Black, Color.DarkGreen, Color.DarkBlue, Color.Blue);
            os1.display();
            double[] valori1 = new double[300];
            double alfa = 0, pas = 0.07;
            for (int i = 0; i < 300; i++)
            {
                alfa += pas;
                valori1[i] = Math.Sin(alfa);
            }
            os1.sterg();
            os1.auto_sx(pas * 300, 0);
            os1.setval(valori1, 300, Color.Yellow);
            os1.display();

            // Voltmetru

            v1 = new voltm(desen, 320, 10, 300, 150, Color.Black);
            v1.desen_voltm(Color.Yellow, Color.Lime);
            v1.setval(123, Color.Azure);

            //Termometru

            t1 = new termo(desen, 650, 10, 30, 185, -100, 100);
            t1.desenez(Color.Blue, Color.Magenta);
            t1.setval(35, Color.Red, Color.Azure);

            // Seringa

            s1 = new ser(desen, 750, 10, 150, 50, 20, 0, 100);
            s1.desenez(Color.Blue, Color.Gray, Color.Magenta);
            s1.setval(33, Color.Yellow, Color.Magenta, Color.LightYellow);

            // Histograma
            h1 = new histo(desen, 750, 95, 17, 100, -10, 7);
            double[] valori = new double[17];
            for (int i = 0; i < 17; i++)
            {
                valori[i] = (i-10) ;
            }
            h1.setval(valori, Color.Blue, Color.Black);


            // Turometru

            tr1 = new turom(desen, 10, 200, 220, 120, 300, 10, 0, 150, "Km/h");
            tr1.setval(93.7);

            //Barometru

            b1 = new barom(desen, 250, 200, 220, 90, 270, 10, 0, 2.7, "Bar");
            b1.setval(1.3);

            // Manometru

            m1 = new manom(desen, 500, 200, true, 220, 300);
            m1.setval(100);

            // Anemometru 

            a1 = new anemom(desen, 730, 210, 180);
            a1.setval(75, 45);
        }
    }
    public class osciloscop...
    public class voltm...
    public class termo...
    public class ser...
    public class histo...
    public class turom...
    public class barom...
    public class manom...
    public class anemom...
}
  1. Pe baza clasei termo afisati dinamic temperatura intre 0-150 grade Celsius, si corespunzator in grade Kelvin, si in grade Fahrenheit


  2. Pe baza clasei termo afisati dinamic temperatura intre -50 si 150 grade Celsius, si corespunzator in grade Kelvin, si in grade Fahrenheit.
  3. Pe baza clasei ser afisati dinamic temperatura incarcarea respectiv descarcarea unei seringi. Pentru primul caz incarcarea este instantanee iar in cel de-al doilea caz incarcare se face in 1/3 din timp iar descarcarea in 2/3 din timp.


  4. Pe baza clasei voltm afisati dinamic tensiunea in domeniul 0-250 V curentul in domeniul 0-20 A si puterea ca fiind produsul dintre tensiune si curent


  5. Adaugati un contor de energie care masoara energia in Kwh.
  6. Simulati defazajul intre 0 si 90 de grade si afisati P(puterea activa -w), Pr(puterea reativa -var) si Pa(puterea aparenta -va)
  7. Folositi clasa anemom pentru a simula un radar.


  8. Folositi clasa manom pentru a realiza o aplicatie care afiseaza dinamic valorile : 330-max:500, 117-max:300, 69-max:100, 415-max:500.
    - la pornire sau la apasarea oricarei taste se reia animatia de la 0 la valoarea de afisat.


  9. Folositi clasa barom pentru a realiza o aplicatie care afiseaza simultan presiunea in diverse unitati de masura:bar, mm_coloana de mercur, psi.


  10. Folositi clasa turom pentru a realiza o aplicatie care simuleaza un bord auto:


  11. Adaugati evenimentele Form1_KeyDown respectiv Form1_KeyUp pentru a astepta apasarea tastei "W" respectiv relaxarea tastei "W". Cat timp tasta "W" este apasata, sa se incrementeze turatia si viteza(pana la valorile maxime) iar temperatura(pana la 90 grade) si sa se decrementeze litri din rezervor(pana la 0). La relaxarea tastei "W" sa se decrementeze turatia si viteza (pana la 0) iar temperatura(pana la 30 de grade), litri din rezervor ramanand constanti.
  12. Simulati o cutie de viteza manuala controlata prin tastele "1","2","3","4","5".
  13. Simulati o cutie de viteza automata.
  14. Folositi clasa turom pentru a realiza o aplicatiea Oop_instr_92 asemnanatoare cu:





  15. Modificati clasa turom pentru a obtine clasa vitezom pentru a realiza instumente asemnatoare cu:


  16. Creati noi clase pentru a putea realiza aplicatii asemanatoare cu:





  17. Pe baza clasei histo pentru trasarea histogramelor, afisati histograma:
    - La prima histograma s-a folosit functia f(x)=Math.Pow((x, 3.0); unde x ∈[-15 ∸15]


  18. Pe baza clasei osciloscop pentru trasarea graficelor x-t, afisati grafic functia f(x)=sin(x)/x unde x ∈[-20 ∸+20]


  19. Adaugati un control trakBar pentru a controla amplificarea


  20. Pe baza clasei osciloscop pentru trasarea graficelor x-t, afisati grafic functia f(x)=cos(x)/x unde x ∈[-2 ∸1]


  21. Folosind clasa osciloscop pentru trasarea graficelor x-t si functia ekg, simulati un sistem pentru monitorizare ATI.





  22. Pe baza clasei bit pentru afisare bit realizati un sistem de semnalizare astfel:


  23. Modificati sistemul de semnalizare astfel incat dupa 5 semnalizari sa se opreasca automat.
  24. Pe baza clasei bit pentru afisare bit realizati un sistem semafor cu trei directii:


  25. Modificati sistemul de semnalizare astfel incat dupa 5 semnalizari sa se opreasca automat.
  26. Pe baza clasei binar pentru afisare binara afisati dinamic :


  27. Pornind de la clasa binar pentru afisare binara, modificati clasa obtinand clasa vumetru si afisati un joc de lumini care imita un vu-metru;


  28. Pornind de la clasa matrix pentru afisare binara matrice, afisati imaginea:;


  29. Pornind de la clasa matrix_b pentru afisare binara matrice, afisati imaginea:;