C++写功能代码C#写界面的英汉词典
这是C++写的功能代码
这是file.h头文件,代码如下:
[cpp]
extern "C" __declspec(dllexport) void __stdcall Add(char **s,char* c);
extern "C" __declspec(dllexport) void __stdcall txtReader(char **s,char* word);
extern "C" __declspec(dllexport) void __stdcall deleteword(char **s,char* word);
extern "C" __declspec(dllexport) void __stdcall Add(char **s,char* c);
extern "C" __declspec(dllexport) void __stdcall txtReader(char **s,char* word);
extern "C" __declspec(dllexport) void __stdcall deleteword(char **s,char* word);
这是CPPDome.cpp源文件,代码如下:
[cpp]
// CSharpInvokeCPP.CPPDemo.cpp : 定义 DLL 应用程序的导出函数。
//
#include "stdafx.h"
#include "fun.h"
#include "file.h"
#ifdef _MANAGED
#pragma managed(push, off)
#endif
#include <string>
#include <stdio.h>
#include <fstream>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <windows.h>
string Binary_delete(string a,string b[1000][2],int begin,int end)//折半查找功能函数
{
int k = end;
while(true)
{
if(a==b[k][0])
return "删除成功!";
else if((begin==end-1)&&a!=b[(begin+end)/2][0])
return "单词不存在";
else if(a>b[(begin+end)/2][0])
begin=(begin+end)/2;
else if(a<b[(begin+end)/2][0])
end=(begin+end)/2;
else{
begin = (begin+end)/2;
for(;begin<=k;begin++){
b[begin][0]=b[begin+1][0];b[begin][1]=b[begin+1][1];
}
return "删除成功";
}
}
}
string insertWord(string a,string c,string b[1000][2],int begin,int end,int judge)
{
int i;
if(judge==1){b[end+1][0]=a;b[end+1][1]=c;}
else if(judge==0){
for(int e=end;e>=0;e--){
b[e+1][0]=b[e][0];b[e+1][1]=b[e][1];
}b[0][0]=a;b[0][1]=c;
}else{
for(i=end;i>begin;i--)
{
b[i+1][0] = b[i][0];
b[i+1][1] = b[i][1];
}
b[i+1][0] = a;
b[i+1][1] = c;
}
return "插入成功!";
}
string Binary_search(string a,string b[1000][2],int begin,int end)//折半查找功能函数
{
while(true)
{
if((begin==end-1)&&a!=b[(begin+end)/2][0])
return "no result";
else if(a>b[(begin+end)/2][0])
begin=(begin+end)/2;
else if(a<b[(begin+end)/2][0])
end=(begin+end)/2;
else
return b[(begin+end)/2][1];
}
}
string Binary_add(string a,string c,string b[1000][2],int begin,int end)//折半查找功能函数
{
int k = end;
while(true)
{
if((begin==end-1)&&a!=b[(begin+end)/2][0])
{
if(a<b[0][0])
return insertWord(a,c,b,begin,k,0);
else if(a>b[k][0])
return insertWord(a,c,b,begin,k,1);
else
return insertWord(a,c,b,begin,k,2);
}
else if(a>b[(begin+end)/2][0])
begin=(begin+end)/2;
else if(a<b[(begin+end)/2][0])
end=(begin+end)/2;
else
return "单词已存在,插入失败";
}
}
void __stdcall Add(char **s,char* word)
{
char firstletter = word[0];
int m = 0;
int p;
for(p=0;p<50;p++)
{
if(word[p]=='\0') break;
if(word[p]==' ') m=p;
}
string insertword(word);
string
补充:软件开发 , C++ ,