当前位置:文档之家› C常用操作函数精编版

C常用操作函数精编版

C常用操作函数精编版
C常用操作函数精编版

C常用操作函数

公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

C++常用操作函数

载入动态库

bool LoadDll()

{

HttpDownDll = LoadLibrary("HTTPDOWNDLL.dll");

if(HttpDownDll == NULL)

{

MessageBox(0, "载入动ˉ态库a错洙误ó!

", "错洙?误ó", MB_OK|MB_ICONWARNING);

FreeLibrary(HttpDownDll);

return false;

}

SendCommand = (SendCommandFunc)GetProcAddress(HttpDownDll, "SendCommand");

if(SendCommand == NULL)

{

MessageBox(0, "GetProcAddress错洙?误ó!

", "错洙?误ó", MB_OK|MB_ICONWARNING);

FreeLibrary(HttpDownDll);

return false;

}

return true;

}

卸载动态库

bool FreeDll()

{

FreeLibrary(HttpDownDll);

SendCommand = NULL;

return true;

}

字符串分割

std::vector split(std::string str,std::string pattern)

{

std::string::size_type pos;

std::vector result;

str+=pattern;//扩展1字符串以方便操ù作痢

int size=str.size();

for(int i=0; i

{

pos=str.find(pattern,i);

if(pos

{

std::string s=str.substr(i,pos-i);

result.push_back(s);

i=pos+pattern.size()-1;

}

} return result;

}

UTF8转GBK

void UTF8ToGBK(std::string &s)

{

char szOut[256];

memset(szOut,0,256);

strcpy(szOut,s.c_str());

unsigned short* wszGbk = NULL;

char* szGbk = NULL;

//长度

int len = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)szOut, -1, NULL, 0);

wszGbk = new unsigned short[len+1];

memset(wszGbk, 0, len * 2 + 2);

MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)szOut, -1, (LPWSTR)wszGbk, len);

//长度

len = WideCharToMultiByte(CP_ACP, 0, (LPWSTR)wszGbk, -1, NULL, 0, NULL, NULL);

szGbk = new char[len+1];

memset(szGbk, 0, len + 1);

WideCharToMultiByte(CP_ACP, 0, (LPWSTR)wszGbk, -1, szGbk, len, NULL, NULL);

// szOut = szGbk; //这样得到的szOut不正确,因为此句意义是将szGbk的首地址赋给szOut,

// 当delete []szGbk执行后szGbk的内存空间将被释放,此时将得不到szOut的内容

memset(szOut, '\0', strlen(szGbk) + 1); //改将szGbk的内容赋给szOut ,这样即使szGbk被释放也能得到正确的值

memcpy(szOut, szGbk, strlen(szGbk));

s=szOut;

delete []szGbk;

delete []wszGbk;

}

删除文件

int DeleteFileFunc(string v_SourceFile)

{

int l_Result = 0;

/* _access(char *,int) 判断文件是否存在

存在返回0;不存在返回-1.

_access(const char *path,int mode)

mode的值:

00 是否存在

02 写权限

04 读权限

06 读写权限

*/

char l_SourceFile[256] = {0};

strcpy(l_SourceFile, v_SourceFile.c_str());

if(!_access(l_SourceFile,0))//如果文件存在:文件为只读无法删除

{

//去掉文件只读属性

SetFileAttributes(l_SourceFile,0);

if(DeleteFile(l_SourceFile))//删除成功

{

l_Result = 0;

}

else//无法删除:文件只读或无权限执行删除

{

//cout<

l_Result = 1;

}

}

return l_Result;

}

重命名文件

int RenameFileFunc(string v_SourceFile, string v_NewFileName)

{

int l_Result = 0;

char l_SourceFile[256] = {0};

char l_NewFileName[256] = {0};

strcpy(l_SourceFile, v_SourceFile.c_str());

strcpy(l_NewFileName, v_NewFileName.c_str());

if(!_access(l_SourceFile, 0))//如果文件存在:

{

if(!rename(l_SourceFile, l_NewFileName))//删除成功

{

l_Result = 0;

}

else//无法重命名:文件打开或无权限执行重命名

{

//cout<<"文件无法重命名(可能原因如下):"<

//cout<<"\t"<<"1. "<

// <<"\t"<<"2. "<

闭."<

// <<"\t"<<"3. "<<"你没有权限重命名此文件."<

l_Result = 1;

}

}

else//文件不存在

{

l_Result = 1;

}

return l_Result;

}

设置系统语言

int SetLanguageThrd()

{

BOOL bXPLaterOS=FALSE;//是否为xp以后版本的os

OSVERSIONINFO ovs;

ovs.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

if (::GetVersionEx(&ovs))

{

bXPLaterOS = (ovs.dwPlatformId == VER_PLATFORM_WIN32_NT

&& ovs.dwMajorVersion >= 6

&& ovs.dwMinorVersion >= 0);//vista or later }

else

{

return FALSE;

}

int lang = 0;

//char l_Language[10] = {0};

char *l_Language = ReadXmlFile("System", "Language", "");

if(stricmp(l_Language, "en") == 0)

lang = 1;

if(lang == 1)

{

if(bXPLaterOS)

SetThreadUILanguage(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US) );

else

SetThreadLocale(MAKELCID(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLIS H_US),SORT_DEFAULT));

}

else if(lang == 0)

{

if(bXPLaterOS)

SetThreadUILanguage(MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIM PLIFIED));

else

SetThreadLocale(MAKELCID(MAKELANGID(LANG_CHINESE,SUBLANG_CHINES E_SIMPLIFIED),SORT_DEFAULT));

}

else

{

return FALSE;

}

return TRUE;

}

读写xml文件

char *ReadXmlFile(char *v_FatherNodeName, char *v_NodeName, char *v_Default)

{

char l_ComName[20] = {0};

char l_TempStr[20] = {0};

char l_XmlPath[256] = {0};

char l_ExePath[256] = {0};

GetModuleFileName(NULL, l_ExePath, 256);

int l_ExePathLen = strlen(l_ExePath);

for(int i = l_ExePathLen - 1; i >= 0; i--)

{

if(l_ExePath[i] == '\\')

{

memcpy(l_XmlPath, l_ExePath, i);

}

}

strcat(l_XmlPath, g_XmlFileName);

CTinyXMLLib l_TinyXml;

strcpy(l_TinyXml.m_XmlPath, l_XmlPath);

int l_Result = l_TinyXml.LoadXml();

if(l_Result == 0)

{

l_TinyXml.ReadXmlNode(v_FatherNodeName, v_NodeName, v_Default,

l_TempStr);

}

else

{

strcpy(l_TempStr, v_Default);

}

return l_TempStr;

}

char *ReadXmlFile(char *v_XmlFileName, char *v_FatherNodeName, char *v_NodeName, char *v_Default)

