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

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

Задание:

Разработать форму с меню, дающую пользователю возможность ввода данных сотрудников и сохранение их в индивидуальных файлах.

  1. Создать форму, нанести на неѐ меню Файл с подпунктами Открыть, Создать, Сохранить, Сохранить как, Закрыть.

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

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

  4. Написать программу, обеспечивающую обработку всех пунктов меню.

  5. При выборе пункта меню Открыть обеспечить пользователю возможность выбора имени файла, отображение на форме всех нанесенных на неѐ элементов, чтение информации из выбранного файла и отображение соответствующих данных в элементах типа TextBox. Имя выбранного файла отобразить в заголовке формы.

  6. При выборе пункта Создать обеспечить отображение на форме всех нанесѐнных на неѐ элементов и возможность ввода в элементы типа TextBox соответствующих данных. В заголовке формы ввести текст «Новый сотрудник».

  7. При выборе пункта Сохранить обеспечить проверку, были ли введѐнные данные ранее сохранены в файле. Если данные уже были сохранены, то перезаписать введѐнные данные в уже существующий файл. Если данные не были сохранены, то предложить пользователю ввести имя файла, сохранить введѐнные данные в указанном файле. Имя выбранного файла отобразить в заголовке формы.

  8. При выборе пункта меню Сохранить как предложить пользователю ввести имя файла, сохранить введѐнные данные в указанном файле. Имя выбранного файла отобразить в заголовке формы.

  9. При выборе пункта меню Закрыть спросить пользователя о необходимости сохранения данных. Если дан положительный ответ, то выполнить те же действия, что и в пункте Сохранить. После этого сделать все нанесѐнные на форму элементы управления невидимыми, заголовок формы очистить.

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

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

  2. Обеспечить доступность пунктов меню только в необходимые моменты времени.

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

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

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.IO;

using System.Windows.Forms;

namespace Лабораторная_работа_3

{

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.Close();

label1.Visible = false;

label2.Visible = false;

label3.Visible = false;

label4.Visible = false;

textBox1.Visible = false;

textBox2.Visible = false;

textBox3.Visible = false;

textBox4.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.Close();

label1.Visible = false;

label2.Visible = false;

label3.Visible = false;

label4.Visible = false;

textBox1.Visible = false;

textBox2.Visible = false;

textBox3.Visible = false;

textBox4.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 = true;

сохранитьКакToolStripMenuItem.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.Close();

this.Text = saveFileDialog.FileName;

}

}

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

{

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

сохранитьКакToolStripMenuItem.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)

{

StreamReader streamReader = new StreamReader(openFileDialog.FileName);

string line, line2, line3, line4;

line = streamReader.ReadLine();

line2 = streamReader.ReadLine();

line3 = streamReader.ReadLine();

line4 = streamReader.ReadLine();

textBox1.Text = line;

textBox2.Text = line2;

textBox3.Text = line3;

textBox4.Text = line4;

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.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.Close();

this.Text = saveFileDialog.FileName;

}

}

}

}

}

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

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

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

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

Результат работы пункта меню «сохранить»:

Результат работы пункта меню «сохранить как»:

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