Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CourseWork_TaxiPark-master/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# CourseWork_TaxiPark
The course work 1 course Sperkach Anna IS-01
Таксопарк. Облік робочого часу та бухгалтерія

Таксопарк надає послуги перевезення клієнтів (зареєстрованих та нових, з бонусною знижкою постійних клієнтів та на загальних умовах) шляхом прийому замовлення від клієнта, інформування клієнта про дані поїздки та саме перевезення клієнта, при цому розраховується вартість проїзду в залежності від даних поїздки.
Також можливо отримувати дані про робочій час окремих працівників таксопарку та обчислювати їх зарплатню.
57 changes: 57 additions & 0 deletions CourseWork_TaxiPark-master/TaxiPark/Administrator.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;

namespace TaxiLibrary
{
public class Administrator
{
readonly List<TaxiDriver> taxists = new List<TaxiDriver>();
readonly List<Client> clients = new List<Client>();
public string Name { get; set; }
public Administrator(string name)
{
Name = name;
taxists = new List<TaxiDriver>
{
new TaxiDriver("Vasya Pupkin","10:00 AM","8:00 PM",22.4m),
new TaxiDriver("Pavel Durov","6:00 AM","3:00 PM",20.55m),
new TaxiDriver("Alex Kucher","12:00 AM","5:00 PM",11m),
new TaxiDriver("Alex Popovich","6:00 AM","7:00 PM",26.65m),
new TaxiDriver("Christian Adams","7:30 AM","1:00 PM",11.8m)
};
}
public void ClientService(Client client)
{
client.Pay();
client.IdCode = GetIDCode(client.Name);
clients.Add(client);
}
private static int GetIDCode(string value)
{
int result = 0;
for (int i = 0; i < value.Length; i++)
result += value[i] * 31 ^ value.Length - (i + 1);
return result;
}

public void GetInfoClients()
{
foreach (var clnts in clients)
{
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine(clnts);
Console.ResetColor();
}
}
public void GetInfoTaxists()
{
foreach (var tax in taxists)
{
Console.BackgroundColor = ConsoleColor.White;
Console.ForegroundColor = ConsoleColor.DarkYellow;
Console.WriteLine(tax);
Console.ResetColor();
}
}
}
}
67 changes: 67 additions & 0 deletions CourseWork_TaxiPark-master/TaxiPark/ClassDiagram1.cd
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<ClassDiagram MajorVersion="1" MinorVersion="1">
<Class Name="TaxiPark.Program">
<Position X="5.5" Y="2.25" Width="1.5" />
<TypeIdentifier>
<HashCode>AAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAABAAAAAA=</HashCode>
<FileName>Program.cs</FileName>
</TypeIdentifier>
</Class>
<Class Name="TaxiLibrary.TaxiDriver">
<Position X="3.5" Y="0.75" Width="1.5" />
<TypeIdentifier>
<HashCode>AAAAAAAAAgAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>TaxiDriver.cs</FileName>
</TypeIdentifier>
</Class>
<Class Name="TaxiLibrary.TaxiDriverBase">
<Position X="1" Y="0.5" Width="1.5" />
<TypeIdentifier>
<HashCode>AAABACAAAgAAAAAAAEAAAAQAAAAAAAAEAAAAAAAAAAA=</HashCode>
<FileName>TaxiDriverBase.cs</FileName>
</TypeIdentifier>
</Class>
<Class Name="TaxiLibrary.Client">
<Position X="4.5" Y="3.75" Width="1.5" />
<TypeIdentifier>
<HashCode>AAIAAAAAAAAAAhAEAAAAAAAAAAAAAABAAgAAgAAIAAA=</HashCode>
<FileName>Client.cs</FileName>
</TypeIdentifier>
</Class>
<Class Name="TaxiLibrary.ClientBase">
<Position X="1" Y="3.75" Width="1.5" />
<TypeIdentifier>
<HashCode>AAIQAAAAAAAAAgAAEAAAABQAAAAAAAAAAgAAAAAAAAA=</HashCode>
<FileName>ClientBase.cs</FileName>
</TypeIdentifier>
</Class>
<Class Name="TaxiLibrary.Travel">
<Position X="6.5" Y="3.75" Width="1.5" />
<NestedTypes>
<Delegate Name="TaxiLibrary.Travel.InfoDayHandler" Collapsed="true">
<TypeIdentifier>
<NewMemberFileName>Travel.cs</NewMemberFileName>
</TypeIdentifier>
</Delegate>
</NestedTypes>
<TypeIdentifier>
<HashCode>AAAAAAAIAAAAAAAAAAAAQAQAAAAAABFAAAAAAAAAABQ=</HashCode>
<FileName>Travel.cs</FileName>
</TypeIdentifier>
</Class>
<Class Name="TaxiLibrary.Administrator">
<Position X="8" Y="0.75" Width="1.5" />
<TypeIdentifier>
<HashCode>AQAAAAAAAAAAAAABRAAAABQgAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>Administrator.cs</FileName>
</TypeIdentifier>
</Class>
<Delegate Name="TaxiLibrary.EventHandler">
<Position X="2.75" Y="4" Width="1.5" />
<TypeIdentifier>
<HashCode>AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>Client.cs</FileName>
</TypeIdentifier>
</Delegate>
<Font Name="Segoe UI" Size="9" />
</ClassDiagram>
69 changes: 69 additions & 0 deletions CourseWork_TaxiPark-master/TaxiPark/Client.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
using System;

namespace TaxiLibrary
{
public delegate void EventHandler();
public class Client : ClientBase
{
public event EventHandler MoneyChange;
public Travel trip = new Travel();
public event Action Notify;
public Client()
{
}

public Client(string name, bool registered, double money) : base(name, registered, money)
{
if (registered) trip.Sum -= trip.Sum * 0.20;
}

protected override void RegisteredDiscount()
{
Console.ForegroundColor = ConsoleColor.Green;
if (Registered) Console.WriteLine($" {Name} you are a registered client,so we've prepared you a special 20% discount :)");
Notify?.Invoke();
Console.ResetColor();
}
public override void ChooseTrip(decimal distance, string data, string transport, string comfortClass, string paymentSelection)
{
trip.Distance = distance;
trip.Data = data;
trip.Transport = transport;
trip.ComfortClass = comfortClass;
trip.PaymentSelection = paymentSelection;
RegisteredDiscount();
if (!trip.trips.Contains(trip))
{
trip.trips.Add(trip);
}

foreach (Travel trip in trip.trips)
{
trip.BonusWeekDiscount();
}
}

public override void Pay()
{
if (Money <= trip.Sum)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine($"{Name},you don't have enough money");
Console.ResetColor();
}
else
{
Money -= trip.Sum;
MoneyChange += Client_MoneyChange;
MoneyChange?.Invoke();
}
}
private void Client_MoneyChange()
{
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("{0}, you paid {1}, Now you have {2} on your bill", Name, trip.Sum, Money);
Console.ResetColor();
}
public override string ToString() { return string.Format("Name: {0}, Id: {1}", Name, IdCode); }
}
}
25 changes: 25 additions & 0 deletions CourseWork_TaxiPark-master/TaxiPark/ClientBase.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using System;

namespace TaxiLibrary
{
public abstract class ClientBase
{
public bool Registered { get; set; }
public string Name { get; set; }
public double Money { get; set; }
public int IdCode { get; set; }
public ClientBase()
{
}

public ClientBase(string name, bool registered, double money)
{
Name = name;
Money = money;
Registered = registered;
}
protected abstract void RegisteredDiscount();
public abstract void ChooseTrip(decimal distance, string data, string transport, string comfortClass, string paymentSelection);
public abstract void Pay();
}
}
Loading