Задача темы: изучить методику и получить навыки в разработке функциональности приложений, использующих загрузку данных из текстового файла в форму для просмотра, поиска и выборки записей по ключу, добавление и сохранение данных в текстовом файле.
Разработка: Приложение "Поиск записей в текстовом файле" для автоматического подсчета средней зарплаты в выборке.
Состав выполняемых функций:
Наращивание функциональности не предусматривается.
Защита данных предусматривается только от неквалифицированных действий пользователей. Редактирование – вручную с помощью редактора "Блокнот".
В качестве входных данных используется отдельный текстовой файл Сотрудники.txt в котором хранится база данных отдела кадров предприятия. Каждая строка файла содержит запись об одном сотруднике. Формат записи: Фамилия и инициалы – 18 символов, начиная с первой позиции; год рождения – 6 позиций; оклад – неограниченно. Тип данных определяется программно. Выходные данные программы – графическое отображение результатов в виде листбоксов и набора текстовых полей экранных форм для SmartDevice.
Шаг 1. Разработка графического интерфейса
Для программы используются три формы, примерный дизайн которых показан на рис.3.1, 3.2 и 3.3.
Главная форма ( Form1 ) на рис.3.1 содержит элементы:
Text: В текстовом файле Сотрудники.txt хранится база данных отдела кадров предприятия. Каждая строка файла содержит запись об одном сотруднике. Формат записи: фамилия и инициалы (18 позиций, фамилия должна начинаться с первой позиции), год рождения (6 позиций), оклад (неограничено); Программа по заданной фамилии выводит на экран сведения о сотруднике, подсчитывая средний оклад всех запрошенных сотрудников; (С)Родигин Л.А., 2006. Платформа MS Visual C#.Net 2003;Форма "База данных" (Form2) на рис.3.2 содержит элементы:

