程序设计实训项目三 电子词典

本文介绍了一个基于二分查找算法的简易电子词典程序设计,该程序能够从文件中读取约8000个英汉词条,并允许用户连续查询单词直至输入特定退出指令。程序运用了文件操作和字符串比较等技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   题目描述

做一个简单的电子词典。在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组English[]和Chinese[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束,如图:

提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。

/*烟台大学计算机学院 2016
作者: 马春澎
完成日期:2017年1月4日 */
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
char English[8000][20],Chinese[8000][24];//用于从文件中读入的英文数组和中文数组
int num;//实际词汇总数
int binary_search(int first,int last,char *word);//二分查找
int main()
{
    int count1=0,count2=0;
    char word[20];//查找单词
    FILE *fp;
    fp=fopen("dictionary.txt","r");//以只读的方式打开文件
    if(fp==NULL)//测试文件是否打开成功
    {
        printf("文件打开失败\n");
        exit(-1);
    }
    while(fscanf(fp,"%s%s",English[num],Chinese[num])!=EOF)//读取成功,重复从文件中读
    {
        num++;//计算单词总数
    }
    fclose(fp);
    printf("********************欢迎使用********************\n\n");
    do
    {

        printf("请输入您要查找的单词(输入0000退出)\n");
        scanf("%s",word);//输入单词进行查找
        if(strcmp(word,"0000")==0)
            break;
        else
        {
            int index=-1,first=0,last=num-1;//查找的上下界
            index=binary_search(first,last, word);
            if (index == -1)
            {
                printf("查无此词!\n\n");
                 count1++;
                printf("您已查找本词典内没有的词%d次(如果您输入五次词典中没有的词系统将自动退出)\n",count1);
                printf("************************************************\n\n");

            }
            else
            {
                count2++;
                printf("%s 的中文意思是:%s\n\n", word, Chinese[index]);
                printf("您已成功查找%d次\n",count2);
                printf("************************************************\n\n");
            }
        }
        if(count1==5)
            break;
    }
    while(1);
    printf("***************** 感谢您的使用 ******************");
    return 0;
}
/*************************************************************
功能描述:二分查找,查找文件中单词所在的位置
输入参数:first—查找的起始位置
           last—查找的终止位置
           word—需要查找的单词
返 回 值:mid—要查找的单词所在的位置
其他说明:无
*************************************************************/

int binary_search(int first,int last,char *word)//二分查找
{
    int mid;
    while(first<=last)//第一个位置大于等于最后一个位置时跳出循环
    {
        mid=(first+last)/2;//找中间位置
        if(strcmp(English[mid],word)==0)//找到了
            return mid;//查找成功并返回
        if(strcmp(English[mid],word)>0)//将在前半段继续查找
            last=mid-1;
        else //在后半段查找
            first=mid+1;
    }
    return -1;//表示查不到这个词
}

输入  about

输出  about的中文意思是:prep.关于,大约

输入 ade

输出  查无此词!

输入五次 ade 系统自动退出

运算结果


知识点总结

文件的打开的应用,二分查找的应用

学习心得

以前没有使用过打开文件,通过这个程序认识到文件的方便,以后要熟练的应用。

内容概要:本文深入解析了扣子COZE AI编程及其详细应用代码案例,旨在帮助读者理解新一代低门槛智能体开发范式。文章从五个维度展开:关键概念、核心技巧、典型应用场景、详细代码案例分析以及未来发展趋势。首先介绍了扣子COZE的核心概念,如Bot、Workflow、Plugin、Memory和Knowledge。接着分享了意图识别、函数调用链、动态Prompt、渐进式发布及监控可观测等核心技巧。然后列举了企业内部智能客服、电商导购助手、教育领域AI助教和金融行业合规质检等应用场景。最后,通过构建“会议纪要智能助手”的详细代码案例,展示了从需求描述、技术方案、Workflow节点拆解到调试与上线的全过程,并展望了多智能体协作、本地私有部署、Agent2Agent协议、边缘计算插件和实时RAG等未来发展方向。; 适合人群:对AI编程感兴趣的开发者,尤其是希望快速落地AI产品的技术人员。; 使用场景及目标:①学习如何使用扣子COZE构建生产级智能体;②掌握智能体实例、自动化流程、扩展能力和知识库的使用方法;③通过实际案例理解如何实现会议纪要智能助手的功能,包括触发器设置、下载节点、LLM节点Prompt设计、Code节点处理和邮件节点配置。; 阅读建议:本文不仅提供了理论知识,还包含了详细的代码案例,建议读者结合实际业务需求进行实践,逐步掌握扣子COZE的各项功能,并关注其未来的发展趋势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值