Автоматизация учета книг в домашней библиотеке

Автор работы: Пользователь скрыл имя, 14 Августа 2014 в 21:37, курсовая работа

Краткое описание

Целью данной курсовой работы является разработка приложения Windows Form, позволяющего автоматизировать учет хранения книг в домашней библиотеке.
Основные задачи курсовой работы:
Разработка функций по работе с данными: ввод, вывод, сортировка, вывод на печать, поиск.
Разработка функций по работе с текстовыми файлами: запись, чтение, вывод на печать.
Разработка функций по работе с сохраненными данными.

Содержание

Введение 5
1.Системное проектирование 6
1.1.Разработка спецификаций функций 6
2.Функциональное проектирование 7
2.1.Разработка обобщенного алгоритма функционирования
приложения 7
2.2.Разработка структуры приложения и структуры данных 8
2.3.Разработка программного кода приложения 12
2.4.Результаты тестирования приложения 23
2.5.Описание приложения, инструкция по его использованию 31
Заключение 36
Список используемых источников 37

Вложенные файлы: 1 файл

Курсач_на сайты.docx

— 4.07 Мб (Скачать файл)

СОДЕРЖАНИЕ

 

Введение 5

1.Системное  проектирование 6

1.1.Разработка спецификаций функций 6

2.Функциональное  проектирование 7

   2.1.Разработка обобщенного алгоритма  функционирования

   приложения  7

   2.2.Разработка структуры приложения  и структуры данных  8

   2.3.Разработка программного  кода приложения  12

   2.4.Результаты тестирования  приложения 23

   2.5.Описание  приложения, инструкция по его  использованию  31

Заключение  36

Список используемых источников  37

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

 

В  настоящее время на рынке существует большое количество решений для автоматизации практически любой деятельности организации, либо для применения в повседневной жизни. Однако стандартные решения автоматизации способны удовлетворить многие, но не все требования. Зачастую, то, что подходит для бизнеса, в повседневной жизни окажется излишне функциональным, сложным для освоения  в повседневной жизни или затратным для приобретения. 

Целью данной курсовой работы является разработка  приложения Windows Form, позволяющего автоматизировать учет хранения книг в домашней библиотеке.

Основные задачи курсовой работы:

    • Разработка функций по работе с данными: ввод, вывод, сортировка, вывод на печать, поиск.
    • Разработка функций по работе с текстовыми файлами: запись, чтение, вывод на печать.
    • Разработка функций по работе с сохраненными данными.

Основные подзадачи создания приложения Windows Form:

  • Создание нового приложения Windows Forms.
  • Переключение между представлением Код и представлением Конструктор.
  • Изменение свойств формы Windows.
  • Добавление элемента управления MenuStrip.
  • Добавление элемента управления Button, ListBox, TextBox, Label
  • Создание и заполнение элемента управления ComboBox.
  • Использование элемента управления WebBrowser.
  • Создание обработчиков событий для элементов управления.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                    1. Системное проектирование

 

 

1.1. Разработка спецификаций функций

Для решения поставленных задач необходимо разработать следующие функции:

void Input ()   - Ввод данных с клавиатуры;

void OutPut() - Вывод информации на экран;      

void Find ()     - Вывод информации о наличии  записи;  

void Sort()     - Сортировка;

void TextWriter()  - Запись текстового файла;

void TextReader () - Чтение текстового файла;

void Search()   - Поиск данных;

void DelAll()   - Очистка текстового файла;

void DelOne()  - Удаление записи из текстового файла.

 

 

Реализация вышеописанных функций на языке С# представлена в Приложении 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. ФУНКЦИОНАЛЬНОЕ ПРОЕКТИРОВАНИЕ

 

2.1.Разработка обобщенного алгоритма функционирования приложения

 

Рис. 2.1.1 Блок-схема обобщенного   алгоритма функционирования приложения

 

 

 

 

 

 

 

 

 

 

2.2. Разработка структуры приложения и структуры данных

Приложение будет иметь меню, через которое можно будет обращаться к реализуемым функциям. Структура меню имеет следующий вид.

 

 

Рис. 2.2.1 Блок-схема меню

2.3. Разработка программного кода приложения

Запускаем «ПУСК\Программы\Visual Studio 2008\Visual Studio 2008».

Для создания WINDOWS приложения, необходимо войти в пункт меню File(в левом верхнем углу), в выпадающем списке выбрать пункт NEW(новый), и выбрать Project(проект).

 

 

Появляется окошко выбора «шаблонов» проектов. В левой части окошка выбираем пункт Visual C#, в правой части окна появятся «шаблоны» для предполагаемого проекта. Нам необходимо выбрать WindowsFormsApplication

 

 

Далее в поле NAME вписываем название приложения(оно может быть произвольным). В поле LOCATION указываем место для сохранения проекта. Visual Studio создаст проект и появится заготовленный макет Windows Form.

 

 

Для выполнения задачи внесения данных необходимо расположить на форме элементы для внесения новых данных и элемент для отображения внесенных данных.

Элемент управления ComboBox позволяет запомнить в себе список текстовых элементов, и предоставить выбор одного из элементов для пользователя. Данный элемент удобно использовать для выбора раздела размещения книг в библиотеке, а также наличия книг в библиотеке на данный момент. Основное поведение ComboBox зависит от свойства DropDownStyle. Для того, чтобы пользователь случайно не изменил значения элементов в выпадающем списке, в свойствах ComboBox  необходимо установить значение DropDownList, которое запретит пользователю редактировать данный список.

Элементы в списке программно доступны через свойство ComboBox.Items. Количество элементов в списке можно получить через ComboBox.Items.Count.  Добавлять элементы можно методом ComboBox.Items.Add, удалять методами Remove и RemoveAt. Текущий отображаемый элемент Items можно программно поменять через значение свойства SelectedIndex.

Для ввода информации, которая постоянно изменяется (название книги, автор и месторасположение книги в библиотеке необходимо выбрать элемент textbox. Основные свойства для данного элемента должны быть следующими:

ReadOnly в значении false – позволит изменять текст в элементе управления.

Для отображения всех внесенных данных в TextBox и ComboBox  воспользуемся элементов ListBox.

Основными свойствами для данного элемента будут являться следующие:

SelectionMode  - MultiSimple , позволит выделить позицию в списке или снять с нее выделение, щелкнув мышью или нажав клавишу ПРОБЕЛ.

Sorted – false , позволит применить сортировку только по требованию пользователя.

Modifiers – public, обеспечивающий неограниченный доступ.

Для вывода всех введенных элементов в код программы следует записать следующее:

private void button5_Click(object sender, EventArgs e)

        {

                gr[k].Name = textNam.Text;

                gr[k].Auth = textAuth.Text;

                gr[k].Nal = comboNal1.Text;

                gr[k].Cod = comboCod1.Text;

                gr[k].Pol = Convert.ToInt32(textPol.Text);

                k++;

            }

            else

                MessageBox.Show("Группа переполнена");

            {

                listBox1.Items.Add(textNam.Text + "  " + textAuth.Text + "  " + comboNal1.Text + "  " + comboCod1.Text + "  " + textPol.Text);

            }

        }

 

    Количество книг, которые одновременно можно добавить в ListBox регулируется размером группы, который следует задать перед началом внесения записей.

 

private void Create9_Click(object sender, EventArgs e)

        {

            n = Convert.ToInt32(textBox1.Text);

            gr = new Book[n];

            for (int i = 0; i < n; i++)

                gr[i] = new Book();

        }

После формирования группы и внесения записей о книгах в ListBox, можно создать следующую группу, предварительно очистив содержимое TextBox, используя код:

private void Update13_Click(object sender, EventArgs e)

        {

            textBox1.Clear();

        }

После создания новой группы, прежде чем начать вносить новые данные, следует разработать функции по очистке полей TextBox. Благодаря свойству ReadOnly в значении false можно изменять текст в элементе управления, либо разработать функции по очистке полей с названием книг, автором и  месторасположением, код которых выглядит следующим образом:

 

       private void ClearAll6_Click(object sender, EventArgs e)

        {

            textNam.Clear();

            textAuth.Clear();

            textPol.Clear();

        }

 

        private void ClearNam7_Click(object sender, EventArgs e)

        {

            textNam.Clear();

        }

 

        private void ClearAuth8_Click(object sender, EventArgs e)

        {

            textAuth.Clear();

        }

Добавив записи в ListBox, следует разработать функции по работе с уже добавленными записями.

Свойство SelectionMode  - MultiSimple позволит выделить запись в ListBox, которую можно удалить, используя код:

private void ClearOne_Click(object sender, EventArgs e)

        {

            listBox1.Items.Remove(listBox1.SelectedItem);

        }

Функция Remove имеет один аргумент, который определяет элемент для удаления. listBox1.SelectedItem указывает, какой конкретно  элемент подлежит удалению.

private void ClearAllList_Click(object sender, EventArgs e)

        {

            listBox1.Items.Clear();

        }

