Лабораторная работа по «Программированию и компьютерам»

Автор работы: Пользователь скрыл имя, 10 Января 2014 в 12:31, лабораторная работа

Краткое описание

Написать Windows- приложение, заголовок главного окна которого содержит ФИО., группу и номер варианта. В программе должна быть предусмотрена обработка исключительных ситуаций с выдачей соответствующих сообщений.
Создать меню с командами Input, About, Exit. При выборе команды Exit приложение завершает свою работу. При выборе команды About открывается окно о разработчике.
Описать класс «квадрат». Для квадрата задается длина его стороны. Предусмотреть инициализацию объекта с проверкой допустимости значений. В случае недопустимых значений поля выбрасываются исключения. Описать свойства для получения состояния объекта.

Прикрепленные файлы: 1 файл

Новые подсказки по формам.doc

— 222.00 Кб (Скачать документ)

Написать Windows- приложение, заголовок главного окна которого содержит ФИО., группу и номер варианта. В программе должна быть предусмотрена обработка исключительных ситуаций с выдачей соответствующих сообщений.

Создать меню с командами Input, About, Exit. При выборе команды Exit приложение завершает свою работу. При выборе команды About открывается окно о разработчике. При выборе команды Input открывается диалоговое окно вида

 

 

Обеспечить возможность ввода  суммы в рублях и перевод ее в евро и доллары по обычному или льготному курсу. Поля евро и доллар доступны только для чтения.

 

Текст программы

 

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

 

namespace WindowsApplication18

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void exitToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Close();

        }

 

        private void aboutToolStripMenuItem_Click(object sender, EventArgs e)

        {

            MessageBox.Show("Программа разработана в ходе учебной практики");

        }

 

        private void inputToolStripMenuItem_Click(object sender, EventArgs e)

        {

            Form2 a = new Form2();

            a.Show();

        }

    }

}

 


 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

 

namespace WindowsApplication18

{

    public partial class Form2 : Form

    {

        public Form2()

        {

            InitializeComponent();

        }

        private void Form2_Load(object sender, EventArgs e)

        {

            radioButton1.Checked = true;

            textBox2.ReadOnly = true;

            textBox3.ReadOnly = true;

        }

        private void button1_Click(object sender, EventArgs e)

        {

            double usa = 0;

            double euro = 0;

            int rus = Convert.ToInt32( textBox1.Text);

            if (radioButton1.Checked == true)

            {

                usa = rus / 2800;

                euro = rus / 3740;

            }

            else

            {

                usa = rus / 2800;

                double usap= usa*0.1;

                usa-=usap;

                euro = rus / 3740;

                double europ = euro * 0.1;

                euro -= europ;

            }

            textBox2.Text = Convert.ToString( usa);

            textBox3.Text = Convert.ToString(euro);

        }

    }

}

 

 

 

 

Результаты компьютерного тестирования

 

 

 

 

 

ВРУЧНУЮ

Текст программы

 

using System;

using System.Collections.Generic;

using System.Windows.Forms;

 

namespace WindowsFormsApplication1

{

    static class Program

    {

        /// <summary>

        /// The main entry point for the application.

        /// </summary>

        class myForm1 : Form //форма вручную

        {

            MainMenu mymenu; //1 пункт создания меню

            public myForm1()

            {

                Text = "Первое окошко";

              

  mymenu = new MainMenu();//2-создание экземпляра для меню

                //3 - задание новых пунктов меню

               MenuItem m1 = new MenuItem("File");//задание “главного” пункта меню

                mymenu.MenuItems.Add(m1);

 

               MenuItem s1 = new MenuItem("Input");//задание подпункта пункта меню

                m1.MenuItems.Add(s1);

 

                MenuItem s2 = new MenuItem("About");

                m1.MenuItems.Add(s2);

 

                MenuItem s3 = new MenuItem("Exit");

                m1.MenuItems.Add(s3);

          

                //4 – задать методы - действия по нажатию

// в скобках указаны  соответствующиеобработчики-фунция  open  и т.д.

                s1.Click += new EventHandler(open);

                s2.Click += new EventHandler(inf);

                s3.Click += new EventHandler(ecl);

              

                Menu = mymenu;

            }

            [STAThread]

            static void Main()

            {

                Application.EnableVisualStyles();

                Application.SetCompatibleTextRenderingDefault(false);

                myForm1 a = new myForm1();

                //Размеры окна

                a.Width = 300;

                a.Height = 300;

                Application.Run(a);

            }

//Реализация методов, обрабатывающих пункты меню         

