c语言课程设计-电子英汉词典(含源码)

合集下载

C课程设计之电子词典

C课程设计之电子词典

C课程设计之电子词典仲恺农业工程学院工程实训报告电子词典课程名称 C++面向对象课程设计姓名郑志欣院(系)信息科学与技术学院专业班级计算机科学与技术132班学号 20244215指导教师史婷婷仲恺农业工程学院教务处制目录1 需求分析................................................................................ 错误!未定义书签。

2 系统总框图和功能模块说明................................................. 错误!未定义书签。

2.1 系统总框图.................................................................. 错误!未定义书签。

2.2 功能模块说明.............................................................. 错误!未定义书签。

3 系统设计................................................................................ 错误!未定义书签。

3.1 主要结构体 .................................................................. 错误!未定义书签。

3.2主要功能函数 .............................................................. 错误!未定义书签。

3.3 关键函数的流程图....................................................... 错误!未定义书签。

4 系统调试................................................................................ 错误!未定义书签。

c课程设计英汉词典

c课程设计英汉词典

c课程设计英汉词典一、教学目标本课程的目标是让学生掌握英汉词典的基本使用方法,能够独立查找单词的含义、用法和例句,提高学生的词汇量和英语阅读能力。

具体的学习目标包括:1.知识目标:让学生了解英汉词典的种类、结构和功能,掌握词典查找单词的基本方法。

2.技能目标:培养学生独立使用英汉词典查找单词的能力,能够准确理解单词的含义、用法和例句。

3.情感态度价值观目标:激发学生学习英语的兴趣,培养学生的自主学习能力和合作精神。

二、教学内容本课程的教学内容主要包括英汉词典的种类、结构、功能以及使用方法。

具体的教学大纲如下:1.英汉词典的种类:介绍纸版词典、电子词典和在线词典等。

2.英汉词典的结构:讲解词典的序言、目录、词条等部分。

3.英汉词典的功能:讲解词典的查词、释义、例句、用法辨析等功能。

4.词典的使用方法:讲解如何快速查找单词、如何根据上下文推测词义等。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。

具体方法如下:1.讲授法:讲解英汉词典的种类、结构、功能和使用方法。

2.讨论法:学生讨论词典的使用技巧和英语学习心得。

3.案例分析法:分析实际案例,让学生学会如何运用词典解决实际问题。

4.实验法:让学生亲身体验使用不同类型的英汉词典,提高实际操作能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选用权威、实用的英汉词典作为教材,如《牛津英汉词典》等。

2.参考书:提供一些英汉词典的参考书,如《现代英汉词典》等。

3.多媒体资料:制作课件、视频等多媒体资料,帮助学生更好地理解和学习。

4.实验设备:准备一些电子词典和在线词典,让学生亲身体验使用。

五、教学评估本课程的评估方式包括平时表现、作业和考试等,旨在全面、客观、公正地反映学生的学习成果。

具体评估方式如下:1.平时表现:观察学生在课堂上的参与程度、提问回答等情况,记录并给予评价。

C语言英汉词典课程设计

C语言英汉词典课程设计

C语言英汉词典课程设计一、课程目标知识目标:1. 学生能够掌握C语言基础语法,包括变量声明、数据类型、运算符、控制结构等。

2. 学生能够理解结构体在C语言中的应用,并能够使用结构体创建英汉词典的数据结构。

3. 学生能够运用文件操作函数实现英汉词典的存储与读取。

技能目标:1. 学生能够运用C语言编写程序,实现英汉词典的增删查功能。

2. 学生能够通过调试和优化程序,提高英汉词典的运行效率。

3. 学生能够通过小组合作,共同完成一个具有实用价值的英汉词典项目。

情感态度价值观目标:1. 学生培养对编程的兴趣,提高解决实际问题的能力。

2. 学生在团队合作中,学会相互尊重、沟通协作,培养团队精神。

3. 学生通过英汉词典项目,认识到编程在生活中的应用,激发创新意识。

课程性质:本课程为C语言编程实践课程,以项目为导向,注重培养学生的动手能力和实际应用能力。

学生特点:学生为高年级学生,已具备一定的C语言基础,对编程有一定了解,具备一定的自学和解决问题能力。

教学要求:教师需引导学生运用所学知识,以小组合作形式完成英汉词典项目,注重培养学生的编程思维和实际操作能力。

在教学过程中,关注学生的情感态度价值观的培养,激发学生的学习兴趣和团队协作精神。

通过课程目标的分解,确保学生能够达到预期学习成果,为后续教学设计和评估提供依据。

二、教学内容1. C语言基础回顾:变量声明、数据类型、运算符、控制结构(条件语句、循环语句)。

2. 结构体概念与应用:结构体的定义、声明、初始化;结构体数组、结构体指针。

3. 文件操作:文件的打开、关闭、读写操作;二进制读写;文本文件与二进制文件的转换。

4. 英汉词典项目实战:a. 数据结构设计:定义单词结构体,创建单词列表。

b. 功能模块设计:实现添加、删除、查找、显示全部单词等功能。

c. 文件操作:实现词典的存储与读取。

d. 界面设计:设计简单易懂的用户界面,提供用户操作接口。

5. 调试与优化:分析程序性能,进行调试优化,提高词典运行效率。

C语言课程设计——电子英汉词典

C语言课程设计——电子英汉词典

课程设计报告课程名称 C语言课程设计课题名称电子英汉词典专业纺织服装学院班级纺工1203学号姓名指导教师田媛2014年 01 月06 日湖南工程学院课程设计任务书课程名称 C语言课程设计课题电子英汉词典专业班级纺工工程学生姓名学号指导老师田媛审批任务书下达日期 2013 年 12 月 26 日任务完成日期2014年 01 月 06 日一、设计内容与设计要求1.设计内容:课题一:电子英汉词典。

具体内容见附录。

2.设计要求:1)设计正确,方案合理。

2)界面友好,使用方便。

3)程序精炼,结构清晰。

4)上机演示。

3.设计报告要求:课程设计报告格式如下:1)正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体,行距为22。

2)正文的内容:课题的主要功能、课题的功能模块的划分、主要功能的实现、程序调试、总结、附件(所有程序的源代码,要求对程序写出必要的注释),课程设计报告需5000字左右(不含附件)。

3)课程设计报告装订顺序:封面、任务书、目录、正文、评分、程序清单附件。

二、进度安排上课时间另外安排上课时间另外安排。

附录:设计课题三:电子英汉词典一、问题描述:该设计实现简单电子英汉词典的功能,具体管理操作包括单词的添加、显示、查找、删除、修改和保存等。

二、功能描述:1、本设计采用结构体数组,每个数据的结构应当包括:单词的英文拼写,单词的中文释义。

2、系统功能:a.词条录入:即添加单词记录。

b.信息显示:将所有的单词按字母顺序显示。

c.词条修改:对已经输入的单词信息进行修改。

d.词条删除:删除某个单词记录。

e.单词查询: 输入单词英文拼写,输出该单词的中文释义。

f.信息保存:将单词信息保存到文件。

g.退出系统3、系统使用说明:执行一个具体的功能之后,程序将重新显示功能菜单。

系统的功能并不限于上述,可以对其进行扩充完善,如在对信息进行修改和删除时,可以考虑系统的安全性,在执行前若输入正确密码,才可进行操作。

C语言电子词典课程设计

C语言电子词典课程设计

C语言电子词典课程设计一、课程目标知识目标:1. 理解C语言中结构体、数组、字符串等基本概念及其应用;2. 学会使用C语言实现基本的查找、插入、删除等数据操作;3. 掌握C语言中文件读写功能,实现对电子词典数据的存储和读取。

技能目标:1. 能够运用结构体创建电子词典的数据结构,并实现单词的录入、查询、修改和删除等功能;2. 学会使用二分查找算法优化电子词典的查询速度,提高程序运行效率;3. 能够独立编写C语言程序,完成一个具有基本功能的电子词典项目。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发他们探索计算机科学领域的热情;2. 培养学生的团队协作意识,学会与他人共同解决问题;3. 培养学生严谨、细心的编程习惯,提高他们面对问题的分析能力和解决能力。

本课程旨在帮助学生在掌握C语言基础知识的基础上,学会运用编程解决实际问题。

结合课程性质、学生特点和教学要求,将课程目标分解为具体的学习成果,以便于后续的教学设计和评估。

在教学过程中,注重培养学生的实际操作能力,提高他们运用C语言解决实际问题的综合素质。

二、教学内容1. C语言基础知识回顾:结构体、数组、字符串、指针等基本概念及其应用。

相关教材章节:第一章至第四章2. 算法介绍:二分查找算法原理及其在电子词典查询中的应用。

相关教材章节:第七章3. 文件读写操作:C语言文件操作函数,实现对电子词典数据的存储和读取。

相关教材章节:第九章4. 电子词典功能实现:- 单词录入:设计录入界面,实现单词信息的输入和保存;- 单词查询:实现按单词查找,展示单词释义;- 单词修改:实现对已录入单词的修改功能;- 单词删除:实现对已录入单词的删除功能。

相关教材章节:第五章、第六章、第七章5. 项目实践:分组进行电子词典项目实践,完成一个具有基本功能的电子词典程序。

教学内容安排和进度:第一周:C语言基础知识回顾,学习结构体、数组、字符串等;第二周:学习文件读写操作,理解二分查找算法;第三周:电子词典功能实现(单词录入、查询、修改、删除);第四周:项目实践,分组完成电子词典项目,并进行演示和评价。

c课程设计英汉词典

c课程设计英汉词典

c课程设计英汉词典一、课程目标知识目标:1. 学生能掌握英汉词典的基本结构和使用方法。

2. 学生能识别并理解本章节中出现的关键英语词汇及其汉译。

3. 学生能通过英汉词典查找并正确使用至少10个新词汇。

技能目标:1. 学生能运用英汉词典提高阅读理解能力,快速获取英文信息。

2. 学生能培养通过词典学习新词汇的自学能力,形成良好的学习习惯。

3. 学生能通过小组合作,共同探讨词典使用技巧,提高团队协作能力。

情感态度价值观目标:1. 学生对英语学习保持兴趣,增强学习信心。

2. 学生在英汉词典使用过程中,培养耐心和细心的品质。

3. 学生通过学习,认识到词汇学习对英语水平提升的重要性,树立正确的学习观念。

课程性质:本课程为英语学科选修课程,旨在帮助学生掌握英汉词典的使用方法,提高英语词汇学习效率。

学生特点:学生为五年级学生,具有一定的英语基础,但词典使用能力较弱,对英语词汇学习有较高兴趣。

教学要求:课程应注重实践性,结合课本内容,引导学生学会使用英汉词典,培养自学能力和团队协作精神。

同时,关注学生情感态度价值观的培养,激发学习兴趣,提高学习效果。

通过具体的学习成果分解,使学生在课程结束后能够达到预期目标。

二、教学内容本章节教学内容以课本第五单元“Word Power”为基础,涵盖以下方面:1. 英汉词典的基本结构介绍:包括词典的序言、目录、词汇表、附录等部分,使学生了解词典的编排规律。

2. 词典查词技巧:教授学生如何快速查找单词,包括使用音标、词性、释义等,提高查词效率。

3. 词汇学习:选取课本第五单元中的重点词汇,通过英汉词典查找,学习词汇的用法和搭配。

4. 词汇拓展:以课本词汇为出发点,引导学生通过英汉词典查找相关词汇,拓展词汇量。

5. 实践活动:组织学生进行小组合作,共同完成词汇查找、释义、造句等任务,巩固所学知识。

教学大纲安排如下:第一课时:英汉词典基本结构介绍,学会使用目录和词汇表。

第二课时:词典查词技巧,以课本词汇为例,进行实际操作。

c语言课程设计电子词典

c语言课程设计电子词典

c语言课程设计电子词典随着科技的不断进步和发展,计算机技术也在不断的发展和完善。

计算机编程语言也应运而生,其中c语言成为了最为流行和广泛应用的一种编程语言。

为了更好地学习和掌握c语言,我们需要不断地进行练习和实践。

而课程设计电子词典就是一个非常好的实践项目。

本文将对c语言课程设计电子词典进行详细的介绍和分析。

一、电子词典简介电子词典是一种类似于纸质词典的电子设备。

电子词典将词典内容数字化存储在内部芯片中,通过一个屏幕显示出来。

电子词典拥有很多优点,比如存储空间更大、功能更强大、可搜索性更高等等。

今天,电子词典是很多人学习和工作必不可少的工具之一。

二、c语言课程设计电子词典的设计思路c语言课程设计电子词典是一种将词典内容和c程序功能相结合的设计项目。

他的设计思路如下:1.定义词典内容结构体在程序中需要定义一个结构体,用来存储词典内容。

结构体的成员包括单词、单词的释义、音标等。

