Разработка Windows-приложений - Курсовая работа

бесплатно 0
4.5 49
Реализация программы, созданной средствами языка C#. Предназначение Windows-приложения для решения комплекса задач. Определение состава форм с графиком функции. Вычисление коэффициентов полинома. Создание текстового поля для введения корней многочлена.


Аннотация к работе
} private void button6_Click(object sender, EVENTARGS e) } private void button2_Click(object sender, EVENTARGS e) } private void button3_Click(object sender, EVENTARGS e) } private void button7_Click(object sender, EVENTARGS e) } private void button4_Click(object sender, EVENTARGS e)В курсовой работе была реализована программа, созданная средствами языка C#.

Введение
В данной курсовой работе была поставлена цель: научиться разрабатывать Windows-приложения, предназначенное для решения комплекса задач. В главной форме должно быть меню, через которое осуществляется переход на решение конкретной задачи. Если в условии задачи состав форм определен, то эта часть приложения реализуется в соответствии с этим определением. Если состав форм не определен, то определение состава форм производится студентом самостоятельно. Как правило, в части приложения, реализующего решение конкретной задачи должно быть не менее 2 форм. Если в приложении вычисляются функции, то должна быть отдельная форма с графиком функции.

Структура программы: 1. Program.cs

2. Главная форма.cs

3. График.cs

4. Задача1.cs

5. Задача2.cs

6. Задача3.cs

7. Задача4.cs

8. Задача5.cs

9. Параметры для графика.cs

1. Главная программа (Program.cs)

Код: static class Program

{

///

/// Главная точка входа для приложения.

///

[STATHREAD] static void Main()

{

Application.ENABLEVISUALSTYLES();

Application.SETCOMPATIBLETEXTRENDERINGDEFAULT(false);

Application.Run(new Form1());

}

}

2. Главная форма (Form1)

Форма содержит Меню, которое включает: 1. 1 задача

2. 2 задача

3. 3 задача

4. 4 задача

5. 5 задача

6. График

7. Выход

Рисунок 1

Код: public partial class Form1: Form

{ public Form1()

{

INITIALIZECOMPONENT();

} private void button6_Click(object sender, EVENTARGS e)

{

Close();

} private void button2_Click(object sender, EVENTARGS e)

{

Задача2 form2 = new Задача2();

form2.SHOWDIALOG();

} private void button3_Click(object sender, EVENTARGS e)

{

Задача3 form3 = new Задача3();

form3.SHOWDIALOG();

} private void button7_Click(object sender, EVENTARGS e)

{

Параметры_для_графика param = new Параметры_для_графика();

param.SHOWDIALOG();

} private void button4_Click(object sender, EVENTARGS e)

{

Задача4 form4 = new Задача4();

form4.SHOWDIALOG();

} private void button5_Click(object sender, EVENTARGS e)

{

Задача5 form5 = new Задача5();

form5.SHOWDIALOG();

} private void button1_Click(object sender, EVENTARGS e)

{

Задача1 form1 = new Задача1();

form1.SHOWDIALOG();

}

}

Задача 1

Условие: Пусть a и b - переменные типов T1 и T2 соответственно. Постройте приложение (консольное или Windows), в котором для каждой из допустимых в языке C# операций задайте все возможные комбинации типов T1 и T2 такие, что выражение a ? b (здесь ? - символ применяемой операции) не требует преобразования типов операндов.

Форма Задача1

Рисунок 2

Форма содержит две кнопки: 1. Результат (button1) - осуществляет переход на форму Reshenie1

2. Назад (button2)- возвращает на главную форму

Пример решения: Код: public partial class Задача1: Form

