Автор работы: Пользователь скрыл имя, 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
Приложение Е ..................................................................................................................
//########### Часть
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();
Console.Write("Второе помещение: ");
P2.Display();
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();
Console.Write("Второе помещение: ");
P2.Display();
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();
Console.Write("Второе помещение: ");
P2.Display();
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("
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();
Console.Write("Второе
P2.Display();
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;
}
Информация о работе Структура и состав классов для построения модели работы гостиницы.