⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmibookphonebook.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
    {
        memset(l_phb_sort_index,0,sizeof(l_phb_sort_index));
        for( i=0,j=0;i<RecordLen;i++ )
        {
            if( CheckFlag(i) )
            {
                l_phb_sort_index[j].name=GetShortName(l_phb_index[i].name);
                l_phb_sort_index[j].index=i;
                j=j+1;     
            }
        }
        if( j>1 ) ChoiceSort(l_phb_sort_index,j);
    }
}

static void ChoiceSort(T_MFW_PHB_SORT_INDEX *SortData,int RecordLen)//选择法排序
{
    T_MFW_PHB_SORT_INDEX TempRecord;

    int i,j,k;

    for( i=0;i<RecordLen-1;i++ )
    {
        k=i;
        for( j=i+1;j<RecordLen;j++ )
            if( SortData[j].name<SortData[k].name ) k=j;

        TempRecord.index=SortData[k].index;      
        TempRecord.name=SortData[k].name;      

        SortData[k].index=SortData[i].index;         
        SortData[k].name=SortData[i].name;

        SortData[i].index=TempRecord.index;          
        SortData[i].name=TempRecord.name;     
    }    
}

int SetSearchLocation(T_SearchResult *SortData,int Index)
{
    int s,j,m,k;
    T_SearchResult TempRecord;  
    // char temp[50];/*2004/04/07,talcon delete*/
    int   backindex;

    TempRecord.index=SortData[Index].index;
    TempRecord.selectflag=SortData[Index].selectflag;

    switch( SearchTotal )
    {
    case 1:
        {
            backindex=Index;
        } 
        break;
    case 2:
        {
            if( Index==1 )
            {
                if( GetShortName(l_phb_index[SortData[Index].index].name)<
                    GetShortName(l_phb_index[SortData[Index-1].index].name) )
                {
                    SortData[Index].index=SortData[Index-1].index;
                    SortData[Index].selectflag=SortData[Index-1].selectflag;

                    SortData[Index-1].index=TempRecord.index;
                    SortData[Index-1].index=TempRecord.selectflag;
                    backindex=Index-1;
                }
                else backindex=Index;
            }
            else if( Index==0 )
            {
                if( GetShortName(l_phb_index[SortData[Index].index].name)>
                    GetShortName(l_phb_index[SortData[Index+1].index].name) )
                {
                    SortData[Index].index=SortData[Index+1].index;
                    SortData[Index].selectflag=SortData[Index+1].selectflag;

                    SortData[Index+1].index=TempRecord.index;
                    SortData[Index+1].selectflag=TempRecord.selectflag;
                    backindex=Index+1;
                }
                else backindex=Index;
            }
        } 
        break;        
    default:
        {
            if( Index!=0 && Index!=SearchTotal-1 )
            {
                if( GetShortName(l_phb_index[SortData[Index].index].name)<
                    GetShortName(l_phb_index[SortData[Index-1].index].name) )
                {
                    s=0;
                    j=Index-1;

                    while( s<=j )
                    {
                        m=(s+j)/2;
                        if( GetShortName(l_phb_index[SortData[Index].index].name)<
                            GetShortName(l_phb_index[SortData[m].index].name) )
                            j=m-1;
                        else s=m+1;
                    }

                    for( k=Index-1;k>=j+1;k-- )
                    {
                        SortData[k+1].index=SortData[k].index;
                        SortData[k+1].selectflag=SortData[k].selectflag;
                    }      
                    SortData[j+1].index=TempRecord.index;
                    SortData[j+1].selectflag=TempRecord.selectflag;
                    backindex=j+1;       
                }
                else if( GetShortName(l_phb_index[SortData[Index].index].name)>
                         GetShortName(l_phb_index[SortData[Index+1].index].name) )
                {
                    s=Index+1;
                    j=SearchTotal-1;

                    while( s<=j )
                    {
                        m=(s+j)/2;
                        if( GetShortName(l_phb_index[SortData[Index].index].name)<
                            GetShortName(l_phb_index[SortData[m].index].name) )
                            j=m-1;
                        else s=m+1;
                    }

                    for( k=Index;k<=j;k++ )
                    {
                        SortData[k].index=SortData[k+1].index;
                        SortData[k].selectflag=SortData[k+1].selectflag;
                    }            
                    SortData[j].index=TempRecord.index;
                    SortData[j].selectflag=TempRecord.selectflag;
                    backindex=j;
                }
                else backindex=Index;
            }
            else if( Index==0 )
            {
                if( GetShortName(l_phb_index[SortData[Index].index].name)>
                    GetShortName(l_phb_index[SortData[Index+1].index].name) )
                {
                    s=Index+1;
                    j=SearchTotal-1;

                    while( s<=j )
                    {
                        m=(s+j)/2;
                        if( GetShortName(l_phb_index[SortData[Index].index].name)<
                            GetShortName(l_phb_index[SortData[m].index].name) )
                            j=m-1;
                        else s=m+1;
                    }

                    for( k=Index;k<=j;k++ )
                    {
                        SortData[k].index=SortData[k+1].index;
                        SortData[k].selectflag=SortData[k+1].selectflag;
                    }            
                    SortData[j].index=TempRecord.index;
                    SortData[j].selectflag=TempRecord.selectflag;
                    backindex=j;
                }
                else backindex=Index;           
            }
            else if( Index==SearchTotal-1 )
            {
                if( GetShortName(l_phb_index[SortData[Index].index].name)<
                    GetShortName(l_phb_index[SortData[Index-1].index].name) )
                {
                    s=0;
                    j=Index-1;

                    while( s<=j )
                    {
                        m=(s+j)/2;
                        if( GetShortName(l_phb_index[SortData[Index].index].name)<
                            GetShortName(l_phb_index[SortData[m].index].name) )
                            j=m-1;
                        else s=m+1;
                    }

                    for( k=Index-1;k>=j+1;k-- )
                    {
                        SortData[k+1].index=SortData[k].index;
                        SortData[k+1].selectflag=SortData[k].selectflag;
                    }       
                    SortData[j+1].index=TempRecord.index;
                    SortData[j+1].selectflag=TempRecord.selectflag;
                    backindex=j+1;        
                }
                else backindex=Index;
            }
        }
        break;
    }
    return backindex;
}