{ public Задача1()

{

INITIALIZECOMPONENT();

} public int L1

{ get { return COMBOBOX1.SELECTEDINDEX; }

} public int L2

{ get { return COMBOBOX2.SELECTEDINDEX; }

} private void button2_Click(object sender, EVENTARGS e)

Рисунок 3

{

TEXTBOX1.Clear();

if ((L1 == 0) && (((L2 >= 0) && (L2 <= 12)) && (L2 != 3) && (L2 != 2)))

{TEXTBOX1.APPENDTEXT("Сложение, Вычитание Умножение, Деление Остаток от деления, Больше, Меньше"); } if ((L1 == 1) && (((L2 >= 0) && (L2 <= 12)) && (L2 != 3) && (L2 != 2)))

{ TEXTBOX1.APPENDTEXT("Сложение, Вычитание Умножение, Деление Остаток от деления, Больше, Меньше"); } if ((L1 == 2) && (((L2 >= 0) && (L2 <= 12)) && (L2 != 3)))

{ TEXTBOX1.APPENDTEXT("Сложение, Умножение"); } if ((L2 == 2) && (((L1 >= 0) && (L1 <= 12)) && (L1 != 3)))

{ TEXTBOX1.APPENDTEXT("Сложение, Умножение"); } if ((L1 == 3) && ((L2 >= 0) && (L2 <= 13)))

{ TEXTBOX1.APPENDTEXT("Ни одной операции"); } if ((L2 == 3) && ((L1 >= 0) && (L1 <= 13)))

{ TEXTBOX1.APPENDTEXT("Ни одной операции"); } if ((L1 == 4) && (((L2 >= 0) && (L2 <= 12)) && (L2 != 3) && (L2 != 2)))

{ TEXTBOX1.APPENDTEXT("Сложение, Вычитание Умножение, Деление Остаток от деления, Больше, Меньше"); } if ((L1 == 5) && (((L2 >= 0) && (L2 <= 12)) && (L2 != 3) && (L2 != 2)))

{ TEXTBOX1.APPENDTEXT("Сложение, Вычитание Умножение, Деление Остаток от деления, Больше, Меньше"); } if ((L1 == 6) && (((L2 >= 0) && (L2 <= 12)) && (L2 != 3) && (L2 != 2)))

{ TEXTBOX1.APPENDTEXT("Сложение, Вычитание Умножение, Деление Остаток от деления, Больше, Меньше"); } if ((L1 == 7) && (((L2 >= 0) && (L2 <= 12)) && (L2 != 3) && (L2 != 2)))

{ TEXTBOX1.APPENDTEXT("Сложение, Вычитание Умножение, Деление Остаток от деления, Больше, Меньше"); } if ((L1 == 8) && (((L2 >= 0) && (L2 <= 12)) && (L2 != 3) && (L2 != 2)))

{ TEXTBOX1.APPENDTEXT("Сложение, Вычитание Умножение, Деление Остаток от деления, Больше, Меньше"); } if ((L1 == 9) && (((L2 >= 0) && (L2 <= 12)) && (L2 != 3) && (L2 != 2)))

{ TEXTBOX1.APPENDTEXT("Сложение, Вычитание Умножение, Деление Остаток от деления, Больше, Меньше"); } if ((L1 == 10) && (((L2 >= 0) && (L2 <= 12)) && (L2 != 3) && (L2 != 2)))

{ TEXTBOX1.APPENDTEXT("Сложение, Вычитание Умножение, Деление Остаток от деления, Больше, Меньше"); } if ((L1 == 11) && (((L2 >= 0) && (L2 <= 12)) && (L2 != 3) && (L2 != 2)))

{ TEXTBOX1.APPENDTEXT("Сложение, Вычитание Умножение, Деление Остаток от деления, Больше, Меньше"); } if ((L1 == 12) && (((L2 >= 0) && (L2 <= 12)) && (L2 != 3) && (L2 != 2)))

{ TEXTBOX1.APPENDTEXT("Сложение, Вычитание Умножение, Деление Остаток от деления, Больше, Меньше"); } if ((L1 == 13) && (((L2 >= 0) && (L2 <= 13)) && (L2 != 3) ))

{ TEXTBOX1.APPENDTEXT("Сложение"); }

}

Задача 2

Условие: Дано дробное число N = 0.dm-1…d0, где di - это цифры десятичной системы счисления. Перевести число N в четверичную систему счисления N = bk-1…b0, вычислив k цифр в его записи, сохраняя их в целочисленном массиве DIGITSN таком, что DIGITSN[i] = bi, где bi - это цифры в записи числа N в четверичной системе счисления. Пример: N = 0.17(10) = 0.02232(4) при k=5.

Форма Задача2

Рисунок 4

Пример решения:

Рисунок 5

Форма содержит: 1. Текстовое поле для введения числа (TEXTBOX1)

2. Текстовое поле для введения точности (TEXTBOX2)

3. Кнопку Перевести - осуществляет перевод числа из десятичной системы счисления в шестнадцатеричную (button1). При нажатии выводит результат в (TEXTBOX3)

4. Кнопку Назад (button2) - возвращает на форму главную форму.

Код: public partial class Задача2: Form

{ public Задача2()

{

INITIALIZECOMPONENT();

} private void button2_Click(object sender, EVENTARGS e)

{ double text1;

int kk;

try

{ text1 = double.Parse(text.Text);

int DIGITCOUNT = (int)Math.Log10(text1) 1;

text1 = text1 / Math.Pow(10, DIGITCOUNT);

kk = int.Parse(k.Text);

string[] b = new string[kk];

double text2;

text2 = text1 - Math.Truncate(text1);

num2.Clear();

num2.APPENDTEXT("0,");

for (int i = 0; i < kk; i )

{ text2 = text2 * 4;

b[i] = Convert.TOSTRING(Math.Truncate(text2));

text2 = text2 - Math.Truncate(text2);

num2.APPENDTEXT(b[i]);

}

} catch (FORMATEXCEPTION)

{

MESSAGEBOX.Show("Неверный формат ввода");

}

}

}

Задача 3

Условие: Полином P(x) задан своими корнями и старшим коэффициентом an. Вычислить коэффициенты полинома.

Форма Задача3

Рисунок 6

Пример решения:

Рисунок 7 программа windows приложение график

Форма содержит: 1. Текстовое поле для введения старшего члена (TEXTBOX1)

2. Текстовое поле для введения корней многочлена (TEXTBOX2)

3. Текстовое поле для выведения коэффициентов полинома (TEXTBOX3)

4. Кнопка найти коэффициентов полинома

5. Кнопку Назад-возвращает на главную форму

Код: public partial class Задача3: Form

{ public Задача3()

{

INITIALIZECOMPONENT();

} private void button1_Click(object sender, EVENTARGS e)

{ try

{ int g_kof, n;

g_kof = int.Parse(an.Text);

string korni;

korni = korn.Text;

string[] outp = korni.Split(" ");

int[] x = new int[outp.Length];

for (int i = 0; i < x.Length; i )

{ x[i] = Convert.TOINT32(outp[i]);

} n = outp.Length;

int[] a = new int[n 1];

//Вычисляем коэффициенты полинома первой степени a[1] = 1; a[0] = -x[0];

//цикл по числу полиномов for (int k = 2; k < n 1; k )

{

//Вычисляем коэффициенты полинома степени k

//Вначале старший коэффициент a[k] = a[k - 1];

//затем остальные коэффициенты, кроме последнего for (int i = k - 1; i > 0; i-)

{ a[i] = a[i - 1] - a[i] * x[k - 1];

}

//теперь младший коэффициент a[0] = -a[0] * x[k - 1];

} kof.Clear();

//Последний этап - умножение коэффициентов на an for (int i = 0; i <= n; i )

{ a[i] = a[i] * g_kof;

kof.APPENDTEXT(a[i] " ");

} catch(FORMATEXCEPTION)

{

MESSAGEBOX.Show("Неверный формат ввода");

}

Задача 4

Условие: Напишите процедуру ISNUMBER, проверяющую является ли исходный текст правильно построенным числом. Для представления текста используйте класс Char[].

Форма Задача4

Рисунок 8

Примере решения:

Рисунок 9

Форма содержит: 1. Текстовое поле для ввода текста (TEXTBOX1)

2. Кнопка проверить - выводит результат в MASSAGEBOX

3. Кнопку Назад - возвращает на главную форму

Код: public partial class Задача4: Form

{ public Задача4()

{

INITIALIZECOMPONENT();

} private void button2_Click(object sender, EVENTARGS e)

{ int n = text.TEXTLENGTH;

int k = 0;

string st = text.Text;

char[] a = st.TOCHARARRAY();

for (int i = 0; i < n; i )

{ if ((((int)a[i]>=48)) && ((int)a[i]<=57)) k=k 1;

} if ((k == n) && (k!=0)) MESSAGEBOX.Show("Число построенно правильно");

else MESSAGEBOX.Show("Число построенно неправильно");

}

}

Задача 5

Условие: Написать программу, которая считывает текст из файла и выводит на экран сначала предложения, начинающиеся с однобуквенных слов, а затем все остальные.

Форма Задача 5

Рисунок 10

Пример решения:

Рисунок 11

Форма содержит: 1. Текстовое поле для показания исходного текста(TEXTBOX1)

2. Текстовое поле для показания результата(TEXTBOX2)

3. Кнопка показать результат - выводит результат в (TEXTBOX2)

4. Кнопка считать текст - считывает текст из файла

5. Кнопка назад - возвращает на главную форму

Код: public partial class Задача5: Form

{ private string text;

public Задача5()

{

INITIALIZECOMPONENT();

OPENFILEDIALOG1.INITIALDIRECTORY = Application.STARTUPPATH;

} private void button2_Click(object sender, EVENTARGS e)

{

TEXTBOX1.Clear();

int k=0;

try

{

IENUMERABLE vars = from str in text.Split(new char[] { ".", "?", "!" }, STRINGSPLITOPTIONS.REMOVEEMPTYENTRIES)

Select(x => x.Trim()) let word = str.Split(" ").Select(x => x.Trim()).First() orderby (((word.Length == 1) && (word != "-") && (word != "-"))) descending select str ".";

foreach (string str in vars)

TEXTBOX1.APPENDTEXT(str);

} catch(NULLREFERENCEEXCEPTION )

{ MESSAGEBOX.Show("Выберете текст"); }

} private void button5_Click(object sender, EVENTARGS e)

{ if (OPENFILEDIALOG1.SHOWDIALOG() == DIALOGRESULT.OK)

{

TEXTBOX3.Text = OPENFILEDIALOG1.FILENAME;

STREAMREADER sreader = new STREAMREADER(

OPENFILEDIALOG1.FILENAME, Encoding.GETENCODING(1251));

text = sreader.READTOEND();

TEXTBOX2.Text = text;

sreader.Close();

button2.Enabled = true;

}

}

График

Условие: построение графика синус икс.

Форма параметры для графика

Рисунок 12

Форма содержит: 1. Текстовое поле для ввода минимального значения аргумента (TEXTBOX1)

2. Текстовое поле для ввода максимального значения аргумента (TEXTBOX2)

3. Кнопка начертить график - перекидывает на форму График

Код: public partial class Параметры_для_графика: Form

{ public Параметры_для_графика()

{

INITIALIZECOMPONENT();

} private void button1_Click(object sender, EVENTARGS e)

{

График граф = new График();

try

{ граф.Xmin = Convert.TOINT32(TEXTBOX1.Text);

граф.Xmax = Convert.TOINT32(TEXTBOX2.Text);

} catch(FORMATEXCEPTION)

{

MESSAGEBOX.Show("Неверный формат ввода");

} граф.SHOWDIALOG();

}

}

Форма график

Рисунок 13

Код: public partial class График: Form

{ public График()

{

INITIALIZECOMPONENT();

} int xmin = 0;

int xmax = 0;

public int Xmin

{ set { xmin = value; }

} public int Xmax

{ set { xmax = value; }

} private void График_Load(object sender, EVENTARGS e)

{

Параметры_для_графика par = new Параметры_для_графика();

chart1.CHARTAREAS[0].AXISX.SCALEVIEW.Zoom(xmin, xmax);

chart1.CHARTAREAS[0].CURSORX.ISUSERENABLED = true;

chart1.CHARTAREAS[0].CURSORX.ISUSERSELECTIONENABLED = true;

chart1.CHARTAREAS[0].AXISX.SCALEVIEW.Zoomable = true;

chart1.CHARTAREAS[0].AXISX.SCROLLBAR.ISPOSITIONEDINSIDE = true;

chart1.CHARTAREAS[0].AXISY.SCALEVIEW.Zoom(-1, 1);

chart1.CHARTAREAS[0].CURSORY.ISUSERENABLED = true;

chart1.CHARTAREAS[0].CURSORY.ISUSERSELECTIONENABLED = true;

chart1.CHARTAREAS[0].AXISY.SCALEVIEW.Zoomable = true;

chart1.CHARTAREAS[0].AXISY.SCROLLBAR.ISPOSITIONEDINSIDE = true;

for (int i = xmin; i <= xmax; i )

{ chart1.Series[0].Points.ADDXY(i, Math.Sin(i));

}

}

}

Вывод
В курсовой работе была реализована программа, созданная средствами языка C#. В программе были реализованы функции различного характера и предусмотрены исключения. Программа работает правильно, сбоев не дает.

Список литературы
1. Т.А. Павловская «C#. Программирование на языке высокого уровня».

2. В. Биллиг «Алгоритмы и задачи (Для программирования на языке C#)»

Размещено на .ru
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?