留给编程高手的问题

作者&投稿:承枝 (若有异议请与网页底部的电邮联系)
致编程高手~

先照着书上的写程序,最好能亲自调试、运行
然后做书上的作业,然后多看编程书,也可以在网上多看
学程序最主要的是耐心,和实践,慢慢来吧1

那就学易语言,全中文。只要懂中文就能学会

如果你是要想如何做windows服务程序的话,可以使用windows Services API族,具体步骤如下,首先连接服务控制管理数据库使用OpenSCManager函数,然后调用CreateService函数创建服务,成功后使用RegisterServiceCtrlHandler函数注册控制处理例程,然后通过SetServiceStatus函数设置服务状态,这个时候就可以进入你的主程序进行处理了,当然了这个步骤是将注册服务和处理事务都在一个程序内,如果分开的话就需要使用RegisterServiceProcess函数进行注册了。
我以前做过一个通用的注册服务程序,你只需将自己处理函数放在我程序指定的位置就行了。下面贴出代码,但是这个地方自动将空格置顶,如果你觉得看的不舒服,可以访问http://www.wyos.net获得代码或者直接mail我wy_lslrt@yahoo.com.cn,我给你发过去。
需要补充一下,为何要有一个MsgBox()函数,因为在windows的服务程序中是没有GUI环境的如果需要使用GUI必须手动的打开窗口站,才可以使用GUI。
===================Service.h=====================
#define WYCONST_SLEEPTIME 4000
#define WYCONST_FILEPATHSIZE 1024
#define WYCONST_MSGBOX_ERROR 65535
#define WYCONST_SERVICE_NAME "NTMService"

SERVICE_STATUS WY_SvcStatus;
SERVICE_STATUS_HANDLE WY_hSvcStatusHandle;
TCHAR WY_szBinpath[WYCONST_FILEPATHSIZE];
DWORD WY_dwCurState; //服务进程当前状态

/*-----------------ServiceMain()----------------------*/
/*
服务入口函数
*/
VOID WINAPI ServiceMain(DWORD WY_dwArgc, LPTSTR * WY_lpszArgv);

/*-----------------ServiceContro()l--------------------*/
/*
服务控制响应函数
*/
VOID WINAPI ServiceControl(DWORD WY_dwCtrlCode);

/*-----------------IsServiceSetup()-------------------*/
/*
判断服务是否已经安装函数
return value:
FALSE 没有安装
TRUE 已经安装
*/
BOOL IsServiceSetup();

/*----------------IsServiceRun()-------------------*/
/*
判断服务是否已经运行
return value:
FALSE 没有运行
TRUE 已经运行
*/
BOOL IsServiceRun();

/*----------------SetupService()---------------------*/
/*
安装服务函数
return value:
FALSE 安装失败
TRUE 安装成功
*/
BOOL SetupService();

/*----------------RunService()----------------------*/
/*
运行服务
此函数是在安装服务后调用
return value:
FALSE 服务运行失败
TRUE 服务成功运行
*/
BOOL RunService(SC_HANDLE WY_hSvcHandler);

/*-----------------MsgBox()------------------------*/
/*
显示一个对话框
此函数是在服务程序中显示一个对话框
parameter:
LPCTSTR WY_lpszText 要显示的信息
LPCTSTR WY_lpszTitle 要显示的对话框的标题
UINT WY_uType 要显示的对话框类型
类型值查阅MSDN的MessageBox的uType的值
return value:

如果成功返回,值是下面的一种
IDABORT Abort 按钮被按下.
IDCANCEL Cancel 按钮被按下.
IDCONTINUE Continue 按钮被按下.
IDIGNORE Ignore 按钮被按下.
IDNO No 按钮被按下.
IDOK OK 按钮被按下.
IDRETRY Retry 按钮被按下.
IDTRYAGAIN Try 按钮被按下.
IDYES Yes 按钮被按下.
WYCONST_MSGBOX_ERROR 显示对话框失败.
*/
int MsgBox(LPCTSTR WY_lpszText,LPCTSTR WY_lpszTitle,UINT WY_uType);
=================Service.c======================
/*
在ServiceMain 中注释"请在这里插入处理函数"处放入处理函数
*/
#include <TCHAR.h>
#include <stdio.h>
#include <windows.h>
#include <winbase.h>
#include <winsvc.h>
#include <process.h>
#include "service.h"

void main()
{
//定义服务入口结构
SERVICE_TABLE_ENTRY WY_ServiceEntry[2];
DWORD WY_dwErrCode;
DWORD WY_dwRetValue;
char WY_szErrString[256];

//先获得当前服务程序的路径
WY_dwRetValue = GetModuleFileName(NULL,WY_szBinpath,WYCONST_FILEPATHSIZE);
if(!WY_dwRetValue)
{
WY_dwErrCode = GetLastError();
sprintf(WY_szErrString,"GetModuleFileName Error %d",WY_dwErrCode);
OutputDebugString(WY_szErrString);
return;
}
OutputDebugString(WY_szBinpath);
//下面if else 是判断服务是否已经安装
//如果已经安装则进入服务入口函数
//否则进行安装服务
if(IsServiceSetup())
{
OutputDebugString("Service have setuped");

if(!IsServiceRun())
{
WY_ServiceEntry[0].lpServiceName = WYCONST_SERVICE_NAME;
WY_ServiceEntry[0].lpServiceProc = (LPSERVICE_MAIN_FUNCTION)ServiceMain;

WY_ServiceEntry[1].lpServiceName = NULL;
WY_ServiceEntry[1].lpServiceName = NULL;

//启动服务的控制分配机制线程

if(!StartServiceCtrlDispatcher(WY_ServiceEntry))
{
WY_dwErrCode = GetLastError();
if(WY_dwErrCode == ERROR_INVALID_DATA)
{
OutputDebugString((LPCTSTR)"无效的服务入口结构");
return;
}
if(WY_dwErrCode == ERROR_SERVICE_ALREADY_RUNNING)
{
OutputDebugString((LPCTSTR)"服务已经运行");
return;
}
OutputDebugString((LPCTSTR)"启动服务入口函数未知错误");
return;
}
}
else
{
OutputDebugString((LPCTSTR)"服务已经运行");
return;
}
}
else
{ //安装服务
OutputDebugString("Not find Service");
if(!SetupService())
{
OutputDebugString((LPCTSTR)"安装服务失败");
return;
}
}

}
/*---------------服务进程必须提供的函数--------------------*/
VOID WINAPI ServiceMain(DWORD WY_dwArgc,LPTSTR *WY_lpszArgv)
{
//初始化服务状态
OutputDebugString((LPCTSTR)"初始化服务状态");
WY_SvcStatus.dwServiceType = SERVICE_WIN32;
WY_SvcStatus.dwCurrentState = SERVICE_START_PENDING;
WY_SvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN;
WY_SvcStatus.dwWin32ExitCode = NO_ERROR;
WY_SvcStatus.dwServiceSpecificExitCode = NO_ERROR;
WY_SvcStatus.dwCheckPoint = 0;
WY_SvcStatus.dwWaitHint = 0;
//注册控制函数
OutputDebugString((LPCTSTR)"注册控制函数");
WY_hSvcStatusHandle = RegisterServiceCtrlHandler(WYCONST_SERVICE_NAME,ServiceControl);
if(WY_hSvcStatusHandle == ERROR_INVALID_NAME)
{
OutputDebugString((LPCTSTR)"无效的服务名称");
return;
}
if(WY_hSvcStatusHandle == ERROR_SERVICE_DOES_NOT_EXIST)
{
OutputDebugString((LPCTSTR)"未找到指定服务");
return;
}
//成功注册
WY_SvcStatus.dwCurrentState = SERVICE_RUNNING;
//设置服务进程状态
OutputDebugString((LPCTSTR)"设置服务进程状态");
SetServiceStatus(WY_hSvcStatusHandle,&WY_SvcStatus);
WY_dwCurState = SERVICE_RUNNING;

//
//请在这里加入处理函数

while(WY_SvcStatus.dwCurrentState == SERVICE_RUNNING)
{
OutputDebugString((LPCTSTR)"在这里加入你的处理代码");
// MsgBox("test",WYCONST_SERVICE_NAME,0);

Sleep(WYCONST_SLEEPTIME);
}

return;
}

