Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 16

Калькулятор тарифов.

25.11.2009, 00:33. Показов 4008. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть необходимость создать приложение предназначенное для выбора оптимального тарифа оператора сотовой связи. Входной txt файл содержит дату, время звонка, продолжительность, и номер на который звонишь. Даже не знаю каким макаром это все реализовать. Буду очень благодарен если кто нибудь поможет. (Хотя бы разработать алгоритм)

Мои мысли насчет этого, загоняем все данные из txt в компонент textbox, затем ... мысль останавливается. Тарифы кстати думаю можно подобрать по принципу кто то звонит больше ночью -ему один тариф, кто то больше днем- тому другой и все остальные в этом духе.
P.S. Сам не первый день работаю на с# но эта задача для меня сложновата.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.11.2009, 00:33
Ответы с готовыми решениями:

1С Измение тарифов
Люди, помогите)) В моей стране отменили отчисление в Пенсионный фонд с покупки валюты, которое раньше составляло 1%. Теперь это отчисление...

Расчет тарифов с условиями
Добрый день! Необходимо посчитать итоговую сумму по трем условиям. Есть определенные типы диапазонов по весу, и каждому диапазону...

Задача о выборе тарифов
Есть задача над которой несколько дней голову ломаю n клиентов готовы платить за наши услуги по ai каждый. Задано k. Нужно выбрать k...

21
46 / 46 / 3
Регистрация: 18.10.2009
Сообщений: 119
25.11.2009, 02:48
Студворк — интернет-сервис помощи студентам
две функции Main. Я тебе почти полный текст консольного приложения дал.
0
46 / 46 / 3
Регистрация: 18.10.2009
Сообщений: 119
25.11.2009, 14:49
не туда вызов засунул
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
class Program
    {
 
        struct Call
        {
            public DateTime Date;
            public TimeSpan Dur;
            public string Num;
            public bool Night
            {
                get { return Date.Hour >= 21 || Date.Hour < 7; }// c 21:00 до 6:59:59
            }
            public double Minutes
            {
                get { return Dur.TotalMinutes; }
            }
            public bool MTS
            {
                get { return Num.StartsWith("8919"); }
            }
            public Call(string line)
            {
                var cols = line.Split('\t');
                Date = DateTime.Parse(cols[0], CultureInfo.GetCultureInfo("ru-RU")).Add(TimeSpan.Parse(cols[1]));
                Dur = TimeSpan.Parse(cols[2]);
                Num = cols[3];
 
            }
 
        }
 
        private static Call[] s_calls;
        static void Main(string[] args)
        {
            var lines = System.IO.File.ReadAllLines("mts.txt");
            s_calls = new Call[lines.Length - 1];
            for (var i = 1 /*в нулевой заголовки*/; i < lines.Length; i++)
            {
                s_calls[i - 1] = new Call(lines[i]);
            }
            var nochnoy = new Nochnoy();
            var priceN = nochnoy.Calc(s_calls);
            var raschetliviy = new Raschetliviy();
            var priceR = raschetliviy.Calc(s_calls);
            if (priceR > priceN)
            {
                Console.WriteLine("Расчётливый выгоднее ночного");
            }
            else
            {
                if (priceN == priceR)
                    Console.WriteLine("Расчётливый и ночной одинаково выгодны");
                else
                    Console.WriteLine("Ночной выгоднее расчётливого");
 
 
            }
            Console.ReadLine();
 
        }
 
 
        abstract class MonthTarifier
        {
            public virtual double Payment { get { return 0; } }
            public abstract double GetPrice(Call call);
            public virtual int IncludedMinutes { get { return 0; } }
            private double minutes = 0;
            public virtual double Calc(Call[] calls)
            {
                var price = Payment;
                for (var i = 0; i < calls.Length; i++)
                {
                    price += CalcOne(calls[i]);
                }
                return price;
            }
            public virtual double CalcOne(Call call)
            {
                double min = Math.Ceiling(call.Minutes);//поминутная тарификация
                if (IncludedMinutes >= minutes)
                {
                    minutes += min;
                    if (minutes <= IncludedMinutes) return 0;
                    return (minutes - IncludedMinutes) * GetPrice(call);
                }
                minutes += min;
                return min * GetPrice(call);
            }
 
        }
        class Nochnoy : MonthTarifier
        {
            public override double GetPrice(Call call)
            {
                var price = call.MTS ? 4.5 : 5.0;
                if (call.Night) price /= 2;
                return price;
            }
        }
        class Raschetliviy : MonthTarifier
        {
            public override double Payment
            {
                get
                {
                    return 350;
                }
            }
            public override double GetPrice(Call call)
            {
                return 6;
            }
            public override int IncludedMinutes
            {
                get
                {
                    return 60;
                }
            }
        }
 
 
 
    }
и время поправил в файле. У тебя там было 12:69 и без секунд.
Вложения
Тип файла: txt Mts.txt (333 байт, 24 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.11.2009, 14:49
Помогаю со студенческими работами здесь

Подсчитать сумму тарифов за каждый месяц
Подсчитать сумму тарифов за каждый месяц, вывести строка - название тарифа, столбец - Январь, Февраль, Март. Помоги подлатать запрос ...

Вывести сумму тарифов за месяцы в диапазоне [a,b]
Помогите, пожалуйста, с Excel воевать, не пойму с какой стороны подойти - надо вывести сумму тарифов за месяцы в диапазоне . В общем надо,...

Расчет двух тарифов в обычный день и по льготному тарифу
Добрый день , прошу помощи в составлении таблицы и подсчета общего количество переговоров по льготному тарифу. Создал таблицу но не...

Объединение запросов на сумму тарифов и сумму подписок
Сумма за тариф по месяцам WITH CTE_table (name, January, February, March) AS ( SELECT tarif.name, (CASE WHEN...

Как преобразовать обычный калькулятор в калькулятор использующий класс стек?
#include &lt;iostream&gt; int main(){ int a = 0; int b = 0; char operation; std::cout &lt;&lt; &quot;Enter first number: &quot;; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru