Классы, файлы, их свойства. Конструкторы. Деструкторы. Перегрузки - C#
Формулировка задачи:
Доброго времени суток! Дорогие посоветуйте ссылки чтобы я почитал и смог написать данную программу, если что-то вы знаете, напишите, так программа довольно таки сложная для реализации прошу помогите с неё, а сам тоже буду пытаться написать хотя бы её частями. И большая просьба помочь собрать её воедино.
Требования
1. Сформировать класс, отвечающий предложенным требованиям.
2. Данные могут вводиться как из файла, так и с клавиатуры.
3.Показать ситуации, в которых надо использовать this.
4 Использовать свойства.
5. Для работы с датой сформировать специальный класс с необходимыми перегруженными операциями.
- номер посылки;
- вес посылки;
- базовая цена отправки за 100 г
- дата отправки ;
- пункт назначения;
- коэффициент сезонной стоимости;
- стоимость упаковки;
Методы класса экземпляра для вычисления или выполнения действий
- Количество пунктов назначения для посылок, отправленных во втором полугодии прошло года;
- общая стоимость посылок;
- средний вес посылок, отправленных в указанный пункт назначения;
Конструкторы (не менее 3-х перегруженных)
Деструкторы
Решение задачи: «Классы, файлы, их свойства. Конструкторы. Деструкторы. Перегрузки»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Post
{
public int numpost;//номер посылки
public double weigthpost;//вес посылки
public int cost100gr;//стоимость за 100 гр
public DateTime dateout;//дата отправки
public string destination;//пункт назначения
public double seasoncost;//коэфициэнт сезонной стоимости
public int packcost;//стоимость упаковки
public Post(int numpost, double weigthpost, int cost100gr, DateTime dateout, string destination, double seasoncost, int packcost)
{
this.numpost = numpost;
this.weigthpost = weigthpost;
this.cost100gr = cost100gr;
this.dateout = dateout;
this.destination = destination;
this.seasoncost = seasoncost;
this.packcost = packcost;
show();
}
~Post()
{
string txt = "Удаление объекта!/" + getInfo();
Console.WriteLine(txt);
Console.ReadLine();
}
string getInfo()
{
string text = "Номер посылки:\t" + numpost + "\n";
text = text + "Вес посылки:\t" + weigthpost + "\n";
text = text + "Стоимость за 100 грамм:\t" + cost100gr + "\n";
text = text + "Дата отправки:\t" + dateout + "\n";
text = text + "Пункт назначения:\t" + destination + "\n";
text = text + "Коэффициент сезонной стоимости:\t" + seasoncost + "\n";
text = text + "Стоимость упаковки:\t" + packcost + "\n";
return text;
}
public void show()
{
BinaryWriter bw = new BinaryWriter(File.Create("C:\\filelab04.txt"));
string txt = getInfo();
Console.WriteLine(txt);
bw.Write(txt);
}
}
public class Dateouting
{
public bool DateFind(DateTime datetime)
{
if ((datetime.Year==2012)&(datetime.Month>=7)&(datetime.Month<=12))
return true;
else return false;
}
}
class Program
{
static double AllShop(double weigth, int cost, double k)
{
return weigth * cost * k * 10;
}
static double MiddleWeigth(double weigth,int cnt)
{
return weigth/cnt;
}
static void Main(string[] args)
{
BinaryWriter bw = new BinaryWriter(File.Create("C:\\filelab04.txt"));
int numpost;//номер посылки
double weigthpost;//вес посылки
int cost100gr;//стоимость за 100 гр
DateTime dateout;//дата отправки
string destination;//пункт назначения
double seasoncost;//коэфициэнт сезонной стоимости
int packcost;//стоимость упаковки
double allcost = 0;
double allweigth = 0;
int count = 0;
int cnt = 0;
Console.Write("Сколько посылок хотите занести в базу? : ");
int n = int.Parse(Console.ReadLine());
Post[] posts = new Post[n];
for (int i = 0; i < n; i++)
{
Console.Write("введитe № посылки: ");
numpost = int.Parse(Console.ReadLine());
Console.Write("введитe вес посылки(В кг): ");
weigthpost = double.Parse(Console.ReadLine());
Console.WriteLine("введитe стоимость посылки за 100 грамм: ");
cost100gr = int.Parse(Console.ReadLine());
Console.WriteLine("введитe дату отправки: ");
dateout = Convert.ToDateTime(Console.ReadLine());
Console.WriteLine("введитe пункт назначения: ");
destination = Console.ReadLine();
Console.WriteLine("введитe сезонный коэффициент: ");
seasoncost = double.Parse(Console.ReadLine());
Console.WriteLine("введитe стоимость упаковки: ");
packcost = int.Parse(Console.ReadLine());
Console.WriteLine();
posts[i] = new Post(numpost, weigthpost, cost100gr, dateout, destination, seasoncost, packcost);
}
BinaryReader br = new BinaryReader(File.Open("C:\\filelab04.txt", FileMode.Open));
for (int i = 0; i < n; i++)
{
Dateouting x = new Dateouting();
if (x.DateFind(posts[i].dateout))
count++;
}
Console.WriteLine("В "+count+" количество пунктов были отправлены посылки во втором полугодии прошлого года");
bw.Write("В " + count + " количество пунктов были отправлены посылки во втором полугодии прошлого года");
for (int i = 0; i < n; i++)
{
allcost = allcost + AllShop(posts[i].weigthpost,posts[i].cost100gr,posts[i].seasoncost);
}
Console.WriteLine("Общая стоимость посылок= " + allcost);
bw.Write("Общая стоимость посылок= " + allcost);
Console.WriteLine("Укажите пункт в который вы хотите посчитать средний вес посылок:");
string s = Console.ReadLine();
for (int i = 0; i < n; i++)
{
if (posts[i].destination == s)
{
allweigth = allweigth + posts[i].weigthpost;
cnt++;
}
}
allweigth=MiddleWeigth(allweigth,cnt);
Console.WriteLine("Средний вес посылок=" + allweigth);
bw.Write("Средний вес посылок=" + allweigth);
bw.Close();
Console.WriteLine();
br.Close();
Console.ReadLine();
}
}
}