(рис 3.2) Главная форма(рис 3.1) База данных
(рис 3.3) Новая записьФорма "Новая запись" ( Form3 ) на рис.3.3 содержит
элементы:
textBox );Шаг 2. Открываем форму "База данных"
Для опции меню "База данных" ( menuItem1_Click ) пишем:
private void menuItem1_Click(object sender, System.EventArgs e)
{// Открываем форму базы данных
Form DB=new Form2();
DB.Show(); // выводим форму на экран
}
Шаг 3. Открываем форму "Новая запись"
Для опции меню "Новая запись" ( menuItem2_Click )
пишем:
private void menuItem2_Click(object sender, System.EventArgs e)
{// Открываем форму ввода новой записи
Form RW=new Form3();
RW.Show();
}
Шаг 4. Расширяем состав библиотек формы 2
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; // добавляем библиотеку работы с файлами using System.IO;
Шаг 5. Включаем переменные для хранения результатов вычислений
в public class Form2 : System.Windows.Forms.Form
string s_new; // переменная для хранения данных нового сотрудника int i_row=0; // число строк в выборке int i_sum=0; // сумма выборки
Шаг 6. Загружаем данные из файла (по умолчанию)
public Form2() {
InitializeComponent();
// Тестируем наличие файла с данными и создаем файл для записи значений
FileStream fin;
Try {
fin=new FileStream("Сотрудники.txt",FileMode.Open);
}
catch(IOException exc) {
MessageBox.Show ("Невозможно открыть файл.","Ошибка");
return;
}
// Считываем значения из файла
string s;
StreamReader fstr_in=new StreamReader(fin);
while((s=fstr_in.ReadLine())!=null) {
listBox1.Items.Add(s); // заполняем верхний листбокс
}
fstr_in.Close(); // закрываем файловый поток
}
Шаг 7. Создаем функцию вычисления средней в выборке
void AppListBox2() {
// вычисляем длину выбранной строки из листбокса
int i_len=s_new.Length;
string s_pay=s_new.Substring(25,i_len-25);
i_row=i_row+1; // считаем количество строк
// преобразуем текст в сумму и считаем сумму выборки
i_sum=int.Parse(s_pay)+i_sum;
float f_sum=i_sum/i_row; // считаем среднюю
textBox2.Text=f_sum.ToString(); // выводим среднюю в текстовое поле
}
Шаг 8. Создаем процедуру выборки значения из верхнего листбокса в нижний по щелчку
private void listBox1_SelectedIndexChanged
(object sender, System.EventArgs e)
{
s_new=listBox1.SelectedItem.ToString();
listBox2.Items.Add(s_new); // добавляем запись в листбокс2
AppListBox2(); // вызваем функцию вычисления средней в выборке
}
Шаг 9. Создаем процедуру удаления записей из выборки и пересчета средней по оставшимся в выборке записям
private void listBox2_SelectedIndexChanged
(object sender, System.EventArgs e)
{// если в выборке есть еще записи, которые можно удалить
if (listBox2.SelectedItem != null) {
// вычисляем длину выбранной строки из листбокса
int i_len=listBox2.SelectedItem.ToString().Length;
string s_pay=listBox2.SelectedItem.ToString().Substring(25,i_len-25);
// считаем количество строк
i_row=i_row-1;
// преобразуем текст в сумму и считаем сумму выборки
i_sum=-int.Parse(s_pay)+i_sum;
// считаем среднюю
float f_sum;
if (i_row = = 0) {f_sum=0;}
else {f_sum=i_sum/i_row;}
textBox2.Text=f_sum.ToString();
// удаляем строки из listbox2
listBox2.Items.Remove(listBox2.SelectedItem.ToString());
}
}
Шаг 10. Создаем процедуру поиска при активизации кнопки
private void button1_Click(object sender, System.EventArgs e) {
// вычисляем длину выбранной строки из TEXTбокса
int i_len=textBox1.Text.Length;
int i_row=listBox1.Items.Count+1;
//цикл просмотра списка верхнего листбокса
for(int i=0; i<listBox1.Items.Count;i++) {
// сравниваем значения текстбокса и листбокса
string s_name=listBox1.Items[i].ToString().Substring(0,i_len);
if (textBox1.Text==s_name) {i_row=i;}
}
if (i_row<=listBox1.Items.Count) {
s_new=listBox1.Items[i_row].ToString();
listBox2.Items.Add(s_new);
AppListBox2();
}
else {MessageBox.Show(textBox1.Text,"Не найдено");}
}
Шаг 11. Расширяем состав библиотек формы 3
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; // добавляем библиотеку работы с файлами using System.IO;
Шаг 12. Включаем константы размеров полей базы данных в public class Form3 : System.Windows.Forms.Form
const int l_name=18; const int l_year=6;
Шаг 13. Создаем процедуру добавления записи в файл Сотрудники.txt для кнопки button1
private void button1_Click(object sender, System.EventArgs e) {
// Проверка значений полей
if (textBox1.Text = = "") {
MessageBox.Show("Введите фамилию и инициалы сотрудника!","Ошибка");
return;
}
// год рождения должен вводиться цифрами
if (!char.IsDigit(textBox2.Text[0])) {
textBox2.Text = "1940";
MessageBox.Show("Введите год рождения в поле 'г.д.'!","Ошибка");
return;
}
if (!char.IsDigit(textBox3.Text[0])) {
textBox3.Text = "0";
MessageBox.Show("Введите цифру в поле 'Оклад'!","Ошибка");
return;
}
/* Тестируем наличие файла с данными о сотрудниках и
создаем файл для записи значений */
FileStream fin;
try {
fin=new FileStream("Сотрудники.txt",FileMode.OpenOrCreate);
fin.Close(); }
catch(IOException exc) {
MessageBox.Show ("Невозможно открыть файл.","Ошибка");
return;}
//форматируем значения
string s_field1=textBox1.Text;
if (s_field1.Length<l_name) {
for (int i=s_field1.Length; i<l_name; i++)
s_field1=s_field1+" ";
}
string s_field2="|"+textBox2.Text; // пользовательский разделитель данных!
if (s_field2.Length<l_year) {
for (int i=s_field2.Length; i<l_year; i++)
s_field2=s_field2+" ";
}
string s_field3="|"+textBox3.Text; // пользовательский разделитель данных!
StreamWriter fin_out; // открываем файл для записи
try {fin_out=new StreamWriter("Сотрудники.txt", true);}
catch(IOException exc) {
MessageBox.Show ("Невозможно открыть файл.","Ошибка");
return;}
string s=s_field1+s_field2+s_field3+"\r\n";
fin_out.Write(s);
fin_out.Close();
MessageBox.Show(s_field1+"\n"+s_field2+" г.р.\n"+s_field3+
" у.е.- оклад.","Запись добавлена");
// Обнуляем поля
textBox1.Text="";
textBox2.Text="1940";
textBox3.Text="0";
}
Задача темы: изучить методику и получить навыки в разработке функциональности приложений, использующих загрузку данных из текстового файла в форму для просмотра, поиска и выборки записей по ключу, добавление и сохранение данных в текстовом файле.
Разработка: Приложение "Поиск записей в текстовом файле" для автоматического подсчета средней зарплаты в выборке.
Состав выполняемых функций:
Наращивание функциональности не предусматривается.
Защита данных предусматривается только от неквалифицированных действий пользователей. Редактирование – вручную с помощью редактора "Блокнот".
В качестве входных данных используется отдельный текстовой файл Сотрудники.txt в котором хранится база данных отдела кадров предприятия. Каждая строка файла содержит запись об одном сотруднике. Формат записи: Фамилия и инициалы – 18 символов, начиная с первой позиции; год рождения – 6 позиций; оклад – неограниченно. Тип данных определяется программно. Выходные данные программы – графическое отображение результатов в виде листбоксов и набора текстовых полей экранных форм для SmartDevice.
Шаг 1. Разработка графического интерфейса
Для программы используются три формы, примерный дизайн которых показан на рис.3.1, 3.2 и 3.3.
Главная форма ( Form1 ) на рис.3.1 содержит элементы:
Text: В текстовом файле Сотрудники.txt хранится база данных отдела кадров предприятия. Каждая строка файла содержит запись об одном сотруднике. Формат записи: фамилия и инициалы (18 позиций, фамилия должна начинаться с первой позиции), год рождения (6 позиций), оклад (неограничено); Программа по заданной фамилии выводит на экран сведения о сотруднике, подсчитывая средний оклад всех запрошенных сотрудников; (С)Родигин Л.А., 2006. Платформа MS Visual C#.Net 2003;Форма "База данных" (Form2) на рис.3.2 содержит элементы:

(рис 3.2) Главная форма(рис 3.1) База данных
(рис 3.3) Новая записьФорма "Новая запись" ( Form3 ) на рис.3.3 содержит
элементы:
textBox );Шаг 2. Открываем форму "База данных"
Для опции меню "База данных" ( menuItem1_Click ) пишем:
private void menuItem1_Click(object sender, System.EventArgs e)
{// Открываем форму базы данных
Form DB=new Form2();
DB.Show(); // выводим форму на экран
}
Шаг 3. Открываем форму "Новая запись"
Для опции меню "Новая запись" ( menuItem2_Click )
пишем:
private void menuItem2_Click(object sender, System.EventArgs e)
{// Открываем форму ввода новой записи
Form RW=new Form3();
RW.Show();
}
Шаг 4. Расширяем состав библиотек формы 2
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; // добавляем библиотеку работы с файлами using System.IO;
Шаг 5. Включаем переменные для хранения результатов вычислений
в public class Form2 : System.Windows.Forms.Form
string s_new; // переменная для хранения данных нового сотрудника int i_row=0; // число строк в выборке int i_sum=0; // сумма выборки
Шаг 6. Загружаем данные из файла (по умолчанию)
public Form2() {
InitializeComponent();
// Тестируем наличие файла с данными и создаем файл для записи значений
FileStream fin;
Try {
fin=new FileStream("Сотрудники.txt",FileMode.Open);
}
catch(IOException exc) {
MessageBox.Show ("Невозможно открыть файл.","Ошибка");
return;
}
// Считываем значения из файла
string s;
StreamReader fstr_in=new StreamReader(fin);
while((s=fstr_in.ReadLine())!=null) {
listBox1.Items.Add(s); // заполняем верхний листбокс
}
fstr_in.Close(); // закрываем файловый поток
}
Шаг 7. Создаем функцию вычисления средней в выборке
void AppListBox2() {
// вычисляем длину выбранной строки из листбокса
int i_len=s_new.Length;
string s_pay=s_new.Substring(25,i_len-25);
i_row=i_row+1; // считаем количество строк
// преобразуем текст в сумму и считаем сумму выборки
i_sum=int.Parse(s_pay)+i_sum;
float f_sum=i_sum/i_row; // считаем среднюю
textBox2.Text=f_sum.ToString(); // выводим среднюю в текстовое поле
}
Шаг 8. Создаем процедуру выборки значения из верхнего листбокса в нижний по щелчку
private void listBox1_SelectedIndexChanged
(object sender, System.EventArgs e)
{
s_new=listBox1.SelectedItem.ToString();
listBox2.Items.Add(s_new); // добавляем запись в листбокс2
AppListBox2(); // вызваем функцию вычисления средней в выборке
}
Шаг 9. Создаем процедуру удаления записей из выборки и пересчета средней по оставшимся в выборке записям
private void listBox2_SelectedIndexChanged
(object sender, System.EventArgs e)
{// если в выборке есть еще записи, которые можно удалить
if (listBox2.SelectedItem != null) {
// вычисляем длину выбранной строки из листбокса
int i_len=listBox2.SelectedItem.ToString().Length;
string s_pay=listBox2.SelectedItem.ToString().Substring(25,i_len-25);
// считаем количество строк
i_row=i_row-1;
// преобразуем текст в сумму и считаем сумму выборки
i_sum=-int.Parse(s_pay)+i_sum;
// считаем среднюю
float f_sum;
if (i_row = = 0) {f_sum=0;}
else {f_sum=i_sum/i_row;}
textBox2.Text=f_sum.ToString();
// удаляем строки из listbox2
listBox2.Items.Remove(listBox2.SelectedItem.ToString());
}
}
Шаг 10. Создаем процедуру поиска при активизации кнопки
private void button1_Click(object sender, System.EventArgs e) {
// вычисляем длину выбранной строки из TEXTбокса
int i_len=textBox1.Text.Length;
int i_row=listBox1.Items.Count+1;
//цикл просмотра списка верхнего листбокса
for(int i=0; i<listBox1.Items.Count;i++) {
// сравниваем значения текстбокса и листбокса
string s_name=listBox1.Items[i].ToString().Substring(0,i_len);
if (textBox1.Text==s_name) {i_row=i;}
}
if (i_row<=listBox1.Items.Count) {
s_new=listBox1.Items[i_row].ToString();
listBox2.Items.Add(s_new);
AppListBox2();
}
else {MessageBox.Show(textBox1.Text,"Не найдено");}
}
Шаг 11. Расширяем состав библиотек формы 3
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; // добавляем библиотеку работы с файлами using System.IO;
Шаг 12. Включаем константы размеров полей базы данных в public class Form3 : System.Windows.Forms.Form
const int l_name=18; const int l_year=6;
Шаг 13. Создаем процедуру добавления записи в файл Сотрудники.txt для кнопки button1
private void button1_Click(object sender, System.EventArgs e) {
// Проверка значений полей
if (textBox1.Text = = "") {
MessageBox.Show("Введите фамилию и инициалы сотрудника!","Ошибка");
return;
}
// год рождения должен вводиться цифрами
if (!char.IsDigit(textBox2.Text[0])) {
textBox2.Text = "1940";
MessageBox.Show("Введите год рождения в поле 'г.д.'!","Ошибка");
return;
}
if (!char.IsDigit(textBox3.Text[0])) {
textBox3.Text = "0";
MessageBox.Show("Введите цифру в поле 'Оклад'!","Ошибка");
return;
}
/* Тестируем наличие файла с данными о сотрудниках и
создаем файл для записи значений */
FileStream fin;
try {
fin=new FileStream("Сотрудники.txt",FileMode.OpenOrCreate);
fin.Close(); }
catch(IOException exc) {
MessageBox.Show ("Невозможно открыть файл.","Ошибка");
return;}
//форматируем значения
string s_field1=textBox1.Text;
if (s_field1.Length<l_name) {
for (int i=s_field1.Length; i<l_name; i++)
s_field1=s_field1+" ";
}
string s_field2="|"+textBox2.Text; // пользовательский разделитель данных!
if (s_field2.Length<l_year) {
for (int i=s_field2.Length; i<l_year; i++)
s_field2=s_field2+" ";
}
string s_field3="|"+textBox3.Text; // пользовательский разделитель данных!
StreamWriter fin_out; // открываем файл для записи
try {fin_out=new StreamWriter("Сотрудники.txt", true);}
catch(IOException exc) {
MessageBox.Show ("Невозможно открыть файл.","Ошибка");
return;}
string s=s_field1+s_field2+s_field3+"\r\n";
fin_out.Write(s);
fin_out.Close();
MessageBox.Show(s_field1+"\n"+s_field2+" г.р.\n"+s_field3+
" у.е.- оклад.","Запись добавлена");
// Обнуляем поля
textBox1.Text="";
textBox2.Text="1940";
textBox3.Text="0";
}
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.