17.05.2011, 08:55. Просмотров 4250. Ответов 15
Задание:
Описать объект, включающий заданные поля и методы. Написать программу, которая создает массив объектов и список объектов и содержит процедуры, работающие с указанны-ми структурами.
Объект - некоторый товар в магазине. Параметры: наименование, количество и заку-почная цена. Методы: конструктор и процедура, определяющая стоимость товара исходя из заданного процента прибыли. Определить суммарную стоимость всех товаров в магазине. Реализовать два варианта (с массивом и списком).
Написал пока только для списка, с массивом чуть позже напишу. Я создаю класс по заданию, список реализую через структуру ( 1 поле переменная типа класса, 2 поле - указатель ). У меня такой вопрос.
Как получить доступ к полям и методам класса, через указатель ?
Код программы
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
| #include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <conio.h>
class List {
public:
char name; float amount,price;
List(char n, float a, float p);
float PriceGood(float profit);
};
List::List(char n, float a, float p)
{
name = n;
amount = a;
price = p;
}
float List::PriceGood(float profit)
{
float pr;
pr = (price*profit*0.01)+price;
return(pr);
};
struct Element
{
List Good;
Element *next;
};
void main(int argc, char* argv[])
{
setlocale(0,"russian");
Element Tovar, *first, *cur, *temp;
char tn;
float ta,tp,tprof,sum=0;
int count,i=1;
first = NULL;
temp = NULL;
puts("Введите кол-во разных товаров и процент прибыли:");
scanf("%d %f",&count,&tprof);
puts("Введите название, кол-во и закупочную стоимость товаров:");
while(i<count){
printf("%d",i,". ");
scanf("%s %f %f\n",&tn,&ta,&tp);
cur = new Element;
cur->Good=List::List(tn,ta,tp);
if (first == NULL)
{
first = cur;
temp = cur;
cur->next = NULL;
}
else
{
temp->next = cur;
cur->next = NULL;
}
}
cur = first;
for(i=1;i<count;i++)
sum+=(cur->Good=List::PriceGood(tprof))*(cur->Good=List.amount);
printf("Суммарная стоимость всех товаров в магазине равна : ,%f",sum);
puts("Нажмите любую клавишу для завершения...");
_getch();
} |
|