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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать файл)

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

    class BrookedNomer : Nomer

    {

        private int brook;

        //###########  Часть 4.1 ###############################

        public override 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;

            s1 = Convert.ToString(stoimost);

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

            s1 = Convert.ToString(ploshad);

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

            s1 = Convert.ToString(brook);

            s = s + "\nбронь: " + s1 + " ";

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

            Console.WriteLine(s);

        }

    }

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

    abstract class Otel

    {

        protected string name;

        protected double TZatraty;

       

        public string gname()

        {

            return name;

        }

        //###########  Часть 3.6  ################################

        public void Init(string n, double TZ)

        {

            name = n;

            TZatraty = TZ;

        }

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

 

        abstract public double SrAg();

        public string GetName()

        {

            return name;

        }

 

        public double GetTZatraty()

        {

            return TZatraty;

        }

    }

    class Otel1 : Otel

    {

        private Nomer P1 = new Nomer();

        private Nomer P2 = new Nomer();

        public void Display()

        {

            string s;

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

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

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

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

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

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

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

            Console.WriteLine(s);

        }

 

        public void Init(string n1, string n2, double s1, int p1, double s2, int p2)

        {

            P1.Init(s1, p1, n1);

            P2.Init(s2, p2, n2);

        }

 

        public override double SrAg()

        {

            return (P1.PrivlekNom() + P2.PrivlekNom()) / 2;

        }

    }

    class Otel2 : Otel

    {

        private BrookedNomer P1 = new BrookedNomer();

        private BrookedNomer P2 = new BrookedNomer();

        public void Display()

        {

            string s;

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

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

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

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

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

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

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

            Console.WriteLine(s);

        }

 

        public void Init(string n1, string n2, double s1, int p1, int b1, double s2, int p2, int b2)

        {

            P1.Init(s1, p1, n1, b1);

            P2.Init(s2, p2, n2, b2);

        }

 

        public override double SrAg()

        {

            return (P1.PrivlekNom() + P2.PrivlekNom()) / 2;

        }

    }

    class Otel3 : Otel

    {

        private Nomer P1 = new Nomer();

        private BrookedNomer P2 = new BrookedNomer();

        public void Display()

        {

            string s;

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

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

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

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

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

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

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

            Console.WriteLine(s);

        }

 

        public void Init(string n1, string n2, double s1, int p1, double s2, int p2, int b2)

        {

            P1.Init(s1, p1, n1);

            P2.Init(s2, p2, n2, b2);

        }

 

        public override double SrAg()

        {

            return (P1.PrivlekNom() + P2.PrivlekNom())/2;

        }

    }

    class Program

    {

        static void Main(string[] args)

        {

            double x;

            Otel1 a1 = new Otel1();

            a1.Init("номер1","номер2", 10, 100, 5, 60);

            a1.Display();

            x = a1.SrAg();

            Console.WriteLine("Среднее: " + x + "\n");

            Otel2 a2 = new Otel2();

            a2.Init("номер1", "номер2", 10, 100, 5, 60, 4, 4);

            a2.Display();

            x = a2.SrAg();

            Console.WriteLine("Среднее: " + x + "\n");

            Otel3 a3 = new Otel3();

            a3.Init("номер1", "номер2", 10, 100, 5, 60, 4);

            a3.Display();

            x = a3.SrAg();

            Console.WriteLine("Среднее: " + x + "\n");

            Console.ReadKey();

        }

    }

}

 


 

 

 

 

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

 

 

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 static double PrivlekNom(Nomer n)

        {

            return n.stoimost / n.ploshad;

        }

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

        {

            stoimost = s;

            ploshad = p;

            name = n;

        }

 

    }

   

    class Program

    {

        static void Main(string[] args)

        {

            double k;

            Nomer a = new Nomer();

            a.Init(66, 6, "номер1");

            k = Nomer.PrivlekNom(a); //метод статический  поэтому вызываем не у обекта  а через имя класса

            Console.WriteLine("Привлекательность: " + k);

            Console.ReadKey();

        }

    }

}

 

                         

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

 

Приложение Д

 

 

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

 

 

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;

            s1 = Convert.ToString(stoimost);

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

            s1 = Convert.ToString(ploshad);

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

            s1 = Convert.ToString(brook);

            s = s + "\nбронь: " + s1 + " ";

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

            Console.WriteLine(s);

        }

    }

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

 

    class Otel

    {

        private string name;

        //###########  Часть 3.5  ################################

        private Nomer P1 = new Nomer();

        private BrookedNomer P2 = new BrookedNomer();

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

        private double TZatraty;

 

        public void Display()

        {

            string s;

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

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

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

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

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

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

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

            Console.WriteLine(s);

        }

 

        public string gname()

        {

            return name;

        }

 

        public void sname(string n)

        {

            name = n;

        }

        //###########  Часть 3.6  ################################

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

        {

            P1.Init(s1, p1, n1);

            P2.Init(s2, p2, n2, b2);

            TZatraty = TZ;

        }

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

 

        public double DpomAg()

        {

            double x;

            x = P1.PrivlekNom();

            if (x < P2.PrivlekNom())

                x = P2.PrivlekNom();

            return x;

        }

        public double SrAg()

        {

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

        }

 

        public Nomer SumElem()

        {

            return P1 + P2;

 

        }

 

        public Otel Bet(Otel k, Otel l)

        {

            double r1, r2;

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

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

            if (r1 < r2)

                return k;

            else

                return l;

        }

    }

    class Program

    {

        static void Main(string[] args)

        {

 

 

            Otel a = new Otel();

            a.Init("","", 10, 100, 5, 60, 4,56);

            a.sname("5aavhbaa 12a345 weraatttt");

            string s1, s3;

            s1 = a.gname();

            Console.WriteLine("Изначальная строка:" + s1);

            string[] s2 = new string[10];

            int i, p, k, N;

            N = 0;

            p = 1;

            while (p == 1)

            {

                k = s1.IndexOf(" ");

                if (k >= 0)

                {

                    s2[N] = s1.Substring(0, k);

                    s1 = s1.Substring(k + 1);

                    N++;

                }

                else

                {

                    s2[N] = s1;

                    N++;

                    p = 0;

                }

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