  void inf(object a, EventArgs e)

            {

                MessageBox.Show("Программа разработана в ходе учебной практики");

            }

            void open(object a, EventArgs e)

            {

                myForm2 b = new myForm2();

                b.Visible = true;

                b.Width = 400;

                b.Height = 300;

            }

            void ecl(object a, EventArgs e)

            {

                DialogResult rez = MessageBox.Show("Выход?", "Завершение", MessageBoxButtons.OKCancel);

                if (rez == DialogResult.OK) Application.Exit();

            }

        }

//вторая форма вручную       

class myForm2 : Form

        {

            Button my = new Button();

            TextBox t1 = new TextBox();

            TextBox t2 = new TextBox();

            TextBox t3 = new TextBox();

            ComboBox c2 = new ComboBox();

            Label l1 = new Label();

            Label l2 = new Label();

            Label l3 = new Label();

            GroupBox grup = new GroupBox();

            RadioButton rad = new RadioButton();

            RadioButton rad2 = new RadioButton();

            public myForm2()

            {

                Text = "Второе окошко";

                //Button1

                my = new Button();

                my.Text = "Ok";

                my.Location = new System.Drawing.Point(70, 200);

                my.Size = new System.Drawing.Size(60, 25);

                this.Controls.Add(my);

                //textbox 1

                t1 = new TextBox();

                t1.Text = "";

                t1.Location = new System.Drawing.Point(70, 20);

                t1.Size = new System.Drawing.Size(80, 20);

                this.Controls.Add(t1);

                //textbox 2

                t2 = new TextBox();

                t2.Text = "";

                t2.Location = new System.Drawing.Point(70, 45);

                t2.Size = new System.Drawing.Size(80, 20);

                t2.ReadOnly = true;

                this.Controls.Add(t2);

 

                //textbox 3

                t3 = new TextBox();

                t3.Text = "";

                t3.Location = new System.Drawing.Point(70, 70);

                t3.Size = new System.Drawing.Size(80, 20);

                t3.ReadOnly = true;

                this.Controls.Add(t3);

 

 

                //Label1

                l1 = new Label();

                l1.Location = new System.Drawing.Point(150, 20);

                l1.Text = "RUS";

                this.Controls.Add(l1);

                //Label2

                l2 = new Label();

                l2.Location = new System.Drawing.Point(150, 45);

                l2.Text = "EURO";

                this.Controls.Add(l2);

                //Label3

                l3 = new Label();

                l3.Location = new System.Drawing.Point(150, 70);

                l3.Text = "USA";

                this.Controls.Add(l3);

 

             

 

                //radiobutton

                rad = new RadioButton();

                rad.Location = new System.Drawing.Point(250, 30);

                rad.Text = "Обычный";

                rad.Checked = true;

                this.Controls.Add(rad);

 

                //radiobutton2

                rad = new RadioButton();

                rad2.Location = new System.Drawing.Point(250, 50);

                rad2.Text = "Льготный";

                this.Controls.Add(rad2);

 

 

 

                //Вызов при нажатии "Применить"

                my.Click += new EventHandler(my_Click);

            }

 

 

            void my_Click(object b, EventArgs e)

            {

                double usa = 0;

                double euro = 0;

                int rus = Convert.ToInt32(t1.Text);

                if (rad.Checked == true)

                {

                    usa = rus / 2800;

                    euro = rus / 3740;

                }

                else

                {

                    usa = rus / 2800;

                    double usap = usa * 0.1;

                    usa -= usap;

                    euro = rus / 3740;

                    double europ = euro * 0.1;

                    euro -= europ;

                }

                t2.Text = Convert.ToString(usa);

                t3.Text = Convert.ToString(euro);

 

 

               

             }

            }

        }

    }

 

 

 

Результаты  компьютерного тестирования

 

 

 

 

 

 

 

ДОПОЛНИТЕЛЬНО:

Выход из приложения

            Application.Exit();

Вызов второй формы (как вариант)

            Form2 f2 = new Form2(this);

            f2.ShowDialog();           

Закрашивание  области на форме

            Graphics g = CreateGraphics();

            g.DrawRectangle(new Pen(RectangleColor), 5, 30, RectangleWidth, RectangleHeight);

            if (RectangleHeight > Height || RectangleWidth > Width)

            {

                MessageBox.Show("Размер нарисованного прямоугольника больше размера формы!!!");

            }

            g.Dispose();

