Задание на курсовую работу
Задачей курсового проекта является разработка информационной системы для заданной предметной области с использованием заданных структур данных и алгоритмов.
Предметная область - Обслуживание читателей в библиотеке
Метод хеширования - Закрытое хеширование с квадратичным опробованием
Метод сортировки - Распределением
Вид списка- Линейный двунаправленный
Метод обхода дерева - Симметричный
Алгоритм поиска слова в тексте - Боуера и Мура (БМ)
Обслуживание читателей в библиотеке
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
klausms