Система для обеспечения работы книгохранилища библиотеки
Министерство
образования и науки Российской Федерации
Федеральное
государственное бюджетное образовательное учреждение
высшего
профессионального образования
«Владимирский
государственный университет
имени
Александра Григорьевича и Николая Григорьевича Столетовых»
(ВлГУ)
Кафедра
«Физика и прикладная математика»
Пояснительная
записка к курсовой работе по дисциплине «Объектно-ориентированное
программирование»
«Система
для обеспечения работы книгохранилища библиотеки»
Выполнил:
ст. гр. ИТс-113
Кузин Ю.С.
Принял:
доцент каф. ФиПМ
Лексин А.Ю.
Владимир
2014
Анализ задания
Написать программу, которая ведет учет книг в
книгохранилище библиотеки. Программа должна обеспечивать ввод данных,
касательной каждой книги, поступающей в библиотеку (название книги, автор,
количество станиц в книге, год издания, ISBN, издательство). Информация о книге
должна заноситься максимально подробная. Каждой книге должен присваивается свой
идентификационный номер
Структура меню приложения должна быть удобной и
обеспечивать легкий доступ к любому из разделов.
Разработка библиотеки классов
Диаграмма классов
Рисунок 2.1 показывает классы, их атрибуты и
операторы, а также взаимосвязи этих классов.
Рисунок 2.1 - Схема классов программы
Структура программы состоит из основного класса
Book и двух дополнительных Autor и Publisher. В данном классе имеются шесть
полей, которые доступны только внутри класса, при этом значения полей
id_publisher и id_autor передаются непосредственно из классов Autor и Publisher
по идентификатору. В данном классе содержится конструктор, который
инициализирует эти шесть полей. Класс содержит метод ToString для вывода
информацию о книге.
Класс Autor cодержит в себе конструктор, который
инициализирует поля firstname, lastname и middlename. Класс так же содержит
метод ToString для вывода информацию об авторе.
Класс Publisher cодержит в себе конструктор
который инициализирует поля address, nazvanie и sity. Класс так же содержит
метод ToString для вывода информацию об издательстве.
Класс Form создает формы ввода параметром для
книги, автора и издательства.
Выбор языка программирования
Данный программный продукт был реализован с
помощью языка C#.
В C# реализовано многое количество вещей,
которые либо отсутствуют в C++, либо имитируются специальным образом. Например,
в C# выделено понятие интерфейса и абстрактного класса в явную выделено понятие
свойств, запрещено множественное наследование от классов (зато можно
наследоваться от интерфейсов), деструктор играет незначительную роль.
Аппарат ООП C# более продуманный, нежели в C++.
Основное преимущество C# - ускоренная разработка, значительно более простая
отладка (в частности, потому что там нет указателей), больше возможностей для
автоматизированных средств тестирования из-за более жестких ограничений.
Написание Windows - приложений с использованием Windows - Forms проще, чем на
MFC или тем более Win32API (имеется в виду интерфейсная часть), при этом нужно
признать для доступа ко многим возможностям необходимо импортировать WIN32API.
Реализация классов
Система классов реализована на языке C#.Program
запрашивает ввод данных из классов.
) Класс Book :
а) id_autor - переменная содержит имя, фамилию и
отчество автора с номером id в списке авторов.
б) id_publisher - переменная содержит город,
название и адрес издательства с номером id в списке издательств.
в) pager - количество станиц в книге.
г) title - название книги.
д) year - год издания книги.
е) ISBN - Международный Стандартный Номер Книги.
) Класс Autor:
а) firstname - имя автор.
б) lastname - фамилия автора.
в) middlename - отчество автора.
) Класс Publisher:
а) nazvanie - название издательства.
б) sity - город издательства.
в) address - адрес издательства.
Класс Form содержит конструктор выделение памяти
для сохранения данных, методы добавления данных о книга, авторах, издательствах
и вывода их на экран.
Разработка тестового приложения
Методика тестирования
Тестирование - это процесс многократного
выполнения программы с целью нахождения ошибок. Тестирование тем более
эффективно, чем больше ошибок выявлено.
Отладка - это деятельность, направленная на
установление точной причины обнаруженной ошибки и её устранение. Основными
инструментами отладки являются точки контрольного останова и окно наблюдения за
переменными.
Тестовое приложение разработано на языке C#.
Пользователю необходимо заполнить все данные о
книге, начиная в автора и издательства, а затем перейти к основному окну и
ввести полную информацию о книге в соответствующие строки. После добавления
книги в список повторить проделанные действия для следующей.
Структура тестового приложения
Программа выглядит следующим образом:
Рисунок 3.1 - меню программы
На рисунке видно, что меню программы состоит из
четырех основных разделов. Для начала работы в программе пользователю
необходимо добавить автора и издательство в список. Затем заполнить поля в
разделе "Добавление книги в список" и нажать кнопку "Добавить в
список". Для того, чтобы показать весть список введенных книг необходимо
нажать кнопку "Вывести список". Список будет отображен в поле справа.
Результаты тестирования
Рисунок 4.1 - Тестирование программы
На рисунке 4.1 показано, что пользователю
необходимо ввести данные об авторе: Фамилию, Имя, Отчество и нажать клавишу
добавить. Результат сохраняется. Так необходимо заполнить данные и об
издательстве.
Рисунок 4.2 - тестирование программы
Затем, как показано на рисунке 4.2 необходимо
заполнить основные поля для добавления книги, введя название, год издания,
ISBN, количество станиц и выбрать из списка авторов и издательств, добавленных
ранее, нужную строку и нажать кнопку "Добавить с список".
Рисунок 4.3 - тестирование программы
На рисунке 4.3 показаны все данные о книгах.
Список использованных источников
1.
Герберт Шилдт - C#. Учебный курс.
.
А. В. Фролов, Г. В. Фролов- Язык C#. Самоучитель.
.
ru.wikipedia.org/wiki/C_Sharp- пояснение о языке C#.
Приложение А. Система классов
Класс Autor
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Linq;System.Text;с_формами
{Autor
{string lastname;string
firstname;string middlename;Autor(string lastname, string firstname, string
middlename)
{.lastname=lastname;.firstname =
firstname;.middlename = middlename;
}override string ToString()
{ программа
учет книгаstring.Format(this.lastname + " " + this.firstname +
" " + this.middlename);
}
}
}
Класс
PublisherSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Linq;System.Text;с_формами
{Publisher
{string nazvanie;string sity;string
address;Publisher(string nazvanie, string sity, string address)
{.nazvanie=nazvanie;.sity = sity
;.address =address ;
}override string ToString()
{string.Format(this.nazvanie +
"; Город:
" + this.sity + "; Адрес:
" + this.address);
}
}
}
Класс
BookSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Linq;System.Text;с_формами
{
//static class Program1Book
{string id_autor;string title;string
year;string ISBN;string pages;string id_publicher;Book(string id_autor, string
title, string year, string ISBN, string pages, string id_publicher)
{.id_autor = id_autor;.title = title;.year
= year;.ISBN = ISBN;.pages = pages;.id_publicher = id_publicher;
}override string ToString()
{string.Format("Автор:
" + this.id_autor + Environment.NewLine + "Название
книги:
" + this.title + "; Год
издания:
" + this.year + "; ИСБН:"
+ this.ISBN + "; Количество
станиц:
" + this.pages + Environment.NewLine + "Издательство:
" + this.id_publicher + Environment.NewLine);
}
}
}
Приложение Б. Программный код тестового
приложения
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;с_формами
{partial class Книгохранилище
: Form
{Книгохранилище()
{();
//---------------------------------------------------------------.Add(new
Autor("Никитин",
"Аркадий",
"Андреевич"));
autors.Add(new Autor("Сергеев",
"Иван", "Викторович"));.Add(new Autor("Борисов",
"Николай", "Иванович"));
foreach (object i in autors)
{.Items.Add(i.ToString());
}
//---------------------------------------------------------------.Add(new
Publisher("АБВ",
"Москва",
"ул.Ленина
24"));.Add(new Publisher("Дрофа",
"Воронеж",
"ул.Мечникова
45"));.Add(new Publisher("РосПечать",
"Нижний
Новгород",
"ул.Строителей
156"));(object i in publishers)
{.Items.Add(i.ToString());
}
//---------------------------------------------------------------
} <object> books = new
List<object>();<object> autors = new
List<object>();<object> publishers = new List<object>();void
textBox1_TextChanged(object sender, EventArgs e)
{
}
// кнопка
добавления
книги
в
списокvoid
button1_Click_1(object sender, EventArgs e)
{.Add(new
Book(comboBox1.Text,textBox5.Text, textBox6.Text, textBox7.Text,textBox8.Text,
comboBox2.Text));
}
// кнопка
вывода
списка
книгvoid
button2_Click_1(object sender, EventArgs e)
{id = 0;.Clear();(object n in books)
{.AppendText(id+")
"+n.ToString() + Environment.NewLine);
id++;
}
}
// кнопка добавления автора в список
private void button4_Click(object
sender, EventArgs e)
{.Add(new Autor (textBox3.Text,
textBox2.Text,textBox4.Text ));.Items.Clear();(object i in autors)
{.Items.Add(i.ToString());
}
}
// кнопка
добавления
издательства
в
списокvoid
button5_Click(object sender, EventArgs e)
{.Add(new Publisher(textBox9.Text,
textBox10.Text, textBox11.Text));.Items.Clear();(object i in publishers)
{.Items.Add(i.ToString());
}
// кнопка
удаления
книги
из
спискаvoid
button6_Click(object sender, EventArgs e)
{.RemoveAt(Convert.ToInt32(textBox12.Text));id
= 0;.Clear();(object n in books)
{.AppendText(id + ") " +
n.ToString() + Environment.NewLine);
id++;
}
}
}
}