Вышеуказанный код удаляет все элементы ListBox.

Отсортировать все в ListBox можно двумя путями: установить значение true в свойстве Sorted, но тогда все элементы, вносимые в ListBox будут автоматически сортироваться, что не всегда удобно. Если вносимый список книг большой, то для того, чтобы  определить какая книга вносилась последней, следует просмотреть весь список, если же функция имеет значение false, запись вносимая последней будет стоять в конце списка. Однако в случае когда сортировка все-таки необходима, следует воспользоваться следующей функцией.

 private void Sort_Click(object sender, EventArgs e)

        {

            listBox1.Sorted = true;

        }

Для того чтобы отменить сортировку и продолжить заполнять список по порядку используют:

private void Cancel_Click(object sender, EventArgs e)

        {

            listBox1.Sorted = false;

        }

Все записи о книгах, внесенные должны быть сохранены в соответствующем разделе библиотеке: художественном, научном или детском.

Для сохранения документов необходимо перетащить из панели инструментов ToolBox в окно дизайнера форм компонент SaveFileDialog. В свойствах этого компонента необходимо указать:

 Filter - "TextFiles (*.txt)|*.txt|All files(*.*)|*.*" ;

InitialDirectory - "G:\курсовой проект.txt", место хранения текстового документа.

private void HudSave_Click(object sender, EventArgs e)

        {

            if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)

            {

                for (int i = 0; i < listBox1.Items.Count; i++)

                    System.IO.File.AppendAllText(saveFileDialog1.FileName, listBox1.Items[i].ToString());

            }

        }

 

        private void NauchSave_Click(object sender, EventArgs e)

        {

            if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)

            {

                for (int i = 0; i < listBox1.Items.Count; i++)

                    System.IO.File.AppendAllText(saveFileDialog1.FileName, listBox1.Items[i].ToString());

            }

        }

 

        private void DetSave_Click(object sender, EventArgs e)

        {

            if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)

            {

                for (int i = 0; i < listBox1.Items.Count; i++)

                    System.IO.File.AppendAllText(saveFileDialog1.FileName, listBox1.Items[i].ToString());

            }

        }

 

Три разных пункта меню позволяют сохранить книги по назначению в разные разделы библиотеки.

Следует также добавить библиотеку using System.IO для работы функций ввода-вывода.

Метод saveFileDialog1.ShowDialog()отображает стандартный диалог сохранения файла. И когда пользователь наживамает кнопку сохранить методы HudSave, NauchSave и DetSave сохраняют документы в файлах, вызывая для этого System.IO.File.AppendAllText, который позволять добавлять содержимое к уже имеющимся данным.

Для того, чтобы реализовать функцию открытия файла потребуется компонент OpenFileDialog, который необходимо перетащить из панели инструментов ToolBox в окно дизайнера форм. Основными свойствами компонента будут свойства, которые были указаны и для SaveFileDialog:

Filter - "TextFiles (*.txt)|*.txt|All files(*.*)|*.*" ;

InitialDirectory - "G:\курсовой проект.txt", место сохранения текстового документа.

private void Det4_Click(object sender, EventArgs e)

        {

            string[] lines = File.ReadAllLines("G:\\курсовой проект\\6.txt");

            listBox1.DataSource = lines;

        }

 

        private void Hud2_Click(object sender, EventArgs e)

        {

            string[] lines = File.ReadAllLines("G:\\курсовой проект\\4.txt");

            listBox1.DataSource = lines;

        }

 

        private void Nal3_Click(object sender, EventArgs e)

        {

            string[] lines = File.ReadAllLines("G:\\курсовой проект\\5.txt");

            listBox1.DataSource = lines;

        }

Все три раздела вызываются тремя кнопками поотдельности. Методы Na13, Hud2 и Det4 вызывают метод File.ReadAllLines, который открывает файл, считывает каждую строку файла, затем добавляет каждую строку в качестве элемента массива строк. Затем он закрывает файл.

 

 

 

 

 

namespace WindowsFormsApplication2

{

    public partial class Form1 : Form

    {

 

 

 

        class Book

        {

            public string Name { get; set; }

            public string Auth { get; set; }

            public string Nal { get; set; }

            public int Pol { get; set; }

            public string Cod { get; set; }

 

        }

        Book[]gr;

        int n, m = 1;

        int k = 0;

        string pass = "лера";

      

 

        public Form1()

        {

            InitializeComponent();

 

            button2.Visible = false;

Информация о работе Автоматизация учета книг в домашней библиотеке