- •Содержание
- •Программа практики
- •1 Объектно-ориентированный анализ и проектирование системы
- •1.1 Сущность задачи
- •1.2 Проектирование модели
- •2 Вычислительная система
- •2.1 Инструменты разработки
- •3 Проектирование задачи
- •3.1 Требования к приложению
- •3.2 Концептуальный прототип
- •3.3 Организация данных
- •3.5 Проектирование справочной системы приложения
- •4 Описание программного средства
- •4.1 Функциональное назначение
- •5 Программирование на языке с# в среде VisualStudio
- •5.1 Тема: Линейные алгоритмы
- •5.2 Тема: Выполнение преобразований над числами
- •5.3 Тема: Разветвляющие алгоритмы
- •5.4 Тема: Циклические алгоритмы
- •5.5 Тема: Одномерные массивы
- •5.6 Тема: Двумерные массивы
- •5.9 Тема: Создание Windows-приложения по индивидуальному заданию
- •5.10 Тема: Работа с простейшими классами
- •5. 12 Тема: Работа с файлами
- •Литература
5. 12 Тема: Работа с файлами
5. 13 Тема: Работа с семействами (коллекциями)
Общая постановка задачи.
Для книг, хранящихся в библиотеке, задаются: регистрационный номер книги, автор, название, год издания, издательство, количество страниц. Вывести список книг с фамилиями авторов в алфавитном порядке, изданных после заданного года.
Текст программы представлен ниже:
namespacelab12
{
[Serializable]
publicpartialclassForm1 : Form
{
List<Bibla> words = newList<Bibla>();
List<Bibla> words2 = newList<Bibla>();
public Form1()
{
InitializeComponent();
}
privatevoid Form1_Load(object sender, EventArgs e)
{
Deserialize();
}
privatevoid Form1_FormClosing(object sender, FormClosingEventArgs e)
{
}
privatevoid button1_Click(object sender, EventArgs e)
{
Serialize(Convert.ToInt32(textBox1.Text), textBox2.Text, textBox3.Text, Convert.ToInt32(textBox4.Text), textBox5.Text, Convert.ToInt32(textBox6.Text));
Deserialize();
}
publicvoid Serialize(intRegisterNumberBook, string Author, stringNameBook, intYearBook, stringCreater, intCountPage)
{
try
{
//создаемобъекткоторыйбудетсериализован
words.Add(newBibla { RegisterNameBook = RegisterNumberBook, Author = Author, NameBook = NameBook,YearBook = YearBook, Creater = Creater, CountPage = CountPage });
//откроем поток для записи в файл
FileStreamfs = newFileStream("file.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
BinaryFormatter bf = newBinaryFormatter();
//сериализация
bf.Serialize(fs, words);
fs.Close();
}
catch(InvalidOperationException s)
{
MessageBox.Show(s.ToString());
}
}
publicvoid Serialize()
{
try
{
//words.Add(new Bibla { RegisterNameBook = RegisterNumberBook, Author = Author, NameBook = NameBook, YearBook = YearBook, Creater = Creater, CountPage = CountPage });
//откроем поток для записи в файл
FileStreamfs = newFileStream("file.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
BinaryFormatter bf = newBinaryFormatter();
//сериализация
bf.Serialize(fs, words);
fs.Close();
}
catch (InvalidOperationException s)
{
MessageBox.Show(s.ToString());
}
}
publicvoidDeserialize()
{
listBox1.Items.Clear();
FileStreamfs = newFileStream("file.dat", FileMode.Open, FileAccess.Read, FileShare.Read);
BinaryFormatter bf = newBinaryFormatter();
words = (List<Bibla>)bf.Deserialize(fs);
fs.Close();
foreach (Bibla w in words)
{
listBox1.Items.Add("Регистрационныйномер: "+w.RegisterNameBook+" Автор: "+w.Author+" Названиекниги: "+w.NameBook+" Годвыпуска: "+w.YearBook+" Издательство: "+w.Creater+" Количествостраниц: "+w.CountPage);
}
}
privatevoid listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
privatevoid button2_Click(object sender, EventArgs e)
{
MessageBox.Show("Записьсназваниемкниги:"+ words[listBox1.SelectedIndex].NameBook+" удалена");
words.RemoveAt(listBox1.SelectedIndex);
Serialize();
Deserialize();
}
privatevoid textBox7_TextChanged(object sender, EventArgs e)
{
}
}
}
Рисунок 16.
Заключение
За время практики по созданию и сопровождению программного обеспечения был изучены процессы создания, внедрения и сопровождения программных приложений в различных средах программирования. Во время практики удалось накопить неоценимый опыт в разработке приложений в интегрированной среде визуального программированияMicrosoftVisualC# 2012 Professional, развить умения самостоятельно находить оптимальный метод решения задачи. Кроме того, изучить принципы организации и технологии реализации программного обеспечения, развить умения разработки программ в соответствии с требованиями технического задания, обеспечивая высокий уровень качества программного обеспечения и экономической эффективности. Получить навыки оформления комплекта документации на созданное программное обеспечение.
При создании программных приложений входящих в обязательную программу практики были отработаны навыки владения методами надежного программирования и изучены способы определения экономической себестоимости и эффективности разработки программного обеспечения
