⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dian.c

📁 嵌入式点菜系嵌入式点菜系统源码供参考c51c51统源码供参考嵌入式点菜系统源码供参考c51c51c51c51
💻 C
📖 第 1 页 / 共 3 页
字号:



/* 将取出的当天日期格式由yy.mm.dd转换为yyyymmdd */
void dateup(xdata uchar *d)
       {
        xdata char d1[9];
        getdate(d1);   
        if(d1[0]=='9')
           {
            d[0]='1';
            d[1]='9';
           }
        else
           {
            d[0]='2';
            d[1]='0';
           }
        d[2]=d1[0];
        d[3]=d1[1];
        d[4]=d1[3];
        d[5]=d1[4];
        d[6]=d1[6];
        d[7]=d1[7];
        d[8]=0;
       }



/* 功能: 按下向上键,记录号减1,按下向下键,记录号加1 */
/* 入口: k为所按键值,r为当前记录号 */
/* 出口: 返回处理后的记录号 */
int fy(xdata char k,xdata int r)
             {
	     xdata int t1;
               if(k==0x8e)
                  {
                   if(r==0)
                     {
                      cls();
                      moveto(15,14);
                      putstr("   ");
                      moveto(5,3);
                      putstr_h("已到首记录!");
                      bell(5);
                     } 
                   if(r>0)
                       r-=1;
                  }
               else if(k==0x8f)
                       {
                        t1=libsumr()-2;
                        if(r==t1)
                          {
                           cls();
                           moveto(15,14);
                           putstr("   ");
                           moveto(5,3);
                           putstr_h("已到末记录!");
                           bell(5);
                          }
                        if(r<t1)
                           r+=1;
                       }
               return(r);
             }




/* 功能: 按下向上键,记录号为上一未抄记录,按下向下键,记录号为下一未抄记录 */
/* 入口: k为所按键值,r为当前记录号 */
/* 出口: 返回处理后的记录号 */
/* 注: 调用的函数uchar wcpd(xdata int r)用来判断记录是否为未抄,r为要判断的记录号,未抄返回0,已抄返回1 */
int lcfy(xdata uchar k,xdata int r)
        {
         xdata int r1;
         xdata uchar f,bz;
         f=1;
         if(k==0x8e)
           {
            for(r1=r-1;r1>=0;r1--)
               {
                bz=wcpd(r1);
                if(bz==0)
                  {
                   f=0;
                   break;
                  }
               }
            if(f==0)
               r=r1;
            if(r1<0)
              {
               cls();
               moveto(15,14);
               putstr("   ");
               moveto(5,2);
               putstr("未抄记录已到首");
               bell(5);
              }
           }
         if(k==0x8f)
           {
            for(r1=r+1;r1<total;r1++)
               {
                bz=wcpd(r1);
                if(bz==0)
                  {
                   f=0;
                   break;
                  }
               }
            if(f==0)
               r=r1;
            if(r1==total)
              {
               cls();
               moveto(15,14);
               putstr("   ");
               moveto(5,2);
               putstr("未抄记录已到末");
               bell(5);
              }
           }
         return(r);
        }




/* 功能: 搜索与输入字符串相符的记录 */
/* 入口: s为欲比较的字符串,l为字符串长度,fn为欲比较的字段序号 */
/* 出口: 返回数据库中符合条件的第一条记录号,若找不到则返回0xffff */
int ss(xdata uchar *s,xdata uchar l)
    {
     xdata int r,f;
     xdata uchar kdata[20];
     cls();
     moveto(15,14);
     putstr("   ");
     moveto(7,3);
     putstr("请等待...");
     for(r=0;r<total;r++)
        {
         libset(r,DBH);
         libread(kdata);   
         f=strncmp(kdata,s,l);
         if(f==0)
           goto ee;
        }
     for(r=0;r<total;r++)
        {
         libset(r,CBH);
         libread(kdata);   
         f=strncmp(kdata,s,l);
         if(f==0)
         break;
        }
ee:    if(r==total)
       r=0xffff;
       cls();
    return(r);
   }

/*帮助程序菜单*/
void help(void)
	{
	char c,k;
        for(;;)
                {
                cls();
                moveto(15,14);  /* 屏幕定位 */
                putstr("   ");     /* 覆盖屏幕右下角的"123" */ 
                moveto(1,6);
                putstr_h("帮  助");
                moveto(4,1);
                putstr_h("1:抄表使用说明");
                moveto(6,1);
                putstr_h("2:通讯使用说明");
                moveto(8,1);
                putstr_h("3:样板程序说明");
                moveto(10,1);
                putstr_h("4:注意事项");
                moveto(12,1);
                putstr_h("F2:退出");
                moveto(15,1);
                putstr_h("请选择_");
lab:            k=key(0);
                if(k!=0x31&&k!=0x32&&k!=0x33&&k!=0x34&&k!=0x89)
		goto lab;

	switch(k)
		{
		case 0x89:return;
		case 0x31:hlp1();break;
		case 0x32:hlp2();break;
		case 0x33:hlp4();break;
		case 0x34:hlp3();break;
		}	
        }
	}

