user3562186
user3562186

Reputation: 15

Creating a Car Class that Incorporates Speed, Model, and Make

I am getting a new error after having added the () to the Car instantiation. It says:

'Car_Class_BBrantley.Form1.myCar()' must declare a body because it is not marked abstract, extern, or partial The error is thrown on line 14.

Alright, so my task is to create an application that displays 3 main features: year, make, and speed of a car. The year and make are inputted with textboxes and the speed starts at 0.

There is an accelerate button which is supposed to add 5 to the speed every time it is pressed and a brake button which decreases the speed by 5 every time it is pressed.

I am having trouble using the class and form together to display the results. I need to display in a messagebox the make, year, and speed. I have been sitting here for hours and I am getting nowhere.

Any and all help is much appreciated. I'm sorry if this is a mess. I have never worked with classes before.

Here is the form:

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 Car_Class_BBrantley
{
    public partial class Form1 : Form
    {
        private Car myCar();

        public Form1()
        {
            myCar = new Car();

            InitializeComponent();
        }

        private void GetCarData(Car car)
        {
            try {
                myCar.Make = txtMake.Text;

                myCar.Year = int.Parse(txtModel.Text);

                myCar.Speed = 0;

            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Concat("Must enter a valid make and year model for the car. ", ex.Message, "\r\n", ex.StackTrace));
            }
        }

        private void btnAcc_Click(object sender, EventArgs e)
        {
            GetCarData();
            myCar.AccSpeed(5);
            MessageBox.Show(" Your car is a " + myCar.Year + myCar.Make + " and it is     traveling " + myCar.Speed + " mph. ");
        }

        private void btnBrake_Click(object sender, EventArgs e)
        {
            GetCarData();
            myCar.DecSpeed(5);
            MessageBox.Show(" Your car is a " + myCar.Year + myCar.Make + " and it is     traveling " + myCar.Speed + " mph. ");
        }
    }
}

If you would like to see the class:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Car_Class_BBrantley
{
    class Car
    {
        private int year;
        private string make;
        private int speed;

        public Car()
        {
            this.year = 1994;
            this.make = "Ford";
            this.speed = 0;
        }

        public Car(string make, int year, int speed)
        {
            this.year = year;
            this.make = make;
            this.speed = speed;
        }

        public string Make
        {
            get { return make; }
            set { make = value; }
        }

        public int Year
        {
            get { return Year; }
            set { Year = value; }
        }

        public int Speed
        {
            get { return speed; }
            set { speed = value; }
        }

        public void AccSpeed(int speedIncrement)
        {
            //Add check for speed limit ranges
            Speed += speedIncrement;
        }

        public void DecSpeed(int speedDecrement)
        {
            //Add check for speed limit ranges
            Speed -= speedDecrement;
        }
    }
}

Upvotes: 1

Views: 16599

Answers (2)

ClickRick
ClickRick

Reputation: 1568

Change

private Car myCar();

to

private Car myCar;

and

private void GetCarData(Car car)

to

private void GetCarData()

Upvotes: 1

Dan Hunex
Dan Hunex

Reputation: 5318

change

    myCar = new Car;  
to    myCar = new Car();

Upvotes: 0

Related Questions