VOID WINAPI ServiceControl(DWORD WY_dwCtrlCode)
{
OutputDebugString((LPCTSTR)"接受控制");
switch(WY_dwCtrlCode)
{
case SERVICE_CONTROL_STOP:
OutputDebugString((LPCTSTR)"服务退出");

WY_SvcStatus.dwCurrentState = SERVICE_STOPPED;
WY_SvcStatus.dwWin32ExitCode = NO_ERROR;

SetServiceStatus(WY_hSvcStatusHandle,&WY_SvcStatus);
WY_dwCurState = SERVICE_STOPPED;
return;
case SERVICE_CONTROL_SHUTDOWN:
OutputDebugString((LPCTSTR)"系统关机");

WY_SvcStatus.dwCurrentState = SERVICE_STOPPED;
WY_SvcStatus.dwWin32ExitCode = NO_ERROR;

SetServiceStatus(WY_hSvcStatusHandle,&WY_SvcStatus);
WY_dwCurState = SERVICE_STOPPED;
return;
default:

break;

}
SetServiceStatus(WY_hSvcStatusHandle,&WY_SvcStatus);
}
/*---------------------------服务运行前的配置函数--------------------*/
BOOL IsServiceSetup()
{
SC_HANDLE WY_hSCHandle;
DWORD WY_dwErrCode;
DWORD WY_dwBufferNeeded = 0;
DWORD WY_dwEntriesNum = 0;
DWORD WY_dwNextEntry = 0;
DWORD WY_i;
char WY_szErrString[256];
BOOL WY_isSetup = FALSE;
ENUM_SERVICE_STATUS WY_essService,*WY_pessService;

//打开服务控制管理数据库
WY_hSCHandle = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if(!WY_hSCHandle)
{
WY_dwErrCode = GetLastError();
if(WY_dwErrCode == ERROR_ACCESS_DENIED)
{
OutputDebugString((LPCTSTR)"请求被拒绝");
exit(0);
}
if(WY_dwErrCode == ERROR_DATABASE_DOES_NOT_EXIST)
{
OutputDebugString((LPCTSTR)"服务程序数据库未找到");
exit(0);
}
if(WY_dwErrCode == ERROR_INVALID_PARAMETER)
{
OutputDebugString((LPCTSTR)"无效的参数");
exit(0);
}
OutputDebugString((LPCTSTR)"OpenSCManager 未知错误");
exit(0);
}
//成功打开服务控制管理数据库,枚举服务
//首先获得需要多大的缓存空间
if(!EnumServicesStatus(WY_hSCHandle,SERVICE_WIN32,SERVICE_STATE_ALL,&WY_essService,sizeof(ENUM_SERVICE_STATUS),
&WY_dwBufferNeeded,&WY_dwEntriesNum,&WY_dwNextEntry))
{
WY_dwErrCode = GetLastError();
if(WY_dwErrCode == ERROR_MORE_DATA) //获得了需要的缓存大小,重新获得服务数据
{
WY_dwBufferNeeded += sizeof(ENUM_SERVICE_STATUS);
WY_pessService = (LPENUM_SERVICE_STATUS)malloc(WY_dwBufferNeeded);

if(!EnumServicesStatus(WY_hSCHandle,SERVICE_WIN32,SERVICE_STATE_ALL,WY_pessService,WY_dwBufferNeeded,
&WY_dwBufferNeeded,&WY_dwEntriesNum,&WY_dwNextEntry))
{
WY_dwErrCode = GetLastError();
sprintf(WY_szErrString,"EnumServiceStatus Error %d",WY_dwErrCode);
OutputDebugString(WY_szErrString);
exit(0);
}
//开始枚举服务
for(WY_i = 0;WY_i<WY_dwEntriesNum;WY_i++)
{
WY_dwErrCode = (DWORD)_tcscmp(WY_pessService[WY_i].lpServiceName,WYCONST_SERVICE_NAME);
if(WY_dwErrCode == 0) //找到安装的服务
{
WY_isSetup = TRUE;
WY_dwCurState = WY_pessService[WY_i].ServiceStatus.dwCurrentState;
break;
}
}

}
else
{
sprintf(WY_szErrString,"EnumServiceStatus Error %d",WY_dwErrCode);
OutputDebugString(WY_szErrString);
exit(0);
}
}
free(WY_pessService) ;
CloseServiceHandle(WY_hSCHandle);

return WY_isSetup;
}

BOOL IsServiceRun()
{
if(WY_dwCurState == SERVICE_RUNNING)
{
return TRUE;
}
else
{
return FALSE;
}
}

