Структура и состав классов для построения модели работы гостиницы.

Автор работы: Пользователь скрыл имя, 09 Мая 2015 в 17:15, курсовая работа

Описание работы

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

Содержание работы

Введение...............................................................................................................................5 1 Структура и состав классов для построения модели работы гостиницы.
Инкапсуляция. Применение конструкторов на С#......................................................... 7
1.1 Поля и методы основного и вспомогательного классов............................................7
1.2 Реализация классов на С#............................................................................................ 8
1.3 Примеры использования объектов основного класса Otel и вспомогательного класса Nomer......................................................................................................................11
2 Перегрузка оператора +………………………………………………………………. 13
2.1 Перегрузка оператора + для объектов класса Nomer …………………………….13
2.2 Метод типа void с возвратом результата через параметр ref……………………..15
3 Создание производного класса….................................................................................17
3.1 Производный класс. Модификатор доступа protected и его использование..........17
3.2 Реализация производного класса на С#.....................................................................19
4 Абстрактные классы и виртуальные функции ............................................................23
4.1 Разработка виртуальной функции……………………………………………..........23
4.2 Вызов виртуальной функции…………… .................................................................25
4.3 Разработка абстрактного класса и создание абстрактной функции…………...…27
4.4 Создание статического метода для вспомогательного класса……………………32
5 Применение строк и исключений на языке С#............................................................34
5.1 Класс String в С#, основные методы класса…………………..................................34
5.2 Пример использования методов класса String .........................................................36
5.3 Исключения на языке С#............................................................................................34
6 Создание коллекций…………….…….……………………………………………….39
6.1 Реализация необобщённой коллекции......................................................................39
6.2 Реализация обобщённой коллекции..........................................................................42
Заключение.........................................................................................................................45
Список использованных источников ..............................................................................36
Приложение А....................................................................................................................47
Приложение Б ...................................................................................................................51
Приложение В ...................................................................................................................56
Приложение Г ...................................................................................................................61
Приложение Д....................................................................................................................70
Приложение Е ..................................................................................................................

Файлы: 1 файл

Содержани1.docx

— 511.25 Кб (Скачать файл)

                if (x < P2.PrivlekNom())

                    x = P2.PrivlekNom();

                if (x < P3.PrivlekNom())

                    x = P3.PrivlekNom();

                return x;

            }

            public double SrAg()

            {

                return P1.PrivlekNom() + P2.PrivlekNom() + P3.PrivlekNom() - TZatraty;

            }

 

            public Nomer SumElem()

            {

                return P1.Add(P2).Add(P3);

 

            }

 

            public Otel Bet(Otel k, Otel l)

            {

                double r1, r2;

                r1 = k.P1.PrivlekNom() + k.P2.PrivlekNom() + k.P3.PrivlekNom();

                r2 = l.P1.PrivlekNom() + l.P2.PrivlekNom() + l.P3.PrivlekNom();

                if (r1 < r2)

                    return k;

                else

                    return l;

            }

        }

        class Program

        {

            static void Main(string[] args)

            {

                double f;

                Nomer a, b, d;

                a = new Nomer();

                b = new Nomer(20);

                d = new Nomer(12, 14, "номер1");

                a.Init(12, 23, "номер2");

                b.Init(15, 21, "номер3");

                d = a.Add(a, b);

                d = d.Add(a, b);

                d = a.Add(b);

                d = d.Add(b);

                d.Display();

                f = d.PrivlekNom();

                Console.WriteLine("общая стоимость помещений:" + f);

                Otel P1, P2, P3;

                double g1, g2;

                P1 = new Otel();

                P2 = new Otel();

                P3 = new Otel();

                P1.Init("номер1", "номер2", "номер3", 21, 12, 13, 31, 14, 41, 2);

                Console.WriteLine("\nОтель:");

                P1.Display();

                g1 = P1.DpomAg();

                Console.WriteLine("\nДорогое помещение:" + g1);

 

                P2.Init("номер1", "номер2", "номер3", 23, 12, 24, 65, 32, 46, 15);

                Console.WriteLine("\nОтель1: ");

                P2.Display();

                g2 = P2.DpomAg();

                Console.WriteLine("\nДорогое помещение:" + g2);

 

 

                P3 = P3.Bet(P1, P2);

                double s;

                s = P3.SrAg();

                Console.WriteLine("\nСредства Отеля:" + s);

                Nomer e;

                e = P3.SumElem();

                Console.WriteLine("\nCумма: ");

                e.Display();

                Console.ReadKey();

            }

        }

    }

}

 

 

 

 

 

 

                          

Рисунок  1 – Демонстрация работы программы

                        

                           Рисунок 2 – Демонстрация работы программы

 

 

 

 

 

 

 

 

 

 

 

 

Приложение Б

 

 

Текст программы (этап №2)

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace kursYuli

{

    class Nomer

    {

        private string name;

        private double stoimost;

        private int ploshad;

        public void Display()

        {

            string s, s1;

            s1 = Convert.ToString(stoimost);

            s = "\nстоимость: " + s1 + " ";

            s1 = Convert.ToString(ploshad);

            s = s + "\nплощадь: " + s1 + " ";

            s = s + "\nназвание: " + name + " ";

            Console.WriteLine(s);

        }

        public Nomer Add(Nomer a, Nomer b)

        {

            Nomer p;

            p = new Nomer();

            p.stoimost = a.stoimost + b.stoimost;

            p.ploshad = a.ploshad + b.ploshad;

            p.name = a.name + b.name;

            return p;

        }

        public double PrivlekNom()

        {

            return stoimost / ploshad;

        }

 

 

        //###########  Часть 2.2  ################################

        public void PrivlekNom(ref double Rez)

        {

            Rez = stoimost / ploshad;

        }

        //########################################################

 

        public void Init(double s, int p, string n)

        {

            stoimost = s;

            ploshad = p;

            name = n;

        }

 

        public Nomer Add(Nomer b)

        {

            Nomer p;

            p = new Nomer();

            p.stoimost = this.stoimost + b.stoimost;

            p.ploshad = this.ploshad + b.ploshad;

            p.name = this.name + b.name;

            return p;

        }

 

        //###########  Часть 2.1  ################################

 

        public static Nomer operator +(Nomer a, Nomer b)

        {

            Nomer p;

            p = new Nomer();

            p.stoimost = a.stoimost + b.stoimost;

            p.ploshad = a.ploshad + b.ploshad;

            return p;

        }

 

        public static Nomer operator +(Nomer a, int b)

        {

            Nomer p;

            p = new Nomer();

            p.stoimost = a.stoimost;

            p.ploshad = a.ploshad + b / 2;

            return p;

        }

 

        public static Nomer operator +(int a, Nomer b)

        {

            Nomer p;

            p = new Nomer();

            p.stoimost = b.stoimost;

            p.ploshad = b.ploshad + a / 2;

            return p;

        }

        //########################################################

 

 

        public Nomer(double s, int p, string n)

        {

            stoimost = s;

            ploshad = p;

            name = n;

        }

        public Nomer(double s)

        {

            stoimost = s;

        }

 

        public Nomer()

        {

            stoimost = 123;

            ploshad = 12;

            name = "номер";

        }

 

        class Otel

        {

            private string name;

            private Nomer P1 = new Nomer();

            private Nomer P2 = new Nomer();

            private Nomer P3 = new Nomer();

            private double TZatraty;

 

            public void Display()

            {

                string s;

                s = "Название: " + name;

                Console.WriteLine(s);                           // вывод названия

                Console.Write("Первое помещение: ");

                P1.Display();                                           // вывод 1-й номер

                Console.Write("Второе помещение:  ");

                P2.Display();                                           // вывод 2-й номер

                Console.Write("Третье помещение:  ");

                P3.Display();                                           // вывод 3-й номер 

                s = "Текущие затраты: " + Convert.ToString(TZatraty);

                Console.WriteLine(s);

            }

 

            public string gname()

            {

                return name;

            }

 

            public void Init(string n1, string n2, string n3, double s1, int p1, double s2, int p2, double s3, int p3, double TZ)

            {

                P1.Init(s1, p1, n1);

                P2.Init(s2, p2, n2);

                P3.Init(s3, p3, n3);

                TZatraty = TZ;

            }

 

            public double DpomAg()

            {

                double x;

                x = P1.PrivlekNom();

                if (x < P2.PrivlekNom())

                    x = P2.PrivlekNom();

                if (x < P3.PrivlekNom())

                    x = P3.PrivlekNom();

                return x;

            }

            public double SrAg()

            {

                return P1.PrivlekNom() + P2.PrivlekNom() + P3.PrivlekNom() - TZatraty;

            }

 

            public Nomer SumElem()

            {

                return P1.Add(P2).Add(P3);

 

            }

 

            public Otel Bet(Otel k, Otel l)

            {

                double r1, r2;

                r1 = k.P1.PrivlekNom() + k.P2.PrivlekNom() + k.P3.PrivlekNom();

                r2 = l.P1.PrivlekNom() + l.P2.PrivlekNom() + l.P3.PrivlekNom();

                if (r1 < r2)

                    return k;

                else

                    return l;

            }

        }

        class Program

        {

            static void Main(string[] args)

            {

                //###########  Часть 2.1  ################################

 

                Nomer a, b, d;

                a = new Nomer();

                b = new Nomer(20);

                d = new Nomer(12, 14, "номер1");

                a.Init(12, 23, "номер2");

                b.Init(15, 21, "номер3");

                d = a + b;

                d.Display();

                d = d + 50;

                d.Display();

                d = 10 + d;

                d.Display();

                a = a + b + 10;

                a.Display();

                Console.WriteLine();

                //########################################################

 

 

                //###########  Часть 2.2  ################################

                double k;

                a.Init(24, 12, "номер4");

                a.Display();

                k = a.PrivlekNom();

                Console.WriteLine("Через return: " + Convert.ToString(k));

                k = 0;

                a.PrivlekNom(ref k);

                Console.WriteLine("Через ref: " + Convert.ToString(k));

                //########################################################

               

                Console.ReadKey();

            }

        }

    }

}

 

 

                              

 

Рисунок 3 – Демонстрация работы программы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение В

 

 

Текст программы (этап №3)

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace kursYuli

{

    class Nomer

    {

        protected string name;

        protected double stoimost;

        protected int ploshad;

        public void Display()

        {

            string s, s1;

            s1 = Convert.ToString(stoimost);

            s = "\nстоимость: " + s1 + " ";

            s1 = Convert.ToString(ploshad);

            s = s + "\nплощадь: " + s1 + " ";

            s = s + "\nназвание: " + name + " ";

            Console.WriteLine(s);

        }

        public Nomer Add(Nomer a, Nomer b)

        {

            Nomer p;

            p = new Nomer();

            p.stoimost = a.stoimost + b.stoimost;

            p.ploshad = a.ploshad + b.ploshad;

            p.name = a.name + b.name;

            return p;

        }

        public double PrivlekNom()

        {

            return stoimost / ploshad;

        }

 

 

        //###########  Часть 2.2  ################################

        public void PrivlekNom(ref double Rez)

        {

            Rez = stoimost / ploshad;

        }

        //########################################################

 

        public void Init(double s, int p, string n)

        {

            stoimost = s;

            ploshad = p;

            name = n;

        }

 

        public Nomer Add(Nomer b)

        {

            Nomer p;

            p = new Nomer();

            p.stoimost = this.stoimost + b.stoimost;

            p.ploshad = this.ploshad + b.ploshad;

            p.name = this.name + b.name;

            return p;

        }

 

        //###########  Часть 2.1  ################################

 

        public static Nomer operator +(Nomer a, Nomer b)

        {

            Nomer p;

            p = new Nomer();

            p.stoimost = a.stoimost + b.stoimost;

            p.ploshad = a.ploshad + b.ploshad;

            return p;

        }

 

        public static Nomer operator +(Nomer a, int b)

        {

            Nomer p;

            p = new Nomer();

            p.stoimost = a.stoimost;

            p.ploshad = a.ploshad + b / 2;

            return p;

        }

 

        public static Nomer operator +(int a, Nomer b)

        {

            Nomer p;

            p = new Nomer();

            p.stoimost = b.stoimost;

            p.ploshad = b.ploshad + a / 2;

            return p;

        }

        //########################################################

 

 

        public Nomer(double s, int p, string n)

        {

            stoimost = s;

            ploshad = p;

            name = n;

        }

        public Nomer(double s)

        {

            stoimost = s;

        }

 

        public Nomer()

        {

            stoimost = 123;

            ploshad = 12;

            name = "номер";

        }

 

    }

    //###########  Часть 3  ################################

    class BrookedNomer : Nomer

    {

        private int brook;

        //###########  Часть 3.2 ###############################

        public double PrivlekNom()

        {

            if (brook == 0) return stoimost / ploshad;

            return 0;

        }

        //######################################################

 

        //###########  Часть 3.3 ###############################

        public void Init(double s, int p, string n, int b)

        {

            base.Init(s, p, n);

            brook = b;

        }

        //######################################################

 

        //###########  Часть 3.4 ###############################

        public BrookedNomer(double s, int p, string n, int b)

            : base(s, p, n)

        {

            brook = b;

        }

        public BrookedNomer()

        {

            stoimost = 123;

            ploshad = 12;

            brook = 1;

            name = "номер";

        }

        //######################################################

 

        public void Display()

        {

            string s, s1;

Информация о работе Структура и состав классов для построения модели работы гостиницы.