Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 29.06.2010
Сообщений: 35
1

Составить программу, которая содержит текущую информацию о книгах в библиотеке

25.12.2010, 12:40. Просмотров 3600. Ответов 4
Метки нет (Все метки)

Ребят, понимаю, что очень нагло с моей стороны, но решается очень серьёзный вопрос, как говорится, вопрос жизни и смерти, а в программировании я, к сожалению, дуб-дубом И просто не знаю, к кому обратиться..
Нужно решить задачу:

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

Сведения о книгах содержат:
• Номер УДК;
• Фамилию и инициалы автора;
• Название;
• Год издания;
• Количество экземпляров данной книги в библиотеке.
Программа должна обеспечивать:
• Начальное формирование данных о всех книгах в библиотеке в виде подходящей коллекции;
• Добавление данных о книгах, вновь поступающих в библиотеку;
• Удаление данных о списываемых книгах;
• По запросу выдаются сведения о наличии указанной книги в библиотеке. "

Должно быть реализовано в виде оконного приложения. Очень сердечно прошу помочь! Иначе я просто уже не знаю, что делать.. Программирование предмет второстепенный, последний семестр, но способностей как не было, так и не появились
Помогите, пожалуйста, добрые программисты..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2010, 12:40
Ответы с готовыми решениями:

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

Составить программу, которая содержит текущую информацию о книгах в библиотеке
1.Составить программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о...

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

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

4
809 / 700 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
25.12.2010, 18:18 2
Класс формы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Windows.Forms;
 
namespace WindowsFormsApplicationTest
{
    public partial class MainForm : Form
    {
        private readonly Library _library;
 
        public MainForm()
        {
            InitializeComponent();
            _library = new Library();
            libraryBindingSource.DataSource = _library;
            openFileDialog.InitialDirectory = Environment.CurrentDirectory;
            saveFileDialog.InitialDirectory = Environment.CurrentDirectory;
        }
 
        private void FileOpen_Click(object sender, EventArgs e)
        {
            if (openFileDialog.ShowDialog() == DialogResult.OK)
                _library.Load(openFileDialog.FileName);
        }
 
        private void FileSave_Click(object sender, EventArgs e)
        {
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
                _library.Save(saveFileDialog.FileName);
        }
 
        private void Exit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}
Класс коллекции:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Xml.Linq;
 
namespace WindowsFormsApplicationTest
{
    /// <summary>
    /// Класс библиотеки, наследум от BindingList, чтобы получать уведомления при изменении.
    /// </summary>
    public class Library : BindingList<Book>
    {
        public void Load(string fileName)
        {
            Clear();
            XElement document = XElement.Load(fileName);
            IEnumerable<XElement> elements = document.Elements();
            foreach (XElement element in elements)
            {
                Add(new Book
                        {
                            Author = (string) element.Element(Book.Nodes.BookAuthorElement),
                            Name = (string) element.Element(Book.Nodes.BookNameElement),
                            NumberOfCopiesInLibrary =
                                (int) element.Attribute(Book.Nodes.NumberOfCopiesInLibraryAttribute),
                            PublicationDate = (int) element.Attribute(Book.Nodes.PublicationDateAttribute),
                            UdcNumber = (int) element.Attribute(Book.Nodes.UdcNumberAttribute),
                        });
            }
        }
 
        public void Save(string fileName)
        {
            var element = new XElement(Book.Nodes.Root,
                                       this.Select(book => book.ToXElement())
                );
            element.Save(fileName);
        }
    }
}
Класс книги:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using System;
using System.Xml.Linq;
 
namespace WindowsFormsApplicationTest
{
    /// <summary>
    ///  Книга.
    /// </summary>
    public class Book
    {
        private string _author;
        private string _name;
        public int UdcNumber { get; set; }
 
        public string Name
        {
            get { return _name; }
            set { _name = value.Trim(); }
        }
 
        public string Author
        {
            get { return _author; }
            set { _author = value.Trim(); }
        }
 
        public int PublicationDate { get; set; }
        public int NumberOfCopiesInLibrary { get; set; }
 
        // Преобразуем в XElement
        public XElement ToXElement()
        {
            return new XElement(Nodes.BookElement,
                                new XAttribute(Nodes.UdcNumberAttribute, UdcNumber),
                                new XAttribute(Nodes.PublicationDateAttribute, PublicationDate),
                                new XAttribute(Nodes.NumberOfCopiesInLibraryAttribute, NumberOfCopiesInLibrary),
                                new XElement(Nodes.BookNameElement, Name),
                                new XElement(Nodes.BookAuthorElement, Author)
                );
        }
 
        #region Nested type: Nodes
 
        public static class Nodes
        {
            public const string Root = "Library";
            public const string BookElement = "Book";
            public const string UdcNumberAttribute = "UdcNumber";
            public const string PublicationDateAttribute = "PublicationDate";
            public const string NumberOfCopiesInLibraryAttribute = "NumberOfCopiesInLibrary";
            public const string BookNameElement = "Name";
            public const string BookAuthorElement = "Author";
        }
 
