Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт по лабораторным.docx
Скачиваний:
43
Добавлен:
18.11.2022
Размер:
600.23 Кб
Скачать

Лабораторная работа № 4

Задание:

Усовершенствовать приложение, разработанное в прошлом задании, добавив в него функцию расчѐта подоходного налога и профсоюзного взноса.

  1. Добавить на форму элемент CheckBox и снабдить его поясняющей надписью «Член профсоюза»

  2. Дополнить обработчики событий всех пунктов меню операторами, обеспечивающими добавление в файл сотрудника и чтение из данного файла логической переменной, определяющей, является ли сотрудник членом профсоюза (в зависимости от значения флажка).

  3. Добавить на разработанную форму новый горизонтальный пункт меню Расчет с двумя подпунктами – Подоходный налог и Профсоюзный взнос.

  4. Добавить на форму два элемента TextBox для отображения результатов расчета и снабдить их поясняющими надписями – «Подоходный налог» и «Профсоюзный взнос».

  5. Сделать все нанесѐнные элементы невидимыми.

  6. При выборе пункта Подоходный налог обеспечить отображение на форме необходимых элементов, в которые внести результат расчѐта налога, как 13 % от суммы оклада.

  7. При выборе пункта Профсоюзный взнос обеспечить отображение на форме необходимых элементов, в которые внести результат расчѐта взноса, как 1 % от суммы оклада (для членов профсоюза) или вывести надпись «Не является членом профсоюза».

Ограничения:

1. Обеспечить доступность меню Расчѐт и всех его подпунктов только в случае, когда на форме отображаются данные сотрудника (вне зависимости от того, сохранены они или нет).

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

Главная форма проекта:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

namespace Лабораторная__4

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void закрытьToolStripMenuItem_Click(object sender, EventArgs e)

{

if ((this.Text == "Form1") | (this.Text == ""))

{

Close();

}

else

{

var result = MessageBox.Show("Сохранить данные?", "Сохранение данных", MessageBoxButtons.YesNo);

if (result == DialogResult.Yes)

{

SaveFileDialog saveFileDialog = new SaveFileDialog();

saveFileDialog.Filter = "Текстовый документ (*.txt)|*.txt|Все файлы (*.*)|*.*";

if (File.Exists(saveFileDialog.FileName = this.Text))

{

saveFileDialog.FileName = this.Text;

StreamWriter streamWriter = new StreamWriter(saveFileDialog.FileName);

streamWriter.WriteLine(textBox1.Text);

streamWriter.WriteLine(textBox2.Text);

streamWriter.WriteLine(textBox3.Text);

streamWriter.WriteLine(textBox4.Text);

streamWriter.WriteLine(checkBox1.Checked);

streamWriter.Close();

checkBox1.Visible = false;

label1.Visible = false;

label2.Visible = false;

label3.Visible = false;

label4.Visible = false;

textBox1.Visible = false;

textBox2.Visible = false;

textBox3.Visible = false;

textBox4.Visible = false;

textBox5.Visible = false;

textBox6.Visible = false;

label5.Visible = false;

label6.Visible = false;

сохранитьToolStripMenuItem.Visible = false;

сохранитьКакToolStripMenuItem.Visible = false;

расчётToolStripMenuItem.Visible = false;

подоходныйНалогToolStripMenuItem.Visible = false;

профсоюзныйВзносToolStripMenuItem.Visible = false;

this.Text = "";

}

else

{

if (saveFileDialog.ShowDialog() == DialogResult.OK)

{

StreamWriter streamWriter = new StreamWriter(saveFileDialog.FileName);

streamWriter.WriteLine(textBox1.Text);

streamWriter.WriteLine(textBox2.Text);

streamWriter.WriteLine(textBox3.Text);

streamWriter.WriteLine(textBox4.Text);

streamWriter.WriteLine(checkBox1.Checked);

streamWriter.Close();

Text = Path.GetFileNameWithoutExtension(saveFileDialog.FileName);

checkBox1.Visible = false;

label1.Visible = false;

label2.Visible = false;

label3.Visible = false;

label4.Visible = false;

textBox1.Visible = false;

textBox2.Visible = false;

textBox3.Visible = false;

textBox4.Visible = false;

textBox5.Visible = false;

textBox6.Visible = false;

label5.Visible = false;

label6.Visible = false;

сохранитьToolStripMenuItem.Visible = false;

сохранитьКакToolStripMenuItem.Visible = false;

расчётToolStripMenuItem.Visible = false;

подоходныйНалогToolStripMenuItem.Visible = false;

профсоюзныйВзносToolStripMenuItem.Visible = false;

this.Text = "";

}

}

}

if (result == DialogResult.No)

{

Close();

}

}

}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

{

char ch = e.KeyChar;

if ((ch < 'А' || ch > 'я') && ch != 8)

{

e.Handled = true;

}

}

private void создатьToolStripMenuItem_Click(object sender, EventArgs e)

{

textBox1.Clear();

textBox2.Clear();

textBox3.Clear();

textBox4.Clear();

расчётToolStripMenuItem.Visible = false;

подоходныйНалогToolStripMenuItem.Visible = false;

профсоюзныйВзносToolStripMenuItem.Visible = false;

textBox5.Visible = false;

textBox6.Visible = false;

label5.Visible = false;

label6.Visible = false;

сохранитьToolStripMenuItem.Visible = true;

сохранитьКакToolStripMenuItem.Visible = true;

checkBox1.Visible = true;

label1.Visible = true;

label2.Visible = true;

label3.Visible = true;

label4.Visible = true;

textBox1.Visible = true;

textBox2.Visible = true;

textBox3.Visible = true;

textBox4.Visible = true;

this.Text = "Новый сотрудник";

}

private void textBox2_KeyPress(object sender, KeyPressEventArgs e)

{

char ch = e.KeyChar;

if (!Char.IsDigit(ch) && ch != 8)

{

e.Handled = true;

}

}

private void сохранитьКакToolStripMenuItem_Click(object sender, EventArgs e)

{

SaveFileDialog saveFileDialog = new SaveFileDialog();

saveFileDialog.Filter = "Текстовый документ (*.txt)|*.txt|Все файлы (*.*)|*.*";

if (saveFileDialog.ShowDialog() == DialogResult.OK)

{

StreamWriter streamWriter = new StreamWriter(saveFileDialog.FileName);

streamWriter.WriteLine(textBox1.Text);

streamWriter.WriteLine(textBox2.Text);

streamWriter.WriteLine(textBox3.Text);

streamWriter.WriteLine(textBox4.Text);

streamWriter.WriteLine(checkBox1.Checked);

streamWriter.Close();

Text = Path.GetFileNameWithoutExtension(saveFileDialog.FileName);

this.Text = saveFileDialog.FileName;

}

}

private void открытьToolStripMenuItem_Click(object sender, EventArgs e)

{

расчётToolStripMenuItem.Visible = true;

подоходныйНалогToolStripMenuItem.Visible = true;

профсоюзныйВзносToolStripMenuItem.Visible = true;

textBox5.Visible = false;

textBox6.Visible = false;

label5.Visible = false;

label6.Visible = false;

сохранитьToolStripMenuItem.Visible = true;

сохранитьКакToolStripMenuItem.Visible = true;

checkBox1.Visible = true;

label1.Visible = true;

label2.Visible = true;

label3.Visible = true;

label4.Visible = true;

textBox1.Visible = true;

textBox2.Visible = true;

textBox3.Visible = true;

textBox4.Visible = true;

OpenFileDialog openFileDialog = new OpenFileDialog();

openFileDialog.Filter = "Текстовый документ (*.txt)|*.txt|Все файлы (*.*)|*.*";

if (openFileDialog.ShowDialog() == DialogResult.OK)

{

Text = Path.GetFileNameWithoutExtension(openFileDialog.FileName);

StreamReader streamReader = new StreamReader(openFileDialog.FileName);

string line, line2, line3, line4,nid;

line = streamReader.ReadLine();

line2 = streamReader.ReadLine();

line3 = streamReader.ReadLine();

line4 = streamReader.ReadLine();

textBox1.Text = line;

textBox2.Text = line2;

textBox3.Text = line3;

textBox4.Text = line4;

nid = streamReader.ReadLine();

if (nid == "true" || nid == "True")

{

checkBox1.Checked = Convert.ToBoolean(nid);

}

else

{

checkBox1.Checked = false;

}

streamReader.Close();

this.Text = openFileDialog.FileName;

}

}

private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)

{

SaveFileDialog saveFileDialog = new SaveFileDialog();

saveFileDialog.Filter = "Текстовый документ (*.txt)|*.txt|Все файлы (*.*)|*.*";

if (File.Exists(saveFileDialog.FileName = this.Text))

{

saveFileDialog.FileName = this.Text;

StreamWriter streamWriter = new StreamWriter(saveFileDialog.FileName);

streamWriter.WriteLine(textBox1.Text);

streamWriter.WriteLine(textBox2.Text);

streamWriter.WriteLine(textBox3.Text);

streamWriter.WriteLine(textBox4.Text);

streamWriter.WriteLine(checkBox1.Checked);

streamWriter.Close();

}

else

{

if (saveFileDialog.ShowDialog() == DialogResult.OK)

{

StreamWriter streamWriter = new StreamWriter(saveFileDialog.FileName);

streamWriter.WriteLine(textBox1.Text);

streamWriter.WriteLine(textBox2.Text);

streamWriter.WriteLine(textBox3.Text);

streamWriter.WriteLine(textBox4.Text);

streamWriter.WriteLine(checkBox1.Checked);

streamWriter.Close();

Text = Path.GetFileNameWithoutExtension(saveFileDialog.FileName);

this.Text = saveFileDialog.FileName;

}

}

}