typedef struct word{ char name[30]; // 单词名称char symbol[30]; // 单词音标charmean[400]; // 单词含义}word;2.构建词典数据将词典中的单词、释义、音标等内容保存到结构体中。

并将多个结构体数据包含在一个数组中。

word dictionary[] = { { "apple", "[ˈæpl]", "a round fruit with smooth red or yellow skin and firm white flesh" }, { "banana", "[bəˈnɑː.nə]", "a long curved fruit with a yellow skin" }, { "cat", "[kæt]", "a small animal with fur, four legs, a tail, and claws" }, { "dog", "[dɒɡ]", "a common animal with four legs, fur, and a tail" }, { "elephant", "[ˈel.ɪ.fənt]", "a very large grey animal with a long nose called a trunk" }};3.实现单词查询功能在程序中,我们需要实现一个单词查询的功能。

c英汉词典课程设计

c英汉词典课程设计

c 英汉词典课程设计一、课程目标知识目标:1. 学生能够掌握英汉词典的基本结构和使用方法,包括字母顺序、词条布局等。

2. 学生能够通过查阅词典,理解并学习新单词的含义、用法和例句。

3. 学生能够了解英汉词典中提供的词性、时态、同义词、反义词等语言知识点。

技能目标:1. 学生能够培养快速准确查阅词典的技能,提高学习效率。

2. 学生能够运用词典中的资源进行词汇拓展和语言表达能力的提升。

3. 学生能够通过词典学习,培养独立解决问题的能力。

情感态度价值观目标:1. 学生能够增强对英语学习的兴趣和自信心,认识到工具书在语言学习中的重要性。

2. 学生能够培养良好的学习习惯,主动利用词典资源进行自主学习。

3. 学生能够通过学习英汉词典,拓宽国际视野,了解不同文化背景下的词汇用法。

课程性质:本课程为实用工具课程,旨在帮助学生掌握英汉词典的使用方法,提高英语学习效果。

学生特点:考虑到学生所在年级,具备一定的英语基础,但词典使用技巧和自主学习能力有待提高。

教学要求:教师应注重培养学生的实际操作能力,将理论与实践相结合,使学生在实际运用中掌握词典使用技巧。

同时,关注学生的情感态度,激发学习兴趣,提高学习积极性。

通过本课程的学习,使学生能够达到具体的学习成果,为后续的英语学习奠定基础。

二、教学内容1. 词典基本结构认知:介绍英汉词典的组成部分,如字母索引、词条、例句、词性、时态、同义词、反义词等。

- 教材关联章节:课本中关于词典使用的基础知识部分。

2. 词典查阅技巧:教授快速定位单词、理解词条布局、查找同义词和反义词等方法。

- 教材关联章节:课本中关于查阅词典技巧的内容。

3. 词汇拓展学习:利用词典资源,学习新单词的用法、搭配及其在不同语境中的应用。

- 教材关联章节:课本中词汇学习相关章节。

4. 实践应用:设计实例,让学生运用所学查阅词典,解决实际问题,提高语言表达能力。

- 教材关联章节:课本中实践应用部分。

5. 自主学习策略:培养学生利用词典进行自主学习,养成良好的学习习惯。

c语言课程设计英汉词典

c语言课程设计英汉词典

c语言课程设计英汉词典一、教学目标本课程的目标是让学生掌握C语言编程的基本知识和技能,能够运用C语言编写简单的程序。

通过本课程的学习,学生应该能够理解C语言的基本语法、数据类型、运算符、控制结构等,并能够运用这些知识编写程序解决实际问题。

同时,通过编程实践,培养学生的逻辑思维能力和问题解决能力。

具体的学习成果包括:1.能够理解C语言的基本语法和规则。

2.能够熟练使用C语言的数据类型、运算符和控制结构。

3.能够编写简单的C语言程序,解决实际问题。

4.能够运用C语言进行基本的输入输出操作。

5.能够理解程序的基本结构和编程思想。

二、教学内容根据课程目标,本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等。

具体的教学大纲如下:1.第一章:C语言概述–C语言的历史和发展–C语言的特点和优势–C语言的编译过程2.第二章:数据类型和变量–基本数据类型–构造数据类型–指针和引用–变量和常量的声明和使用3.第三章:运算符和表达式–算术运算符–关系运算符–逻辑运算符–赋值运算符–条件运算符–逗号运算符4.第四章:控制结构5.第五章:函数–函数的定义和声明–函数的参数和返回值–函数的调用和传递6.第六章:数组和字符串–一维数组的声明和使用–二维数组的声明和使用–字符串的声明和使用7.第七章:指针–指针的基本概念–指针的声明和使用–指针与数组–指针与函数8.第八章:结构体和联合体–结构体的声明和使用–联合体的声明和使用–结构体和联合体的初始化9.第九章:文件操作–文件的打开和关闭–文件的读写操作–文件的定位和指针三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式。

具体包括:1.讲授法:通过讲解和示例,向学生传授C语言的基本知识和编程技巧。

2.讨论法:学生进行小组讨论,促进学生之间的交流和合作。

3.案例分析法:通过分析实际案例,引导学生运用C语言解决实际问题。

4.实验法:安排编程实验,让学生动手实践,巩固所学知识。

英汉电子词典设计报告设计C语言C语言程序设计

英汉电子词典设计报告设计C语言C语言程序设计

英汉电子词典设计报告设计C语言C语言程序设计设计报告:英汉电子词典设计目标:本次设计的目标是开发一个基于C语言的英汉电子词典,实现用户通过输入英文单词或汉字查询其对应的中文释义或英文翻译。

同时,用户还可以对查询结果进行添加、修改、删除操作,方便用户自定义个性化词库。

设计思路:1.使用C语言实现用户界面,包括菜单选项和用户输入功能;2.使用文件管理系统进行词库的存储和读取,并实现对词库的增删改查功能;3.使用字符串匹配算法进行单词或汉字的查询,保证查询的精确性;4.使用二叉查找树(BST)作为数据结构,实现词库的快速查找和插入功能。

模块设计:1.用户界面模块:-显示菜单选项,包括查询、添加、修改、删除和退出;-提示用户输入相应选项,并获取用户输入;2.文件管理模块:-创建存储词库的文件,并检查文件是否存在;-实现读取文件内容到内存和将内存内容写入文件的功能;3.数据结构模块:-设计结构体,包含英文单词和中文释义;-使用二叉查找树作为词库的数据结构,实现快速查找和插入功能;4.查询模块:-根据用户输入的英文单词或汉字,进行查询;-使用字符串匹配算法进行匹配,找到对应的词条并显示;5.添加模块:-接受用户输入的英文单词和中文释义,并将其插入词库中;6.修改模块:-接受用户输入的英文单词和新的中文释义,并替换原有词条的中文释义;7.删除模块:-根据用户输入的英文单词或汉字,从词库中删除对应的词条;测试计划:-对每个模块进行单元测试,确保其功能正常;-集成测试,检查各个模块之间的交互是否正常;-进行用户测试,验证整个电子词典系统的可用性和稳定性。

总结:通过以上的设计,我们可以实现一个基于C语言的英汉电子词典,能够方便用户进行英文单词和汉字的查询,并支持用户对词库进行个性化操作。

该电子词典设计简洁,功能完备,并且具有较好的扩展性,适用于不同平台和系统的实际应用。

电子英汉词典c程序设计

电子英汉词典c程序设计

电子英汉词典一、设计内容与设计要求1.设计内容:(1)、问题描述:英汉词典作为一个经常使用的学习工具,是咱们常常要利用的。

该系统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改和保护等工作。

(2)、功能描述:1)本词典采纳一个包括N个数据的结构体数组,每一个数据的结构应当包括:英文单词、词性、中文词意一、中文词意二、中文词意3。

2)对单词和释义字符串长度的限定别离为很多于10个词条。

3)本系统显示如此的菜单:(1)输入新辞汇(2)删除辞汇(3)翻译/查找(双向)(4)修改辞汇信息(5)退出系统(3)、算法提示:1、数据结构:结构体数组二、数据库结构:该系统的大体数据库如下表。

(4)、测试数据:要求被选用的词条有10个左右,以中学的单词为主。

对该系统有爱好的同窗能够在实现系统大体功能后,完善系统的其它功能。

2.设计要求:把握结构化程序设计的主体思想,以自顶向下慢慢求精的方式编制程序解决一些实际的问题,为以后编写软件积存一些典型的案例处置体会。

(1)按学号顺序选课题号,并在规定的时刻内独自完成相关课题的C源程序编写、调整和运行。

源程序及编译生成各文件均保留;(2)按本任务书的要求,编写《课程设计报告》(Word文档格式)。

并用A4的复印纸打印并装订;(3)在2009年6月29日之前,请各班学习委员收齐课程设计报告交黄晓宇教师,联系:。

附:课程设计报告内容要求如下:一、封面二、课程设计任务书三、课程设计主文档内容如下:1、课程设计题目2、课程设计目的3、课程设计要紧任务4、设计环境5、整体设计方案的选定(主控模块和各子模块的设计方式及框图)6、源程序清单7、收成及体会参考资料四、报告内容要求用宋体五号字,主题目用黑三号、一级题目用黑四号字,二级题目用宋体小四号字加粗,要求用A4纸张打印出来。

课程设计说明书装订顺序:封面、任务书、正文、附件(A4大小的图纸及程序清单)。

二、进度安排目录一课程设计目的 (1)二课程设计要紧任务 (1)三设计环境 (1)四整体设计方案的选定(主控模块和各子模块的设计方式及框图) (2)五源程序清单 (4)六收成及体会 (13)七参考文献 (14)电子英汉词典设计1.课程设计目的把握结构化程序设计的主体思想,以自顶向下慢慢求精的方式编制程序解决一些实际的问题,为以后编写软件积存一些典型的案例处置体会。

英汉词典c语言课程设计

英汉词典c语言课程设计

英汉词典c语言课程设计一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生具备简单的程序设计能力,能够运用C语言解决实际问题。

具体来说,知识目标包括:1.理解C语言的基本语法和规则。

2.掌握基本数据类型、运算符和表达式。

3.熟悉控制结构,如if语句、for循环、while循环等。

4.了解函数的定义和调用。

技能目标包括:1.能够编写简单的C语言程序。

2.能够阅读和理解简单的C语言程序。

3.能够运用C语言解决实际问题。

情感态度价值观目标包括:1.培养学生的编程兴趣,提高学生学习的积极性。

2.培养学生的团队合作意识,学会与他人交流和分享。

3.培养学生遇到困难时,积极思考、解决问题的能力。

二、教学内容根据教学目标,本课程的教学内容主要包括以下几个部分:1.C语言的基本语法和规则。

2.基本数据类型、运算符和表达式。

3.控制结构,如if语句、for循环、while循环等。

4.函数的定义和调用。

5.简单的实际问题解决。

教学大纲安排如下:第1-2课时:C语言的基本语法和规则。

第3-4课时:基本数据类型、运算符和表达式。

第5-6课时:控制结构,如if语句、for循环、while循环等。

第7-8课时:函数的定义和调用。

第9-10课时:简单的实际问题解决。

三、教学方法为了实现教学目标,本课程将采用以下几种教学方法:1.讲授法:通过讲解C语言的基本语法、数据类型、运算符、控制结构和函数等基本知识,使学生掌握基本概念和原理。

2.案例分析法:通过分析实际案例,使学生了解如何运用C语言解决实际问题。

3.实验法:安排上机实验,让学生动手编写C语言程序,巩固所学知识,提高编程能力。

4.讨论法:学生进行小组讨论,分享学习心得和经验,培养学生的团队合作意识。

四、教学资源为了支持教学内容和教学方法的实施,本课程将采用以下教学资源:1.教材:《C程序设计语言》(K&R)。

英汉电子词典设计报告_设计_C语言_C语言程序设计

英汉电子词典设计报告_设计_C语言_C语言程序设计

英汉电子词典设计报告_设计_C语言_C语言程序设计设计报告英汉电子词典一、设计目标:设计一个英汉电子词典,实现用户输入英文单词能够得到对应的中文翻译,并提供简单的用户界面。

二、设计思路:1.定义词典数据库结构:使用结构体来表示一个词条,包括英文单词和中文翻译两个成员变量。

2.读取词典文件:从外部文件中读取词典数据,并将数据存储到内存中的数组中。

3.用户交互界面设计:使用基本的文本界面,提示用户输入英文单词。

4.查询单词:根据用户输入的英文单词,在内存中的数组中查找对应的词条,并将中文翻译打印出来。

5.处理用户输入:对用户输入的英文单词进行处理,如将大写字母转换为小写字母,去除多余的空格等。

三、程序设计:1.定义词典结构体:```ctypedef structchar word[100];char translation[100];} DictionaryEntry;```2.读取词典文件:```cvoid readDictionary(DictionaryEntry* dictionary, int* size) //打开词典文件FILE* file = fopen("dictionary.txt", "r");if (file == NULL)printf("Unable to open dictionary file\n");return;}//逐行读取词典数据char line[256];int i = 0;while (fgets(line, sizeof(line), file))sscanf(line, "%s %s", dictionary[i].word,dictionary[i].translation);i++;}//设置词典大小*size = i;//关闭文件fclose(file);```3.用户交互界面设计:```cvoid printUserInterfacprintf("Please enter an English word: ");```4.查询单词:```cvoid searchWord(DictionaryEntry* dictionary, int size, char* word)for (int i = 0; i < size; i++)if (strcmp(dictionary[i].word, word) == 0)printf("%s: %s\n", dictionary[i].word,dictionary[i].translation);return;}}printf("Word not found\n");```5.处理用户输入:```cvoid processInput(char* input)//去除输入字符串中的多余空格int len = strlen(input);int j = 0;for (int i = 0; i < len; i++)if (input[i] != ' ')input[j] = tolower(input[i]);j++;}}input[j] = '\0';```四、总结:通过以上设计思路和程序设计,实现了一个简单的英汉电子词典。

c语言课程设计电子词典

c语言课程设计电子词典

沈阳工程学院课程设计设计题目: 电子词典系别信息工程系班级计本083学生姓名学号24指导教师姜柳、吕海华职称讲师、讲师起止日期:2009年6月15日起——至2009年6月26日止ﻬ沈阳工程学院课程设计任务书课程设计题目:电子词典(第 1 组)系别信息工程系班级计本083学生姓名张余学号200指导教师姜柳、吕海华职称讲师、讲师课程设计进行地点:实训F任务下达时间:2009年6月15日起止日期:2009年6月15日起——至2009年6月26日止教研室主任姜柳2009年6月15日批准一、课程设计的原始资料及依据在计算机中建立有限规模的电子英汉词典,利用程序实现电子英汉词典的查找、增加、删除、修改等功能。

查阅有关资料,进一步理解程序设计模块化的思想,并利用此思想编写一个简单的电子词典。

通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。

二、课程设计主要内容及要求1.认真阅读资料,掌握程序设计模块化的思想。

2.要求在设计的过程中,建立清晰的层次结构。

3.画出主要的功能结构图和主要模块的流程图。

4.实现功能:⑴查找单词。

⑵增加单词。

⑶万年历⑷修改单词。

⑸显示单词。

⑹保存单词。

⑺返回⑻帮助⑼退出5. 要求操作简单,用户界面友好。

6. 运行程序,检查结果是否和理论值一致。

7. 环境使用Windows,Turbo C环境。

三、对课程设计说明书撰写内容、格式、字数的要求1.课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。

一般不应少于3000字。

2.在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。

应做到文理通顺,内容正确完整,书写工整,装订整齐。

3.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。

c语言课程设计电子词典

c语言课程设计电子词典

沈阳工程学院课程设计设计题目:电子词典系别信息工程系班级计本083学生姓名学号24指导教师姜柳、吕海华职称讲师、讲师起止日期:2021年6月15日起——至2021年6月26日止沈阳工程学院课程设计任务书课程设计题目:电子词典〔第 1 组〕系别信息工程系班级计本083学生姓名张余学号2021412304指导教师姜柳、吕海华职称讲师、讲师课程设计进行地点:实训F任务下达时间:2021年6月15日起止日期:2021年6月15日起——至2021年6月26日止教研室主任姜柳2021年6月15日批准一、课程设计的原始资料及依据在计算机中建立有限规模的电子英汉词典,利用程序实现电子英汉词典的查找、增加、删除、修改等功能。

查阅有关资料,进一步理解程序设计模块化的思想,并利用此思想编写一个简单的电子词典。

通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。

二、课程设计主要内容及要求1.认真阅读资料,掌握程序设计模块化的思想。

2.要求在设计的过程中,建立清晰的层次结构。

4.实现功能:⑴查找单词。

⑵增加单词。

⑶万年历⑷修改单词。

⑸显示单词。

⑹保存单词。

⑺返回⑻帮助⑼退出5. 要求操作简单,用户界面友好。

6. 运行程序,检查结果是否和理论值一致。

7. 环境使用Windows,Turbo C环境。

三、对课程设计说明书撰写内容、格式、字数的要求1.课程设计说明书是表达和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。

一般不应少于3000字。

2.在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。

应做到文理通顺,内容正确完整,书写工整,装订整齐。

3.设计总结局部主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的方法以及今后的目标。

C语言程序设计课程设计报告电子英汉词典设计

C语言程序设计课程设计报告电子英汉词典设计

C语言程序设计课程设计报告电子英汉词典设计课程设计报告课程名称《C语言程序设计》课题名称电子英汉词典设计专业信息管理与信息系统班级学号姓名指导教师2011年6月22日一、设计内容与设计要求1.课程设计目的全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的惯和规范编程的思想,为后继课程(数据结构和数据库等课程)的实验以及课程设计打下较扎实的基础。

2.课题题目⑴班级成绩管理系统⑵班级档案管理系统⑶飞机订票系统⑷猜数字游戏⑸电子英汉词典设计⑹通信录管理体系3.设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的中型问题,为将来开发软件积累一些典型的案例处理经验。

具体要求如下:⑴设计课题题目:每位同学根据自己学号除以6所得的余数加一选择相应题号的课题。

原则上不予换提,私自换题者不记成绩。

⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。

②完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。

③完成系统详细设计:包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图。

④调试分析、设计体会、测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。

⑤关键源程序(带注释)⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。

⑷不得抄袭别人程序、课程设想报告,每一个人应体现本人的个性设想。

电子英汉字典_c语言版

电子英汉字典_c语言版

课程设计报告课题:电子英汉字典学院:电子工程与自动化专业:测控技术与仪器学生姓名: XXX 学号: XXXXXXXXXXX 指导老师: 陈寿宏2013年3月18日目录一、内容摘要与关键词-------------------------------------3二、设计任务与关键词-------------------------------------4三、总体设计---------------------------------------------51、程序设计组成框图---------------------------------52、各函数主要功能-----------------------------------53、主要功能的实现-----------------------------------63.1、菜单显示-------------------------------------6 3.2、显示函数-------------------------------------73.3、查找函数-------------------------------------83.4、修改函数-------------------------------------93.5、删除函数-------------------------------------103.6、录入函数-------------------------------------12四、调试分析---------------------------------------------13五、总结与体会-------------------------------------------16六、参考文献---------------------------------------------17七、附件-------------------------------------------------18内容摘要:电子英汉字典的主要功能是进行单词的添加、显示、查找、删除、修改、保存等。

VC6.0下电子词典源代码

VC6.0下电子词典源代码

Main():#include <stdio.h>#include <string.h>#include "dict.h"int main(int argc, char *argv[]){t est1();r eturn 0;}Dict.h:#ifndef __DICT_H#define __DICT_Htypedef struct node{c har *key;i nt n_strans;c har **strans;}WORD;int get_nword();WORD *get_wordarr(int n);int get_txt_usr(char *);int get_nword_usr(char *src);void add_usr(char *src);void add_txt_usr(char *src);int test1();int test2();#endifAdd_bin_usr.cpp:#include <stdio.h>#include <stdlib.h>#include <string.h>#include "dict.h"void add_usr(char *src){c har ch;g etchar();p rintf("you want to insert the word?please input y or n:"); s canf("%c", &ch);i f(ch == 'y'){int n_strans, i;char buf[512];FILE *fw;int len;if((fw = fopen("dict_bin_usr.txt", "a")) == NULL){perror("dict_bin_usr.txt open failuren");exit(-1);}len = strlen(src)+1;fwrite(&len, 4, 1, fw);fwrite(src,1, len, fw);printf("input word information:input n_strans:");scanf("%d",&n_strans);fwrite(&n_strans, 4, 1, fw);printf("input word information:input strans:");getchar();for(i=0;i<n_strans; i++){fgets(buf,sizeof(buf),stdin);len = strlen(buf);buf[len-1] = '\0';fwrite(&len, 4, 1, fw);fwrite(buf, 1, len, fw);}fclose(fw);}}Add_txt_usr.cpp:#include <stdio.h>#include <string.h>#include <stdlib.h>#include "dict.h"void add_txt_usr(char *src){c har ch;c har buf[100];p rintf("you want to insert the word?please input y or n:"); s canf("%c", &ch);i f(ch== 'y'){FILE *fw;int len;char str[100];if((fw = fopen("dict_usr.txt", "a")) == NULL){perror("dict_usr.txt open failuren");exit(-1);}fprintf(fw,"%s\n", src);printf("input word information:input strans:");getchar();fgets(buf,sizeof(buf),stdin);len = strlen(buf);buf[len-1] = '\0';fprintf(fw, "%s\n", buf);fclose(fw);}i f(ch == 'n')fgets(buf,sizeof(buf),stdin);}Dict1.cpp:#include <stdio.h>#include <string.h>#include <stdlib.h>#include "dict.h"int search(WORD *word, char *str, int n){i nt mid, i;i nt start = 0;i nt end = n-1;i nt flag = 1;w hile(start <= end){mid = (start+end)/2;if((strcmp(str, word[mid].key))==0){flag = 0;printf("%s\n", word[mid].key);for(i=0; i<word[mid].n_strans; i++)printf("%s\n",word[mid].strans[i]);return 0;}else if(strcmp(str, word[mid].key)>0)start = mid+1;elseend = mid-1;}p rintf("in database These is no the word\n");r eturn flag;}static void free_word(WORD *word,int n){i nt i,j;f or(i=n-1; i>=0; i--){for(j=word[i].n_strans-1;j>=0; j--)free(word[i].strans[j]);free(word[i].strans);free(word[i].key);}f ree(word);// word =NULL;}int test1(void){i nt n;n = get_nword();W ORD *pword = get_wordarr(n);c har a[50];i nt flag = 0;i nt len;p rintf("******************************************************\n" );p rintf("please input you want to search word(input exit end):");f gets(a,50, stdin);l en = strlen(a);a[len-1] = '\0';w hile(strcmp(a, "exit") != 0){flag = search(pword, a, n);//找到返回0,找不到返回1if(flag == 1){flag = get_txt_usr(a);if(flag == 1)add_txt_usr(a);}printf("******************************************************\n" );printf("please input you want to search word(input exit end):");//system("pause");fgets(a,50, stdin);len = strlen(a);a[len-1] = '\0';}f ree_word(pword, n);return 0;}Dict3.cpp:#include <stdio.h>#include <string.h>#include <stdlib.h>#include "dict.h"int N;static WORD *get_bin_nword(){i nt n, i, j, n_strans;F ILE *fr;i nt len;i f((fr = fopen("dict_bin.txt", "r")) == NULL){perror("dict_bin.txt open failuren");exit(-1);}f read(&n, 4, 1, fr);N = n;W ORD *wordarr=(WORD *)malloc(sizeof(WORD)*N);f or(i=0; i<n; i++){fread(&len, 4, 1, fr);wordarr[i].key = (char *)malloc(len);fread(wordarr[i].key, 1, len, fr);fread(&n_strans, 4, 1, fr);wordarr[i].n_strans = n_strans;wordarr[i].strans =(char **) malloc(sizeof(*(wordarr[i].strans)) * n_strans);for(j=0; j<wordarr[i].n_strans; j++){fread(&len, 4, 1, fr);wordarr[i].strans[j] =(char *) malloc(len);fread(wordarr[i].strans[j], 1, len, fr);}}f close(fr);r eturn wordarr;}static int search(WORD *wordarr, int n, char *src){i nt start = 0;i nt end = n-1;i nt mid;i nt i, flag = 1;w hile(start <= end){mid = (start+end)/2;if((strcmp(src, wordarr[mid].key))==0){flag = 0;printf("%s\n", wordarr[mid].key);for(i=0; i<wordarr[mid].n_strans; i++)printf("%s\n",wordarr[mid].strans[i]);return 0;}else if(strcmp(src, wordarr[mid].key)>0)start = mid+1;elseend = mid-1;}p rintf("****************************************\n");p rintf(" in database These is no the word\n");p rintf("****************************************\n");r eturn flag;}static void free_word(WORD *word,int n){i nt i,j;f or(i=n-1; i>=0; i--){for(j=word[i].n_strans-1;j>=0; j--)free(word[i].strans[j]);free(word[i].strans);free(word[i].key);}f ree(word);w ord =NULL;}Get_bin_wordaar_txt.cpp:#include <stdio.h>#include <stdlib.h>#include <string.h>#include "dict.h"WORD *get_wordarr(int n) //从文件中读取内容,放在数据结构里面{W ORD *word = (WORD *)malloc(sizeof(WORD)*n);c har buf[512], bufcp[512];c har *token, *begin;i nt i = 0,j;i nt len;F ILE *fr, *fw;i f((fr = fopen("dict.txt", "r")) == NULL){perror("dict.txt open failure\n");exit(-1);}i f((fw = fopen("dict_bin.txt", "w")) == NULL){perror("dict_bin.txt open failuren");exit(-1);}f write(&n, 4, 1, fw);w hile(fgets(buf, sizeof(buf), fr)){len = strlen(buf)-1;buf[len] = '\0';word[i].key = (char *)malloc(len);strcpy(word[i].key, &buf[1]);fwrite(&len, 4, 1, fw);fwrite(word[i].key, 1, len, fw);fgets(buf, sizeof(buf), fr);{strcpy(bufcp, buf);for(j=0,begin=buf; (token=strtok(begin, "@"))!=NULL; begin=NULL,j++)word[i].n_strans = j;fwrite(&j, 4, 1, fw);word[i].strans = (char **)malloc(sizeof(*(word[i].strans)) * j);for(j=0,begin=bufcp; (token=strtok(begin, "@"))!=NULL; begin=NULL,j++){len = strlen(token)+1;word[i].strans[j] = (char *)malloc(len);strcpy(word[i].strans[j],token);fwrite(&len, 4, 1, fw);fwrite(token, 1, len, fw);}}i++;}f close(fr);f close(fw);r eturn word;}Get_nword.cpp:#include <stdio.h>#include "dict.h"int get_nword(){F ILE *fp;i nt count = 0;c har buf[512];i f((fp=(fopen("dict.txt", "r")))==NULL){perror("file open failure\n");return -1;}w hile(fgets(buf, sizeof(buf), fp)){count++;}c ount /= 2;f close(fp);r eturn count;}Search_bin_usr.cpp:#include <stdio.h>#include <string.h>#include <stdlib.h>#include "dict.h"int get_nword_usr(char *src){int j, n_strans;FILE *fr;c har str[512];i nt len =0;i f((fr = fopen("dict_bin_usr.txt", "r")) == NULL) {perror("file open failuren");exit(-1);}w hile(fread(&len, 4, 1, fr)){fread(str, 1, len, fr);if(strcmp(str, src) == 0){printf("the word in usr database\n");printf("%s\n", str);fread(&n_strans, 4, 1, fr);for(j=0; j<n_strans; j++){fread(&len, 4, 1, fr);fread(str, 1, len, fr);printf("%s\n", str);}return 0;}fread(&n_strans, 4, 1, fr);for(j=0; j<n_strans; j++){fread(&len, 4, 1, fr);fread(str, 1, len, fr);}}p rintf("in usr these no the word\n");f close(fr);r eturn 1;}Seach_usr_txt.cpp:#include <stdio.h>#include <string.h>#include <stdlib.h>#include "dict.h"int get_txt_usr(char *src){F ILE *fr;c har str[512];i nt len =0;i f((fr = fopen("dict_usr.txt", "r")) == NULL){perror("dict_usr.txt open failuren");exit(-1);}w hile(fgets(str,sizeof(str), fr)){len = strlen(str);str[len-1] = '\0';if(strcmp(str, src) == 0){printf("****************************************\n");printf("the word in usr database\n");printf("%s\n", str);fgets(str, sizeof(str), fr);printf("%s\n", str);printf("****************************************\n");return 0;}}p rintf("****************************************\n");p rintf("in usr these no the word\n");p rintf("****************************************\n");f close(fr);r eturn 1;}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言课程设计软件学院指导老师:学号:姓名:一、实验题目及要求题目:电子英汉词典设计要求:1.用图形用户界面实现2.能够编辑词典库中的信息3.能够实现英译汉,汉译英。