На второй форме задание параметров, а в первой форме они применяются и по ним рисуется

Форма 2:

    public partial class Form2 : Form

    {

//объявление глобальной переменной     

public Form1 f1;

//в  конструкторе второй формы передать  экземпляр первой формы      

 public Form2(Form1 f1)

        {

            InitializeComponent();

            this.f1 = f1;//передать управление 1 форме

        }

        private void button1_Click(object sender, EventArgs e)

        {

          //обращение к полям  формы

  f1.RectangleWidth….

                 this.Close();//закрытие формы

        }

    }

Форма 1

 

Форма 2

 

Форма 1 после рисования

Рисование линии:

           

            Pen pen = new Pen(Color.Black, 3);

            pen = new Pen(Color.Red, 3);

           

Graphics g = CreateGraphics();

            g.DrawLine(pen, x1, y1,x2,y2);

            g.Dispose();

//добавление рисования на пункт меню:

        private void changeToolStripMenuItem_Click(object sender, EventArgs e)

        {

             this.Paint += new PaintEventHandler(this.Form1_Paint);

        }

                private void Form1_Paint(object sender, PaintEventArgs e)

        {

//ВОТ ТАК ТОЖЕ МОЖНО РИСОВАТЬ!

            Rectangle verh = new Rectangle(0, 0, this.Width, this.Height / 2);

            Rectangle niz = new Rectangle(0, this.Height / 2, this.Width,this.Height);

           

            using (Graphics g = e.Graphics)

            {

                using (Pen pen = new Pen(Color.Red))

                {

                    Brush b = new SolidBrush(cvet);

                    if(v == 1)

                        g.FillRectangle(b, verh);

                    if (n == 1)

                        g.FillRectangle(b, niz);

                }

            }

        }

                private void clearToolStripMenuItem_Click(object sender, EventArgs e)

                {

                    Form1_Paint(null, null);

                }

             private void timer1_Tick(object sender, EventArgs e)

             {

                 this.Refresh();

             }

        }

        }

ПРИМЕР  ПРОСТЕЙШЕГО КЛАССА (К ЛАБЕ 10)

Описать класс  «квадрат». Для квадрата задается длина его стороны. Предусмотреть инициализацию объекта с проверкой допустимости значений. В случае недопустимых значений поля выбрасываются исключения. Описать свойства для получения состояния объекта.

Написать программу, демонстрирующую  все разработанные элементы класса.

Текст программы

namespace WindowsApplication1

{

    public partial class Form1 : Form

    {

       Kvadrat f = new Kvadrat(0);

        public Form1()

        {

            InitializeComponent();

        }

        private void button3_Click(object sender, EventArgs e)

        {

            Form.ActiveForm.Close();

        }

        private void button2_Click(object sender, EventArgs e)

        {

            textBox1.Clear();

        }

        private void button1_Click(object sender, EventArgs e)

        {

            f.X = Convert.ToDouble(textBox1.Text);

            f.Perimetr();

            textBox5.Text = Convert.ToString(f.P);

        }

    }

    public class Kvadrat

    {

        public double x;

        public double p;

        public Kvadrat(double x)

        {

            this.x = x;

        }

        public void Perimetr()

        {

           p = x * 4;

        }

        public double X

        {

            get

            {

                return x;

            }

            set

            {

                if (value > 0)

                {

                    x = value;

                }

                else

                {

                    MessageBox.Show("Значения должны быть положительными или больше нуля!");

                }

            }

        }

        public double P

        {

            get

            {

                return p;

            }

        }    }}

Результат работы программы

 

 

 

 

 

РИСОВАНИЕ КРУГА

  

            Graphics g = CreateGraphics();        

//  Rectangle verh = new Rectangle(0, 0, this.Width, this.Height / 2);

//Rectangle niz = new Rectangle(0, this.Height / 2, this.Width,this.Height);

 

                    int r2 = 2 * r;

                    Brush b = new SolidBrush(Color.Red);               g.FillEllipse(new SolidBrush(Color.Red), new Rectangle(100, 100, r2, r2));

                   g.Dispose();          

        }

 

 

 

Компоненты  openFileDialog          и    saveFileDialog1

Информация о работе Лабораторная работа по «Программированию и компьютерам»