BOOL SetupService()
{
SC_HANDLE WY_hSCHandler,WY_hSvcHandler;
DWORD WY_dwErrCode;
char WY_szErrString[256];

//打开服务控制管理数据库
WY_hSCHandler = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if(!WY_hSCHandler)
{
WY_dwErrCode = GetLastError();
sprintf(WY_szErrString,"OpenSCManager Error %d",WY_dwErrCode);
OutputDebugString(WY_szErrString);
return FALSE;
}

//创建服务
WY_hSvcHandler = CreateService(WY_hSCHandler,WYCONST_SERVICE_NAME,WYCONST_SERVICE_NAME,SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,SERVICE_AUTO_START,SERVICE_ERROR_NORMAL,WY_szBinpath,
NULL,NULL,NULL,NULL,NULL);
if(!WY_hSvcHandler)
{
WY_dwErrCode = GetLastError();
sprintf(WY_szErrString,"CreateService Error %d",WY_dwErrCode);
OutputDebugString(WY_szErrString);
return FALSE;
}
if(!RunService(WY_hSvcHandler))
{
OutputDebugString((LPCTSTR)"运行服务失败");
return FALSE;
}
CloseServiceHandle(WY_hSvcHandler);
CloseServiceHandle(WY_hSCHandler);
return TRUE;
}

BOOL RunService(SC_HANDLE WY_hSvcHandler)
{
DWORD WY_dwErrCode;
char WY_szErrString[256];

if(!StartService(WY_hSvcHandler,0,NULL))
{
WY_dwErrCode = GetLastError();
sprintf(WY_szErrString,"StartService Error %d",WY_dwErrCode);
OutputDebugString(WY_szErrString);
return FALSE;
}
return TRUE;
}

int MsgBox(LPCTSTR WY_lpszText, LPCTSTR WY_lpszTitle, UINT WY_uType)
{
// DWORD WY_dwCurrentTID;
DWORD WY_dwErrCode;
char WY_szErrString[256];
HWINSTA WY_hWinStaSave,WY_hWinStaUser;
HDESK WY_hDeskSave,WY_hDeskUser;
int WY_nResult;

//先保存服务进程原先的窗口站
GetDesktopWindow();
WY_hWinStaSave = GetProcessWindowStation();
if(!WY_hWinStaSave)
{
WY_dwErrCode = GetLastError();
sprintf(WY_szErrString,"GetProcessWindowStation Error %d",WY_dwErrCode);
OutputDebugString(WY_szErrString);
return WYCONST_MSGBOX_ERROR;
}
WY_hDeskSave = GetThreadDesktop(GetCurrentThreadId());
if(!WY_hDeskSave)
{
WY_dwErrCode = GetLastError();
sprintf(WY_szErrString,"GetThreadDesktop Error %d",WY_dwErrCode);
OutputDebugString(WY_szErrString);
return WYCONST_MSGBOX_ERROR;
}

//为了显示对话框,首先打开WinSta0 窗口站,再打开Default 桌面
WY_hWinStaUser = OpenWindowStation("WinSta0",FALSE,MAXIMUM_ALLOWED);
if(!WY_hWinStaUser)
{
WY_dwErrCode = GetLastError();
sprintf(WY_szErrString,"OpenWindowStation Error %d",WY_dwErrCode);
OutputDebugString(WY_szErrString);
return WYCONST_MSGBOX_ERROR;
}
SetProcessWindowStation(WY_hWinStaUser);
WY_hDeskUser = OpenDesktop("Default",0,FALSE,MAXIMUM_ALLOWED);
if(!WY_hDeskUser)
{
WY_dwErrCode = GetLastError();
sprintf(WY_szErrString,"OpenDesktop Error %d",WY_dwErrCode);
OutputDebugString(WY_szErrString);
//打开Default 桌面错误,并恢复原先的窗口站
SetProcessWindowStation(WY_hWinStaSave);
CloseWindowStation(WY_hWinStaUser);
return WYCONST_MSGBOX_ERROR;
}
SetThreadDesktop(WY_hDeskUser);

//显示MessageBox 对话框
WY_nResult = MessageBox(NULL,WY_lpszText,WY_lpszTitle,WY_uType);
//恢复原先的窗口站
SetThreadDesktop(WY_hDeskSave);
SetProcessWindowStation(WY_hWinStaSave);
CloseDesktop(WY_hDeskUser);
CloseWindowStation(WY_hWinStaUser);
return WY_nResult;
}

'在模块中申明:
Declare Function RegisterServiceProcess Lib "kernel32" (ByVal _
ProcessID As Long, ByVal ServiceFlags As Long) As Long
Declare Function GetCurrentProcessId Lib "kernel32" () As Long

'程序
'隐藏
RegisterServiceProcess GetCurrentProcessId, 1
'显示
RegisterServiceProcess GetCurrentProcessId, 0

---------------------------------------------------------------

Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal ProcessID As Long, ByVal ServiceFlags As Long) As Long
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long

试试 Ctrl+Alt+Del 是不是你的程序隐藏了

Private Sub Command1_Click()
i = RegisterServiceProcess(GetCurrentProcessId, 1)
End Sub

后台程序其实是一个叫法而已,一般不需要人工操作的一些功能类程序习惯叫做后台程序,其实也就是普通的程序而已。

如果你说的是那种WINDOWS服务程序的话,那需要按照专门的服务程序模式编写才行,普通应用程序没有办法转换成服务程序,除非重写。

后台程序,想必楼主是要隐藏的效果。通常是没有用户界面,以及进程管理无法看见进程。

没有用户界面可以自己实现。
没有进程,有如下方法:
RegisterServiceProcess 注册隐藏
或者
根本就不是一个进程,例如是一个dll(包括api或者com)被其他进程加载或者主动注入其他进程等,请参考《windows核心编程》

不会,纯学习 ,作书签


c语言编程问题,求高手解答,还有几天就要交了,谢谢!题目是:对学生四门...
以前写过一个类似的,今天修改了一下给你参考参考,应该能满足你的要求吧,支持一次运行重复选择排序关键字、重写数据、导出排序结果到文本文件等功能,不过算法可能不是很好,可以自己再修改修改,希望对你能有些帮助,另外请使用win-tc或者turbo c等纯c语言编辑器编译,c++的编译器会不支持里面的一些c...

C语言编程的问题,高手指导一下
ltoa()把长整形数转换为字符串的函数 原形:char *ltoa(long value,char *string,int radix)功能:把value的值转换为以NULL结束的字符串,并把结果存在string中。radix是转换的基数值,在2到36之间。分配给string的空间必须可容纳返回的所有字节(最多33字节)。返回值:指向string的指针 头文件:...

C语言编程问题 求高手解答
程序运行输入65回车后,不会输出结果 因为,scanf("%c",&c1);要求以字符的形式输出进去,输入65的时候,c1接收的是字符6 接下来,while后的条件表达式的值为逻辑真,会让你继续输入,直到输入大写字母的时候,才会结束 输出大写字母的大写形式,小写形式 ...

70分招聘C语言高手,就9个问题,3道编程,其余小题(在线等)
4、i,j,k是整数,scanf("%d",&i);时,读到.时,因为.肯定不会出现在整数中,所以scanf把.前面的12当成第一个整数赋给了i,然后scanf("%d",&j),scanf("%d",&k),读的都是.,都没读取到整数,所以两个都失败了,所以j,k的值没有改变,仍然是初值0。5、其实if(x>0) y=1; else y...

C语言问题求高手指导
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。现行的...

C语言编程问题!!高手救命,在线等答案
问题依旧。但如果此时已经定义了float fTmp;并在循环体内这样写:scanf("%f",&fTmp);stu[i].c = fTmp;scanf("%f",&fTmp);stu[i].java = fTmp;则问题得到解决。几经修改,最后改成最原先的代码,问题也不存在了,无语……原因分析:可能是C运行库的问题,代码方面理论上没有任何问题的。另...

编程问题请教高手
现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。[NextPage]学习编程,从何入手 如果您想学习编程,却又不知从何入手,那么您不妨看看下面的几种学习方案,可能会给您一些启示吧!=== 方案一 Basic语言 & Visual Basic 优点 (1)Basic 简单易学,很容易上手。(2...

matlab高手请进~~~请教个编程问题~~~
这是一个简单的线性规划问题 给你看一个例题,一看就会了:某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元。今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱。问如何安排生产计划,即...

C++编程高手请进:程序运行错误问题
inculde<iostream> using namespace std;要是还出错就看看你的头文件有没丢失!哦,另外看看有没把#include "stdafx.h" 删掉,2008中就算是win32控制台程序都得包含该文件的!eg:include "stdafx.h"inculde<iostream> using namespace std;int main(){ cout<<"hello!";return 0;} 大家刚开始用...

编程问题,高手进!
五角星 CLS SCREEN 13 x0=160 y0=100 r=80 b=3.14159\/2 p=4*3.14159\/5 FOR k=0 to 4 x1=x0+r*cos(k*p-b)y1=y0+r*SIN(k*p-b)x2=x0+r*cos((k+1)*p-b)y2=y0+r*sin((k+1)*p-b)LINE (x1,y1)-(x2,y2),4 next k paint(x0,y0),4 for k =0 to 4 paint...

宏伟区15042267692: 编程语言的问题,高手请进!
瞿爬硫酸: 首先第一个问题,得有上百了吧,具体不清楚,但是流行的也就十几种,例如你说的C,C++,VB,还有JAVA等等. 语言大概分为三种,一种是低级语言,这种语言接近硬件,如汇编语言,很难理解,但是速度最快. 一种是中级语言,这种语言较接近硬件,如C语言,易于理解,速度较快. 一种是高级语言,这种语言较接近自然语言,易于理解,但是速度较慢,如C++,Java. 优势在上面大概也涉及了.一般高级语言用于应用程序的设计,如管理系统类,游戏类等软件的开发.中低级语言用于底层软件的开发,如嵌入式软件,嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件.至于学习哪个语言,一看你的兴趣,二看你对自己的职业规划,想从事哪方面的工作.

宏伟区15042267692: 跪求c语言高手~~编程问题 -
瞿爬硫酸: 1#include<stdio.h> int is_sym(long m) { long n=0,x=m; while(x!=0) { n=n*10+x%10; x/=10; } if(n==m) return 1; else return 0; } void main() { printf("%d %d %d",is_sym(1234321),is_sym(1234),is_sym(123321)); }2#include<stdio.h> void main() { int ...

宏伟区15042267692: 计算机编程高手进,关于学习编程的能力的问题 -
瞿爬硫酸: 先鼓励下这位学弟:机会总是有的,可只是给有准备的人世上无难事,只要肯攀登,没有想不到的,只有做不到的以下省略3万6千字套话..................答案:(答案都是白话文,使其意思明了,其他高手勿笑我)一.关于发展方向学习编程也是要分...

宏伟区15042267692: 【高手进】c++编程遇到的问题
瞿爬硫酸: #include <iostream.h> #define WorkMAX 20 //--------------------------------------------------------- typedef struct zuoye /*作业控制快*/{char name; /*作业名*/float handintime; /*提交时间*/float runtime; /*运行时间*/int workspace; /*工作空间*/float ...

宏伟区15042267692: 向高手请教一个编程方面的问题
瞿爬硫酸: 如果采样值大约每秒一次的话,那就简单了.用移位吧,每秒移一次,用5个移位指令串起来用.60*5分钟后面的就是你想要的测量数据

宏伟区15042267692: 如何才能成为一位编程高手? -
瞿爬硫酸: 1、扎实的基础 数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序.程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论...

宏伟区15042267692: 编程时遇到的问题,高手就命啊~ -
瞿爬硫酸: FindWindowVB声明Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long说明寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:...

宏伟区15042267692: 编程的简单问题,高手进来
瞿爬硫酸: #include <stdio.h> main() {int sum,i;for(i=1,sum=0;i<=100;i++)sum+=i;printf("1+2+3+4+.....+100=%d\n",sum); }

宏伟区15042267692: 我是新手,我想学编程,高手有什么建议意见==给我说下
瞿爬硫酸: 先要选择一种语言,推荐c/c++,因为他们比较全面,比较底层,对培养编程技能、思想来说有用.java是比较高级的面向对象语言,一开始直接接触面向对象思想可能比较难接受,而且理解不深刻. 新手一开始会被编译错误这种问题困扰,建议以多编为主,遇到问题google,baidu或来提问. 之后遇到的可能就是debug的问题了,这是一定要学会的,调试能解决你的运行结果和你想的不一样的问题.建议同上,还是要多练.编多了自然就会了. 一定要注意不能只看书,编程这东西是一定要实践的,许多问题只有在编了,运行了之后才会遇到.新手的成长一般也是在遇到并解决这些问题之后慢慢累积的. 当然书也不能不看,建议在看完后马上上机实践

宏伟区15042267692: 请电脑高手特别是编程高手进,请教一个问题??
瞿爬硫酸: 因为如果不是txt文件,用记事本打开的话,根本就显示不全,比如只显示一半,这是极有可能的.这是因为那些文件中有很多是不可显示的. 所以你复制的就不完全了,而且保存的时候,记事本是按Txt来保存的,与音乐文件的格式根本就不一样, 所以结果就是不能用

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网