{

char l_XmlPath[256] = {0};

char l_TempStr[20] = {0};

char l_ExePath[256] = {0};

GetModuleFileName(NULL, l_ExePath, 256);

int l_ExePathLen = strlen(l_ExePath);

for(int i = l_ExePathLen - 1; i >= 0; i--)

{

if(l_ExePath[i] == '\\')

{

memcpy(l_XmlPath, l_ExePath, i);

}

}

strcat(l_XmlPath, "\\");

strcat(l_XmlPath, v_XmlFileName);

CTinyXMLLib l_TinyXml;

strcpy(l_TinyXml.m_XmlPath, l_XmlPath);

int l_Result = l_TinyXml.LoadXml();

if(l_Result == 0)

{

l_TinyXml.ReadXmlNode(v_FatherNodeName, v_NodeName, v_Default,

l_TempStr);

}

else

{

strcpy(l_TempStr, v_Default);

}

return l_TempStr;

}

int WriteXmlFile(char *v_XmlFileName, char *v_FatherNodeName, char *v_NodeName, char *v_Value)

{

char l_ComName[20] = {0};

char l_XmlPath[256] = {0};

char l_ExePath[256] = {0};

GetModuleFileName(NULL, l_ExePath, 256);

int l_ExePathLen = strlen(l_ExePath);

for(int i = l_ExePathLen - 1; i >= 0; i--)

{

if(l_ExePath[i] == '\\')

{

memcpy(l_XmlPath, l_ExePath, i);

}

}

strcat(l_XmlPath, "\\");

strcat(l_XmlPath, v_XmlFileName);

CTinyXMLLib l_TinyXml;

strcpy(l_TinyXml.m_XmlPath, l_XmlPath);

l_TinyXml.LoadXml();

l_TinyXml.WriteXmlNode(v_FatherNodeName, v_NodeName, v_Value);

return 0;

}

读ini文件

int CCommServerDlg::ReadIniFile()

{

char l_TempStr[2048] = {0};

char l_CurrentDir[256] = {0};

GetPrivateProfileString("Application", "RemoteFileListURL",

"http://172.18.1.170:9131/Download/FileList.txt",

l_TempStr, 2048, g_config_name);

GetPrivateProfileString("Application", "RemoteDirURL",

"http://172.18.1.170:9131/Download/",

l_TempStr, 2048, g_config_name);

GetCurrentDirectory(256, l_CurrentDir);

strcat(l_CurrentDir, "\\Download");

CheckFolderExist(l_CurrentDir);

GetPrivateProfileString("Application", "LocalFileList", l_FileListPath,

l_TempStr, 2048, g_config_name);

GetPrivateProfileString("Application", "LocalFileDir", l_LocalFileDir,

l_TempStr, 2048, g_config_name);

return 0;

}

读文件

void Read(char * v_Path, char *v_Buffer, const int v_BufferLen)

{

HANDLE hFile = ::CreateFile(v_Path, GENERIC_READ, 0, NULL, OPEN_EXISTING, NULL, NULL);

if (hFile != INVALID_HANDLE_VALUE)

{

//SetFilePointer(hFile, -1, NULL, FILE_END);

SetFilePointer(hFile, 81920, NULL, FILE_BEGIN);

char l_Buffer[5] = {0};

DWORD nNumberOfBytesRead;

BOOL bRet = ::ReadFile(hFile, l_Buffer, v_BufferLen, &nNumberOfBytesRead, NULL); memcpy(v_Buffer, l_Buffer, v_BufferLen);

// TODO ...

CloseHandle(hFile);

}

}

写文件

void Write(char * v_Path, char *v_Content, const int v_ContentSize)

{

HANDLE hFile = ::CreateFile(v_Path, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, NULL, NULL);

if (hFile != INVALID_HANDLE_VALUE)

{

//SetFilePointer(hFile, -1, NULL, FILE_END);

SetFilePointer(hFile, 81920, NULL, FILE_BEGIN);

DWORD nNumberOfBytesWritten;

::WriteFile(hFile, v_Content, v_ContentSize,

&nNumberOfBytesWritten, NULL);

// TODO ...

CloseHandle(hFile);

}

}

查找进程

BOOL FindProcess()

{

int i=0;

PROCESSENTRY32 pe32;

pe32.dwSize = sizeof(pe32);

HANDLE hProcessSnap

= ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

if(hProcessSnap == INVALID_HANDLE_VALUE)

{

i+=0;

}

BOOL bMore = ::Process32First(hProcessSnap, &pe32);

while(bMore)

{

//printf(" 进程名称:%s \n", pe32.szExeFile);

if(stricmp("RWPEPROC.exe",pe32.szExeFile)==0)

{

//printf("进程运行中");

i+=1;

}

bMore = ::Process32Next(hProcessSnap, &pe32);

}

if(i>1){ //大于1,排除自身

return true;

}else{

return false;

}

}

路径操作

char l_ExePath[256] = {0};

char l_MainExePath[256] = {0};

//GetCurrentDirectory(256, l_ExePath); GetModuleFileName(NULL, l_ExePath, 256);

int l_ExePathLen = strlen(l_ExePath);

for(int i = l_ExePathLen - 1; i >= 0; i--)

{

if(l_ExePath[i] == '\\')

{

memcpy(l_MainExePath, l_ExePath, i);

}

}

strcat(l_MainExePath, "\\RWPEPROC.exe");

BOOL APIENTRY DllMain( HMODULE hModule,

DWORD ul_reason_for_call,

LPVOID lpReserved

)

{

switch (ul_reason_for_call)

{

case DLL_PROCESS_ATTACH:

{

char *l_Buffer;

l_Buffer = _getcwd(NULL, 0);

_getcwd(DllPath, MAXPATH);

HMODULE module = GetModuleHandle(0);

char szBuff[MAX_PATH] = {0};

GetModuleFileName(module, szBuff, sizeof(szBuff));

int l_Pause = 0;

}

case DLL_THREAD_ATTACH:

case DLL_THREAD_DETACH:

case DLL_PROCESS_DETACH:

break;

}

return TRUE;

}

查找指定进程

///判断指定进程是否存在

int IsProcExist(char FileName[50],bool IsDelete)

