close

Вход

Забыли?

вход по аккаунту

?

Отчет №3

код для вставкиСкачать
Белорусский национальный технический университет
Факультет информационных технологий и робототехники
Кафедра "Программное обеспечение вычислительной техники и автоматизированных систем"
Отчет
по лабораторной работе №3
"Паттерн стратегия в С#"
ВыполнилВаракин А. В.
Лысый О. И.
ПроверилРадкевич А. С.
Минск 2013
Выводы:
Изучил механизмы использования шаблонов проектирования. Ознакомился с основными подходами при использовании интерфейсов.
Листинг программы:
Interface IPrice using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _3
{
interface IPrice
{
double GetPrice();
}
}
AbsDiscount.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _3
{
class AbsDiscount : IPrice
{
double Price;
public AbsDiscount(double p)
{
Price = p;
}
public double GetPrice()
{
double q;
q = Price * 10 / 100;
return Price - q;
}
}
}
NoDiscount.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _3
{
class NoDiscount : IPrice
{
double Price;
public NoDiscount(double p)
{
Price = p;
}
public double GetPrice()
{
return Price;
}
}
}
Client.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _3
{
class Client
{
IPrice ip;
string _Name;
public string Name
{
get { return _Name; }
set { _Name = value; }
}
public Client(string n, IPrice ip)
{
Name = n;
this.ip = ip;
}
public double GetPrice()
{
return ip.GetPrice();
}
}
}
Store.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _3
{
class Store
{
private static Store instance;
private Store() { }
public static Store Instance
{
get
{
if (instance == null)
{
instance = new Store();
}
return instance;
} }
List<Client> lstprd = new List<Client>();
public void AddProdAbsDiscount(string n, int p)
{
Client p1 = new Client(n,new AbsDiscount(p));
lstprd.Add(p1);
}
public void AddProdNoDiscount(string n,int p)
{
Client p1 = new Client(n, new NoDiscount(p));
lstprd.Add(p1);
}
public double GetTotalPrice()
{
double s = 0;
foreach(Client p in lstprd)
{
s += p.GetPrice();
}
return s;
}
public string ShowInfo()
{
string s = null;
foreach (Client c in lstprd)
{
s += c.Name + " -> " + c.GetPrice()+" б.р" +"\n";
}
return s;
}
}
}
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _3
{
class Program
{
static int Main(string[] args)
{
Store rign = Store.Instance;
int i;
while (true)
{
Console.WriteLine("1. Добавление клиента со скидкой");
Console.WriteLine("2. Добавление клиента без скидки");
Console.WriteLine("3. Информация о клиента");
Console.WriteLine("4. Столько всего заплатили клиенты");
Console.WriteLine("5. Выход");
Console.WriteLine("Введите цифру от (1-5): ");
i = Convert.ToInt32(Console.ReadLine());
switch (i)
{ case 1:
try
{
Console.WriteLine("Фиксированная скидка = 10%");
Console.Write("Введите имя клиента: ");
string name1 = Console.ReadLine();
Console.Write("Введите стоимость тарифа: ");
int p1 = Convert.ToInt32(Console.ReadLine());
rign.AddProdAbsDiscount(name1, p1);
}
catch
{
Console.WriteLine("Неправильный ввод");
}
break;
case 2:
try
{
Console.Write("Введите имя клиента: ");
string name2 = Console.ReadLine();
Console.Write("Введите стоимость тарифа: ");
int p2 = Convert.ToInt32(Console.ReadLine());
rign.AddProdNoDiscount(name2, p2);
}
catch
{
Console.WriteLine("Неправильный ввод");
}
break;
case 3:
Console.WriteLine(rign.ShowInfo());
break;
case 4:
Console.WriteLine(rign.GetTotalPrice()+" б.р");
break;
default: return 0;
}
} }
}
}
Документ
Категория
Рефераты
Просмотров
8
Размер файла
188 Кб
Теги
отчет
1/--страниц
Пожаловаться на содержимое документа