/*抄表使用说明*/
void hlp1(void)
	{
	char k;
be:	cls();
        moveto(15,14);  /* 屏幕定位 */
        putstr("   ");     /* 覆盖屏幕右下角的"123" */ 
	moveto(1,1);
        putstr_h("(1) 按'开'键后再");
        moveto(3,1);
        putstr_h("按'运行'键就可运");
	moveto(5,1);
        putstr_h("抄表程序。");
	moveto(7,1);
        putstr_h("(2) 抄表时F2键常");
	moveto(9,1);
        putstr_h("作为返回键,F1键");
	moveto(11,1);
        putstr_h("常用于查询抄表。");
	moveto(13,1);
        putstr_h("(3)主菜单<续上次");
	moveto(15,1);
        putstr_h("抄表> 是指接着上");
l1:	k=key(0);
	if(k!=0x8f&&k!=0x89)	/*F2退出,V向下翻页*/
                goto l1;
	if(k==0x89)
		return;
	cls();
        moveto(15,14);  /* 屏幕定位 */
        putstr("   ");     /* 覆盖屏幕右下角的"123" */ 
	moveto(1,1);
        putstr_h("次已抄电表号的后");
	moveto(3,1);
        putstr_h("面继续抄表。");
	moveto(5,1);
        putstr_h("主菜单<抄未抄户>");
        moveto(7,1);
        putstr_h("是搜索已抄电表中");
        moveto(9,1);
        putstr_h("未抄的电表。");
        moveto(13,1);
	putstr_h("F2 返回 ^上V下页");
l2:	k=key(0);
	if(k!=0x89&&k!=0x8e)	/*F2退出,^向上翻页*/
		goto l2;
	if(k==0x89)
                return;
	goto be;
	}

/*通讯使用说明*/
void hlp2(void)
	{
	char k;
	cls();
        moveto(15,14);  /* 屏幕定位 */
        putstr("   ");     /* 覆盖屏幕右下角的"123" */ 
	moveto(1,1);
        putstr_h("按'开'键后依次按");
        moveto(3,1);
        putstr_h("'F1''1',抄表机进");
	moveto(5,1);
        putstr_h("入通讯状态, 此时");
	moveto(7,1);
        putstr_h("按其它键无反应,");
	moveto(9,1);
        putstr_h("若一定要此时退出");
	moveto(11,1);
        putstr_h("通讯, 须按最上一");
	moveto(13,1);
        putstr("排中间的'O'键。");
        moveto(15,1);
	putstr_h("F2 返回");
be:	k=key(0);
	if(k!=0x89)	/*F2退出*/
            goto be;
 	}

/*注意事项*/
void hlp3(void)
	{
	char k;
be:	cls();
        moveto(15,14);  /* 屏幕定位 */
        putstr("   ");     /* 覆盖屏幕右下角的"123" */ 
	moveto(1,1);
        putstr_h("(1) 请使用充电电");
        moveto(3,1);
        putstr_h("池,不要使用普通");
	moveto(5,1);
        putstr_h("碱性电池 (因其电");
	moveto(7,1);
        putstr_h("压可能为1.7V以上");
	moveto(9,1);
        putstr_h("(2) 对于刚开机时");
	moveto(11,1);
        putstr_h("的F1功能,一般由");
	moveto(13,1);
        putstr_h("计算机人员操作,");
	moveto(15,1);
        putstr_h("对于抄表人员,操");
l1:	k=key(0);
	if(k!=0x89&&k!=0x8f)	/*F2退出,^向上翻页*/
		goto l1;
	if(k==0x89)
                return;
	cls();
        moveto(15,14);  /* 屏幕定位 */
        putstr("   ");     /* 覆盖屏幕右下角的"123" */ 
	moveto(1,1);
        putstr_h("作不当可能会失误");
	moveto(3,1);
        putstr_h("(3) 当抄表员有疑");
	moveto(5,1);
        putstr_h("问时, 请记住当时");
	moveto(7,1);
        putstr_h("的现象, 并立即告");
	moveto(9,1);
        putstr_h("知计算机人员, 在");
        moveto(11,1);
	putstr_h("机房重现当时现象");
	moveto(13,1);
	putstr_h("从而分析解决问题");
        moveto(15,1);
	putstr_h("F2 返回 ^上V下页");
l2:	k=key(0);
	if(k!=0x89&&k!=0x8e)	/*F2退出,v向下翻页*/
		goto l2;
	if(k==0x89)
                return;
	goto be;
	}

/*抄表机程序说明"*/
void hlp4(void)
	{
	char k;
be:	cls();
        moveto(15,14);  /* 屏幕定位 */
        putstr("   ");     /* 覆盖屏幕右下角的"123" */ 
        moveto(1,1);
	putstr_h("此抄表程序是我公");
        moveto(3,1);
        putstr_h("司做的一个样板,");
	moveto(5,1);
        putstr_h("具有一定的代表性");
	moveto(7,1);
        putstr_h("客户也可以对此程");
	moveto(9,1);
        putstr_h("序做适当改动,在");
	moveto(11,1);
        putstr_h("磁盘中有其源程序");
	moveto(13,1);
        putstr_h("和详细的注解。");
        moveto(15,1);
	putstr_h("F2 返回");
l1:	k=key(0);
	if(k!=0x89)	/*F2退出*/
		goto l1;
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -