- •Программирование на языке c# в среде microsoft visual studio 2005
- •Оглавление
- •1 . Базовые элементы языка c#
- •1.1. Структура программы
- •Типы данных
- •1.3. Арифметические и логические операции
- •1.4. Условный оператор и оператор выбора
- •1.5. Ввод/вывод в консольном режиме
- •1.6. Комментарии
- •1.7. Массивы
- •1.8. Операторы цикла
- •1.9. Работа со ступенчатыми массивами
- •Контрольные вопросы
- •2. Работа с функциями
- •2.1. Общие принципы
- •2.2. Процедурное программирование в c#
- •Контрольные вопросы
- •3. Объектно-ориентированное программирование на c#
- •3.1. Общие принципы
- •3.2. Объявление и работа с классами
- •3.3. Перегрузка операторов
- •3.4. Индексаторы
- •3.5. Свойства
- •3.6. Использование класса в качестве типа данных
- •3.7. Работа со структурами
- •3.8. Наследование
- •3.9. Ссылки на объекты
- •3.10. Конструктор копирования
- •3.11. Виртуальные методы
- •3.12. Абстрактные методы и классы
- •3.13. Интерфейсы
- •3.14. Делегаты и события
- •3.15. Исключительные ситуации
- •Контрольные вопросы
- •4. Среда Microsoft Visual Studio 2005
- •4.1. Простейший пример
- •4.2. Средства управления работой программы
- •4.3. Создание меню
- •4.4. Ввод/вывод массивов
- •4.4.1. Ввод/вывод и обработка одномерного массива-строки
- •4.4.2. Ввод/вывод и обработка одномерного массива-столбца
- •4.4.3. Ввод/вывод и обработка двумерного массива
- •4.4.4. Форматированный ввод/вывод двумерного массива
- •4.5. Создание многооконных приложений
- •4.5.1. Создание sdi-приложения
- •4.5.2. Создание mdi-приложения
- •Контрольные вопросы
- •5. Объектно-ориентированное программирование в Microsoft Visual Studio 2005
- •5.1. Дополнение класса формы средствами решения прикладной задачи
- •5.2. Создание отдельных классов
- •5.3. Передача в классы указателей на формы
- •5.4. Создание форм в классах пользователя
- •Контрольные вопросы
- •Заключение
- •Библиографический список
5.2. Создание отдельных классов
Поступим следующим образом. Объявим несколько классов и используем их методы при нажатии командных кнопок на форме. В принципе, можно использовать сколь угодно сложные структуры данных в классах, но мы не будем тратить на это время, потому что вопросы передачи структурированных данных в качестве формальных/фактических параметров функций были подробно рассмотрены выше.
Создавать классы можно двумя способами:
написать классы самому «с нуля»; не забудьте, что класс формы должен быть впереди собственных классов;
поставить курсор мыши на имя проекта, нажать на правую клавишу, выбрать из выпадающего меню пункт «Add», далее «Class».
namespace Klassid
{
public class Cl1
{
protected int a1 = 0;
protected double a2 = 3.5;
private Cl3 _Cl3;
public Cl1(int i, double x)
{
a1 = i;
a2 = x;
}
public string opp()
{
_Cl3 = new Cl3("Greeting from Moscow");
return _Cl3.get_c1();
}
public double op2()
{
return (a1*a2);
}
}
public class Cl2 : Cl1
{
public string st1;
public Cl2(int i, double x, string s)
: base(i, x)
{
st1 = s;
}
public string op21()
{
return st1;
}
}
public class Cl3
{
public string c1;
public Cl3(string t)
{
c1 = t;
}
public string get_c1()
{
return c1;
}
}
public class Cl4
{
public int i1;
public Cl4(int k)
{
i1 = k;
}
public int fun2()
{
return i1;
}
}
class Cl5 // обработка массива
{
int[] k;
public Cl5(int[] temp)
{
k = new int[temp.Length];
for (int i = 0; i < temp.Length; i++)
k[i] = temp[i];
}
public int sum_pol()
{
int u=0;
for (int i = 0; i < k.Length; i++)
if (k[i] > 0) u += k[i];
return u;
}
} }
Работа с классами из формы:
namespace Klassid
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Close();
}
private void button2_Click(object sender, EventArgs e)
{// создание объекта класса Cl3
Cl3 pp = new Cl3(textBox1.Text);
textBox2.Text = pp.get_c1();
}
private void button3_Click(object sender, EventArgs e)
{ // работа с классом Cl2
Cl2 q;
string s1;
s1 = textBox1.Text;
q = new Cl2(6, 2.5, s1);
textBox2.Text = q.st1;
}
private void button4_Click(object sender, EventArgs e)
{ // работа с классом Cl2
Cl2 q;
string s1;
int i;
s1 = textBox1.Text;
i=Convert.ToInt32(textBox2.Text);
q=new Cl2(i,2.5,s1);
textBox2.Text=Convert.ToString(q.op21());
}
private void button5_Click(object sender, EventArgs e)
{// работа с классом Cl1, а через него с Cl3
Cl1 f1 = new Cl1(5, 3.7);
textBox1.Text = f1.opp();
}
private void button6_Click(object sender, EventArgs e)
{// обработка массива
string[] z;
string s1;
int[] t;
s1 = textBox1.Text;
z = s1.Split(';');
t=new int[z.Length];
for (int i = 0; i < z.Length; i++)
t[i] = Convert.ToInt32(z[i]);
Cl5 My_Cl = new Cl5(t);
textBox2.Text = "Summa " + My_Cl.sum_pol();
}
} }