当前位置:编程学习 > C/C++ >>

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++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,