{

char NameBuff[MAX_PATH];

char *pFileName; // pFileName转化为大写后的字符串指针 char *pNameBuff; // NameBuff转化为大写后的字符串指针

BOOL bRes; // 返回结果

HINSTANCE hInstance; // 动态库句柄

HANDLE hHandle; // 进程句柄

int i, j; // 循环变量

int len;

funEnumPorcess EnumProcesses;

funGetModuleFileNameEx GetModuleFileNameEx;

DWORD *buffer, maxNum, factNum;

maxNum = MAXPROCESS;

factNum = MAXPROCESS;

buffer = (DWORD *)malloc(maxNum);

hInstance = LoadLibrary("psapi.dll"); // 装载psapi.dll

if (hInstance)

{

EnumProcesses = (funEnumPorcess)GetProcAddress(hInstance, "EnumProcesses");

if (EnumProcesses)

{

bRes = EnumProcesses(buffer, maxNum, &factNum); // 枚举进程,得到进程名称和实际进程总大小

if (bRes)

{

factNum /= sizeof(DWORD); // 计算实际进程个数

GetModuleFileNameEx =

(funGetModuleFileNameEx)GetProcAddress(hInstance, "GetModuleFileNameExA");

if (GetModuleFileNameEx)

{

for (i=0; i

{

hHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, buffer[i]); // 获取进程句柄

if (hHandle)

{

bRes = GetModuleFileNameEx(hHandle, NULL, NameBuff, MAX_PATH); // 获取进程名称

if (bRes)

{

pFileName = strupr(FileName); // 字符串转化为大写

pNameBuff = strupr(NameBuff);

if (strstr(pNameBuff, pFileName) != NULL) // 名字查找

{

if(!IsDelete)

return 1;

else

{

TerminateProcess(hHandle,0);

}

}

}

// 关闭句柄

CloseHandle(hHandle);

}

}

}

}

}

// 释放动态库

FreeLibrary(hInstance);

}

free(buffer);

return 0;

}

//

//判断进程是否存在

BOOL FindProcess(char *FileName, bool v_IsKill)

{

int i=0;

PROCESSENTRY32 pe32;

pe32.dwSize = sizeof(pe32);

HANDLE hProcessSnap

= ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

if(hProcessSnap == INVALID_HANDLE_VALUE)

{

i+=0;

}

BOOL bMore = ::Process32First(hProcessSnap, &pe32);

while(bMore)

{

if(stricmp(FileName, pe32.szExeFile)==0)

{

i+=1;

int l_ProcNums = 0;

if(v_IsKill) l_ProcNums = 1;

else l_ProcNums = 2;

if(i >= l_ProcNums)

{

HANDLE hHandle =

OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID); // 获取进程句柄

TerminateProcess(hHandle,0);

CloseHandle(hHandle);

}

}

bMore = ::Process32Next(hProcessSnap, &pe32);

}

if(i>=1){ //大于1,排除自身

return true;

}else{

return false;

}

}

写日志,删除日志

///目录是否存在的检查,不存在建立:

bool CheckFolderExist(char *v_StrPath)

{

WIN32_FIND_DATA l_Wfd;

bool l_Result = false;

HANDLE hFind = FindFirstFile(v_StrPath, &l_Wfd);

if ((hFind != INVALID_HANDLE_VALUE) && (l_Wfd.dwFileAttributes &

FILE_ATTRIBUTE_DIRECTORY))

{

l_Result = true;

}

else

{

if(CreateDirectory(v_StrPath, NULL))

{

l_Result = false;

}

}

FindClose(hFind);

return l_Result;

}

//遍历目录中所有的文件

BOOL DirectoryList(char *v_Path)

{

WIN32_FIND_DATA l_WFindData;

HANDLE hFind;

char l_FilePathName[128]={0};

// 构造路径

char l_FullPathName[128]={0};

bool l_SearchFinished=false;

strcpy(l_FilePathName, v_Path);

strcat(l_FilePathName, "\\*.*");

hFind = FindFirstFile(l_FilePathName, &l_WFindData);

if (hFind == INVALID_HANDLE_VALUE)

{

//printf("搜索失败!");

return 0;

}

while(::FindNextFile(hFind, &l_WFindData))

{

sprintf(l_FullPathName, "%s\\%s", v_Path, l_WFindData.cFileName);

DeleteFile(l_FullPathName);

}

FindClose(hFind);

::RemoveDirectory(v_Path);

return 0;

}

int DeleteLogDir()

{

int l_Result=0;

time_t t=time(0);

for(int i = 5; i <= 13; i++)

{

time_t l_DeleteDate = t - i*24*60*60;//三天前

char l_DeleteDirName[64] = {0};

strftime(l_DeleteDirName, sizeof(l_DeleteDirName), "%y%m%dServiceLogs", localtime(&l_DeleteDate));

char l_DeleteDirPath[256] = {0};

strcpy(l_DeleteDirPath, logpath);

strcat(l_DeleteDirPath, "Logs\\");

strcat(l_DeleteDirPath, l_DeleteDirName);

DirectoryList(l_DeleteDirPath);

}

return l_Result;

}

bool LocalWriteLog(char * v_FileName , char * v_Module , const char * v_LogInfo){ time_t t = time(0);

char l_FileName[64] = {0};

char l_DirName[256] = {0};

strcpy(l_DirName, logpath);

strcat(l_DirName, "Logs");

char l_Temp[3];

CheckFolderExist(l_DirName);

char l_DirYMD[32] = {0};

strftime(l_DirYMD, sizeof(l_DirYMD), "%y%m%dServiceLogs", localtime(&t));

strcat(l_DirName, "\\");

strcat(l_DirName, l_DirYMD);

CheckFolderExist(l_DirName);

//strftime( l_FileName, sizeof(l_FileName), "%Y-%m-%d-",localtime(&t));

strcat(l_FileName , v_FileName);

if(v_FileName != NULL || v_Module != NULL || v_LogInfo != NULL){

fstream l_FileHandle;

strcat(l_DirName, "\\");

strcat(l_DirName, l_FileName);

l_FileHandle.open(l_DirName ,ios::app);

if(!l_FileHandle){

char l_Buffer[50] = {0};

memcpy(l_Buffer , l_FileName , strlen(l_FileName));

memcpy(l_Buffer + strlen(l_FileName) , "Open Log Error" , 20);

// MessageBox(NULL , l_Buffer , "error" , MB_OK);

}

time_t t = time(0);

char tmp[64];

strftime( tmp, sizeof(tmp), "%d %X",localtime(&t));

l_FileHandle << "TIME :"<

v_LogInfo<

l_FileHandle.close();

return true;

}

return false;

}

启动程序(以system权限启动显示界面)

//for win7

DWORD _stdcall LaunchAppIntoDifferentSession( LPTSTR lpCommand )

{

DWORD dwRet = 0;

PROCESS_INFORMATION pi ;

STARTUPINFO si ;

DWORD dwSessionId ;

HANDLE hUserToken = NULL;

HANDLE hUserTokenDup = NULL;

HANDLE hPToken = NULL;

HANDLE hProcess = NULL;

DWORD dwCreationFlags ;

HMODULE hInstKernel32 = NULL;

typedef DWORD (WINAPI * WTSGetActiveConsoleSessionIdPROC)();

WTSGetActiveConsoleSessionIdPROC WTSGetActiveConsoleSessionId = NULL;

hInstKernel32 = LoadLibrary ("Kernel32.dll" );

if (!hInstKernel32 )

{

return FALSE ;

}

OutputDebugString("LaunchAppIntoDifferentSession 1\n" );

WTSGetActiveConsoleSessionId =

(WTSGetActiveConsoleSessionIdPROC )GetProcAddress( hInstKernel32,"WTSGetActiveConsoleSe ssionId" );

// Log the client on to the local computer.

dwSessionId = WTSGetActiveConsoleSessionId ();

do

{

WTSQueryUserToken( dwSessionId ,&hUserToken );

dwCreationFlags = NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE;

ZeroMemory( &si , sizeof( STARTUPINFO ) );

si.cb = sizeof( STARTUPINFO );

si.lpDesktop = "winsta0\\default" ;

ZeroMemory( &pi , sizeof( pi) );

TOKEN_PRIVILEGES tp ;

LUID luid ;

if( !::OpenProcessToken ( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY

| TOKEN_DUPLICATE | TOKEN_ASSIGN_PRIMARY | TOKEN_ADJUST_SESSIONID

| TOKEN_READ | TOKEN_WRITE , &hPToken ) )

{

dwRet = GetLastError ();

break;

}

else;

if ( !LookupPrivilegeValue ( NULL, SE_DEBUG_NAME, &luid ) )

{

dwRet = GetLastError ();

break;

}

else;

tp.PrivilegeCount =1;

tp.Privileges [0].Luid = luid;

tp.Privileges [0].Attributes = SE_PRIVILEGE_ENABLED;

if( !DuplicateTokenEx ( hPToken, MAXIMUM_ALLOWED, NULL , SecurityIdentification , TokenPrimary, & hUserTokenDup ) )

{

dwRet = GetLastError ();

break;

}

else;

//Adjust Token privilege

if( !SetTokenInformation ( hUserTokenDup,TokenSessionId ,(void*)& dwSessionId,sizeof (DWORD) ) )

{

dwRet = GetLastError ();

break;

}

else;

if( !AdjustTokenPrivileges ( hUserTokenDup, FALSE, &tp ,

sizeof(TOKEN_PRIVILEGES ), (PTOKEN_PRIVILEGES) NULL, NULL ) )

{

dwRet = GetLastError ();

break;

}

else;

LPVOID pEnv =NULL;

if( CreateEnvironmentBlock ( &pEnv, hUserTokenDup, TRUE ) )

{

dwCreationFlags|=CREATE_UNICODE_ENVIRONMENT ;

}

else pEnv =NULL;

// Launch the process in the client's logon session.

if( CreateProcessAsUser ( hUserTokenDup, // client's access token NULL, // file to execute

lpCommand, // command line

NULL, // pointer to process SECURITY_ATTRIBUTES

NULL, // pointer to thread SECURITY_ATTRIBUTES

FALSE, // handles are not inheritable

dwCreationFlags,// creation flags

pEnv, // pointer to new environment block

NULL, // name of current directory

& si, // pointer to STARTUPINFO structure

& pi // receives information about new process

) )

{

}

else

{

dwRet = GetLastError ();

break;

}

}

while( 0 );

//Perform All the Close Handles task

if( NULL != hUserToken )

{

CloseHandle( hUserToken );

}

else;

if( NULL != hUserTokenDup)

{

CloseHandle( hUserTokenDup );

}

else;

if( NULL != hPToken )

{

CloseHandle( hPToken );

}

else;

}

建立取消磁盘映射连接

int __stdcall CreateConn(char *v_LocalName, char *v_RemoteName, char *v_PSW, char *v_UserName, char *v_ReturnBuffer)

{

int l_Result = 0;

try

{

char l_ReturnBuffer[256] = {0};

DWORD dwRetVal;

NETRESOURCE nr;

DWORD dwFlags;

memset(&nr, 0, sizeof (NETRESOURCE));

nr.dwType = RESOURCETYPE_ANY;

nr.lpLocalName = v_LocalName;

//nr.lpRemoteName = "\\\\LYLTEST\\ShareFile";

nr.lpRemoteName = v_RemoteName;

nr.lpProvider = NULL;

dwFlags = CONNECT_UPDATE_PROFILE;

dwRetVal = WNetAddConnection2(&nr, v_PSW, v_UserName, dwFlags);

if (dwRetVal == NO_ERROR)

{

l_Result = 0;

strcpy(l_ReturnBuffer, "Success");

LocalWriteLog(LOG_RUNFILE, "CreateConn||WNetAddConnection2", l_ReturnBuffer);

//printf("Connection added to %s\n", nr.lpRemoteName);

}

else

{

l_Result = -1;

GetLastErrMsg(l_ReturnBuffer);

LocalWriteLog(LOG_ERRFILE, "CreateConn||WNetAddConnection2", l_ReturnBuffer);

}

strcpy(v_ReturnBuffer, l_ReturnBuffer);

}

catch(exception ex)

{

l_Result = -2;

strcpy(v_ReturnBuffer, ex.what());

}

C语言常用函数

C语言的常用库函数 函数1。absread()读磁盘绝对扇区函数 原形:int absread(int drive,int num,int sectnum,void *buf) 功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num 个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。 参数:drive=0对应A盘,drive=1对应B盘。 返回值:0:成功;-1:失败。 头文件:dos.h 函数2。abswrite()写磁盘绝对扇区函数 原形:int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A驱动器)、1(B驱动器)、 nsects=要写的扇区数(最多64K个); lsect=起始逻辑扇区号; buffer=要写入数据的内存起始地址。 功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。 返回值:0:成功;-1:失败。 头文件:dos.h 函数3。atof()将字符串转换成浮点数的函数 原形:double atof(const char *s) 功能:把s所指向的字符串转换成double类型。 s格式为:符号数字.数字E符号数字 返回值:字符串的转换值。 头文件:math.h、stdlib.h 函数4。atoi()将字符串转换成整型数的函数 原形:int atoi(const char *s) 功能:把s所指向的字符串转换成int类型。 s格式为:符号数字 返回值:字符串的转换值。若出错则返回0。 头文件:stdlib.h 函数5。atol()将字符串转换成长整型数的函数 原形:long atol(const char *s)

高等数学常用公式大全

