Помогите сделать задание по инфоматике. ПРОГУ ПИСАТЬ НЕ НАДО!!! На уроке информатики препод задал задание на С++ в графическом режиме на компиляторе Borland C++ 3.1 написать прогу, в которой две фигуры (точка и окружность), перемещаясь в пространстве, не должны выходить за пределы поля, очерчивающим прямоугольником, и реализовать с помощью объектно-ориентированного программирования и используя виртуальные функции. Прогу я написал, но при здаче препод попросил меня, все места, где использовались PUBLIC заменить на PROTECTED. Отсюда вопрос: Может ли работать программа, если там нет ни одного PUBLIC. Если да, то подскажите, как написать прогу. Текст проги:
| Код | #include <iostream.h> #include <conio.h> #include <graphics.h> #include <process.h> #include <stdio.h> #include <fstream.h> #include <time.h> #include <dos.h> #include <bios.h> #include <stdlib.h>
//class Klavishi class Klavishi { public: virtual int show()=0; virtual int hide()=0; };
//class Point class Point:virtual public Klavishi { public: int X1,Y1;//chenter to4ki dlia class Point int x1,y1,x2,y2;//parametrii oblasti Point (int a,int b) {X1=a;Y1=b;};//X1,Y1 int show ();//pokazat to4ky int hide();//skriiti int ramka_p();//pokazanie ramki };
int Point::show () { rectangle (X1,Y1,X1,Y1); return 0; };
int Point::hide () { setcolor (0); rectangle (X1,Y1,X1,Y1); return 0; };
int Point::ramka_p () { int x1,y1,x2,y2; x1=0; y1=0; x2=639; y2=479; setcolor (5); rectangle (x1,y1,x2,y2); return 0; };
//class Circle class Circle:virtual public Klavishi { public: int X2,Y2;//chenter to4ki dlia class Circle int R;//radius okryznosti Circle (int c,int d,int rad) {X2=c;Y2=d;R=rad;};//X2,Y2 int show (); int hide(); };
int Circle::show() { circle (X2,Y2,R); return 0; };
int Circle::hide () { setcolor (0); circle (X2,Y2,R); return 0; };
void main() { int gdriver=DETECT; int gmode; int errorcode; initgraph(&gdriver, &gmode,"e:\\BORLANDC\\BGI\\"); errorcode=graphresult(); if(errorcode!=grOk) { printf("OLLIbka: %d\n", errorcode); puts("Sei4as nyzno nazhat <Enter>"); getch(); exit(1); } int a=10;//na4alnaia koord to4ki X int b=10;//na4alnaia koord to4ki Y int c=75;//na4alnaia koord kryga X int d=400;//na4alnaia koord kryga Y int rad=50;//radius kryga Circle koord_circle(c,d,rad); char ch; int t=2;//color to4ki int tt=15;//color kryga for (;;) { Point koord_point(a,b); setcolor(t); koord_point.show(); Circle koord_circle(c,d,rad); koord_circle.R; setcolor(tt); koord_circle.show(); koord_point.ramka_p(); ch=getch(); if (ch=='a') {koord_point.hide();a--;if (a<=1) {a=1;};Point koord_point(a,b);setcolor (t);koord_point.show();} if (ch=='d') {koord_point.hide();a++;if (a>=639) {a=638;};Point koord_point(a,b);setcolor (t);koord_point.show();} if (ch=='w') {koord_point.hide();b--;if (b<=1) {b=1;};Point koord_point(a,b);setcolor (t);koord_point.show();} if (ch=='s') {koord_point.hide();b++;if (b>=479) {b=478;};Point koord_point(a,b);setcolor (t);koord_point.show();} if (ch=='z') {setcolor (t=rand()%16);koord_point.show();} if (ch=='q') {break;} if ((int)ch==75) {koord_circle.hide();c--;if (c-koord_circle.R<=1) {c=1+koord_circle.R;};Circle koord_circle(c,d,rad);setcolor (tt);koord_circle.show();} if ((int)ch==77) {koord_circle.hide();c++;if (638-c-rad<=0) {c=638-rad;};Circle koord_circle(c,d,rad);setcolor (tt);koord_circle.show();} if ((int)ch==72) {koord_circle.hide();d--;if (d-koord_circle.R<=1) {d=1+koord_circle.R;};Circle koord_circle(c,d,rad);setcolor (tt);koord_circle.show();} if ((int)ch==80) {koord_circle.hide();d++;if (478-d-rad<=0) {d=478-rad;};Circle koord_circle(c,d,rad);setcolor (tt);koord_circle.show();} if (ch=='x') {setcolor (tt=rand()%16);koord_circle.show();} if (ch=='t') {rad=rad-1;koord_circle.hide();Circle koord_circle(c,d,rad);} if (ch=='r'&&(c-rad>1)&&(d-rad>1)) {rad=rad+1;koord_circle.hide();Circle koord_circle(c,d,rad);} if (ch=='r'&&((c-rad==0)||(d-rad==0))) {rad=rad;c;d;koord_circle.hide();Circle koord_circle(c,d,rad);} if (ch=='r'&&((c+rad==639)||(d-rad==0))) {rad=rad-1;c;d;koord_circle.hide();Circle koord_circle(c,d,rad);} if (ch=='r'&&((d+rad==479)||(c-rad==0))) {rad=rad-1;c;d;koord_circle.hide();Circle koord_circle(c,d,rad);} if (ch=='r'&&((d+rad>=479)||(c+rad>=639))) {rad=rad;c;d;koord_circle.hide();Circle koord_circle(c,d,rad);} if (koord_point.X1<=1) {koord_point.hide();koord_point.X1=2;koord_point.show();} if (koord_point.Y1<=1) {koord_point.hide();koord_point.Y1=2;koord_point.show();} }; closegraph(); ;}
| |