Автор работы: Пользователь скрыл имя, 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
Приложение Е ..................................................................................................................
}
s1 = s2[N - 1]+" ";
s3 = "";
for (i = 1; i < N - 1; i++)
{
s3 = s2[i];
s1 += s3 + " ";
}
s1 += s2[0];
a.sname(s1);
a.Display();
Console.ReadKey();
}
}
}
Рисунок 8 – Демонстрация работы программы
using System; // Пространство имён
using System.Collections.Generic; // Пространство имён, содержащее интерфейсы и классы, определяющие универсальные коллекции
using System.Linq; // Пространство имён, разрешающее доступ к данным из кода
using System.Text; // Пространство имен, содержащее классы, представляющие кодировки ASCII и Юникод, абстрактные базовые классы
namespace ConsoleApplication1
{
//Вспомогательный класс
class Element
{
private int ves; double cost; // Вес элемента и стоимость грамма элемента
public Exception e1 = new Exception(""); //Первое исключение
public Exception e2 = new Exception(""); //Второе исключение
public double Prizn; //0-вычислено, >0 - исключение
public void Init(int v, double c) // Инициализация полей – вес, стоимость
{
ves=v; //Присваиваем значению поля вес элемента значение переменной v
cost=c; //Присваиваем значению поля
стоимость грамма элемента
// переменной с
}
// Стоимость элемента, входящего в изделие
public double CostElem()
{
double z; //Переменная, хранящая значение стоимости элемента
z = 0;
try //Блок try
{
if (ves < 0) //Если вес меньше 0
throw e1 = new Exception("ves<0"); //Первое исключение
if (cost <= 0) //Если стоимость меньше либо равна 0
throw e2 = new Exception("cost<=0"); //Второе исключение
Prizn = 0; //Нет исключений
z = ves * cost; //Вычисление стоимости элемента
}
catch (Exception e1) //Перехват первого исключения
{
string s; //Переменная для работы с иключениями
s = e1.Message; //s="ves<0"
Console.WriteLine(s); //Вывод строки
Prizn = 1; //Первое исключение
}
return z; //Возвращает стоимость элемента
}
}
class Program
{
static void Main(string[] args)
{
Element a; //Объект типа Элемент
a = new Element(); //Инициализация объекта а
a.Init(-120, 28.9); //Вызов метода объектом а
double k = 0;
string s; //Переменная для работы с исключениями
try //Блок try
{
k = a.CostElem(); //Вычисление стоимости элемента
}
catch (Exception e) //Перехват второго исключения
{
e = a.e2;
s = e.Message; // s="cost<0"
Console.WriteLine(s); //Вывод строки
a.Prizn = 2; //Второе исключение
}
if (a.Prizn == 0) //Если исключений нет - вывод результата
{
Console.WriteLine("\nСтоимость элемента: " +k.ToString()); //Вывод
}
Console.ReadKey(); //Ожидание нажатия символа
}
}
}
Рисунок 9 – Демонстрация работы программы
Приложение Е
Текст программы (этап №6)
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace kursYuli
{
class Nomer
{
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 + " ";
Console.WriteLine(s);
}
public double PrivlekNom()
{
return stoimost / ploshad;
}
public void Init(double s, int p)
{
stoimost = s;
ploshad = p;
}
}
class Program
{
static void Main(string[] args)
{
ArrayList one = new ArrayList();
int a, b;
Random n = new Random();
for (int i = 0; i < 10; i++)
{
a = n.Next(200);
b = n.Next(4);
Nomer d = new Nomer();
d.Init(a, b);
one.Add(d);
}
int sum = 0;
foreach (Nomer k in one)
{
if (k.PrivlekNom() > 50)
{
sum++;
}
}
Console.WriteLine("\
Console.ReadKey();
}
}
}
Рисунок 10 – Демонстрация работы программы
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace kursYuli
{
class Nomer
{
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 + " ";
Console.WriteLine(s);
}
public double PrivlekNom()
{
return stoimost / ploshad;
}
public void Init(double s, int p)
{
stoimost = s;
ploshad = p;
}
}
class Program
{
static void Main(string[] args)
{
List<Nomer> one = new List<Nomer>();
int a, b;
Random n = new Random();
for (int i = 0; i < 10; i++)
{
a = n.Next(200);
b = n.Next(4);
Nomer d = new Nomer();
d.Init(a, b);
one.Add(d);
}
List<double> two = new List<double>(); // коллекция из целых чисел
double m;
foreach (Nomer k in one)
{
m = k.PrivlekNom();
two.Add(m); // заполнение коллекции
}
int sum = 0;
foreach (double k in two)
{
if (k > 50)
{
sum++;
}
}
Console.WriteLine("\
Console.ReadKey();
}
}
}
Рисунок 11 – демонстрация работы программы
Информация о работе Структура и состав классов для построения модели работы гостиницы.