Создать абстрактный класс «Товар», на его основе создать класс «Автомобиль» - C#

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

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

Вечер добрый, а может и не добрый. В изучении C# столкнулся с такой проблемой - как исключения. Имею такую задачу. Создать абстрактный класс «Товар» (наименование, цена, дата выпуска). На его основе создать класс «Автомобиль» (объём двигателя, расход бензина на 100 км, тип КПП, наличие сигнализации, госномер).

[1)Написать метод, определяющий минимальное количество дозаправок, необходимое чтобы проехать заданное расстояние. Количество бензина в начале пути задаёт пользователь в долях от объёма двигателя.

2)Класс, генерирующий и обрабатывающий исключения при попытке задать объём двигателя меньше 1 литра. 3)Для программы, разработанной в процессе выполнения задания 1 осуществить доступ к защищённым полям через свойства, создать класс-контейнер, хранящий массив из объектов одного из ранее созданных классов. Реализовать для этого класса: индексатор, интерфейсы IEnumerable, IEnumerator. Выполнить сортировку по какому-либо признаку. Вывести отсортированный список при помощи foreach. 4)Создать свойство – необходимость покраски. Покрасить автомобили, если в этом есть необходимость 5)onChange – запретить смену госномера. onEvent – когда расход бензина на 150 км превышает 2/3 объёма двигателя Извиняюсь сразу за свой код. Это пока рабочие наброски.Тем более что пока в C# новичок. Первый этап я выполнил. Сейчас борюсь с исключениями.Уже какой день. Если не трудно прошу доходчиво объяснить на примере. Код прилагаю.
Form.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
        public partial class Form1 : Form
    {
        int i = 0;
        tovar[] a = new tovar[100];
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        { }
        private void panel1_Paint(object sender, PaintEventArgs e)
        { }
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            label3.Visible = true;
            maskedTextBox1.Visible = true;
            label4.Visible = true;
            textBox4.Visible = true;
            label5.Visible = true;
            textBox5.Visible = true;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            string nazv;
            double colg, srokg, benzg;
            DateTime data;
            {
                string[] str = new string[6];
                nazv = textBox1.Text;
                double price = Convert.ToDouble(textBox2.Text);
                colg = Convert.ToDouble(textBox5.Text);
                data = Convert.ToDateTime(maskedTextBox1.Text);
                srokg = Convert.ToDouble(textBox4.Text);
                benzg = Convert.ToDouble(textBox3.Text);
                try
                {
                    a[i] = new auto(nazv, price, data, srokg, colg, benzg);
                    str = a[i].show_all();
                    listView1.Items.Add(str[0]);
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[1]);
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[2]);
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[3]);
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[4]);
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[5]);
                }
 
                catch (ErrorClass error)
                {
                    MessageBox.Show(error.Message);
                }
                i++;
                textBox1.Clear();
                textBox2.Clear();
                maskedTextBox1.Clear();
                textBox4.Clear();
                textBox5.Clear();
                textBox3.Clear();
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            string[] str = new string[5];
            button1.Enabled = true;
            try
            {
                listView1.Items.Clear();
            }
            catch { }
            for (int x = 0; x < i; x++)
            {
                str = a[x].show_all();
                listView1.Items.Add(str[0]);
                listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[1]);
                listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[2]);
                listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[3]);
                listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[4]);
                listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[5]);
            }
        }
                      private void button3_Click(object sender, EventArgs e)
        {
            DateTime thisDay = DateTime.Today;
            string[] str = new string[6];
            listView1.Items.Clear();
            button1.Enabled = false;
            for (int x = 0; x < i; x++)
            {
                str = a[x].show_all();
                TimeSpan d = thisDay.Subtract(Convert.ToDateTime(str[2]));
                if (TimeSpan.Parse(str[3]) <= d)
                //if (str[0] == textBox6.Text)
                {
                    listView1.Items.Add(str[0]);
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[1]);
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[2]);
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[3]);
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[4]);
                    listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[5]);
                }
            }
        }
 
        private void textBox5_TextChanged(object sender, EventArgs e)
        {
        }
        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
        }
        private void textBox4_TextChanged(object sender, EventArgs e)
        {
        }
        private void button4_Click(object sender, EventArgs e)
        {
            String temp = "";
            const int rasst = 400;
            int put1, put2 ;
            string[] str = new string[6];
           // listView1.Items.Clear();
            //button1.Enabled = false;
            for (int x = 0; x < i; x++)
            //{
                str = a[x].show_all();
           int rashod = Convert.ToInt16(str[3]);
           int emkost = Convert.ToInt16(str[5]);
           put1 = (rashod * rasst) / emkost;
           put2 = put1 / emkost;
           temp = Convert.ToString(put2);
           MessageBox.Show (temp+"Дозоправок нужно совершить");
            }
        }
    }