高数常用公式 平方立方: 22222222 332233223223332233222(1)()()(2)2()(3)2()(4)()()(5)()()(6)33()(7)33()(8)222(a b a b a b a ab b a b a ab b a b a b a b a ab b a b a b a ab b a a b ab b a b a a b ab b a b a b c ab bc ca -=+-++=+-+=-+=+-+-=-+++++=+-+-=-+++++= 21221)(9)()(),(2) n n n n n n a b c a b a b a a b ab b n ----++-=-++++≥ 三角函数公式大全 两角和公式 sin(A+B) = sinAcosB+cosAsinB sin(A-B) = sinAcosB-cosAsinB cos(A+B) = cosAcosB-sinAsinB cos(A-B) = cosAcosB+sinAsinB tan(A+B) =tanAtanB -1tanB tanA + tan(A-B) =tanAtanB 1tanB tanA +- cot(A+B) =cotA cotB 1 -cotAcotB + cot(A-B) =cotA cotB 1 cotAcotB -+ 倍角公式 tan2A =A tan 12tanA 2- Sin2A=2SinA?CosA Cos2A = Cos 2A-Sin 2A=2Cos 2A-1=1-2sin 2A 三倍角公式 sin3A = 3sinA-4(sinA)3 cos3A = 4(cosA)3-3cosA tan3a = tana ·tan(3π+a)·tan(3 π -a) 半角公式 sin( 2A )=2cos 1A - cos( 2A )=2cos 1A + tan( 2A )=A A cos 1cos 1+- cot(2A )=A A cos 1cos 1-+ tan( 2 A )=A A sin cos 1-=A A cos 1sin + 和差化积 sina+sinb=2sin 2b a +cos 2b a - sina-sinb=2cos 2b a +sin 2b a - cosa+cosb = 2cos 2b a +cos 2b a - cosa-cosb = -2sin 2b a +sin 2 b a -

C语言中常见的功能函数

C语言中常见的功能函数(应掌握的编程) 1、两个变量值的交换 void exchang(float *x,float *y) /*形参为两个变量的地铁(指针)*/ {float z; z=*x; *x=*y; *y=z; } void main() {float a,b; scanf(“%f%f”,&a,&b); exchang(&a,&b); /*因为形参是指针,所以实参必须给变量的地址,不能给变量名*/ printf(“a=%f,b=%f”,a,b); } 2、判断一个整数的奇偶 int jou(int n) /*如果是奇数返回1,否则返回0*/ { if(n%2==0) return 0; return 1; } 3、小写字符转换成大写字符 根据实参传给形参的字母,判断是否是小写字母,如果是小写字母,则转换成大写字母,否则不进行转换,函数返回转换后或原来的字符。 本函数仿照toupper()库函数的功能编写(toupper(c) 是将变量c字母转换成大写字母,如果不是小写字母不转换)。 char toupper1(char ch) {if(ch>=?a?&&ch<=?z?) ch-=32; /*小写字母比对应的大写字母ASCII码值大32*/ return ch; } 4、判断一个字符是否是字母(或数字) 根据实参传给形参的字符,判断是否是字母(或数字),如果是字母(或数字)返回1,否则返回0。此函数是根据库函数isalpha()(或isdigit())来编写的。 int isalpha1(char ch) /*判断是否是字母*/ {if(ch>=?A?&&ch<=?Z?||ch>=?a?&&ch<=?z?) return 1; else return 0; } int isdigit1(char ch) /*判断是否是数字字符*/ {if(ch>=?0?&&ch<=?9?) return 1; else return 0; } 5、根据学生成绩,返回其等级 char fun(float cj) {char c; switch((int)cj/10) {case 10:

C语言常用IO函数

一些比较常用的io函数,总结了一下,一块贴出来了 stdin标准输入流 stdout标准输出流 stderr标准错误流 字符IO函数 1.int getchar() 说明:从stdin读取1个字符 返回值:成功,返回该字符;出错,返回EOF; 2.int fgetc(FILE fp) 说明:功能同getchar,默认从文件fp读取; 返回值:成功,返回该字符;出错,返回EOF; 可以重定向 3.int getc(FILE fp) 说明:功能与fgetc相同,但getc既可以被用作 函数实现,也可以被用作宏实现,并且它的编码效率 可能会更高. 可以重定向 4.int putchar(int ch) 说明:向stdout输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 5.int fputc(int c,FILE fp) 说明:功能同putchar,默认向fp输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 6.int putc(int c,FILE fp) 说明:功能与fputc相同,但putc与getc一样既可能被用作 函数实现,也可能被用作宏实现,并且它的编码效率可能会更高;可以重定向 字符串IO函数 1.char gets(char str) 说明:从stdin读取字符串(不包括'n')写入到字符串str中; 返回值:成功,返回str首地址;错误,返回NULL; 2.char fgets(char str,int N,FILE fp) 说明:默认从文件fp中读取N个字符(包括'n')写入到字符串str中,

如果实际输入字符串小于N,fgets自动添加'n', 返回值:成功,返回字符串首地址;错误或遇到EOF,返回NULL;可以重定向 3.int puts(const char str) 说明:向stdout输出字符串str,然受输出一个'n', 返回值:成功,返回非负值;错误,EOF; 4.int fputs(const char str,FILE fp) 说明:功能同puts,默认向文件fp写入字符串str; 返回值:成功,返回非负值;错误,EOF; 可以重定向 格式化IO函数 1.int scanf(const char format,...) 说明:根据format从stdin格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 2.int fscanf(FILE fp,const char format,...) 说明:功能同scanf,默认从文件fp读取, 返回值:成功,返回读取的项数;出错或遇到文件尾,返回EOF 可以重定向 3.int sscanf(const char buf,const char format,...) 说明:根据format从buf格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 4.int printf(const char format,...) 说明:根据format格式化数据,并输出到stdout 返回值成功,返回输出字符数;错误,返回负数; 5.int fprintf(FILE fp,const char format,...) 说明:功能同printf,默认向文件fp写入; 可以重定向 6.int sprintf(char buf,const char format,...) 说明:根据format格式化数据,并输出到buf, 返回值:成功,返回输出字符数;错误,返回负数

C语言常用函数手册

1.分类函数,所在函数库为ctype.h int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0 int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0 int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0 int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0 int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0 int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'), 走纸换行('\f'),垂直制表符('\v'),换行符('\n') 返回非0值,否则返回0 int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0 int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值, 否则返回0 int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z') int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z') 2.数学函数,所在函数库为math.h、stdlib.h、string.h、float.h int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fabs(double x) 返回双精度参数x的绝对值 long labs(long n) 返回长整型参数n的绝对值 double exp(double x) 返回指数函数ex的值 double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中double ldexp(double value,int exp); 返回value*2exp的值 double log(double x) 返回logex的值 double log10(double x) 返回log10x的值 double pow(double x,double y) 返回xy的值 double pow10(int p) 返回10p的值 double sqrt(double x) 返回+√x的值 double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度 double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度 double atan(double x) 返回x的反正切tan-1(x)值,x为弧度 double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x为弧度double cos(double x) 返回x的余弦cos(x)值,x为弧度 double sin(double x) 返回x的正弦sin(x)值,x为弧度 double tan(double x) 返回x的正切tan(x)值,x为弧度 double cosh(double x) 返回x的双曲余弦cosh(x)值,x为弧度 double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度

6类基本初等函数的图形及性质(考研数学基础)_完美版

基本初等函数及图形 (1) 常值函数(也称常数函数) y =c (其中c 为常数) (2) 幂函数 μ x y =,μ是常数; (3) 指数函数 x a y = (a 是常数且01a a >≠,),),(+∞-∞∈x ; (4) 对数函数 x y a log =(a 是常数且01a a >≠,),(0,)x ∈+∞; 1. 当u 为正整数时,函数的定义域为区间) ,(+∞-∞∈x ,他们的图形都经过原点,并当 u>1时在原点处与X 轴相切。且u 为奇数时,图形关于原点对称;u 为偶数时图形关于Y 轴对称; 2. 当u 为负整数时。函数的定义域为除去x=0的所有实数。 3. 当u 为正有理数m/n 时,n 为偶数时函数的定义域为(0, +∞),n 为奇数时函数的定义域为(-∞+∞)。函数的图形均经过原点和(1 ,1). 如果m>n 图形于x 轴相切,如果m1时函数为单调增,当a<1时函数为单调减. 2. 不论x 为何值,y 总是正的,图形在x 轴上方. 3. 当x=0时,y=1,所以他的图形通过(0,1)点. 1. 他的图形为于y 轴的右方.并通过点(1,0) 2. 当a>1时在区间(0,1),y 的值为负.图形位于x 的下方, 在区间(1, +∞),y 值为正,图形位于x 轴上方.在定义域是单调增函数. a<1在实用中很少用到/

正弦函数 x y sin =,),(+∞-∞∈x ,]1,1[-∈y , 余弦函数 x y cos =,),(+∞-∞∈x ,]1,1[-∈y , 正切函数 x y tan =, 2π π+ ≠k x ,k Z ∈,),(+∞-∞∈y , 余切函数 x y cot =,πk x ≠,k Z ∈,),(+∞-∞∈y ;

数据库常用函数

数据库常用函数

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份和还原 备份:exp dsscount/sa@dsscount owner=dsscount file=C:\dsscount_data_backup\dsscount.dmp log=C:\dsscount_data_backup\outputa.log 还原:imp dsscount/sa@dsscount file=C:\dsscount_data_backup\dsscount.dmp full=y ignore=y log=C:\dsscount_data_backup\dsscount.log statistics=none 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) CREATE TABLE ceshi(id INT not null identity(1,1) PRIMARY KEY,NAME VARCHAR(50),age INT) id为主键,不为空,自增长 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围

16种常用数据分析方法66337

一、描述统计 描述性统计是指运用制表和分类,图形以及计筠概括性数据来描述数据的集中趋势、离散趋势、偏度、峰度。 1、缺失值填充:常用方法:剔除法、均值法、最小邻居法、比率回归法、决策树法。 2、正态性检验:很多统计方法都要求数值服从或近似服从正态分布,所以之前需要进行正态性检验。常用方法:非参数检验的K-量检验、P-P图、Q-Q图、W检验、动差法。 二、假设检验 1、参数检验 参数检验是在已知总体分布的条件下(一股要求总体服从正态分布)对一些主要的参数(如均值、百分数、方差、相关系数等)进行的检验。 1)U验使用条件:当样本含量n较大时,样本值符合正态分布 2)T检验使用条件:当样本含量n较小时,样本值符合正态分布 A 单样本t检验:推断该样本来自的总体均数μ与已知的某一总体均数μ0 (常为理论值或标准值)有无差别; B 配对样本t检验:当总体均数未知时,且两个样本可以配对,同对中的两者在可能会影响处理效果的各种条件方面扱为相似; C 两独立样本t检验:无法找到在各方面极为相似的两样本作配对比较时使用。 2、非参数检验 非参数检验则不考虑总体分布是否已知,常常也不是针对总体参数,而是针对总体的某些一股性假设(如总体分布的位罝是否相同,总体分布是否正态)进行检验。 适用情况:顺序类型的数据资料,这类数据的分布形态一般是未知的。

A 虽然是连续数据,但总体分布形态未知或者非正态; B 体分布虽然正态,数据也是连续类型,但样本容量极小,如10以下; 主要方法包括:卡方检验、秩和检验、二项检验、游程检验、K-量检验等。 三、信度分析 检査测量的可信度,例如调查问卷的真实性。 分类: 1、外在信度:不同时间测量时量表的一致性程度,常用方法重测信度 2、内在信度;每个量表是否测量到单一的概念,同时组成两表的内在体项一致性如 何,常用方法分半信度。 四、列联表分析 用于分析离散变量或定型变量之间是否存在相关。 对于二维表,可进行卡方检验,对于三维表,可作Mentel-Hanszel分层分析。列联表分析还包括配对计数资料的卡方检验、行列均为顺序变量的相关检验。 五、相关分析 研究现象之间是否存在某种依存关系,对具体有依存关系的现象探讨相关方向及相关程度。 1、单相关:两个因素之间的相关关系叫单相关,即研究时只涉及一个自变量和一个因变量; 2、复相关:三个或三个以上因素的相关关系叫复相关,即研究时涉及两个或两个以上的自变量和因变量相关; 3、偏相关:在某一现象与多种现象相关的场合,当假定其他变量不变时,其中两个变量之间的相关关系称为偏相关。 六、方差分析

C语言中常用的库函数

字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换 头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin

反正切atan 反正切2 atan2 余弦cos 正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。

(完整版)excel基本常用函数公式大全

1、查找重复内容公式:=IF(COUNTIF(A:A,A2)>1,"重复","")。 2、用出生年月来计算年龄公式: =TRUNC((DAYS360(H6,"2009/8/30",FALSE))/360,0)。 3、从输入的18位身份证号的出生年月计算公式: =CONCATENATE(MID(E2,7,4),"/",MID(E2,11,2),"/",MID(E2,13,2))。 4、从输入的身份证号码内让系统自动提取性别,可以输入以下公式: =IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,"男","女"),IF(MOD(MID(C2,17,1),2)=1,"男","女"))公式内的“C2”代表的是输入身份证号码的单元格。 1、求和:=SUM(K2:K56) ——对K2到K56这一区域进行求和; 2、平均数:=AVERAGE(K2:K56) ——对K2 K56这一区域求平均数; 3、排名:=RANK(K2,K$2:K$56) ——对55名学生的成绩进行排名; 4、等级:=IF(K2>=85,"优",IF(K2>=74,"良",IF(K2>=60,"及格","不及格"))) 5、学期总评:=K2*0.3+M2*0.3+N2*0.4 ——假设K列、M列和N列分别存放着学生的“平时总评”、“期中”、“期末”三项成绩; 6、最高分:=MAX(K2:K56) ——求K2到K56区域(55名学生)的最高分;

7、最低分:=MIN(K2:K56) ——求K2到K56区域(55名学生)的最低分; 8、分数段人数统计: (1)=COUNTIF(K2:K56,"100") ——求K2到K56区域100分的人数;假设把结果存放于K57单元格; (2)=COUNTIF(K2:K56,">=95")-K57 ——求K2到K56区域95~99.5分的人数;假设把结果存放于K58单元格; (3)=COUNTIF(K2:K56,">=90")-SUM(K57:K58) ——求K2到K56区域90~94.5分的人数;假设把结果存放于K59单元格; (4)=COUNTIF(K2:K56,">=85")-SUM(K57:K59) ——求K2到K56区域85~89.5分的人数;假设把结果存放于K60单元格; (5)=COUNTIF(K2:K56,">=70")-SUM(K57:K60) ——求K2到K56区域70~84.5分的人数;假设把结果存放于K61单元格; (6)=COUNTIF(K2:K56,">=60")-SUM(K57:K61) ——求K2到K56区域60~69.5分的人数;假设把结果存放于K62单元格; (7)=COUNTIF(K2:K56,"<60") ——求K2到K56区域60分以下的人数;假设把结果存放于K63单元格;

15个常用EXCEL函数,数据分析新人必备

15个常用EXCEL函数,数据分析新人必备 本文实际涵盖了15个Excel常用函数,但是按照分类只分了十类。 很难说哪十个函数就绝对最常用,但这么多年来人们的经验总结,一些函数总是会重复出现的。 这些函数是最基本的,但应用面却非常广,学会这些基本函数可以让工作事半功倍。 SUM 加法是最基本的数学运算之一。函数SUM就是用来承担这个任务的。SUM的参数可以是单个数字、一组数字,因此SUM的加法运算功能十分强大。 统计一个单元格区域: =sum(A1:A12) 统计多个单元格区域: =sum(A1:A12,B1:B12) AVERAGE 虽然Average是一个统计函数,但使用如此频繁,应在十大中占有一席之位。 我们都对平均数感兴趣。平均分是多少?平均工资是多少?平均高度是多少?看电视的平均小时是多少?

Average参数可以是数字,或者单元格区域。 使用一个单元格区域的语法结构: =AVERAGE(A1:A12) 使用多个单元格区域的语法结构: =AVERAGE(A1:A12,B1:B12) COUNT COUNT函数计算含有数字的单元格的个数。 注意COUNT函数不会将数字相加,而只是计算总共有多少个数字。因此含有10个数字的列表,COUNT函数返回的结果是10,不管这些数字的实际总和是多少。 COUNT函数参数可以是单元格、单元格引用,甚或数字本身。 COUNT函数会忽略非数字的值。例如,如果A1:A10是COUNT函数的参数,但是其中只有两个单元格含有数字,那么COUNT函数返回的值是2。 也可以使用单元格区域作为参数,如: =COUNT(A1:A12) 甚至是多个单元格区域,如: =COUNT(A1:A12,B1:B12) INT和ROUND INT函数和ROUND函数都是将一个数字的小数部分删除,两者的区别是如何删除小数部分。

高中数学常用函数图像及性质

1.指数函数 0(>=a a y x 且)1≠a 图像: 性质:恒过定点(0,1); 当0=x 时,1=y ; 当1>a 时,y 单调递增,当)0,(-∞∈x 时,)1,0(∈y ;当),0(+∞∈x 时,),1(+∞∈y . 当10<=a x y a 且)1≠a 对数运算法则: N M MN a a a log log log += N M N M a a a log log log -= M n M a n a log log =)(R n ∈ N N a a =log (对数恒等式) a N N b b a log log log = (换底公式) 图像 x ) 1>(=a y x

性质:恒过定点(1,0); 当1=x 时,0=y ; 当1>a 时,y 单调递增, 当)1,0(∈x 时,)0,(-∞∈y ;当),1(+∞∈x 时,),0(+∞∈y . 当10<a x ) 10(<

R数据分析常用包与函数

【收藏】R数据分析常用包与函数 2016-09-26 R语言作为入门槛较低的解释性编程语言,受到从事数据分析,数据挖掘工作人员的喜爱,在行业排名中一直保持较高的名次(经常排名第一),下面列出了可用于数据分析、挖掘的R包和函数的集合。 1、聚类 常用的包:fpc,cluster,pvclust,mclust 基于划分的方法: kmeans, pam, pamk, clara 基于层次的方法: hclust, pvclust, agnes, diana 基于模型的方法: mclust 基于密度的方法: dbscan 基于画图的方法: plotcluster, plot.hclust 基于验证的方法: cluster.stats 2、分类 常用的包: rpart,party,randomForest,rpartOrdinal,tree,marginTree, maptree,survival 决策树: rpart, ctree 随机森林: cforest, randomForest 回归, Logistic回归, Poisson回归: glm, predict, residuals 生存分析: survfit, survdiff, coxph 3、关联规则与频繁项集 常用的包: arules:支持挖掘频繁项集,最大频繁项集,频繁闭项目集和关联规则 DRM:回归和分类数据的重复关联模型 APRIORI算法,广度RST算法:apriori, drm ECLAT算法:采用等价类,RST深度搜索和集合的交集:eclat 4、序列模式 常用的包:arulesSequences SPADE算法:cSPADE 5、时间序列 常用的包:timsac 时间序列构建函数:ts 成分分解: decomp, decompose, stl, tsr 6、统计 常用的包:Base R, nlme 方差分析: aov, anova 假设检验: t.test, prop.test, anova, aov

C语言常见基本词汇及词汇解释

C语言常用基本词汇及其他提示语运算符与表达式: 1.constant 常量 2. variable 变量 3. identify 标识符 4. keywords 关键字 5. sign 符号 6. operator 运算符 7. statement语句 8. syntax 语法 9. expression 表达式 10. initialition初始化 11. number format 数据格式 12 declaration 说明 13. type conversion 类型转换 14.define 、definition 定义 条件语句: 1.select 选择 2. expression 表达式 3. logical expression 逻辑表达式 4. Relational expression 关系表达式 5.priority优先

6. operation运算 7.structure 结构 循环语句: 1.circle 循环 2. condition 条件 3. variant 变量 4. process过程 5.priority优先 6. operation运算 数组: 1. array 数组 2. reference 引用 3. element 元素 4. address 地址 5. sort 排序 6. character 字符 7. string 字符串 8. application 应用函数: 1.call 调用 2.return value 返回值 3.function 函数

4. declare 声明 5. `parameter 参数 6.static 静态的 7.extern 外部的 指针: 1. pointer 指针 2. argument 参数 3. array 数组 4. declaration 声明 5. represent 表示 6. manipulate 处理 结构体、共用体、链表: 1 structure 结构 2 member成员 3 tag 标记 4 function 函数 5 enumerate 枚举 6 union 联合(共用体) 7 create 创建 8 insert 插入 9 delete 删除 10 modify 修改

C语言常用函数名及用法

字符函数和字符串函数 头文件:字符串函数头文件:#include 字符函数头文件:#include putchar:输出一个 putchar(a):输出字符变量a的值,(其中a可为字符变量,整形变量,字符常量,整形常量) getchar:输入一个字符 a=getchar(); putchar(a);结果为b printf(格式控制符,输出列表); scanf(格式控制符,地址列表); 输入形式与格式控制部分对应 1.当为两个连续输入时:scanf(“%d%d”,&a,&b); 输入量数据之间可为:一个或多个空格,也可以用enter,tab无逗号时输入时不能用逗号作分隔。 2.格式控制中两%d有两个空格,输入时两数据间应有两个空格或两个以上。 3.当为“:”时输入时应对应一样,当为:scanf(“a=%d,b=%d”,&a,&b);输入a=12,b=22。 4.当格式控制符为%c时,输入时空格与转义字符都作为有效字符记录在里面:scanf(“%c%c%c”,&a,&b,&c); 输入时:ab c↙空间不能插空格或其他符

5. Scanf(“%d%c%f”,&a,&b,&c); 输入时1234a123h26↙在输入遇到时空格回车 tab或其他非法输入就会认定输入完毕 Gets (字符数组):读入字符串函数 Gets(str)从键盘键入a b↙括号里为字符数组str的起始地址,Puts(字符数组):输出字符串函数 Strcat(字符数组1,字符数组2):字符串连接函数(2连接在1后面) Strcpy和strncpy:字符串复制函数 Strcpy(字符数组1,字符数组2):将2复制到1 数组1 要为数组名,字符串2可以为数组名或者字符串 Strncpy(str1,str2,2):将str2的前两个字符复制到str1,取代str1的前两个字符 Strcmp:字符串比较函数 Strcmp(str1,str2):相等则为0(对字符串自左向右逐个字母进行比较) Strlen(字符数组):测字符串的实际长度 Strlwr(字符串)将字符串转换为大写 Strupr(字符串)将字符串转换为小写

C语言常用的库函数

库函数并不是C语言的一部分,它是由编译系统根据一般用户的需要编制并 提供给用户使用的一组程序。每一种C编译系统都提供了一批库函数,不同的 编译系统所提供的库函数的数目和函数名以及函数功能是不完全相同的。ANSI C标准提出了一批建议提供的标准库函数。它包括了目前多数C编译系统所提供 的库函数,但也有一些是某些C编译系统未曾实现的。考虑到通用性,本附录 列出ANSI C建议的常用库函数。 由于C库函数的种类和数目很多,例如还有屏幕和图形函数、时间日期函数、 与系统有关的函数等,每一类函数又包括各种功能的函数,限于篇幅,本附录不 能全部介绍,只从教学需要的角度列出最基本的。读者在编写C程序时可根据 需要,查阅有关系统的函数使用手册。 1.数学函数 使用数学函数时,应该在源文件中使用预编译命令: #include或#include "math.h" 函数名函数原型功能返回值 acos double acos(double x);计算arccos x的值,其中-1<=x<=1计算结果 asin double asin(double x);计算arcsin x的值,其中-1<=x<=1计算结果 atan double atan(double x);计算arctan x的值计算结果 atan2double atan2(double x, double y);计算arctan x/y的值计算结果 cos double cos(double x);计算cos x的值,其中x的单位为弧度计算结果 cosh double cosh(double x);计算x的双曲余弦cosh x的值计算结果 exp double exp(double x);求e x的值计算结果

C语言函数大全

功能: 异常终止一个进程 用法: void abort(void) 函数名: abs 功能: 求整数的绝对值 用法: int abs(int i) 函数名: absread, abswirte 功能: 绝对磁盘扇区读、写数据 用法: int absread(int drive, int nsects, int sectno, void *buffer) int abswrite(int drive, int nsects, in tsectno, void *buffer 函数名: access 功能: 确定文件的访问权限 用法: int access(const char *filename, int amode) 函数名: acos 功能:反余弦函数 用法: double acos(double x) 函数名: allocmem 功能: 分配DOS存储段 用法:int allocmem(unsigned size, unsigned *seg) 函数名: arc 功能: 画一弧线 用法:void far arc(int x, int y, int stangle, int endangle, int radius)函数名: asctime 功能: 转换日期和时间为ASCII码 用法:char *asctime(const struct tm *tblock) 函数名: asin 功能:反正弦函数 用法: double asin(double x) 函数名: assert 功能: 测试一个条件并可能使程序终止 用法:void assert(int test) 函数名: atan 功能: 反正切函数 用法: double atan(double x)

初中数学函数基础知识分类汇编附解析

初中数学函数基础知识分类汇编附解析 一、选择题 1.如图,AB为半圆的直径,点P为AB上一动点.动点P从点A 出发,沿AB匀速运动到点B,运动时间为t.分别以AP与PB为直径作半圆,则图中阴影部分的面积S与时间t之间的函数图象大致为() A.B.C.D. 【答案】D 【解析】 【分析】 【详解】 解:设P点运动速度为v(常量),AB=a(常量),则AP=vt,PB=a-vt; 则阴影面积 2 2222 111 S)()() 22222244 a vt a vt v av t t πππππ - =--=+( 由函数关系式可以看出,D的函数图象符合题意.故选D. 2.如图,边长为 2 的正方形ABCD,点P从点A出发以每秒 1 个单位长度的速度沿 A D C --的路径向点 C 运动,同时点 Q 从点 B 出发以每秒 2 个单位长度的速度沿 B C D A ---的路径向点 A运动,当点 Q 到达终点时,点P停止运动,设PQC ?的面积为S,运动时间为t秒,则能大致反映S与t的函数关系的图象是() A.B.C.D. 【答案】C 【解析】 【分析】

分三种情况求出解析式,即可求解. 【详解】 当0≤t≤1时,即当点Q 在BC 上运动,点P 在AD 上运动时, ()2222212S t t =??-=-, ∴该图象y 随x 的增大而减小, 当1<t≤2时,即当点Q 在CD 上运动时,点P 在AD 上运动时, ()()21222322 S t t t t = --=-+-, ∴该图象开口向下, 当2<t≤3,即当点Q 在AD 上运动时,点P 在DC 上运动时, ()()21424682 S t t t t =--=-+- ∴该图象开口向下, 故选:C . 【点睛】 本题考查了动点问题的函数图象,求出分段函数解析式是本题的关键. 3.药品研究所开发一种抗菌新药,经过多年的动物实验之后首次用于临床人体试验,测得成人服药后血液中药物浓度y (微克/毫升)与服药后的时间x (时)之间的函数关系如图所示,则当16x ≤≤,y 的取值范围是( ) A .864311y ≤≤ B .64811y ≤≤ C .883y ≤≤ D .816y ≤≤ 【答案】C 【解析】 【分析】 根据图像分别求出03x 剟 和314x <…时的函数表达式,再求出当x=1,x=3,x=6时的y 值,从而确定y 的范围. 【详解】 解:设当03x 剟 时,设y kx =, 38k ∴=, 解得:83 k =,

相关主题
文本预览
相关文档 最新文档