我想在VC中用c语言来做图形编程
我做c语言的数据结构课程设计,有关约瑟夫环的,简单,但要求要有友好界面,还要用图形动态演示,这就困难了。用tc和vc都行,但tc实在太out太费劲了,我不想用;我想用vc,于是学了点API,现在会做界面了,但是还是不会图形编程。。。。似乎VC里面没有针对c语言的图形编程。MFC又是c++的,我没学过C++,但我就想在VC中用c语言来做图形编程,哪位高手有什么好的办法,教程,资料?谢谢!!!
回复 8楼 yangfanconan
这位朋友,最近由于忙别的事,刚看到你的帖,很谢谢你,你的建议让我豁然开朗!太给力了!但是我现在有新的问题了,我用ege做好了菜单,但我想从图形窗口再跳到文本编辑窗口,它却跳不过去,这让我意识到我只是编出了不能进行任何操作的图片而已,请问怎么解救这个问题,我用过TC下的关闭图像窗口的函数,还是没有用!
程序代码:
#include "graphics.h" #include<stdio.h> #include<stdlib.h> #include<time.h> #include<windows.h> typedef struct node { int number; int code; struct node*next; }node,*linklist; void creat(linklist&head,int n) //建立循环链表 { struct node*p,*q; int i; q=head=(linklist)malloc(sizeof(node)); head->next=NULL; for(i=1;i<=n;i++) { p=(linklist)malloc(sizeof(node)); p->number=i; p->code=1+(int)(n*rand()/(RAND_MAX+1.0)); printf(" 第%d个人的密码是:%d\n\n",i,p->code); p->next=q->next; q->next=p; q=p; } p->next=head->next; head=head->next; } void out (linklist&head,int n,int m,int S[]) //出环函数 { struct node*p,*q,*b; int k,j=0; while(j<n) { int i=1; b=p=head; printf(" 此时约瑟夫环形状如下,假设首尾相连:\n\n"); printf(" ****"); for(k=1;k<=n-j;k++) { printf("【%d】*****",b->number); b=b->next; } Sleep(4000); system("cls"); while(i!=m) { q=p; p=p->next; i++; } q->next=p->next; j++; printf("\n\n 第 %d 个出环的人的编号是: (%d)\n\n",j,p->number); S[j-1]=p->number; m=p->code; free(p); head=q->next; } printf("\n 此时所有人都已经出环!!!\n"); } void menum() { int driver = DETECT, mode = 0; initgraph(&driver, &mode, "约瑟夫环系统"); setbkcolor(BLUE); bar(15,20,620,450); setcolor(RED); settextstyle(3,0,5); outtextxy(210, 50, "welcome you"); setcolor(GREEN); settextstyle(1,0,4); outtextxy(230, 140, "约瑟夫环系统"); setcolor(BLACK); settextstyle(4,0,3); outtextxy(100, 250, "进入系统请按1"); outtextxy(430, 250, "退出系统请按0"); getch(); getchar(); closegraph(); } void main() { menum(); struct node*head; int sum,Code,x,i; scanf("%d",&x); while(x==1) { printf("\n\n 请输入人数和初始密码,用逗号隔开 \n\n"); scanf("%d,%d",&sum,&Code); int a[100]; creat(head,sum); Sleep(4000); system("cls"); printf("\n\n\n\n"); out(head,sum,Code,a); Sleep(3000); system("cls"); printf("\n\n\n\n 通过演示可知,约瑟夫环出环的人的编码依次是:\n\n "); for(i=0;i<sum;i++) { printf("%d ",a[i]); } printf("\n\n\n 是否继续运行,是(1)否(0) \n\n"); scanf("%d",&x); } system("cls"); printf("\n\n\n\n\n\n 感谢使用!再见!"); Sleep(3000); system("cls"); exit(0); }