Class1.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication1
{    
//сздание обстрактного класса Товар
    abstract class tovar
    {
        abstract public string[] show_all();
        protected string nazvanie;
        protected double cena;
        protected tovar(string nazv, double price)
        {
            nazvanie = nazv;
            cena = price;
        }
    }
    class auto : tovar
    {
        double colg; // объем двигателя
        DateTime datapr;//дата производства
        double srokg;//емкость        
        double benzg;//колличество бензина в баке
        public auto(string nazv, double price, DateTime data, double srok, double col, double benz)
            : base(nazv, price)
        {
            datapr = data;
            srokg = srok;
            colg = col;
            benzg = benz;
        }
        public override string[] show_all()
        {
            string[] s = new string[6];
            s[0] = nazvanie;
            s[1] = Convert.ToString(cena);
            s[2] = Convert.ToString(datapr);
            s[3] = Convert.ToString(srokg);
            s[4] = Convert.ToString(colg);
            s[5] = Convert.ToString(benzg);
            return s;
        }
    }
}
Вот сам класс исключения. Т.е. жалкое его подобие.
ErrorClass.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace WindowsFormsApplication1
{
    public class ErrorClass : Exception
    {
        private double colg = 1;
        public ErrorClass() { }
        public ErrorClass(double colg)
        {
            this.colg = colg;
        }
        public override string Message
        {
            get
            {
                string msg = base.Message;
                if (colg <1)
                {
                    msg += string.Format("укажите объем двигателя больше 1", Environment.NewLine, colg);
                }
                return msg;
            }
        }
    }
}

Решение задачи: «Создать абстрактный класс «Товар», на его основе создать класс «Автомобиль»»

textual
Листинг программы
 private void button1_Click(object sender, EventArgs e)
        {
            string nazv;
            double colg, srokg, benzg;
            DateTime data;
            {
                try//В этом блоке код который может генерировать исключение
                { 
                nazv = textBox1.Text;
                colg = Convert.ToDouble(textBox5.Text);
                double price = Convert.ToDouble(textBox2.Text);
                data = Convert.ToDateTime(maskedTextBox1.Text);
                 srokg = Convert.ToDouble(textBox4.Text);
                 benzg = Convert.ToDouble(textBox3.Text);
                 a[i] = new auto(nazv, price, data, srokg, colg, benzg);
                 if (colg == 1) throw new ErrorClass ();//генерируем собственное исключение
                 string[] str = new string[6];
                 str = a[i].show_all();
                 listView1.Items.Add(str[0]);
                 listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[1]);
                 listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[2]);
                 listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[3]);
                 listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[4]);
                 listView1.Items[listView1.Items.Count - 1].SubItems.Add(str[5]);
                 i++;
                }
                catch (ErrorClass er)//в этом блоке обрабатываем исключение
                {
                    MessageBox.Show(er.Message);
                    textBox5.Clear();
                    textBox1.Clear();
                    textBox2.Clear();
                    maskedTextBox1.Clear();
                    textBox4.Clear();
                    textBox3.Clear();
                }
                }           
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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