        #endregion
    }
}
Содержание файла xml:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0" encoding="utf-8"?>
<Library>
  <Book UdcNumber="4" PublicationDate="2001" NumberOfCopiesInLibrary="2">
    <Name>Учебник пользователя IBM PC.</Name>
    <Author>Микляев А.</Author>
  </Book>
  <Book UdcNumber="4" PublicationDate="2001" NumberOfCopiesInLibrary="6">
    <Name>MySQL:Учеб.пособие:Пер.с англ.</Name>
    <Author>Дюбуа П.</Author>
  </Book>
  <Book UdcNumber="4" PublicationDate="2001" NumberOfCopiesInLibrary="4">
    <Name>Электрофизика информационных систем:Учеб.пособие для вузов.</Name>
    <Author>Кухаркин Е.С.</Author>
  </Book>
  <Book UdcNumber="4" PublicationDate="2001" NumberOfCopiesInLibrary="12">
    <Name>Введение в системы баз данных. An introduction to Database Systems:Пер.с англ.</Name>
    <Author>Дейт К.Дж.</Author>
  </Book>
  <Book UdcNumber="4" PublicationDate="2000" NumberOfCopiesInLibrary="1">
    <Name>Microsoft Office 2000.Библия пользователя=Microsoft Office 2000.Bible:Пер.с англ.</Name>
    <Author>Виллет Э.,Кроудер Д.,Кроудер Р.</Author>
  </Book>
  <Book UdcNumber="4" PublicationDate="1996" NumberOfCopiesInLibrary="2">
    <Name>UNIX: Пер. с англ.</Name>
    <Author>МакМален Дж.</Author>
  </Book>
  <Book UdcNumber="3" PublicationDate="2001" NumberOfCopiesInLibrary="4">
    <Name>Windows Me: Справочник: Пер.</Name>
    <Author>Штайнер Г.</Author>
  </Book>
</Library>
Сама программа: WindowsFormsApplicationTest.zip
Проверка при вводе значений не производится, поэтому могут вылезать ошибки при вводе букв вместо цифр.
2
0 / 0 / 0
Регистрация: 29.06.2010
Сообщений: 35
25.12.2010, 18:43  [ТС] 3
Огромнейшее человеческое спасибо! Это, насколько я понял, в 10ой студии сделано?
0
809 / 700 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
25.12.2010, 19:45 4
Цитата Сообщение от SkyDreamer Посмотреть сообщение
Огромнейшее человеческое спасибо! Это, насколько я понял, в 10ой студии сделано?
Да, в 2010. Проверял работу только под .NET 4.0.

Добавлено через 31 минуту
Под 3.5 тоже работает.
P.S. Небольшие изменения. Сделал сохранение и загрузку через сериализацию. Получилось гораздо короче и изящнее. Может кому пригодится.
Класс книги:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Xml.Serialization;
 
namespace WindowsFormsApplicationTest
{
    /// <summary>
    ///  Книга.
    /// </summary>
    public class Book
    {
        private string _author;
        private string _name;
 
        [XmlAttribute]
        public int UdcNumber { get; set; }
 
        public string Name
        {
            get { return _name; }
            set { _name = value.Trim(); }
        }
 
        public string Author
        {
            get { return _author; }
            set { _author = value.Trim(); }
        }
 
        [XmlAttribute]
        public int PublicationDate { get; set; }
 
        [XmlAttribute]
        public int NumberOfCopiesInLibrary { get; set; }
    }
}
Класс библиотеки:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.ComponentModel;
using System.IO;
using System.Xml.Serialization;
 
namespace WindowsFormsApplicationTest
{
    /// <summary>
    /// Класс библиотеки, наследум от BindingList, чтобы получать уведомления при изменении.
    /// </summary>
    [XmlRoot("Library")]
    public class Library : BindingList<Book>
    {
        public void Load(string fileName)
        {
            Clear();
            var serializer = new XmlSerializer(typeof (Library));
            TextReader textReader = new StreamReader(fileName);
            var list = (Library) serializer.Deserialize(textReader);
            foreach (Book book in list)
                Add(book);
        }
 
        public void Save(string fileName)
        {
            var serializer = new XmlSerializer(typeof (Library));
            TextWriter textWriter = new StreamWriter(fileName);
            serializer.Serialize(textWriter, this);
            textWriter.Close();
        }
    }
}
2
0 / 0 / 0
Регистрация: 12.02.2014
Сообщений: 52
25.03.2014, 06:52 5
Здравствуйте! у меня стоит такая задача, необходимо создать оконное приложение для управления самодельным станком с ЧПУ, и необходимо отправлять ему информацию через USB. Подскажите в какой среде лучше делать, и учебник посоветуете. Я в интернете почитал и почему то остановился на C#.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2014, 06:52

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

Разработать программу, которая содержит текущую информацию о книгах в библиотеке
Разработать программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах...

Используя двоичное дерево поиска, создать программу, которая содержит текущую информацию о книгах в библиотеке
Нужна помощь. Задание: Используя двоичное дерево поиска, создать программу, которая содержит...

Составить программу, которая содержит текущую информацию о книгах
• номер УДК; • фамилию и инициалы автора; • название; • год издания; • количество...

Составить программу , которая содержит текущую информацию о читателях в библиотеке
Уважаемые форумчане, очень нужна ваша помощь! 1.) Составить программу, которая содержит текущую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.