Задание на курсовую работу
Задачей курсового проекта является разработка информационной системы для заданной предметной области с использованием заданных структур данных и алгоритмов.
- Предметная область - Обслуживание читателей в библиотеке
- Метод хеширования - Закрытое хеширование с квадратичным опробованием
- Метод сортировки - Распределением
- Вид списка- Линейный двунаправленный
- Метод обхода дерева - Симметричный
Алгоритм поиска слова в тексте - Боуера и Мура (БМ)
Обслуживание читателей в библиотеке
1. Информационная система для предметной области «Обслуживание читателей в библиотеке» должна осуществлять ввод, хранение, обработку и вывод данных о:
- читателях;
- книгах;
- выдаче и приеме книг от читателей.
2. Данные о каждом читателе должны содержать:
- № читательского билета – строка формата «ANNNN-YY», где A – буква, обозначающая права доступа читателя (А – только абонемент, Ч – только читальный зал, В – читальный зал и абонемент), NNNN – порядковый номер регистрации (цифры), YY – последние две цифры номера года регистрации;
- ФИО – строка;
- Год рождения – целое;
- Адрес – строка;
- Место работы/учебы – строка.
Примечание – длина строк (кроме № читательского билета) определяется студентом самостоятельно.
3. Данные о читателях должны быть организованны в виде хеш-таблицы, первичным ключом которой является «№ читательского билета» Метод хеширования определяется вариантом задания.
4. Данные о каждой книге должны содержать:
- Шифр – строка формата «NNN.MMM», где NNN – номер тематического раздела (цифры), MMM – порядковый номер книги в разделе (цифры);
- Автор(ы) – строка;
- Название – строка;
- Издательство – строка;
- Год издания – целое;
- Количество экземпляров всего – целое;
- Количество экземпляров в наличии – целое;
Примечание – длина строк (кроме Шифра) определяется студентом самостоятельно.
5. Данные о выдаче или приеме книг от читателей должны содержать:
- № читательского билета – строка, формат которой соответствует аналогичной строке в данных о читателях;
- Шифр – строка, формат которой соответствует аналогичной строке в данных о книгах;
- Дата выдачи - строка;
- Дата возврата - строка.
namespace LibraryReaders
{
public partial class Form1 : Form
{
HashTable readers = new HashTable(1000); //читатели
AVLTree books = new AVLTree(); //книжки
Listilareral controls = new ListBilareral(); //учет выданных-сданных
int readerIds = 0; //для номеров читатели
public Form1()
{
InitializeComponent();
comboBoxReaderType.SelectedIndex = 0;
}
//заполнить контролы читателями
void loadReaders()
{
List<Reader> list = readers.getList();
comboBoxClient.Items.Clear();
comboBoxClientReturn.Items.Clear();
dataGridViewReaders.RowCount = list.Count;
for (int i=0; i<list.Count; i++)
{
comboBoxClient.Items.Add(list[i].bilet);
comboBoxClientReturn.Items.Add(list[i].bilet);
dataGridViewReaders.Rows[i].Cells[0].Value = list[i].bilet;
dataGridViewReaders.Rows[i].Cells[1].Value = list[i].fio;
dataGridViewReaders.Rows[i].Cells[2].Value = list[i].yearBirthday;
dataGridViewReaders.Rows[i].Cells[3].Value = list[i].adres;
dataGridViewReaders.Rows[i].Cells[4].Value = list[i].placeWork;
dataGridViewReaders.Rows[i].Cells[5].Value = "Снятие с обслуживания";
}
}
//заполнить контролы книгами
void loadBooks()
{
List<Book> list = books.getList();
comboBoxBook.Items.Clear();
dataGridViewBooks.RowCount = list.Count;
for (int i = 0; i < list.Count; i++)
{
comboBoxBook.Items.Add(list[i].shifr);
dataGridViewBooks.Rows[i].Cells[0].Value = list[i].shifr;
dataGridViewBooks.Rows[i].Cells[1].Value = list[i].avtors;
dataGridViewBooks.Rows[i].Cells[2].Value = list[i].name;
dataGridViewBooks.Rows[i].Cells[3].Value = list[i].izdatelstvo;
dataGridViewBooks.Rows[i].Cells[4].Value = list[i].year;
dataGridViewBooks.Rows[i].Cells[5].Value = list[i].numberAll;
dataGridViewBooks.Rows[i].Cells[6].Value = list[i].numberNow;
dataGridViewBooks.Rows[i].Cells[7].Value = "Удалить";
}
}
//взять книгу
private void buttonTake_Click(object sender, EventArgs e)
{
if (comboBoxClient.SelectedIndex < 0)
{
MessageBox.Show("Сначала выберете клиента");
return;
}
if (comboBoxBook.SelectedIndex < 0)
{
MessageBox.Show("Сначала выберете книгу");
return;
}
Book book = books.find((string)comboBoxBook.Items[comboBoxBook.SelectedIndex]);
//проверка, есть ли в наличии
if (book.numberNow == 0)
{
MessageBox.Show("Нет в наличии");
return;
}
controls.add(new ControlBook((string)comboBoxClient.Items[comboBoxClient.SelectedIndex],
(string)comboBoxBook.Items[comboBoxBook.SelectedIndex]));
book.numberNow--;
loadControls();
loadBooks();
MessageBox.Show("Выдана");
}
Содержание архива
- исходный код на C# для Visual Studio
Телеграм
-