Перевозка грузов - C#

Узнай цену своей работы

Формулировка задачи:

Требования - вид груза; - тип вагона; - базовая стоимость перевозки груза данного вида в вагоне данного типа; - дата отгрузки; - дата возврата вагона; ------------------------------------------------------------------------------- - список типов вагонов, - список видов груза, - средняя стоимость перевозки выбранного вида груза; - общая стоимость перевозки;

Решение задачи: «Перевозка грузов»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Text;
 
 
 
 
namespace Azaza
 
{
 
public class gruz
 
{
 
 
 
public readonly string type;
 
public readonly string track;
 
public readonly int cost;
 
public readonly DateTime data_otgr;
 
public readonly DateTime data_vozvr;
 
public readonly int koef_skidki;
 
public readonly int koef_pov;
 
 
 
 
 
public gruz(string type, string track, int cost, DateTime data_otgr, DateTime data_vozvr, int koef_skidki, int koef_pov)
 
{
 
 
 
this.type = type;
 
this.track = track;
 
this.cost = cost;
 
this.data_otgr = data_otgr;
 
this.data_vozvr = data_vozvr;
 
this.koef_skidki = koef_skidki;
 
this.koef_pov = koef_pov;
 
}
 
}
 
}
 
class gruz_list
{
 
    private gruz[] mas;
 
    public gruz_list(int n)
    {
 
        mas = new gruz[n];
 
        for (int i = 0; i < n; i++)
        {
 
            Console.Write("Вид груза: ");
 
            string type = Convert.ToString(Console.ReadLine());
 
            Console.Write("Тип вагона: ");
 
            string track = Convert.ToString(Console.ReadLine());
 
            Console.Write("Базовая стоимость перевозки: ");
 
            int cost = Convert.ToInt32(Console.ReadLine());
 
            Console.Write("Дата отгрузки: ");
 
            DateTime data_otgr = Convert.ToDateTime(Console.ReadLine());
 
            Console.Write("Дата возврата вагона: ");
 
            DateTime data_vozvr = Convert.ToDateTime(Console.ReadLine());
 
            Console.Write("Коэфициент зимней скидки: ");
 
            int koef_skidki = Convert.ToInt32(Console.ReadLine());
 
            Console.Write("Коэффициент повышения стоимости перевозки летом: ");
 
            int koef_pov = Convert.ToInt32(Console.ReadLine());
 
            mas[i] = new gruz(type, track, cost, data_otgr, data_vozvr, koef_skidki, koef_pov);
 
        }
 
    }
 
 
 
    public void output()
    {
 
        Console.WriteLine("Вид груза Тип вагона  Cтоим п-и Дата отгр. Дата возвр. Коэф.з.с. Коэф.п.с.");
 
        for (int i = 0; i < 5; i++)
        {
 
            Console.WriteLine(mas[i].type + "           " + mas[i].track + "         " + mas[i].cost + "      " + mas[i].data_otgr.ToString("dd.MM.yyyy") + "  " + mas[i].data_vozvr.ToString("dd.MM.yyyy") + "  " + mas[i].koef_skidki + "        " + mas[i].koef_pov);
 
        }
 
    }
 
 
 
    public void task1()
    {
 
        int k = 0;
 
        for (int i = 0; i < 5; i++)
 
            if (mas[i].data_otgr.Year == DateTime.Now.Year - 1 && mas[i].data_otgr.Month < 7)
            {
 
                Console.WriteLine("Тип вагона, который использовался в первом полугодии прошлого года: " + mas[i].type);
 
                k++;
 
            }
 
        if (k == 0) { Console.WriteLine("Ни один из вагонов не использовался в первом полугодии прошлого года"); }
 
    }
 
    public double task3()
    {
 
        double sum = 0;
 
        for (int i = 0; i < 5; i++)
        {
 
            int s = mas[i].cost;
 
            if ((mas[i].data_otgr.Month == 1) || (mas[i].data_otgr.Month == 2) || (mas[i].data_otgr.Month == 12))
            {
 
                s = s - (mas[i].koef_skidki);
 
            }
 
            if ((mas[i].data_otgr.Month == 6) || (mas[i].data_otgr.Month == 7) || (mas[i].data_otgr.Month == 8))
            {
 
                s = s + (mas[i].koef_pov);
 
            }
 
            sum += s;
 
        }
 
        return sum;
 
    }
 
    public double task2()
    {
 
        Console.WriteLine("Введите вид груза: ");
 
        string str = Convert.ToString(Console.ReadLine());
 
        int sum = 0;
 
        int k = 0;
 
        double sr_sum = 0;
 
        for (int i = 0; i < 5; i++)
        {
 
            if (mas[i].type == str)
            {
 
                int s = mas[i].cost;
 
                if ((mas[i].data_otgr.Month == 1) || (mas[i].data_otgr.Month == 2) || (mas[i].data_otgr.Month == 12))
                {
 
                    s = s - mas[i].koef_skidki;
 
                }
 
                if ((mas[i].data_otgr.Month == 6) || (mas[i].data_otgr.Month == 7) || (mas[i].data_otgr.Month == 8))
                {
 
                    s = s + mas[i].koef_pov;
 
                }
 
                sum += s;
 
                k++;
 
            }
 
        }
 
        if (k == 0) { Console.WriteLine("Груз такого вида не найден"); }
 
        else
        {
 
            sr_sum = sum / k;
 
        }
 
        return sr_sum;
 
    }
 
    class Program
    {
 
        static void Main(string[] args)
        {
 
 
 
            gruz_list gl = new gruz_list(5);
 
            gl.output();
 
            gl.task1();
 
            Console.WriteLine("Cредняя стоимости перевозки груза данного вида: ");
 
            Console.WriteLine(gl.task2().ToString());
 
            Console.WriteLine("Общяя стоимость перевозок: ");
 
            Console.WriteLine(gl.task3().ToString());
 
            Console.ReadKey();
 
        }
 
    }
}

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы