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

📄 main.cpp

📁 Borland c++编写
💻 CPP
字号:
#include<stdio.h>   //  i/o 函数
#include<string.h>  // 字符函数
#include<conio.h>   //  屏幕操作函数
#include<htxlcd.h> //   液晶显示子函数
#include<htlcd.h>   //  视窗定义.开关窗口.画框.监控电池状态
#include<dos.h>   
#include<commplus.h>   //  通信函数,如调用服务器.收发字符流.读入条形码
#include<cstream.h>
#include "Function.h"
#INCLUDE<SUBFUN.H>





void zdcd(void); //读自动菜单;
void sdcd(void); //读手动菜单;
void readqd(void);//读窃电量;
void readdn(void);//读电能;
void readxl(void);//读需量;
void readfl(void);//读费率;

// 读手动菜单
int sdcd(void){
MENU_ITM mainmenu[6];
int i;
char sd_kz;
do{
 mainmenu[0].menubar="0.读电量";
 mainmenu[1].menubar="1.读需量";
 mainmenu[2].menubar="2.读参数";
 mainmenu[3].menubar="3.读窃电量";
 mainmenu[4].menubar="4.退出";
 mainmenu[5].menubar=null;
 for(i=0;i<=5;i++) mainmenu[i].menukey=i+48;
do{
	clrscr();
	SetPullMode(0);
	sd_kz=putch((char)menu(mainmenu,"手动抄表",1,1,1));
	SetPullMode(2);
	 if (sd_kz==key_esc) sd_kz='4';
	}while(sd_kz<'0' || sd_kz>'5');

switch (sd_kz){
	case '0':
		readdn()      //读电量
		break;
	case '1':
		     //读需量
		break;
	case '2':
		      //读参数
		break;
	case '3':
		readqd()      //读窃电量
		break;
	    
	}
}while(sd_kz!='4');
}

//自动读数据
int zdcd(void)
{
   char * DataName=new char[6];
 
   DataName[0]=0;
   strcat(DataName, " ");
   char * Getval = new char[100];
   char * Addr =new char[10];
   Addr[0]=0;
   strcat(Addr,"99999999");
   printf("%s","wait...");
   getch();
   if(ReadData(DataName,Getval,Addr))
   {
     printf("%s",Getval);
     getch();
     
   }
   delete [] DataName;

   delete [] Getval;
   delete [] Addr;
   return 1;	
}
//读电能
int readdn(void)
{
   char * DataName=new char[6];
   DataName[0]=0;
   strcat(DataName, "9010");
   char * Getval = new char[100];
   char * Addr =new char[10];
   Addr[0]=0;
   strcat(Addr,"99999999");
   printf("%s","wait...");
   getch();
   if(ReadData(DataName,Getval,Addr))
   {
     printf("%s",Getval);
     getch();
   }
   delete [] DataName;
   delete [] Getval;
   delete [] Addr;
   return 1;
}
//读窃电
int readqd(void)
(
 fhandle=fopen(_filename,"rb+");
   unsigned tmp;
    char fhead[12];
    fread(fhead,12,1,fhandle);
    fhdsize=fhead[8];
    frcsize=fhead[10];
    reccount=fhead[4];

  //read meter______________________________________________
   char * DataName=new char[6];

   DataName[0]=0;
   strcat(DataName, "9270");
   char * Getval = new char[600];
   char * Addr =new char[10];
   Addr[0]=0;
   strcat(Addr,"99999999");
   printf("%s","wait...");
   getch();
  char * TStr=new char [10];
	int k=1;
   if(ReadData(DataName,Getval,Addr)==0)
   {
     while(strlen( Getval)!=0)
     {

       memcpy(TStr,Getval,10);
       TStr[10]=0;
       printf("%d:%s\n",k,TStr);
       getch();
       Getval+=10;
       k++;
     }

     char data[19][12];
     memcpy(data,Getval,strlen(Getval));
     int i,j;
     char DTStr[3];
     memcpy(dbfitem.Meterno,&Addr[3],8);
     for(i=0;i<20;i++)
     {
       dbfitem.Flag=data[i][0];
      strcpy(dbfitem.StartDateTime,"20");
      strcpy(dbfitem.EndDateTime,"20");
       for(j=1;j<=12;j++)
       {
      //	 Byte2Hex(data[i][j],DTStr);
	 if(j<=6)
	   memcpy(&dbfitem.StartDateTime[(j-1)*2+2],DTStr,2);
	 else
	   memcpy(&dbfitem.EndDateTime[(j-7)*2+2],DTStr,2);
       } //for
      AppendRecord(dbfitem);
    } //for

     getch();
 }
    else
   {
     printf("%s","read meter data error\n");
     getch();
   }
   delete [] DataName;
   delete [] Getval;
   delete [] Addr;
   delete  [] TStr;
  dbfclose();
   return(1);
}








//主程序
int main(){
MENU_ITM mainmenu[3];
char i;
int ii;
do{
clrscr();
mainmenu[0].menubar="0.自动抄表";
mainmenu[1].menubar="1.手动抄表";
mainmenu[2].menubar="2.退出";
mainmenu[3].menubar=NULL;
for(ii=0;ii<=2;ii++) mainmenu[ii].menukey=ii+48;
i=putch((char)menu(mainmenu,"主菜单",0,1,1));
switch (i){
	case '0':
		zdcd();  //自动读取数据
		break;
	case '1':
		sdcd();  //手动读取数据
		break;
	case '2':
		return(0);
	}
}while (i!='2');
return(0);
}

⌨️ 快捷键说明

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