Автор работы: Пользователь скрыл имя, 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
Приложение Е ..................................................................................................................
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("общая
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Дорогое
P2.Init("номер1", "номер2", "номер3", 23, 12, 24, 65, 32, 46, 15);
Console.WriteLine("\nОтель1: ");
P2.Display();
g2 = P2.DpomAg();
Console.WriteLine("\nДорогое
P3 = P3.Bet(P1, P2);
double s;
s = P3.SrAg();
Console.WriteLine("\nСредства
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();
Console.Write("Второе
P2.Display();
Console.Write("Третье
P3.Display();
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;
Информация о работе Структура и состав классов для построения модели работы гостиницы.