Avatar billede babymaikragh Nybegynder
07. marts 2011 - 10:20 Der er 5 kommentarer

C# opgave

Har fået en C# opgave på min skole..

Skal lige siges at jeg ikke har nogen erfaring med C# overhovedet, så derfor er jeg her.

Opgaven lyder: (engelsk)

The company Andersen & Asp are receiving orders from customers and handles these orders. As part of an IT-solution you are to develop part of the backend of the system. The system is to handle information about customers, items and orders.
Below is shown (part of) the class diagram for the system:

http://www.gratisimage.dk/image-AD1D_4D74A2DA.jpg

Og her kommer de 3 opgaver hertil:

Exercise 1) The classes Customer and Item:
Firstly implement the classes Customer and Item. Attributes are shown in the class diagram. Add constructors and properties for all attributes, itemNo and custNo should be read-only.
Exercise 2) The class OrderLine
The association to Item is to be implemented by a reference from OrderLine to Item - as shown in the class diagram. The attribute qty is the number of items wanted of the item. Implement class OrderLine.
Exercise 3) The class Order
The association from Order to Customer is to be implemented by a reference from Order to Customer. The aggregation of order lines in Order is to be implemented by a List<OrderLine> in Order. The method AddOrderLine in Order adds an order line to the order. Implement this.
Now a method getTotalPrice is to be implemented on Order. It is to return the total price of the order.

Jeg beder ikke om en fuld løsning, men blot en hjælp til at komme i gang, gerne med lidt hjælp til hvad de forskellige koder i skriver gør.

/Tak
Avatar billede arne_v Ekspert
07. marts 2011 - 15:06 #1
Du har vel faaet undervisning i det siden du faar en opgave i det??
Avatar billede babymaikragh Nybegynder
07. marts 2011 - 18:46 #2
Hvis du læser en af de sidste linier kan du se at jeg IKKE ønsker en fuld løsning, men derimod hjælp til at komme i gang.

Håber det er ok Hr. Skolelære?
Avatar billede arne_v Ekspert
07. marts 2011 - 18:56 #3
Har det nogen relevans for spoergsmaalet om hvorvidt I har faaet en opgave i noget uden at have faaet undervisning i det eller ej?
Avatar billede keepy Seniormester
07. marts 2011 - 23:37 #4
opret 7 klasser som på billedet, det øverste i hver firkant er klassens navn f.eks. Customer.

de lilla firkanter  er metoder, og de blå med lås er private variabler.
Opret alle i deres respektive klasser

Klassen Item kunne se sådan ud

private int itemNo;
private String itemName;
private int price;

NB!! int er kun hel tal
Avatar billede plohse33 Nybegynder
08. marts 2011 - 18:56 #5
Hej, her er lidt til at få dig igang så. Jeg har lige sat nogle test værdier i konstruktørene, for at se om jeg fik det ønskede resultat returnere i metoden GetTotalPrice(). Dem ændre du bare tilbage til 0 eller tomme strings. Jeg går udfra at i dit projekt du også skal oprette de forskellige items, kunder osv. Det stod ikke helt i den tekst du havde indsat, men udfra klasse diagrammet, er det umiddelbart en "større" opgave.

Umiddelbart synes jeg der mangler en del af opgaven beskrevet, eller er det bare mig ?


class Customer
    {
        // Variabler       
        private string _Name;
        private static int _CustNo;

        // Default konstruktør
        public Customer()
        {
            _CustNo = 0;
        }

        // Read - Write property for _Name
        public string Name
        {
            get { return _Name; }
            set { _Name = value; }
        }

        // Readonly property for _CustNo
        public static int CustNo
        {
            get { return _CustNo; }
        }
       
    }

class Item
    {
        // Variabler
        private static int _ItemNo;
        private string _ItemName;
        private double _Price;



        // Default konstruktør
        public Item()
        {
            _ItemNo = 1;
            _ItemName = "Sko";
            _Price = 500;
        }

        // Readonly property for _ItemNo
        public static int ItemNo
        {
            get { return _ItemNo; }

        }

        // Read - Write property for _ItemName
        public string ItemName
        {
            get { return _ItemName; }
            set { _ItemName = value; }
        }

        // Read - Write property for _Price
        public double Price
        {
            get { return _Price; }
            set { _Price = value; }
        }



    }

class OrderLine
    {
        // Reference til Item.
        Item item;
             

        // Variabler
        private static int _Qty;


        // Default konstruktør
        public OrderLine()
        {
            _Qty = 6;
            item = new Item();
         
        }

        // Readonly property for _Qty
        public static int Qty
        {
            get { return _Qty; }
        }

        public Item Item
        {
            get { return item; }
            set { item = value; }
        }
    }

class Order
    {
        // Reference til Customer.
        Customer customer;
        // Reference til OrderLine
        OrderLine ol;

        // Variabler
        private static int _OrderNo;

        // En List med vores Orderlinier. Vi opretter en liste, som kan indeholde objekter af klassen OrderLine (_Qty)
        private List<OrderLine> orderlinier = new List<OrderLine>();

       
        // Default konstruktør
        public Order()
        {
            _OrderNo = 0;
            ol = new OrderLine();
        }

        // Readonly property for _OrderNo
        public static int OrderNo
        {
            get { return _OrderNo; }

        }

        // Metode som tilføjer Orderlinier til List<OrderLine>
        public void AddOrderLine(OrderLine ol)
        {
            orderlinier.Add(ol);
        }

        // Metode som retunerer en pris på den totale order
        public double GetTotalPrice()
        {
            double price = OrderLine.Qty * ol.Item.Price;
            return price;

        }




    }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester