Автор работы: Пользователь скрыл имя, 10 Января 2014 в 12:31, лабораторная работа
Написать Windows- приложение, заголовок главного окна которого содержит ФИО., группу и номер варианта. В программе должна быть предусмотрена обработка исключительных ситуаций с выдачей соответствующих сообщений.
Создать меню с командами Input, About, Exit. При выборе команды Exit приложение завершает свою работу. При выборе команды About открывается окно о разработчике.
Описать класс «квадрат». Для квадрата задается длина его стороны. Предусмотреть инициализацию объекта с проверкой допустимости значений. В случае недопустимых значений поля выбрасываются исключения. Описать свойства для получения состояния объекта.
Написать 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(ob
{
Close();
}
private void aboutToolStripMenuItem_Click(o
{
MessageBox.Show("Программа разработана в ходе учебной практики");
}
private void inputToolStripMenuItem_Click(o
{
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 – задать методы - действия по нажатию
// в скобках указаны
соответствующиеобработчики-
s1.Click += new EventHandler(open);
s2.Click += new EventHandler(inf);
s3.Click += new EventHandler(ecl);
Menu = mymenu;
}
[STAThread]
static void Main()
{
Application.
Application.
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(
{
this.Paint += new PaintEventHandler(this.Form1_
}
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(
{
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.
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
Информация о работе Лабораторная работа по «Программированию и компьютерам»