private void checkBox1_CheckedChanged(object sender, EventArgs e)

{

}

private void подоходныйНалогToolStripMenuItem_Click(object sender, EventArgs e)

{

textBox5.Clear();

textBox5.Visible = true;

label5.Visible = true;

Int32 a =Convert.ToInt32(textBox3.Text);

Double b;

b=a*0.13;

textBox5.AppendText(Convert.ToString(b));

}

private void расчётToolStripMenuItem_Click(object sender, EventArgs e)

{

}

private void textBox3_TextChanged(object sender, EventArgs e)

{

if((textBox3.Text.Length>0)&&(textBox1.Text.Length>0)&&(textBox2.Text.Length>0)&&(textBox4.Text.Length>0))

{

расчётToolStripMenuItem.Visible = true;

подоходныйНалогToolStripMenuItem.Visible = true;

профсоюзныйВзносToolStripMenuItem.Visible = true;

}

if ((textBox3.Text.Length == 0) || (textBox1.Text.Length == 0) || (textBox2.Text.Length == 0) || (textBox4.Text.Length == 0))

{

расчётToolStripMenuItem.Visible = false;

подоходныйНалогToolStripMenuItem.Visible = false;

профсоюзныйВзносToolStripMenuItem.Visible = false;

textBox5.Visible = false;

textBox6.Visible = false;

label5.Visible = false;

label6.Visible = false;

}

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void профсоюзныйВзносToolStripMenuItem_Click(object sender, EventArgs e)

{

if (checkBox1.Checked == false)

{

MessageBox.Show("Не является членом профсоюза", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

else

{

textBox6.Clear();

label6.Visible = true;

textBox6.Visible = true;

Int32 a = Convert.ToInt32(textBox3.Text);

Double b;

b = a * 0.01;

textBox6.AppendText(Convert.ToString(b));

}

}

private void textBox1_TextChanged(object sender, EventArgs e)

{

if ((textBox3.Text.Length > 0) && (textBox1.Text.Length > 0) && (textBox2.Text.Length > 0) && (textBox4.Text.Length > 0))

{

расчётToolStripMenuItem.Visible = true;

подоходныйНалогToolStripMenuItem.Visible = true;

профсоюзныйВзносToolStripMenuItem.Visible = true;

}

if ((textBox3.Text.Length == 0) || (textBox1.Text.Length == 0) || (textBox2.Text.Length == 0) || (textBox4.Text.Length == 0))

{

расчётToolStripMenuItem.Visible = false;

подоходныйНалогToolStripMenuItem.Visible = false;

профсоюзныйВзносToolStripMenuItem.Visible = false;

textBox5.Visible = false;

textBox6.Visible = false;

label5.Visible = false;

label6.Visible = false;

}

}

private void textBox2_TextChanged(object sender, EventArgs e)

{

if ((textBox3.Text.Length > 0) && (textBox1.Text.Length > 0) && (textBox2.Text.Length > 0) && (textBox4.Text.Length > 0))

{

расчётToolStripMenuItem.Visible = true;

подоходныйНалогToolStripMenuItem.Visible = true;

профсоюзныйВзносToolStripMenuItem.Visible = true;

}

if ((textBox3.Text.Length == 0) || (textBox1.Text.Length == 0) || (textBox2.Text.Length == 0) || (textBox4.Text.Length == 0))

{

расчётToolStripMenuItem.Visible = false;

подоходныйНалогToolStripMenuItem.Visible = false;

профсоюзныйВзносToolStripMenuItem.Visible = false;

textBox5.Visible = false;

textBox6.Visible = false;

label5.Visible = false;

label6.Visible = false;

}

}

private void textBox4_TextChanged(object sender, EventArgs e)

{

if ((textBox3.Text.Length > 0) && (textBox1.Text.Length > 0) && (textBox2.Text.Length > 0) && (textBox4.Text.Length > 0))

{

расчётToolStripMenuItem.Visible = true;

подоходныйНалогToolStripMenuItem.Visible = true;

профсоюзныйВзносToolStripMenuItem.Visible = true;

}

if ((textBox3.Text.Length == 0) || (textBox1.Text.Length == 0) || (textBox2.Text.Length == 0) || (textBox4.Text.Length == 0))

{

расчётToolStripMenuItem.Visible = false;

подоходныйНалогToolStripMenuItem.Visible = false;

профсоюзныйВзносToolStripMenuItem.Visible = false;

textBox5.Visible = false;

textBox6.Visible = false;

label5.Visible = false;

label6.Visible = false;

}

}

}

}

Контрольный пример:

Образец главной формы проекта:

Результат работы пункта меню «Подоходный налог»:

Результат работы пункта меню «Профсоюзный взнос»: