Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Переписать графическую программу из C++ в C#


Автор: tereres 18.3.2006, 13:46
Дана прога на С++ - в основном работа с графикой. Надо перевести её в C#, с использованием System.Drawing - т.е. прога должна работать под Windows... Помогите, если можете. Это задача комовиажора.

Код

#include <iostream.h>
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>
//*****************************************************************************
int minimum(int k,...)
{
int *pi=&k+1;
int min=*pi;
for(;k;k--,pi++)
min = min > *pi ? *pi : min;
return min;
}
//*****************************************************************************
int mx, my, r = 20;
int x2,x3,x4,x1;
int y2,y3,y4,y1;
int c[5][5];
int i,j,a,b;
char ch;
//*****************************************************************************
void pic(void)
{ clrscr();
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "bgi");
errorcode = graphresult();
if (errorcode != grOk) { 
cout<<"Graphics error:"<<grapherrormsg(errorcode)<<endl;
cout<<"Press any key to halt:"<<endl;
getch();
exit(1);
}



mx = getmaxx() / 2;
my = getmaxy() / 6;
setcolor(4);
setfillstyle(1,4);
fillellipse(mx,my,r,r);
x1=getmaxx()/6;y1=getmaxy()/2;fillellipse(x1,y1,r,r);
x2=getmaxx()-getmaxx()/6;y2=getmaxy()/2;fillellipse(x2,y2,r,r);
x3=getmaxx()/3;y3=getmaxy()-getmaxy()/6;fillellipse(x3,y3,r,r);
x4=getmaxx()-getmaxx()/3;y4=getmaxy()-getmaxy()/6;fillellipse(x4,y4,r,r);

setcolor(15);
outtextxy(mx,my-10,"1");
outtextxy(x1-10,y1,"2");
outtextxy(x2+10,y2,"3");
outtextxy(x3,y3+10,"4");
outtextxy(x4,y4+10,"5");

setcolor(4);
setfillstyle(1,4);
//-0->1----------------------------------------------
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1])line(mx,my,x1,y1);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2])line(mx,my,x2,y2);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3])line(mx,my,x3,y3);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4])line(mx,my,x4,y4);
//-1->2----------------------------------------------
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][2])line(x1,y1,x2,y2);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][3])line(x1,y1,x3,y3);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][4])line(x1,y1,x4,y4);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][1])line(x2,y2,x1,y1);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][3])line(x2,y2,x3,y3);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][4])line(x2,y2,x4,y4);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][1])line(x3,y3,x1,y1);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][2])line(x3,y3,x2,y2);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][4])line(x3,y3,x4,y4);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][1])line(x4,y4,x1,y1);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][2])line(x4,y4,x2,y2);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][3])line(x4,y4,x3,y3);
//-2->3----------------------------------------------
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][2] &&
minimum(2,c[2][3],c[2][4])==c[2][3])line(x2,y2,x3,y3);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][2] &&
minimum(2,c[2][3],c[2][4])==c[2][4])line(x2,y2,x4,y4);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][3] &&
minimum(2,c[3][2],c[3][4])==c[3][2])line(x3,y3,x2,y2);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][3] &&
minimum(2,c[3][2],c[3][4])==c[3][4])line(x3,y3,x4,y4);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][4] &&
minimum(2,c[4][2],c[4][3])==c[4][2])line(x4,y4,x2,y2);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][4] &&
minimum(2,c[4][2],c[4][3])==c[4][3])line(x4,y4,x3,y3);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][1] &&
minimum(2,c[1][3],c[1][4])==c[1][3])line(x1,y1,x3,y3);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][1] &&
minimum(2,c[1][3],c[1][4])==c[1][4])line(x1,y1,x4,y4);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][3] &&
minimum(2,c[3][2],c[3][4])==c[3][2])line(x3,y3,x2,y2);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][3] &&
minimum(2,c[3][2],c[3][4])==c[3][4])line(x3,y3,x4,y4);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][4] &&
minimum(2,c[4][1],c[4][3])==c[4][1])line(x4,y4,x1,y1);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][4] &&
minimum(2,c[4][1],c[4][3])==c[4][3])line(x4,y4,x3,y3);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][1] &&
minimum(2,c[1][2],c[1][4])==c[1][2])line(x1,y1,x2,y2);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][1] &&
minimum(2,c[1][2],c[1][4])==c[1][4])line(x1,y1,x4,y4);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][2] &&
minimum(2,c[2][1],c[2][4])==c[2][1])line(x2,y2,x1,y1);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][2] &&
minimum(2,c[2][1],c[2][4])==c[2][4])line(x2,y2,x4,y4);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][4] &&
minimum(2,c[4][1],c[4][2])==c[4][1])line(x4,y4,x1,y1);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][4] &&
minimum(2,c[4][1],c[4][2])==c[4][2])line(x4,y4,x2,y2);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][1] &&
minimum(2,c[1][2],c[1][3])==c[1][2])line(x1,y1,x2,y2);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][1] &&
minimum(2,c[1][2],c[1][3])==c[1][3])line(x1,y1,x3,y3);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][2] &&
minimum(2,c[2][1],c[2][3])==c[2][1])line(x2,y2,x1,y1);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][2] &&
minimum(2,c[2][1],c[2][3])==c[2][3])line(x2,y2,x3,y3);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][3] &&
minimum(2,c[3][1],c[3][2])==c[3][1])line(x3,y3,x1,y1);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][3] &&
minimum(2,c[3][1],c[3][2])==c[3][2])line(x3,y3,x2,y2);
//-3->4----------------------------------------------
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][2] &&
minimum(2,c[2][3],c[2][4])==c[2][3] &&
minimum(1,c[3][4])==c[3][4])line(x3,y3,x4,y4);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][2] &&
minimum(2,c[2][3],c[2][4])==c[2][4] &&
minimum(1,c[4][3])==c[4][3])line(x4,y4,x3,y3);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][3] &&
minimum(2,c[3][2],c[3][4])==c[3][2] &&
minimum(1,c[2][4])==c[2][4])line(x2,y2,x4,y4);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][3] &&
minimum(2,c[3][2],c[3][4])==c[3][4] &&
minimum(1,c[4][2])==c[4][2])line(x4,y4,x2,y2);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][4] &&
minimum(2,c[4][2],c[4][3])==c[4][2] &&
minimum(1,c[2][3])==c[2][3])line(x2,y2,x3,y3);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][1] &&
minimum(3,c[1][2],c[1][3],c[1][4])==c[1][4] &&
minimum(2,c[4][2],c[4][3])==c[4][3] &&
minimum(1,c[3][2])==c[3][2])line(x3,y3,x2,y2);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][1] &&
minimum(2,c[1][3],c[1][4])==c[1][3] &&
minimum(1,c[3][4])==c[3][4])line(x3,y3,x4,y4);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][1] &&
minimum(2,c[1][3],c[1][4])==c[1][4] &&
minimum(1,c[4][3])==c[4][3])line(x4,y4,x3,y3);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][3] &&
minimum(2,c[3][1],c[3][4])==c[3][1] &&
minimum(1,c[1][4])==c[1][4])line(x1,y1,x4,y4);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][3] &&
minimum(2,c[3][1],c[3][4])==c[3][4] &&
minimum(1,c[4][1])==c[4][1])line(x4,y4,x1,y1);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][4] &&
minimum(2,c[4][1],c[4][3])==c[4][1] &&
minimum(1,c[1][3])==c[1][3])line(x1,y1,x3,y3);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][2] &&
minimum(3,c[2][1],c[2][3],c[2][4])==c[2][4] &&
minimum(2,c[4][1],c[4][3])==c[4][3] &&
minimum(1,c[3][1])==c[3][1])line(x3,y3,x1,y1);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][1] &&
minimum(2,c[1][2],c[1][4])==c[1][2] &&
minimum(1,c[2][4])==c[2][4])line(x2,y2,x4,y4);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][1] &&
minimum(2,c[1][2],c[1][4])==c[1][4] &&
minimum(1,c[4][2])==c[4][2])line(x4,y4,x2,y2);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][2] &&
minimum(2,c[2][1],c[2][4])==c[2][1] &&
minimum(1,c[1][4])==c[1][4])line(x1,y1,x4,y4);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][2] &&
minimum(2,c[2][1],c[2][4])==c[2][4] &&
minimum(1,c[4][1])==c[4][1])line(x4,y4,x1,y1);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][4] &&
minimum(2,c[4][1],c[4][2])==c[4][1] &&
minimum(1,c[1][2])==c[1][2])line(x1,y1,x2,y2);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][3] &&
minimum(3,c[3][1],c[3][2],c[3][4])==c[3][4] &&
minimum(2,c[4][1],c[4][2])==c[4][2] &&
minimum(1,c[2][1])==c[2][1])line(x2,y2,x1,y1);

if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][1] &&
minimum(2,c[1][2],c[1][3])==c[1][2] &&
minimum(1,c[2][3])==c[2][3])line(x2,y2,x3,y3);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][1] &&
minimum(2,c[1][2],c[1][3])==c[1][3] &&
minimum(1,c[3][2])==c[3][2])line(x3,y3,x2,y2);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][2] &&
minimum(2,c[2][1],c[2][3])==c[2][1] &&
minimum(1,c[1][3])==c[1][3])line(x1,y1,x3,y3);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][2] &&
minimum(2,c[2][1],c[2][3])==c[2][3] &&
minimum(1,c[3][1])==c[3][1])line(x3,y3,x1,y1);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][3] &&
minimum(2,c[3][1],c[3][2])==c[3][1] &&
minimum(1,c[1][2])==c[1][2])line(x1,y1,x2,y2);
if (minimum(4,c[0][1],c[0][2],c[0][3],c[0][4])==c[0][4] &&
minimum(3,c[4][1],c[4][2],c[4][3])==c[4][3] &&
minimum(2,c[3][1],c[3][2])==c[3][2] &&
minimum(1,c[2][1])==c[2][1])line(x2,y2,x1,y1);






getch();
closegraph();
}

//*****************************************************************************
void cost(void)
{clrscr();
for(i=0;i<5;i++)
{ for(j=0;j<5;j++)
{cout<<"Vedite stoimost iz goroda "<<i+1<<" v gorod "<<j+1<<" ";cin>>c[i][j];cout<<endl;}
cout<<"\n\n";
}
getche();
}
//*****************************************************************************


int main(void)
{
do{
clrscr();
cout<<"1-Zapisat stoimost\n";
cout<<"2-Prosmotret marshrut\n";
cout<<"0-Vixod\n";
cin>>ch;
if(ch=='1')cost();
if(ch=='2')pic();
}while(ch!='0');
return 0;
}

Автор: mr.DUDA 18.3.2006, 16:08
Если никто не возьмётся, будет перемещено в "Центр помощи".

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)