- •Лабораторная работа № 1
- •Лабораторная работа № 2
- •InitializeComponent();
- •Лабораторная работа № 3
- •InitializeComponent();
- •Лабораторная работа № 4
- •InitializeComponent();
- •Лабораторная работа № 5
- •InitializeComponent();
- •InitializeComponent();
- •Лабораторная работа № 6
- •InitializeComponent();
- •InitializeComponent();
- •Лабораторная работа № 7
- •InitializeComponent();
- •InitializeComponent();
- •InitializeComponent();
- •Лабораторная работа № 8
- •InitializeComponent();
- •InitializeComponent();
- •InitializeComponent();
- •InitializeComponent();
Лабораторная работа № 4
Задание:
Усовершенствовать приложение, разработанное в прошлом задании, добавив в него функцию расчѐта подоходного налога и профсоюзного взноса.
Добавить на форму элемент CheckBox и снабдить его поясняющей надписью «Член профсоюза»
Дополнить обработчики событий всех пунктов меню операторами, обеспечивающими добавление в файл сотрудника и чтение из данного файла логической переменной, определяющей, является ли сотрудник членом профсоюза (в зависимости от значения флажка).
Добавить на разработанную форму новый горизонтальный пункт меню Расчет с двумя подпунктами – Подоходный налог и Профсоюзный взнос.
Добавить на форму два элемента TextBox для отображения результатов расчета и снабдить их поясняющими надписями – «Подоходный налог» и «Профсоюзный взнос».
Сделать все нанесѐнные элементы невидимыми.
При выборе пункта Подоходный налог обеспечить отображение на форме необходимых элементов, в которые внести результат расчѐта налога, как 13 % от суммы оклада.
При выборе пункта Профсоюзный взнос обеспечить отображение на форме необходимых элементов, в которые внести результат расчѐта взноса, как 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;
}
}
}
}
Контрольный пример:
Образец главной формы проекта:
Результат работы пункта меню «Подоходный налог»:
Результат работы пункта меню «Профсоюзный взнос»: