Классы, файлы, их свойства. Конструкторы. Деструкторы. Перегрузки - 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д