int SetLocation(T_MFW_PHB_SORT_INDEX *SortData,int Index)
{
    int s,j,m,k;
    T_MFW_PHB_SORT_INDEX TempRecord;  
    //char temp[50];/*2004/04/07,talcon delete*/
    int backindex;

    TempRecord.name=SortData[Index].name;
    TempRecord.index=SortData[Index].index;

    switch( SearchTotal )
    {
    case 1:
        {
            backindex=Index;
        } 
        break;
    case 2:
        {
            if( Index==1 )
            {
                if( SortData[Index].name<SortData[Index-1].name )
                {
                    SortData[Index].name=SortData[Index-1].name;
                    SortData[Index].index=SortData[Index-1].index;

                    SortData[Index-1].name=TempRecord.name;
                    SortData[Index-1].index=TempRecord.index;           
                    backindex=Index-1;
                }
                else backindex=Index;
            }
            else if( Index==0 )
            {
                if( SortData[Index].name>SortData[Index+1].name )
                {
                    SortData[Index].name=SortData[Index+1].name;
                    SortData[Index].index=SortData[Index+1].index;

                    SortData[Index+1].name=TempRecord.name;
                    SortData[Index+1].index=TempRecord.index;

                    backindex=Index+1;
                }
                else backindex=Index;
            }
        } 
        break;        
    default:
        {
            if( Index!=0 && Index!=SearchTotal-1 )
            {
                if( SortData[Index].name<SortData[Index-1].name )
                {
                    s=0;
                    j=Index-1;

                    while( s<=j )
                    {
                        m=(s+j)/2;
                        if( SortData[Index].name<SortData[m].name )
                            j=m-1;
                        else s=m+1;
                    }

                    for( k=Index-1;k>=j+1;k-- )
                    {
                        SortData[k+1].name=SortData[k].name;
                        SortData[k+1].index=SortData[k].index;             
                    }      

                    SortData[j+1].name=TempRecord.name;
                    SortData[j+1].index=TempRecord.index;
                    backindex=j+1;       
                }
                else if( SortData[Index].name>SortData[Index+1].name )
                {
                    s=Index+1;
                    j=SearchTotal-1;

                    while( s<=j )
                    {
                        m=(s+j)/2;
                        if( SortData[Index].name<SortData[m].name )
                            j=m-1;
                        else s=m+1;
                    }

                    for( k=Index;k<=j;k++ )
                    {
                        SortData[k].name=SortData[k+1].name;
                        SortData[k].index=SortData[k+1].index;

                    }            
                    SortData[j].name=TempRecord.name;
                    SortData[j].index=TempRecord.index;
                    backindex=j;
                }
                else backindex=Index;
            }
            else if( Index==0 )
            {
                if( SortData[Index].name>SortData[Index+1].name )
                {
                    s=Index+1;
                    j=SearchTotal-1;

                    while( s<=j )
                    {
                        m=(s+j)/2;
                        if( SortData[Index].name<SortData[m].name )
                            j=m-1;
                        else s=m+1;
                    }

                    for( k=Index;k<=j;k++ )
                    {
                        SortData[k].name=SortData[k+1].name;
                        SortData[k].index=SortData[k+1].index;                
                    }        
                    SortData[j].name=TempRecord.name;
                    SortData[j].index=TempRecord.index;
                    backindex=j;
                }
                else backindex=Index;           
            }
            else if( Index==SearchTotal-1 )
            {
                if( SortData[Index].name<SortData[Index-1].name )
                {
                    s=0;
                    j=Index-1;

                    while( s<=j )
                    {
                        m=(s+j)/2;
                        if( SortData[Index].name<SortData[m].name )
                            j=m-1;
                        else s=m+1;
                    }

                    for( k=Index-1;k>=j+1;k-- )
             

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -