首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

急问问问~解决办法

2012-03-01 
急急急问问问~~~~~~~~~~~~~~~````#includestdio.h #includeconio.h #includedos.h #defineESC0x1b#d

急急急问问问~~~~~~~~~~~~~~~````
#include   "stdio.h "
#include   "conio.h "
#include   "dos.h "
#define   ESC   0x1b
#define   UP   0x48
#define   DOWN   0x50
#define   LEFT   0x4b
#define   RIGHT   0x4d
#define   PGUP   0x49
#define   PGDN   0x51
#define   DEL   0x53
void   clear(int   x1,int   y1,int   x2,int   y2,int   c)
{
int   a,b;
setbkcolor(c);
for(a=y1;a <=y2;a++)
{
for(b=x1;b <=x2;b++)
{
gotoxy(a,b);
                cprintf( "   ");
}
}
}

main()
{
        int   y,m,d,l,h,i,k,r,tj=1;
        char   p;
        int   a[]={31,28,31,30,31,30,31,31,30,31,30,31};
        char   *b[]={ "Sun ", "Mon ", "Tue ", "Wed ", "Thr ", "Fri ", "Sat "};
        char   buff[960];
        struct   date   curdate;
        getdate(&curdate);
        y=curdate.da_year;
        m=curdate.da_mon;
        l=wherex();
        h=wherey();
        gettext(21,1,59,11,buff);
        while(tj)
      {
      clear(21,1,59,11,BLACK);
      gotoxy(34,2);
      textcolor(WHITE);
      cprintf( "%dyear   %dmon   date ",y,m);
      a[1]=((y%4==0&&y%100!=0||y%400==0))?29:28;
      d=y+(y-1)/4+(y-1)/400-(y-1)/100;
      if(m> 1)
      {
      for(i=0;i <=m-2;i++)
      d=d+a[i];
      }
      k=d%7;
      clear(21,3,59,3,GREEN);
      for(i=0;i <=6;i++)
      {
      gotoxy(5*k+24,3);
      if(i==0||i==6)
      textcolor(RED);
      else   textcolor(WHITE);
      cputs(b[i]);
      }
      textbackground(BLUE);
      r=4;
      for(i=1;i <=a[m-1];i++)
      {
      gotoxy(5*k+25,r);
      if(k==0||k==6)
      textcolor(RED);
      else   textcolor(WHITE);
      cprintf( "%2d ",i);
      ++k;
      if(k> 6);
      {
      k=0;
              r++;
      }
      }
      clear(21,10,59,10,GREEN);  
      gotoxy(27,10);
      cprintf( "↑/↓:year     ←/→:min     ESC ");
      p=getch();
      switch(p)
    {
      case   UP:--y;
                      break;


      case   DOWN:++y;
                          if(y <1840)
                            y=1840;
                          break;
      case   PGUP:y-=20;
                          break;
      case   PGDN:y+=20;
                          if(y <1840)
                            y=1840;
                          break;
      case   RIGHT:++m;
                            if(m> 12)
                              m=1;
                            break;
      case   LEFT:--m;
                          if(m <1)
                            m=12;
                          break;
      case   DEL:y=curdate.da_year;
                        m=curdate.da_mon;
                        break;
      case   ESC:tj=0;
    }
}
      puttext(21,1,59,11,buff);
      gotoxy(l,h);
}
这道运行不了,帮忙运行看看.谢谢

[解决办法]
帮顶
[解决办法]
用图形时得在主程序中加载一个函数 如下。
int gdriver = DETECT, gmode;
initgraph(&gdriver, &gmode, " ");

[解决办法]
while 循环中存在问题 ..

单步调试一下
[解决办法]
帮顶
记得给分
分在管理里面给
要输入密码!!!
[解决办法]
为什么使用系统的实现函数(就是带_开头的),一般不倡导使用此类函数~
[解决办法]
#include <dos.h>
#include <stdio.h>

void show_mouse()
{
union REGS ireg;
ireg.x.ax=1;
int86(0x33,&ireg,&ireg);
}

void hid_mouse()
{
union REGS ireg;
ireg.x.ax=2;
int86(0x33,&ireg,&ireg);
}


char left_pressed()
{
union REGS ireg,oreg;
ireg.x.ax=3;
int86(0x33,&ireg,&oreg);
return(oreg.x.bx&1);
}
int reset()
{
union REGS ireg,oreg;
ireg.x.ax=0;
int86(0x33,&ireg,&oreg);


if(oreg.x.ax==0) return(0);
else return(1);
}
void set_xy(int x,int y)
{
union REGS ireg;
ireg.x.ax=4;
ireg.x.cx=x;
ireg.x.dx=y;
int86(0x33,&ireg,&ireg);
}
void get_xy(int *x,int *y)
{
union REGS ireg,oreg;
ireg.x.ax=3;
int86(0x33,&ireg,&oreg);
*x=oreg.x.cx;
*y=oreg.x.dx;
}
void button_pressed_status(int button,int *counter,int *x,int *y)
{
union REGS ireg,oreg;
ireg.x.ax=5;
ireg.x.bx=button;
int86(0x33,&ireg,&oreg);
*counter=oreg.x.bx;
*x=oreg.x.cx;
*y=oreg.x.dx;
}

void button_released_status(int button,int *counter,int *x,int *y)
{
union REGS ireg,oreg;
ireg.x.ax=6;
ireg.x.bx=button;
int86(0x33,&ireg,&oreg);
*counter=oreg.x.bx;
*x=oreg.x.cx;
*y=oreg.x.dx;
}

int motion(int *x,int *y)
{
union REGS ireg,oreg;
ireg.x.ax=11;
int86(0x33,&ireg,&oreg);
*x=oreg.x.cx;
*y=oreg.x.dx;
return(*x||*y);
}

int get_storage_req()
{
union REGS ireg,oreg;
ireg.x.ax=21;
int86(0x33,&ireg,&oreg);
return(oreg.x.bx);
}

void save_mouse_state(void *buf)
{
union REGS ireg;
struct SREGS isreg;
ireg.x.ax=22;
ireg.x.dx=FP_OFF(buf);
segread(&isreg);
isreg.es=ireg.ds;
int86(0x33,&ireg,&isreg);
}

void restore_mouse_state(void *buf)
{
union REGS ireg;
struct SREGS isreg;
ireg.x.ax=23;
ireg.x.dx=FP_OFF(buf);
segread(&isreg);
isreg.es=ireg.ds;
int86(0x33,&ireg,&isreg);
}

应该够用了吧

热点排行