C++写功能代码C#写界面的英汉词典 (六)

2014-11-24 02:49:06 · 作者: · 浏览: 14
e(path);//以输出方式打开文件
if(biword=="删除成功") counterNum--;
if(biword=="删除成功!") counterNum=counterNum-1;
for(int line=0;line {
if(line==counterNum-1)
outfile< else
outfile< }
outfile.close();//关闭文件
char* st = new char[50];
char *a = &biword[0];
strcpy(st,a);
*s=st;
}

// CSharpInvokeCPP.CPPDemo.cpp : 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"
#include "fun.h"
#include "file.h"
#ifdef _MANAGED
#pragma managed(push, off)
#endif
#include
#include
#include
#include
#include
#include
#include

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 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 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 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 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 insertwords = insertword.substr(0,m);
string insertchinese = insertword.substr(m+1,p);
string path;
switch(firstletter)//确定要打开的文件的路径
{
case'a':path = "lib/a.txt";break;
case'b':path = "lib/b.txt";break;
case'c':path = "lib/c.txt";break;
case'd':path = "lib/d.txt";break;
case'e':path = "lib/e.txt";break;
case'f':path = "lib/f.txt";break;
case'g':path = "lib/g.txt";break;
case'h':path = "lib/h.txt";break;
case'i':path = "lib/i.txt";break;
case'j':path = "lib/j.txt";break;
case'k':path = "lib/k.txt";break;
case'l':path = "lib/l.txt";break;
case'm':path = "lib/m.txt";break;
case'n':path = "lib/n.txt";break;
case'o':path = "lib/o.txt";break;
case'p':path = "lib/p.txt";break;
case'q':path = "lib/q.txt";break;
case'r':path = "lib/r.txt";break;
case's':path = "lib/s.txt";break;
case't':path = "lib/t.txt";break;
case'u':path = "lib/u.txt";break;
case'v':path = "lib/v.txt";break;
ca