(要考虑一词多义)二、实验过程主要思想: 1 建立词典库(相关文件的处理)2 设计词典图形用户界面3 查找单词及词典的重复使用(实现一词多义)主要过程1.词典库的建立:文件的建立,写入和调出参考老师给的FILE.C 文件FILE.C大致内容{FILE *fp/*建立文件指针*/fp=fopen("d:\list.txt","wb+");/*在指定路径建立文本文件*/for(i=0;i<SIZE;i++) /*将结构体中的内容if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) 写进指定文件中并进{ printf("file write error!"); 行判断是否写入*/ exit(0);}fread(&stu_temp,sizeof(struct student),1,fp); /*将文件中的指定内容调出*/ }单词库存储在指定路径的指定文件中方便后文的查询和调出单词库的建立利用结构体可以包含一词多义,并将汉译英和英译汉的词典库分开以便实现英汉互译(在中文dos环境下运行)图例:(未在中文dos环境下运行)2. 设计词典图形用户界面参考文件Graph.c 进行图形驱动void init(){int gdriver, gmode, i, j;gdriver = DETECT;registerbgidriver(EGA VGA_driver);initgraph(&gdriver, &gmode, "");}图例(未设置鼠标前)上网查找相关资料调用鼠标鼠标绘制函数设置鼠标指针位置函数设置函数得到鼠标左右键点击的不同状态(设置鼠标后运行结果全屏无法截图)在图形界面下设计用户界面并使用该鼠标设置相关区域的鼠标键点击后得到不同的结果,进入英译汉或汉译英界面3. 查找单词及词典的重复使用(考虑一词多义)利用文件指针和函数fseek ,fread 对结构体内的单词名称查找和该相关释义的调用同时考虑英汉互译设置查找不到单词的页面和利用while语句使实现词典是否需要重复使用功能图例:三、实验结果及心得根据题目描述基本达到题目要求。

在实验过程中对照老师给予的帮助程序和相关软件不断构思得到大致的框架,不断的调试不断的查询函数用法的同时加深对c语言的认识,也许只是简单的一句话也许只是简单的一个功能也是需要一个一个经过深思熟虑的代码敲打出来。

此次试验中了解图形用户界面,相关文件的存储和调用,鼠标的调用及使用等等平常没有接触到的c语言的知识。

深深感受到c语言博大精深,将为以后的软件方面知识的学习打下深刻的基础。

四、代码(dictionary)#include <process.h>#include <stdlib.h>#include <stdio.h>#include <dos.h>#include <conio.h>#include <string.h>#include <graphics.h>#include <stdlib.h>#include <bios.h>#define SIZE 2 /*设置词典的词汇量*/#define NO_PRESSED 0 /*为读取鼠标的各个状态*/#define LEFT_PRESSED 1#define RIGHT_PRESSED 2void DrawMouse(float x,float y);int setMousePos(int x,int y);int mouseStatus(int* x,int* y);void init();void box(int startx,int starty,int high,int width) ;struct word{char name[10]; /*存储英译中词典单词名*/char exp[3][20]; /*存储英译中词典单词释义*/char namm[10]; /*存储中译英词典单词名*/char exx[3][20]; /*存储英译中词典单词释义*/}; /*创建存放单词及其释义的结构体*/char buf[20*20*4]; /*设置缓存区*/main(){char *f[]={"Chinese-English Translation(中译英)","English-Chinese Translation(英译中)"};int key,y,x;char u;int t=0,r;int o1[SIZE];int o2[SIZE]; /*o1,o2数组用来储存单词的释义数目*/ char seek[10]; /*存储查询功能时用户输入的单词*/int last_x,last_y;int x1,y1; int x0,y0;int m=0;struct word stu[SIZE],stu_eg; /*为读取文件中内容设定的相关结构体变量*/FILE *fp; /*定义文件指针*/int i,j;fp=fopen("c:\list.txt","wb+");if(fp==NULL){printf("cannot open this file\n");exit(0);} /*创建或打开特定路径的文件*/for(i=0;i<SIZE;i++){puts("English word:");scanf("%s",&stu[i].name); /*添加英译中词典中单词名*/u='y'; /*字符变量u存储用户输入的键盘值查询用户是否需要添加释义*/ j=0; /*变量j的数值能控制每个单词释义在三个之内*/ while(u=='y'&&j<=2){o1[i]=j; /*int类型数组o1记载每个单词拥有的释义数*/ printf("Chinese explanation %d :",j+1);y=wherey();scanf("%s",stu[i].exp[j]);gettext(1,1,60,14,buf);if(j<2)printf("\nanother explaination ? ('n'or 'y')\n") ;getchar();scanf("%c",&u);clrscr();puttext(1,1,60,14,buf);gotoxy(1,y+2);j++;}clrscr();} /*添加英译中词典中单词*//*利用循环语句添加单词释义实现一次多义功能*/ for(i=0;i<SIZE;i++){puts("中文单词:");scanf("%s",&stu[i].namm);u='y';j=0;while(u=='y'&&j<=2){o2[i]=j;printf("英文释义%d :",j+1);y=wherey();scanf("%s",stu[i].exx[j]);gettext(1,1,60,14,buf);if(j<2)printf("\n增加释义? ('n'or 'y')\n") ;getchar();scanf("%c",&u);clrscr();puttext(1,1,60,14,buf);gotoxy(1,y+2);j++;/*相关解释同上文英译汉词典中注释*/ } /*添加中译英词典中单词*/clrscr();}for(i=0;i<SIZE;i++)if(fwrite(&stu[i],sizeof(struct word),1,fp)!=1){printf("file write error!");exit(0);} /*利用文件指针和fwrite语句将单词存放在指定打开文件中/*window(1,1,80,25);gettext(20,10,40,14,buf);u='y';init();x0=250;y0=250; /*设定鼠标的初始位置*/textbackground(15);textcolor(0);clrscr();outtextxy(180,220,f[0]); /*在设定好的背景颜色和字体颜色下指定位置输出目录文字*/ outtextxy(180,270,f[1]);setMousePos(x0,y0);setwritemode(1);DrawMouse(x0,y0); /*调用相关的鼠标函数*/last_x=x0;last_y=y0;line(170,210,470,210);line(170,240,470,240);line(170,260,470,260);line(170,290,470,290);line(170,210,170,240);line(470,210,470,240);line(170,260,170,290);line(470,260,470,290); /*设计界面相关文字的框框*/while(m==0){m=0;while(mouseStatus(&x1,&y1) == NO_PRESSED&&m==0){if(last_x!=x1 && last_y!=y1){DrawMouse(last_x,last_y);DrawMouse(x1,y1);last_x=x1;last_y=y1;}} /*设计当鼠标坐标移动且没有按下任何键时鼠标的移动轨迹*/ while(!(mouseStatus(&x1,&y1)==NO_PRESSED) ){if(mouseStatus(&x1,&y1)==LEFT_PRESSED&&x1>170&&x1<470&&y1>210&& y1<240){m=1;break;}if(mouseStatus(&x1,&y1)==LEFT_PRESSED&&x1>170&&x1<470&&y1>260&& y1<290){m=2;break;}if(x1<170 ||x1>470 ||y1<210 || y1>290);} /*设定鼠标在界面内一定区域进行相关点击后实现的功能*/ }restorecrtmode(); /*设计词典的界面*/while(u=='y') /*利用u=='y'使词典能重复使用*/while(1){textbackground(3);textcolor(15);if(m==1){t=0;clrscr();box(15,10,10,65);gotoxy(27,7);printf("English-Chinese Translation");gotoxy(31,12);rewind(fp);printf("enter the word:");gotoxy(31+strlen("enter the word:"),12);/ *设计英译汉词典查找功能时的页面*/ scanf("%s",seek);for(i=0;i<SIZE;i++){if(strcmp(stu[i].name,seek)==0){t=1;break;}} /*利用字符串strcmp函数实现查找对比功能*/if(t==1) /*如果找到相同单词名令t=1,判断是否执行下个步骤*/ {fseek(fp,i*sizeof(struct word),0);fread(&stu_eg,sizeof(struct word),1,fp);gotoxy(31,15);for(j=0;j<=o1[i];j++){if(j==0)printf("the explanation is :(%d) %s",j+1,stu_eg.exp[j]);else{gotoxy(31+strlen("the explanation is :"),15+j);printf("(%d) %s",j+1,stu_eg.exp[j]);}} /*如果t=1,找到该单词在文件中存储的位置后,利用循环结构,fseek和fread语句将其所有释义调出,循环的判断次数取决o1数组内相对应的数字*/}for(i=0;i<SIZE;i++){for(r=0;r<=o2[i];r++){if(strcmp(stu[i].exx[r],seek)==0){t=2;break;}} /*如果找到相同单词释义令t=2,判断是否执行下个步骤*/if(t==2)break;}if(t==2){rewind(fp);fseek(fp,(i)*sizeof(struct word),0);fread(&stu_eg,sizeof(struct word),1,fp);gotoxy(31,15);printf("the explanation is :(1) %s",stu_eg.namm);/*如果t=2在汉译英词典库中找到相关释义并将其单词名调出*/ }if(t==0){gotoxy(31,15);printf("sorry,don't find it"); /*词典库中没有此单词则输出sorry,don't find it*/}getchar();scanf("%c",&u)clrscr(); /*停顿使用户看清结果*/gotoxy(22,10);printf("Do you want use is again ?('n' or 'y')");gotoxy(35,14);printf("enter:");gotoxy(35+strlen("enter:"),14); /*设计没有查到单词的界面*/scanf("%c",&u);break; /*对u进行赋值来判定用户是否需要重新使用词典*/ }if(m==2){t=0;clrscr();gotoxy(38,7);printf("汉译英");box(20,10,10,60);gotoxy(35,12);rewind(fp);printf("输入单词:");gotoxy(35+strlen("输入单词:"),12);scanf("%s",seek);for(i=0;i<SIZE;i++){if(strcmp(stu[i].namm,seek)==0){t=1;break;}}if(t==1){fseek(fp,i*sizeof(struct word),0);fread(&stu_eg,sizeof(struct word),1,fp);gotoxy(35,15);for(j=0;j<=o2[i];j++){if(j==0)printf("释义:(%d) %s",j+1,stu_eg.exx[j]);else{gotoxy(35+strlen("释义:"),15+j);printf("(%d) %s",j+1,stu_eg.exx[j]);}}}for(i=0;i<SIZE;i++){for(r=0;r<=o2[i];r++){if(strcmp(stu[i].exp[r],seek)==0){t=2;break;}}if(t==2)break;}if(t==2){rewind(fp);fseek(fp,(i)*sizeof(struct word),0);fread(&stu_eg,sizeof(struct word),1,fp);gotoxy(35,15);printf("释义:(1) %s",stu_);}if(t==0){gotoxy(35,15);printf("对不起,没有这个单词");}getchar();scanf("%c",&u);clrscr();gotoxy(27,10);printf("重新查询?('n' or 'y')");gotoxy(35,14);printf("输入:");gotoxy(35+strlen("输入:"),14);scanf("%c",&u);break; /*相关注释参考上文英译中词典*/ }}}int mouseStatus(int* x,int* y){/*定义两个寄存器变量,分别存储入口参数和出口参数*/union REGS inregs,outregs;int status;status=NO_PRESSED;/*入口参数AH=3,读取鼠标位置及其按钮状态*/inregs.x.ax=3;int86(0x33,&inregs,&outregs);/*CX表示水平位置,DX表示垂直位置*/*x=outregs.x.cx;*y=outregs.x.dx;/*BX表示按键状态*/if(outregs.x.bx&1)status=LEFT_PRESSED;else if(outregs.x.bx&2)status=RIGHT_PRESSED;return (status);}/*设置鼠标指针位置函数*/int setMousePos(int x,int y){union REGS inregs,outregs;/*入口参数AH=4,设置鼠标指针位置*/inregs.x.ax=4;inregs.x.cx=x;inregs.x.dx=y;int86(0x33,&inregs,&outregs);}/*绘制鼠标函数*/void DrawMouse(float x,float y){line(x,y,x+5,y+10);line(x,y,x+10,y+5);line(x+5,y+10,x+10,y+5);line(x+7,y+8,x+12,y+13);line(x+8,y+7,x+13,y+12);line(x+14,y+12,x+13,y+13); /*利用line函数一条一条绘制鼠标形状*/ }void init() /*进行相关图形驱动*/{int gdriver, gmode, i, j;gdriver = DETECT;registerbgidriver(EGA VGA_driver);initgraph(&gdriver, &gmode, "");}void box(int startx,int starty,int high,int width) /*框框的建立*/{int i;gotoxy(startx,starty);putch(0xda);for (i=startx+1;i <width;i++)putch(0xc4);putch(0xbf);for(i=starty+1;i <high+starty;i++){gotoxy(startx,i);putch(0xb3);gotoxy(width,i);putch(0xb3);}gotoxy(startx,starty+high-1);putch(0xc0);gotoxy(startx+1,starty+high-1);for(i=startx+1;i <width;i++)putch(0xc4);putch(0xd9);return;}。

相关文档
最新文档