Автор: Пользователь скрыл имя, 11 Апреля 2011 в 11:54, курсовая работа
Разработать приложение для контроля работы библиотеки и учета книг. Помимо данных о книгах (название, автор, жанр), необходимо хранить и другие сведения, например о библиотекаре, выдавшем книгу, стеллаже и полке, содержащих книгу. Все данные должны храниться в базе данных. Приложение должно иметь функционал, позволяющий добавлять записи во все таблицы базы, а также изменять и удалять их.
Постановка задачи. 3
Введение 4
1. Выбор инструментария 5
2. Разработка предметной области 6
3. Реализация 9
3.1. Реализация на языке высокого уровня 9
3.2 Дополнительные возможности приложения 12
3.2.1. Триггеры 12
3.2.2. Транзакции 13
3.2.3. Экспорт и импорт данных 15
3.3. Создание отчетов 17
Заключение 19
Список использованной литературы 20
Приложение 21
В данной работе отчеты реализованы для наиболее содержательных и важных таблиц Librarian и Books. Для реализации было добавлено 2 окна(по одному для каждой таблицы), в которые был добавлен компонент CristalReportViewer c уже созданным шаблоном отчета. Т.к. добавление отчета не требует никакой реализации и написания кода, для примера приведем снимки работы приложения.
На рисунке 3.3.1 представлена загрузка данных из базы и их отображение для таблицы Readers. Для добавления отчета по данной таблице пользователю необходимо нажать кнопку «Отчет».
Рисунок 3.3.1 Пример работы программы
При нажатии кнопки «Отчет» появляется окно с визуальным отображением отчета(рисунок 3.3.2) и возможностью его форматировать и изменять по выбору пользователя.
Рисунок 3.3.2 Пример отчета.
Аналогичные действия производятся и над таблицей Librarian.
В результате выполнения данной курсовой работы на языке
программирования С# было написано ПО для учета книг в библиотеке. Приложение хранит всю информацию в базе данных. Есть возможность добавления, изменения, удаления записей. Также реализован поиск по отдельным полям. Данные могут быть отсортированы и представлены пользователю в необходимом виде. Некоторые проверки на правильность данных выполняются с помощью триггеров. Имеется возможность экспорта данных в XML-файл и импорта их оттуда. В программу добавлена возможность создавать отчеты. Приложение имеет дружественный интерфейс. Программа полностью работоспособна и удовлетворяет всем поставленным требованиям.
Руководствуясь
тем, что объем кода приложения велик,
а также тем, что часть функций
описана в пояснительной
Util.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Xml;
namespace WindowsFormsApplication3
{
public static class Util
{
public delegate void ChoosFunction(string value);
public delegate void setColumn(DataGridView table);
public static string ConnectionString = "SERVER = localhost; database = Library; uid = root; password = star;";
//public static void SetColumnNameReaders(
public static void UpdateGrid(string tableName, string colName, object value, string ID)
{
using
(MySqlConnection connection = new MySqlConnection(
{
connection.Open();
MySqlCommand command = new MySqlCommand("UPDATE " + tableName + " SET " + colName + " = " + "'"
+ value.ToString() + "'" + " WHERE " + "ID = '" + ID + "'", connection);
command.ExecuteNonQuery();
}
}
public static void AddRow(DataGridViewRow row, string tableName)
{
using
(MySqlConnection connection = new MySqlConnection(
{
connection.Open();
MySqlCommand command = new MySqlCommand("INSERT " + tableName + " VALUES( NULL", connection);
for (int i = 1; i < row.Cells.Count; i++)
{
command.CommandText += ", " + (row.Cells[i].Value.ToString() == "" ? "NULL" : ("'" + row.Cells[i].Value.ToString() + "'"));
}
command.CommandText += ")";
command.ExecuteNonQuery();
}
}
public static void DeleteRow(DataGridViewRow row, string tableName)
{
using
(MySqlConnection connection = new MySqlConnection(
{
connection.Open();
MySqlCommand
command = new MySqlCommand("DELETE
FROM " + tableName + " WHERE ID = '" + row.Cells["ID"].Value.
, connection);
// command.ExecuteNonQuery();
}
}
public static void SetColumnNames (DataGridView table, string tableName)
{
switch (tableName)
{
case "Books": SetColumnNameBooks(table);
break;
case "Readers": SetColumnNameReaders(table);
break;
case "Rooms": SetColumnNameRooms(table);
break;
case "Shelf": SetColumnNameShelf(table);
break;
case "Stellash": SetColumnNameStellash(table);
break;
case "Librarian": SetColumnNameLibrarian(table);
break;
case "Information": SetColumnNameInformation(
break;
}
}
public static void
SetColumnNameBooks(DataGridVie
{
table.Columns[0].HeaderText = "ИД";
table.Columns[1].HeaderText = "Название книги";
table.Columns[2].HeaderText = "Жанр`";
table.Columns[3].HeaderText = "Автор";
table.Columns[4].HeaderText = "Издательство";
table.Columns[5].HeaderText = "Год издания";
table.Columns[6].HeaderText = "ИД_полки";
table.Columns[7].HeaderText = "Наличие";
Информация о работе Разработка приложения для учета книг в библиотеке