C课程设计之电子词典
- 格式:doc
- 大小:169.50 KB
- 文档页数:19
电子词典课程设计一、课程目标知识目标:1. 学生能理解电子词典的基本概念,掌握其功能特点和使用方法。
2. 学生能掌握电子词典中常见词汇的查找、读音、释义等功能操作。
3. 学生能了解电子词典在学习和生活中的实际应用。
技能目标:1. 学生能熟练运用电子词典进行词汇查询,提高查词效率。
2. 学生能通过电子词典学习新词汇,拓展词汇量,提高语言表达能力。
3. 学生能运用电子词典辅助学习,提升自学能力和信息检索能力。
情感态度价值观目标:1. 学生能认识到电子词典在语言学习中的重要性,培养积极使用电子词典的习惯。
2. 学生在使用电子词典的过程中,能体会科技发展对学习方式的改变,增强时代感和责任感。
3. 学生通过电子词典的学习,增强合作交流意识,培养团队精神和共享资源的价值观。
课程性质:本课程为实用技能类课程,旨在帮助学生掌握电子词典的使用方法,提高学习效率。
学生特点:六年级学生具备一定的计算机操作能力和自主学习能力,对新鲜事物充满好奇心。
教学要求:教师需结合学生特点,采用任务驱动、合作探究等教学方法,激发学生学习兴趣,提高课程效果。
通过课程学习,使学生能够将电子词典应用到实际学习和生活中,达到学以致用的目的。
在教学过程中,注重培养学生的自主学习能力、团队协作能力和信息素养。
二、教学内容1. 电子词典的基本概念:介绍电子词典的定义、发展历程及其与纸质词典的区别。
2. 电子词典的功能特点:讲解电子词典的查词、发音、释义、例句、翻译等功能。
3. 电子词典的使用方法:教授如何开关机、输入关键词、查找词汇、听取发音、查看释义等操作。
- 教学大纲:- 第一课时:电子词典的基本概念及功能特点- 第二课时:电子词典的使用方法及操作技巧4. 常见电子词典介绍:介绍几款市面上常见的电子词典,分析各自特点,帮助学生选择合适的电子词典。
5. 电子词典在生活中的应用:举例说明电子词典在语言学习、阅读、写作等方面的实际应用。
6. 电子词典的正确使用习惯:教育学生养成良好的电子词典使用习惯,如合理规划使用时间、避免过度依赖等。
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语言、电子英汉字典、查找、增词、删除、修改、保存、显示目录1 设计任务与要求 (4)2 总体设计 (4)3 详细设计 (5)3.1 设计思路 (5)3.2 各功能模块实现的具体流程 (5)3.2.1 菜单显示 (5)3.2.2 查找 (6)3.2.3 增加 (8)3.2.4 删除 (9)3.2.5 修改 (11)3.2.6 显示 (13)4 调试分析 (15)总结与心得 (20)参考文献 (21)附录 (22)电子英汉字典设计1 设计任务与要求:该设计要求实现简单电子英汉字典的功能,具体管理操作包括单词的添加、显示、查找、删除、修改和保存等。
(1)使用结构体实现,每个数据的结构应包括:单词的英文拼写,单词的中文释义。
(2)系统功能:A.词条录入:即添加单词记录。
B.信息显示:将所有的单词按字母顺序显示。
C.词条修改:对已经输入的单词信息进行修改。
D.词条删除:删除某个单词记录。
E.单词查询:输入单词英文拼写,输出该单词的中文释义。
F.信息保存:将单词信息保存到文件。
G.退出系统。
2 总体设计系统功能分析:本系统可以实现词条录入、信息显示、词条修改、词条删除、单词查询、信息保存、退出系统等功能。
系统功能模块图如图2.1、图2.2所示。
图2.1系统功能模块图(1)图2.2系统功能模块图(2)3 详细设计3.1 设计思路:根据设计任务与要求,该设计主要实现简单电子英汉字典的功能。
具体实现单词的录入、显示、查找、修改、删除、保存与退出等功能。
单词录入之后将自动保存到文件中,然后调用显示函数,将保存在文件中的单词信息按照单词字母顺序排序前后显示出来。
C语言课程设计设计题目电子英汉字典学院专业年级姓名指导教师职称目录1. 设计内容要求 (3)1.1. 课程设计目的 (3)1.2. 课程设计课题 (3)1.3.课程设计要求 (3)2.设计课题 (4)2.1 问题描述 (4)2.2 功能描述 (4)2.3 算法提示 (4)2.4 测试数据 (5)3.系统需求分析 (5)4.总体设计 (6)5.功能设计 (6)5.1菜单显示 (7)5.2查询词条 (7)5.3新增词条 (8)5.4删除词条 (9)5.5修改词条 (9)6.系统调试 (10)7.结果分析 (13)8.课程总结 (14)9.附录:源程序 (14)1.设计内容要求1.1.课程设计目的全面熟悉、掌握C语言基本知识,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为后继课程(数据结构、数据库和汇编语言等课程)的实验以及课程设计打下较扎实的基础。
1.2.课程设计课题电子英汉词典设计1.3.课程设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的中型问题,为将来开发软件积累一些典型的案例处理经验。
具体要求如下:⑴设计课题题目:每位同学根据自己学号除以8所得的余数加一选择相应题号的课题。
原则上不予换提,私自换题者不记成绩。
⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括系统设计目的与意义;系统功能需求;输入输出的要求。
②完成系统概要设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。
③完成系统详细设计:包括采用C语言定义相关的数据类型;写出各模块的类C码算法;画出函数的调用关系图④调试分析、设计体会、测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得体会。
一种简单的英文词典排版系统摘要在英文词典排版当中,人工统计的速度很慢,且容易出现差错。
本英文词典排版系统的自动化加速了排版工作,提高工作效率本程序主要采用对零散的单词进行自动读取,然后按单词首字母顺序讲单词保存到文档,这样的结构化非常便于程序后续的排版工作。
排版具体过程涉及到自动排除重复单词与添加新单词并重新排版等问题,将于正问中详细介绍。
本程序实现了所有设计要求。
关键词:英文词典排版系统,结构体,排版,单词目录中文摘要Ⅰ主要符号表 (Ⅳ)1 题目要求 (1)1.1. (1)2需求分析3 总体设计4详细设计·····························································································4.1主函数 ···························································································4.2各功能模块设计 ···············································································5.运行结果(附带抓图)6.总结 ···································································································参考文献··································································································致谢 ········································································································主要符号表#include "stdlib.h" ---为exit()函数提供原型;#include "string.h"---字符串处理函数原型;#include "ctype.h"---字符处理函数原型;#define ROWS 256#define COLS 32---定义“字典”的大小:可存放256个单词,每个单词的长度不超过31static FILE *fp。
电子词典简单程序设计电子词典C语言程序设计,需要完成单词录入、更新、删除、查询等功能。
每个功能独立并相互联系。
程序开发的简单编程如下,请认真参考阅读,如有更好的意见和程序,请求赐教,外链下我的贴吧或文库。
typedef struct TItem {char word[szWORD];char mean[szSTRN];} Item;lookup(char *word, char *mean){FILE * f = 0; Item i;int r = 0; fpos_t p = 0;if(!word) return 0;f = fopen(fileDict, "rb");if (!f) return 0;while(!feof(f)) {fgetpos(f, &p);r = fread(&i, szITEM, 1, f);if(r < 1) break;if(i.word[0] == 0) continue;if(strcmp(i.word , word)) continue;if(mean) strcpy(mean, i.mean );fclose(f);return p+1;}fclose(f);return 0;}void add(void){char a;Item i;FILE * f = 0; fpos_t p = 0;system("cls");memset(&i, 0, szITEM);printf("请输入单词:"); scanf("%s", i.word );p = lookup(i.word, 0 );if(p) {printf("字典内已经有该单词记录!\n"); getch();printf("\n是否还执行当前指令?\n");a=getch();if(a == 'y' || a == 'Y')add();system("cls");return;}printf("请输入释义,按回车结束:");fflush(stdin);//清除文件缓冲区gets(i.mean );f = fopen(fileDict, "ab");fwrite(&i, szITEM, 1, f);fclose(f);printf("词条已新增\n");getch();printf("\n是否还执行当前指令?\n");a=getch();if(a == 'y' || a == 'Y')add();system("cls");}void shanchu(void){char a;Item i; FILE * f = 0; fpos_t p = 0;system("cls"); memset(&i, 0, szITEM);printf("请输入单词:"); scanf("%s", i.word ); p = lookup(i.word, 0 );if(p==0) {printf("字典内没有该单词记录!\n"); getch();printf("\n是否还执行当前指令?\n");a=getch();if(a == 'y' || a == 'Y')shanchu();system("cls");return;}p--;memset(&i, 0, szITEM);f = fopen(fileDict, "rb+");fsetpos(f, &p);fwrite(&i, szITEM, 1, f);fclose(f);printf("词条已删除\n");getch();printf("\n是否还执行当前指令?\n");a=getch();if(a == 'y' || a == 'Y')shanchu();system("cls");}void edit(void){char a;Item i; FILE * f = 0; fpos_t p = 0; system("cls");memset(&i, 0, szITEM);printf("请输入单词:"); scanf("%s", i.word );p = lookup(i.word, 0 );if(p==0) {printf("字典内没有该单词记录!\n");getch();printf("\n是否还执行当前指令?\n");a=getch();if(a == 'y' || a == 'Y')edit();system("cls");return;}p--;printf("请输入释义,按回车结束(输入fangqi放弃修改):"); fflush(stdin);gets(i.mean );if(strstr(i.mean ,"fangqi")) {printf("已放弃修改!\n");getch();printf("\n是否还执行当前指令?\n");a=getch();if(a == 'y' || a == 'Y')edit();system("cls");return ;}f = fopen(fileDict, "rb+");fsetpos(f, &p);fwrite(&i, szITEM, 1, f);fclose(f);printf("词条已保存\n");getch();printf("\n是否还执行当前指令?\n");a=getch();if(a == 'y' || a == 'Y')edit();system("cls");}void chaxun(void){char a;Item i; fpos_t p = 0;system("cls");memset(&i, 0, szITEM);printf("请输入单词:"); scanf("%s", i.word );p = lookup(i.word, i.mean );if(p==0) {printf("字典内没有该单词记录!\n");getch();printf("\n是否还执行当前指令?\n");a=getch();if(a == 'y' || a == 'Y')chaxun();system("cls");return;}printf("%s\n%s", i.word , i.mean );getch();printf("\n是否还执行当前指令?\n");a=getch();if(a == 'y' || a == 'Y')chaxun();system("cls");}void set(void){int cmd =0;printf("当前字典为%s,需要改变吗(选择y或Y改变)?", fileDict); cmd = getch();if(cmd == 'y' || cmd == 'Y') {printf("请输入字典文件名称(包含路径):"); scanf("%s", fileDict);printf("设置成功!\n");getch();system("cls");}}int main(int argc, char * argv[]){int cmd = 0;if(argc >1)strcpy(fileDict, argv[1]);elsestrcpy(fileDict, "c:\\大作业.txt");/*end if*/for(;;) {printf("\n\************************\n\** 欢迎进入我的字典!**\n\************************\n\** 0 - 设置字典**\n\** 1 - 查询单词**\n\** 2 - 新增单词**\n\** 3 - 编辑单词**\n\** 4 - 删除单词**\n\** 退出字典按任何键**\n\************************\n");cmd = getch() - '0';switch(cmd) {case 0: set(); break;case 1: chaxun(); break;case 2: add(); break;case 3: edit(); break;case 4: shanchu(); break;default: return 0;}}return 0;}。
C语言程序课程设计任务书一课程设计性质与目的:C语言程序设计是一门实践性很强的课程。
C程序课程设计是学习C语言程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所学,全面熟悉,掌握C语言程序设计的基本方法和技巧,进一步提高编写程序、分析程序及上机操作、调试程序的能力,让学生加深理解书上所学的知识,提高动手操作能力及分析问题和解决问题的能力。
二课程设计包含的知识点:1.掌握并熟练利用C语言的基本数据类型与各种表达式,程序的流程控制语句。
2.掌握数组的基本概念。
掌握一维数组与二维数组的使用,掌握字符数组与字符串的关系。
3.熟练掌握指针、地址、指针类型的概念及其使用。
掌握指针变量的定义与初始化、指针的间接访问和表达式,掌握指针与数组、函数、字符串的联系4.掌握函数的定义,函数的返回值,函数的调用,函数的声明,函数的形式参数和实际参数之间的关系,了解函数的作用区间。
5.掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示。
结构体与指针、函数的关系。
三课程设计的要求:1.学生从以下八个题目中任意选择并完成一个题目。
要求每个学生能够独立思考并按时完成本课程设计所包含的所有内容。
2.要求学生必须按照课程设计报告的完整格式说明设计内容,设计任务,分析过程和算法,给出程序流程图和全部源程序,并做出总结。
3.设计报告的完整格式应包含以下内容:a)设计总体思路b)主程序及各个模块说明c)总体模块框图d)各个程序模块说明e)程序流程图f)程序清单g)总结与体会四.时间安排:五.课程设计考核办法:根据学生所完成课程设计报告的完整性,正确性,和算法实现的质量,分为优,良,中,及格和不及格五个等级。
六.课程设计指导老师:王颖课程设计题目电子英汉词典设计课程设计报告规范一、需求分析1、程序的功能。
2、输入输出的要求。
二、概要设计1、程序由哪些模块组成以及一个模块之间的层次结构、模块的调用关系;每个模块的功能。
C语言课程设计设计题目电子英汉字典学院专业年级姓名指导教师职称目录1.设计内容要求 (3)1.1.课程设计目的 (3)1.2.课程设计课题 (3)1.3. 课程设计要求 (3)2.设计课题 (4)问题描述 (4)功能描述 (4)算法提示 (4)测试数据 (5)3.系统需求解析 (5)4.整体设计 (6)5.功能设计 (6)菜单显示 (7)盘问词条 (7)新增词条 (8)删除词条 (9)更正词条 (9)6.系统调试 (10)7.结果解析 (13)8.课程总结 (14)9.附录:源程序 (14)1.设计内容要求1.1. 课程设计目的全面熟悉、掌握 C 语言根本知识,增强对不同样的问题运用和灵便选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握解析结果的假设干有效方法,进一步提高上机着手能力,培养使用计算机解决实责问题的能力,养成供应文档资料的习惯和标准编程的思想,为后继课程〔数据结构、数据库和汇编语言等课程〕的实验以及课程设计打下较扎实的基础。
1.2. 课程设计课题电子英汉字典设计1.3. 课程设计要求掌握结构化程序设计的主体思想,以自顶向下渐渐求精的方法编制程序解决一些实质的中型问题,为将来开发软件积累一些典型的案例办理经验。
详细要求以下:⑴设计课题题目:每位同学依照自己学号除以8 所得的余数加一选择相应题号的课题。
原那么上不予换提,私自换题者不记成绩。
⑵依照自己对应的课题完成以下主要工作:①完成系统需求解析:包括系统设计目的与意义;系统功能需求;输入输出的要求。
②完成系统大纲设计:程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能;课题涉及的数据结构和数据库结构;即要储藏什么数据,这些数据是什么样的结构,它们之间有什么关系等。
③完成系统详细设计:包括采用 C 语言定义相关的数据种类;写出各模块的类 C 码算法;画出函数的调用关系图④调试解析、设计领悟、测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果;程序调试中遇到的问题以及解决问题的方法;课程设计过程经验教训、心得领悟。
C语言电子词典1.问题描述 (2)2.功能要求 (2)3.大年夜致义务分工 (2)第二部分《电子生词库软件》的设计与功能实现 (3)1.总体设计: (3)2.数据构造 (4)3.算法设计 (5)4.法度榜样代码设计 (12)5.测试与调试 (14)第三部分课程设计总结 (20)1.小我总结 (20)2.停止语 (29)附录Ⅰ法度榜样清单 (30)附录Ⅱ用户应用说明书 (46)参考文献 (47)第一部分课程设计标题与要求1.问题描述标题名称:电子生词库软件重要用处:解决学生查找单词的问题,进步查找单词的速度。
2.功能要求功能:(1)创建生词库。
用文件创建一个单词库,中英文单词均有,关于英语单词,给出中文说明,关于英文单词给出中文说明。
(2)显示词库。
显示所有单词和单词数、所有中文单词和单词数、所有英文单词和单词数,显示英文单词是按字母小到大年夜的次序分列。
(3)编辑词库。
起首确认暗码后才许可添加新词、删除旧词、修改旧词。
(4)查找生祠。
显示所要查找的单词和其含义。
(5)实现立异功能。
此项功能学生自由发挥,依照本组爱好增长与本标题相干的新功能。
3.大年夜致义务分工彭霜辰:4查找生词、3编辑词库、5创建新功能、0退出体系。
刘轩:1创建生词库、2显示词库。
张鑫:1创建生词库、编辑实训申报。
第二部分《电子生词库软件》的设计与功能实现1.总体设计:主菜单2.数据构造1.构造体变量struct word{char ch[30];char en[30];};定义一个词库的构造体。
struct word pers[N];各个单词信息的输入。
struct word* pword;struct word tempword;struct word word_list[N]2.无参数的函数:int mainmenu();主菜单名称。
int showmenu();显示菜单函数。
int editmenu();显示词库内容,功能是全部显示,显示中文或英文。
c 英汉词典课程设计一、课程目标知识目标:1. 学生能够掌握英汉词典的基本结构和使用方法,包括字母顺序、词条布局等。
2. 学生能够通过查阅词典,理解并学习新单词的含义、用法和例句。
3. 学生能够了解英汉词典中提供的词性、时态、同义词、反义词等语言知识点。
技能目标:1. 学生能够培养快速准确查阅词典的技能,提高学习效率。
2. 学生能够运用词典中的资源进行词汇拓展和语言表达能力的提升。
3. 学生能够通过词典学习,培养独立解决问题的能力。
情感态度价值观目标:1. 学生能够增强对英语学习的兴趣和自信心,认识到工具书在语言学习中的重要性。
2. 学生能够培养良好的学习习惯,主动利用词典资源进行自主学习。
3. 学生能够通过学习英汉词典,拓宽国际视野,了解不同文化背景下的词汇用法。
课程性质:本课程为实用工具课程,旨在帮助学生掌握英汉词典的使用方法,提高英语学习效果。
学生特点:考虑到学生所在年级,具备一定的英语基础,但词典使用技巧和自主学习能力有待提高。
教学要求:教师应注重培养学生的实际操作能力,将理论与实践相结合,使学生在实际运用中掌握词典使用技巧。
同时,关注学生的情感态度,激发学习兴趣,提高学习积极性。
通过本课程的学习,使学生能够达到具体的学习成果,为后续的英语学习奠定基础。
二、教学内容1. 词典基本结构认知:介绍英汉词典的组成部分,如字母索引、词条、例句、词性、时态、同义词、反义词等。
- 教材关联章节:课本中关于词典使用的基础知识部分。
2. 词典查阅技巧:教授快速定位单词、理解词条布局、查找同义词和反义词等方法。
- 教材关联章节:课本中关于查阅词典技巧的内容。
3. 词汇拓展学习:利用词典资源,学习新单词的用法、搭配及其在不同语境中的应用。
- 教材关联章节:课本中词汇学习相关章节。
4. 实践应用:设计实例,让学生运用所学查阅词典,解决实际问题,提高语言表达能力。
- 教材关联章节:课本中实践应用部分。
5. 自主学习策略:培养学生利用词典进行自主学习,养成良好的学习习惯。
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语言程序设计课题名称电子英汉词典设计专业*********班级14 *******学号*************姓名******指导教师******2016年1月10日*******课程设计任务书课程名称C语言程序设计课题电子英汉词典设计专业班级***************学生姓名******学号************指导老师****审批任务书下达日期2015年12月27日任务完成日期2016年1月10日C语言课程设计任务书设计课题五:电子英汉词典设计一、问题描述:英汉词典作为一个常用的学习工具,是我们经常要使用的。
该系统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改和维护等工作。
二、功能描述:1、在计算机中建立有限规模的电子英汉词典(文件),利用程序实现电子英汉词典的查找、增词、删除、修改和维护工作。
2、词典的内容为:每行对应一个词条,每个词条由两个字符串组成,字符串用若干空格符分开;前一个是单词字符串(英文),后一个是释义字符串(中文),使用分号作为多个释义的分隔符(无空格)。
3、对单词和释义字符串长度的限定分别为不少于20个与40个字符,词条数限定为不多于200条。
4、采用菜单工作方式。
在一个操作执行之后,程序询问是否继续执行该操作。
如输入Y或y,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。
仅当选择退出操作时,程序应询问是否将修改后的词典存盘,并根据用户选择存盘退出或不存盘退出。
5、要求整个设计以人为本,用户界面友好。
三、算法提示:1、数据结构:结构体数组2、简单的程序设计3、友好的窗口菜单的设计四、测试数据:要求被选用的词条有200个左右,以中学的单词为主。
五、其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。
目录第一章绪论 (1)1.1 课程背景 (1)1.2 本文所做工作 (1)第二章需求分析 (2)2.1 需求获取 (2)2.2 需求建模 (2)2.3 需求评审 (2)2.4 层次方框图 (3)第三章总体设计 (4)3.1 程序模块 (4)3.2 函数分析 (4)3.3 总体结构 (5)第四章详细设计 (6)4.1 主函数main() (6)4.2 添加单词函数add() (6)4.3 查询单词函数look() (6)4.4 删除函数dele() (7)4.5 修改函数change() (7)4.6 浏览函数all() (7)4.7 保存函数store() (8)4.8 退出函数exit() (8)4.9 初始化函数init() (8)第五章测试 (9)5.1 主菜单 (9)5.2 单词的录入 (9)5.3 单词查询 (9)5.4 显示词条 (9)5.5 修改单词 (10)5.6 删除功能 (10)5.7保存记录 (10)5.8 退出系统 (11)5.9 打开文本 (11)第六章使用说明 (12)第七章总结 (13)附录A 源代码 (15)附录B 参考资料 (21)第一章绪论《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。
网络电子词典课程设计一、课程目标知识目标:1. 学生掌握网络电子词典的基本概念、功能与操作方法。
2. 学生了解网络电子词典在语言学习中的应用及优势。
3. 学生掌握利用网络电子词典进行词汇查找、词义辨析、例句学习等技巧。
技能目标:1. 学生能够熟练使用网络电子词典进行自主词汇学习。
2. 学生能够运用网络电子词典进行跨学科词汇拓展和语言运用。
3. 学生通过网络电子词典提高自己的语言表达能力和词汇记忆能力。
情感态度价值观目标:1. 学生培养对网络电子词典的积极态度,认识到其在学习中的辅助作用。
2. 学生树立正确的语言学习观念,意识到词汇积累对提高语言素养的重要性。
3. 学生在学习过程中,培养合作精神,学会分享和交流学习心得。
课程性质:本课程为信息技术与语言学习的融合课程,旨在提高学生的词汇学习能力和语言运用能力。
学生特点:六年级学生已具备一定的词汇基础和信息技术操作能力,对新鲜事物充满好奇心,善于合作与分享。
教学要求:结合学生特点和课程性质,课程设计应注重实践操作,鼓励学生自主探究和合作交流,以提高学生的词汇学习兴趣和效果。
通过具体的学习成果分解,使学生在课程学习中获得实际收益。
二、教学内容1. 网络电子词典概述- 网络电子词典的定义与分类- 网络电子词典的发展与应用2. 网络电子词典的功能与操作- 基本功能介绍:词汇查找、词义辨析、例句学习等- 操作方法指导:界面导航、搜索技巧、词汇收藏等3. 网络电子词典在语言学习中的应用- 词汇学习:拓展词汇量、提高词汇记忆- 语言运用:句型模仿、口语表达、写作辅助4. 网络电子词典的优势与局限- 优势分析:便捷性、实时更新、个性化学习等- 局限性讨论:准确性、依赖性、版权问题等5. 跨学科词汇拓展- 结合教材内容,运用网络电子词典进行跨学科词汇学习- 各学科常见词汇、短语及专业术语的查找与应用教学大纲安排:第一课时:网络电子词典概述与功能介绍第二课时:网络电子词典操作方法与词汇查找技巧第三课时:网络电子词典在语言学习中的应用与优势分析第四课时:跨学科词汇拓展与网络电子词典的局限性讨论教学内容与进度根据课程目标和学生的学习实际情况进行调整,确保教学内容与课本紧密关联,提高学生的实际操作能力和词汇应用水平。
电子英汉词典一、设计内容与设计要求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语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。
是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
通常,课程设计的课题比平时的习题复杂得多,也更接近实际。
课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。
为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。
学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。
学习委员将课程设计报告与磁盘(缺一不可)收齐后交指导老师。
课程要求一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。
二、基本情况课程类别:必修课课程学分:1学分课程学时:1周课程对象:电气工程0781、0782、0783、0784、0785、0786三、时间安排四、调试过程规范化要求1)需要分析分析系统功能需求以及用户操作流程。
2)概要设计在需求分析的基础上,确定系统总体框架(系统功能结构图)。
3)详细设计定义数据储存结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。
4)代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。
上海电力学院嵌入式系统课程设计报告题目:电子词典的设计姓名:学号:院系:专业年级:同组成员:年月日一、实验内容及要求在LCD屏幕左侧绘制出单词输入框和释义显示框以及一个搜索键,右侧绘制4*4键盘按钮,模拟出简易电子词典的功能,按钮操作用触摸屏或键盘实现均可。
实现功能:(1)LCD屏幕上显示4*4键盘,显示单词及其翻译、例句。
(2)一个键可完成2个英文字母的输入,如左上角第一个键可实现输入a,b两个字母,第一次按下时为输入a,如果需输入b,只需连续快速按键两次即可。
(3)在输入完单词后,点击搜索键,即可在释义显示框中显示该单词的词性、中文解释、示例词组和句子等。
(4)当发现输入的单词在库中不存在时,可实现将该单词添加入库的操作。
二、设计思路(1)通过LCD显示模块画出电子词典操作界面。
(2)对应界面中各键的位置设置键盘对应键值。
(3)设定功能键,实现以下3个功能:①退格键:删除最后一位字母;②搜索∕保存键:对输入框的单词进行判断,若单词存在于词库中,则显示单词词性、词义、例句;若单词不存在则自动进行保存;③转换键:按下后,字母键输出对应的第二个字母。
(4)按键后赋值并显示。
三、软件构架开始LCD模块键盘模块结束四、模块分析(1)键盘模块流程图:源代码:/********************************************************************************************** File : keyboard.c* Author: embest* Desc : keyboard source code* History:*********************************************************************************************//*--- include files ---*/ 开始 键盘初始化 键盘是否按下 Y 读取键值 是否是功能键 Y N 执行功能赋值 显示 结束 N#include "44b.h"#include "44blib.h"#include "def.h"#include "keyboard.h"#include "lcd.h"#include "dict.h"#ifndef KEY_INT#define KEY_INT#endif#ifndef BUT_INT#define BUT_INT#endif/*--- global variables ---*/int input_char,n=0;char word[20];int wordIndex=0;int x = 15;int num=0;int counter=0;/* keyboard control address */volatile UCHAR *keyboard_base = (UCHAR *)0x06000000;/*--- function declare ---*/void init_keyboard();void close_keyboard();void KeyboardInt(void);// __attribute__ ((interrupt ("IRQ")));void Eint4567Isr(void);// __attribute__ ((interrupt ("IRQ")));/*--- function code ---*//****************************************************************************** **************** name: Test_Keyboard* func: test keyboard* para: none* ret: none* modify:* comment:******************************************************************************* *************/void Test_Keyboard(){Uart_Printf("\n Keyboard Test Example\n");Uart_Printf("\n Please press one key on keyboard and look at LED ...\n");// init keyboardinit_keyboard();while(1);// close keyboard// close_keyboard();}/****************************************************************************** **************** name: init_keyboard* func: init keyboard interrupt* para: none* ret: none* modify:* comment:******************************************************************************* *************/extern void isrEINT1(void);extern void isrEint4567(void);void init_keyboard(){/* enable interrupt */rINTMOD = 0x0;rINTCON = 0x1;/* set EINT1 interrupt handler */rINTMSK =~(BIT_GLOBAL|BIT_EINT1|BIT_EINT4567);pISR_EINT1 = (int)isrEINT1;pISR_EINT4567 = (int)isrEint4567;/* PORT G */rPCONG = 0xffff; // EINT7~0rPUPG = 0x0; // pull up enablerEXTINT = rEXTINT|0x20; // EINT1 falling edge moderI_ISPC = BIT_EINT1|BIT_EINT4567; // clear pending bitrEXTINTPND = 0xf; // clear EXTINTPND reg}/****************************************************************************** **************** name: close_keyboard* func: close keyboard interrupt* para: none* ret: none* modify:* comment:******************************************************************************* *************/void close_keyboard(){pISR_EINT1 = NULL;pISR_EINT4567 = NULL;/* Mask interrupt */rINTMSK = rINTMSK | BIT_EINT1 | BIT_EINT4567;}/****************************************************************************** **************** name: KeyboardInt* func: keyboard interrupt handler function* para: none* ret: none* modify:* comment:******************************************************************************* *************/void KeyboardInt(void){int nTemp,i,j,k,m=0;char bbyte;rI_ISPC = BIT_EINT1; // clear pending bitchar pbyte[10];nTemp = key_read();if(nTemp > -1){// Lcd_Draw_HLine(10, 310, 80, WHITE, 50);input_char = nTemp;Lcd_DspAscII8x16(15,45,WHITE,word);switch(input_char){case 0:num=1;break;case 1:num=2;break;case 2:num=3;break;case 3:num=4;break;case 4:num=5;break;case 5:num=6;break;case 6:num=7;break;case 7:num=8;break;case 8:num=9;break;case 9:counter=1;break;case 10:counter=2;break;case 11:counter=3;break;case 12:m=1;Lcd_Draw_HLine(15+n-10, 15+n, 45, WHITE, 16); n-=10;word[wordIndex]='\0';wordIndex--;break;/*if(n==0){word[20]=0;wordIndex=0;Lcd_Draw_HLine(10, 310,85, WHITE, 160);}break;*/case 13:word[wordIndex]='\0';wordIndex=0;for(i=0;i<20;i++){if(strcmp(word,vocab[i].c)==0){j=0;k=i;break;}elsej=1;}if(j==0){//#ifdef Eng_vLcd_DspAscII8x16(15,40,BLUE,vocab[k].c);Lcd_DspAscII8x16(15,60,BLUE,vocab[k].d);Lcd_DspAscII8x16(15,80,BLUE,vocab[k].f);//#elseLcd_DspHz16(15,100,BLUE,vocab[k].e);//#endif}else{Lcd_DspHz16(15,120,BLUE,"未找到相应的单词");DelayMs(600);Lcd_DspHz16(15,120,WHITE,"未找到相应的单词"); }break;case 14:word[wordIndex]='\0';wordIndex=0;for(i=0;i<20;i++){if(strcmp(word,vocab[i].c)==0){j=0;k=i;break;}elsej=1;}if(j==0){//#ifdef Eng_vLcd_DspAscII8x16(15,40,BLUE,vocab[k].c);Lcd_DspAscII8x16(15,60,BLUE,vocab[k].d);Lcd_DspAscII8x16(15,80,BLUE,vocab[k].f);//#elseLcd_DspHz16(15,100,BLUE,vocab[k].e);//#endif}else{if(20>x>0){for(i = 0; i < 20; i++)vocab[x].c[i]=word[i];word[i]='\0';Lcd_DspAscII8x16(15,40,BLUE,vocab[x].c);x++;}elsex=15;//Lcd_DspAscII8x16(15,45,BLUE,word);for(i = 0; i < 20; i++)word[i]='\0';}break;case 15://Lcd_Draw_Box(10,40,310,80,GREEN);break;}if(num!=0&&counter!=0){switch(3*(num-1)+counter-1){case 0:bbyte='a';break;case 1:bbyte='b';break;case 2:bbyte='c';break;case 3:bbyte='d';break;case 4:bbyte='e';break;case 5:bbyte='f';break;case 6:bbyte='g';break;case 7:bbyte='h';break;case 8:bbyte='i';break;case 9:bbyte='j';break;case 10:bbyte='k';break;case 11:bbyte='l';break;case 12:bbyte='m';break;case 13:bbyte='n';break;case 14:bbyte='o';break;case 15:bbyte='p';break;case 16:bbyte='q';break;case 17:bbyte='r';break;case 18:bbyte='s';break;case 19:bbyte='t';break;case 20:bbyte='u';break;case 21:bbyte='v';break;case 22:bbyte='w';break;case 23:bbyte='x';break;case 24:bbyte='y';break;case 25:bbyte='z';break;case 26:bbyte='y';break;}num=0;counter=0;if(m==0){word[wordIndex]=bbyte; wordIndex++;//n+=10;}Lcd_DspAscII8x16(15,210,BLUE,word);// Uart_Printf("Key is:%x \r",input_char);}}/****************************************************************************** **************** name: key_read* func: read key value* para: none* ret: key value, -1 -- error* modify:* comment:******************************************************************************* *************/inline int key_read(){int value;char temp;/* read line 1 */temp = *(keyboard_base+0xfd);/* not 0xF mean key down */if(( temp & KEY_V ALUE_MASK) != KEY_V ALUE_MASK){if( (temp&0x1) == 0 )value = 3;else if( (temp&0x2) == 0 )value = 2;else if( (temp&0x4) == 0 )value = 1;else if( (temp&0x8) == 0 )value = 0;while(( temp & KEY_V ALUE_MASK) != KEY_V ALUE_MASK) // releasetemp = *(keyboard_base+0xfd);return value;}/* read line 2 */temp = *(keyboard_base+0xfb);/* not 0xF mean key down */if(( temp & KEY_V ALUE_MASK) != KEY_V ALUE_MASK){if( (temp&0x1) == 0 )value = 7;else if( (temp&0x2) == 0 )value = 6;else if( (temp&0x4) == 0 )value = 5;else if( (temp&0x8) == 0 )value = 4;while(( temp & KEY_V ALUE_MASK) != KEY_V ALUE_MASK) // release temp = *(keyboard_base+0xfb);return value;}/* read line 3 */temp = *(keyboard_base+0xf7);/* not 0xF mean key down */if(( temp & KEY_V ALUE_MASK) != KEY_V ALUE_MASK){if( (temp&0x1) == 0 )value = 0xb;else if( (temp&0x2) == 0 )value = 0xa;else if( (temp&0x4) == 0 )value = 9;else if( (temp&0x8) == 0 )value = 8;while(( temp & KEY_V ALUE_MASK) != KEY_V ALUE_MASK) // release temp = *(keyboard_base+0xf7);return value;}/* read line 4 */temp = *(keyboard_base+0xef);/* not 0xF mean key down */if(( temp & KEY_V ALUE_MASK) != KEY_V ALUE_MASK){if( (temp&0x1) == 0 )value = 0xf;else if( (temp&0x2) == 0 )value = 0xe;else if( (temp&0x4) == 0 )value = 0xd;else if( (temp&0x8) == 0 )value = 0xc;while(( temp & KEY_V ALUE_MASK) != KEY_V ALUE_MASK) // releasetemp = *(keyboard_base+0xef);return value;}return -1;}/****************************************************************************** **************** name: Eint4567Isr* func:* para: none* ret: none* modify:* comment:******************************************************************************* **************/void Eint4567Isr(void){unsigned char which_int;Uart_Printf("\n SB2 or SB3 had pressed and light LED.");which_int=rEXTINTPND;rEXTINTPND=0xf; //clear EXTINTPND reg.rI_ISPC=BIT_EINT4567; //clear pending_bitif(which_int == 4) // SB2{Led_Display(0x0);Led_Display(0x1);}else if(which_int == 8) // SB3{Led_Display(0x0);Led_Display(0x2);}}(2)LCD模块流程图:开始LCD初始化显示开机画面显示操作界面结束源代码:/****************************************************************************** **************** File:lcd.c* Author: embest* Desc: LCD control and display functions* History:******************************************************************************* **************//*--- include files ---*/#include "lcd.h"//#include "bmp.h"#include "44b.h"/*--- global variables ---*/INT32U aLcdActiveBuffer[LCD_YSIZE][LCD_XSIZE/4];/*--- extern variables ---*/extern const INT8U aucTempBitmap[][76800];/*--- function code ---*//****************************************************************************** **************** name: Lcd_Init()* func: Initialize LCD Controller* para: none* ret: none* modify:* comment:******************************************************************************* **************/void Lcd_Init (void){rDITHMODE=0x12210;rDP1_2 =0xa5a5;rDP4_7 =0xba5da65;rDP3_5 =0xa5a5f;rDP2_3 =0xd6b;rDP5_7 =0xeb7b5ed;rDP3_4 =0x7dbe;rDP4_5 =0x7ebdf;rDP6_7 =0x7fdfbfe;// disable,8B_SNGL_SCAN,WDL Y=16clk,WLH=16clk,rLCDCON1=(0x0)|(2<<5)|(MV AL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_COLOR<< 12);// LINEBLANK=10 (without any calculation)rLCDCON2=(LINEV AL)|(HOZV AL_COLOR<<10)|(10<<21);rLCDCON3=0;// 256-color, LCDBANK, LCDBASEUrLCDSADDR1= (0x3<<27) | ( ((unsigned int)aLcdActiveBuffer>>22)<<21 ) | M5D((unsigned int)aLcdActiveBuffer>>1);rLCDSADDR2= M5D((((unsigned int)aLcdActiveBuffer+(SCR_XSIZE*LCD_YSIZE))>>1)) | (MV AL<<21);rLCDSADDR3= (LCD_XSIZE/2) | ( ((SCR_XSIZE-LCD_XSIZE)/2)<<9 );//The following value has to be changed for better display.rREDLUT =0xfdb96420; // 1111 1101 1011 1001 0110 0100 0010 0000rGREENLUT=0xfdb96420; // 1111 1101 1011 1001 0110 0100 0010 0000rBLUELUT =0xfb40; // 1111 1011 0100 0000rLCDCON1=(0x1)|(2<<5)|(MV AL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_COLOR<< 12);// rPDATE=rPDATE&0x0e;rPDATE=0xfe;Lcd_Clr();}/****************************************************************************** **************** name: Lcd_Clr()* func: clear LCD screen* para: none* ret: none* modify:* comment:******************************************************************************* **************/void Lcd_Clr(void){INT32U i;INT32U *pDisp = (INT32U*)aLcdActiveBuffer;for (i = 0; i < (SCR_XSIZE * SCR_YSIZE / 4); i++){*pDisp++ = ALLWHITE;}}/****************************************************************************** **************** name: LcdClrRect()* func: fill appointed area with appointed color* para: usLeft,usTop,usRight,usBottom -- area's rectangle acme coordinate* ucColor -- appointed color value* ret: none* modify:* comment: also as clear screen function******************************************************************************* **************/void LcdClrRect(INT16 usLeft, INT16 usTop, INT16 usRight, INT16 usBottom, INT8U ucColor) {INT32U i, j;INT8U *pDisp = (INT8U*)aLcdActiveBuffer;for(i=usTop;i<=usBottom;i++){for(j=usLeft;j<=usRight;j++){LCD_PutPixel(j, i, ucColor);}}}#ifdef MON_LCD/****************************************************************************** **************** name: LcdClrRect()* func: fill appointed area with appointed color* para: usLeft,usTop,usRight,usBottom -- area's rectangle acme coordinate* ucColor -- appointed color value* ret: none* modify:* comment: also as clear screen function******************************************************************************* **************/void LcdClrRect(INT16 usLeft, INT16 usTop, INT16 usRight, INT16 usBottom, INT8U ucColor) {INT16 i=0;INT16 k,l;INT16 m;INT32U ulColor = (ucColor << 28) | (ucColor << 24) | (ucColor << 20) | (ucColor << 16) |(ucColor << 12) | (ucColor << 8) | (ucColor << 4) | ucColor;if((usRight-usLeft)<=8){for(i=usTop;i<=usBottom;i++){for(m=usLeft;m<=usRight;m++){LCD_PutPixel(m, i, ucColor);}}return;}if((usLeft%8)==0)k=usLeft;else{k=(usLeft/8)*8+8;}if(( usRight%8)==0)l= usRight;else{l=( usRight/8)*8;}for(i=usTop;i<=usBottom;i++){for(m=usLeft;m<=(k-1);m++){LCD_PutPixel(m, i, ucColor);}for(m=k;m<l;m+=8){(*(INT32U*)(aLcdActiveBuffer + i * SCR_XSIZE / 2 + m / 2)) = ulColor;}for(m=l;m<=usRight;m++){LCD_PutPixel(m, i, ucColor);}}}#endif/****************************************************************************** **************** name: Lcd_Draw_Box()* func: Draw rectangle with appointed color* para: usLeft,usTop,usRight,usBottom -- rectangle's acme coordinate* ucColor -- appointed color value* ret: none* modify:* comment:******************************************************************************* **************/void Lcd_Draw_Box(INT16 usLeft, INT16 usTop, INT16 usRight, INT16 usBottom, INT8UucColor){Lcd_Draw_HLine(usLeft, usRight, usTop, ucColor, 1);Lcd_Draw_HLine(usLeft, usRight, usBottom, ucColor, 1);Lcd_Draw_VLine(usTop, usBottom, usLeft, ucColor, 1);Lcd_Draw_VLine(usTop, usBottom, usRight, ucColor, 1);}/****************************************************************************** **************** name: Lcd_Draw_Line()* func: Draw line with appointed color* para: usX0,usY0 -- line's start point coordinate* usX1,usY1 -- line's end point coordinate* ucColor -- appointed color value* usWidth -- line's width* ret: none* modify:* comment:******************************************************************************* **************/void Lcd_Draw_Line(INT16 usX0, INT16 usY0, INT16 usX1, INT16 usY1, INT8U ucColor, INT16U usWidth){INT16 usDx;INT16 usDy;INT16 y_sign;INT16 x_sign;INT16 decision;INT16 wCurx, wCury, wNextx, wNexty, wpy, wpx;if( usY0 == usY1 ){Lcd_Draw_HLine (usX0, usX1, usY0, ucColor, usWidth);return;}if( usX0 == usX1 ){Lcd_Draw_VLine (usY0, usY1, usX0, ucColor, usWidth);return;}usDx = abs(usX0 - usX1);usDy = abs(usY0 - usY1);if( ((usDx >= usDy && (usX0 > usX1)) ||((usDy > usDx) && (usY0 > usY1))) ){GUISWAP(usX1, usX0);GUISWAP(usY1, usY0);}y_sign = (usY1 - usY0) / usDy;x_sign = (usX1 - usX0) / usDx;if( usDx >= usDy ){for( wCurx = usX0, wCury = usY0, wNextx = usX1,wNexty = usY1, decision = (usDx >> 1);wCurx <= wNextx; wCurx++, wNextx--, decision += usDy ) {if( decision >= usDx ){decision -= usDx;wCury += y_sign;wNexty -= y_sign;}for( wpy = wCury - usWidth / 2;wpy <= wCury + usWidth / 2; wpy++ ){LCD_PutPixel(wCurx, wpy, ucColor);}for( wpy = wNexty - usWidth / 2;wpy <= wNexty + usWidth / 2; wpy++ ){LCD_PutPixel(wNextx, wpy, ucColor);}}}else{for( wCurx = usX0, wCury = usY0, wNextx = usX1,wNexty = usY1, decision = (usDy >> 1);wCury <= wNexty; wCury++, wNexty--, decision += usDx ) {if( decision >= usDy ){decision -= usDy;wCurx += x_sign;wNextx -= x_sign;}for( wpx = wCurx - usWidth / 2;wpx <= wCurx + usWidth / 2; wpx++ ){LCD_PutPixel(wpx, wCury, ucColor);}for( wpx = wNextx - usWidth / 2;wpx <= wNextx + usWidth / 2; wpx++ ){LCD_PutPixel(wpx, wNexty, ucColor);}}}}/****************************************************************************** **************** name: Lcd_Draw_HLine()* func: Draw horizontal line with appointed color* para: usX0,usY0 -- line's start point coordinate* usX1 -- line's end point X-coordinate* ucColor -- appointed color value* usWidth -- line's width* ret: none* modify:* comment:******************************************************************************* **************/void Lcd_Draw_HLine(INT16 usX0, INT16 usX1, INT16 usY0, INT8U ucColor, INT16U usWidth){INT16 usLen;if( usX1 < usX0 ){GUISWAP (usX1, usX0);}while( (usWidth--) > 0 ){usLen = usX1 - usX0 + 1;while( (usLen--) > 0 ){LCD_PutPixel(usX0 + usLen, usY0, ucColor);}usY0++;}}/****************************************************************************** **************** name: Lcd_Draw_VLine()* func: Draw vertical line with appointed color* para: usX0,usY0 -- line's start point coordinate* usY1 -- line's end point Y-coordinate* ucColor -- appointed color value* usWidth -- line's width* ret: none* modify:* comment:******************************************************************************* **************/void Lcd_Draw_VLine (INT16 usY0, INT16 usY1, INT16 usX0, INT8U ucColor, INT16U usWidth){INT16 usLen;if( usY1 < usY0 ){GUISWAP (usY1, usY0);}while( (usWidth--) > 0 ){usLen = usY1 - usY0 + 1;while( (usLen--) > 0 ){LCD_PutPixel(usX0, usY0 + usLen, ucColor);}usX0++;}}/*--- extern variables ---*/extern INT8U g_auc_Ascii8x16[];/****************************************************************************** **************** name: Lcd_DspAscII8x16()* func: display 8x16 ASCII character string* para: usX0,usY0 -- ASCII character string's start point coordinate* ForeColor -- appointed color value* pucChar -- ASCII character string* ret: none* modify:* comment:******************************************************************************* **************/void Lcd_DspAscII8x16(INT16U x0, INT16U y0, INT8U ForeColor, INT8U * s){INT16 i,j,k,x,y,xx;INT8U qm;INT32U ulOffset;INT8 ywbuf[16],temp[2];for( i = 0; i < strlen((const char*)s); i++ ){if( (INT8U)*(s+i) >= 161 ){temp[0] = *(s + i);temp[1] = '\0';return;}else{qm = *(s+i);ulOffset = (INT32U)(qm) * 16; //Here to be changed tomorrowfor( j = 0; j < 16; j ++ ){ywbuf[j] = g_auc_Ascii8x16[ulOffset + j];}for( y = 0; y < 16; y++ ){for( x = 0; x < 8; x++ ){k = x % 8;if( ywbuf[y] & (0x80 >> k) ){xx = x0 + x + i*8;LCD_PutPixel(xx, y + y0, (INT8U)ForeColor);}}}}}}/*--- extern variables ---*/extern INT8U g_auc_Ascii6x8[];#define XWIDTH 6/****************************************************************************** **************** name: Lcd_DspAscII6x8()* func: display 6x8 ASCII character string* para: usX0,usY0 -- ASCII character string's start point coordinate* ForeColor -- appointed color value* pucChar -- ASCII character string* ret: none* modify:* comment:******************************************************************************* **************/void Lcd_DspAscII6x8(INT16U usX0, INT16U usY0,INT8U ForeColor, INT8U* pucChar) {INT32U i,j;INT8U ucTemp;while( *pucChar != 0 ){for( i=0; i < 8; i++ ){ucTemp = g_auc_Ascii6x8[(*pucChar) * 8 + i];for( j = 0; j < 8; j++ ){if( (ucTemp & (0x80 >> j)) != 0 ){LCD_PutPixel(usX0 + i, usY0 + 8 - j, (INT8U)ForeColor);}}}usX0 += XWIDTH;pucChar++;}}#ifndef Eng_v/****************************************************************************** **************** name: Lcd_DspHz16()* func: display chinese character string in 16x16 dot array* para: usX0,usY0 -- ASCII character string's start point coordinate* ForeColor -- appointed color value* pucChar -- ASCII character string* ret: none* modify:* comment:******************************************************************************* **************/extern const INT8U g_auc_HZK16[];void Lcd_DspHz16(INT16U x0, INT16U y0, INT8U ForeColor, INT8U *s){INT16 i,j,k,x,y,xx;INT8U qm,wm;INT32U ulOffset;INT8 hzbuf[32],temp[2];for( i = 0; i < strlen((const char*)s); i++ ){if( ((INT8U)(*(s+i))) < 161 ){temp[0] = *(s+i);temp[1] = '\0';break;}else{qm = *(s+i) - 161;wm = *(s + i + 1) - 161;ulOffset = (INT32U)(qm * 94 + wm) * 32;for( j = 0; j < 32; j ++ ){hzbuf[j] = g_auc_HZK16[ulOffset + j];}for( y = 0; y < 16; y++ ){for( x = 0; x < 16; x++ ){k = x % 8;if( hzbuf[y * 2 + x / 8] & (0x80 >> k) ){xx = x0 + x + i * 8;LCD_PutPixel( xx, y + y0, (INT8U)ForeColor);}}}i++;}}}#endif/****************************************************************************** **************** name: Lcd_Test()* func: LCD test function* para: none* ret: none* modify:* comment:******************************************************************************* **************/void Lcd_Test(void){int i, j;Uart_Printf("\n LCD display Test Example(please look at LCD screen)\n");/* initial LCD controller */Lcd_Init();/* clear screen */Lcd_Clr();/* draw rectangle pattern */#ifdef Eng_v // english versionLcd_DspAscII8x16(10,0,BLUE,"Embest S3CEV40");#elseLcd_DspAscII8x16(100, 50, RED, "2009073 20091989 ");Lcd_DspHz16(155, 70, RED, "马一鸣");Lcd_DspAscII8x16(100, 90, BLACK, "2009073 20091993 ");Lcd_DspHz16(155, 110, BLACK, "邓家坤");Lcd_DspAscII8x16(100, 130, BLUE, "2009073 20092022 ");Lcd_DspHz16(155, 150, BLUE, "蒋赵睿");DelayMs(500);Lcd_DspHz16( 100, 100, BLUE, "欢迎使用电子词典");Lcd_DspAscII8x16(100, 50, WHITE, "2009073 20091989 ");Lcd_DspHz16(155,70, WHITE, "马一鸣");Lcd_DspAscII8x16(100, 90, WHITE, "2009073 20091993 ");Lcd_DspHz16(155, 110, WHITE, "邓家坤");Lcd_DspAscII8x16(100, 130, WHITE, "2009073 20092022 ");Lcd_DspHz16(155, 150, WHITE, "蒋赵睿");DelayMs(500);Lcd_Clr();Lcd_DspHz16(15,15,BLUE,"电子词典");#endif//Lcd_DspAscII8x16(10,24,GREEN-55,"ShenZhen Embest Info&Tech Co.,LTD");Lcd_Draw_Box(5,30,115,180,GREEN);/*显示窗口*/Lcd_Draw_Box(5,190,75,230,GREEN);/*输入窗口*/Lcd_Draw_Box(75,190,115,230,GREEN);/*搜索键*/Lcd_Draw_Box(120,30,165,75,GREEN);/*abc*/Lcd_Draw_Box(170,30,215,75,GREEN);/*def*/Lcd_Draw_Box(220,30,265,75,GREEN);/*ghi*/Lcd_Draw_Box(270,30,315,75,GREEN);/*jkl*/Lcd_Draw_Box(120,80,165,125,GREEN);/*mno*/Lcd_Draw_Box(170,80,215,125,GREEN);/*pqr*/Lcd_Draw_Box(220,80,265,125,GREEN);/*stu*/Lcd_Draw_Box(270,80,315,125,GREEN);/*vwx*/Lcd_Draw_Box(120,130,165,175,GREEN);/*yz*/Lcd_Draw_Box(170,130,215,175,GREEN);/*选择1*/Lcd_Draw_Box(220,130,265,175,GREEN);/*选择2*/Lcd_Draw_Box(270,130,315,175,GREEN);/*选择3*/Lcd_Draw_Box(120,180,165,225,GREEN);/*back*/Lcd_Draw_Box(170,180,215,225,GREEN);/*ent*/Lcd_Draw_Box(220,180,265,225,GREEN);/*save*/Lcd_Draw_Box(270,180,315,225,GREEN);/* output ASCII symbol */Lcd_DspAscII6x8(90,210,BLACK,"scan");Lcd_DspAscII6x8(140,50,BLACK,"abc");Lcd_DspAscII6x8(190,50,BLACK,"def");Lcd_DspAscII6x8(240,50,BLACK,"ghi");Lcd_DspAscII6x8(290,50,BLACK,"jkl");Lcd_DspAscII6x8(140,100,BLACK,"mno");Lcd_DspAscII6x8(190,100,BLACK,"pqr");Lcd_DspAscII6x8(240,100,BLACK,"stu");Lcd_DspAscII6x8(290,100,BLACK,"vwx");Lcd_DspAscII6x8(140,150,BLACK,"yz");Lcd_DspAscII6x8(190,150,BLACK,"ch1");Lcd_DspAscII6x8(240,150,BLACK,"ch2");Lcd_DspAscII6x8(290,150,BLACK,"ch3");Lcd_DspAscII6x8(140,200,BLACK,"back");Lcd_DspAscII6x8(190,200,BLACK,"ent");Lcd_DspAscII6x8(240,200,BLACK,"save");Lcd_DspAscII6x8(290,200,BLACK," ");/*for (j = 0; j < 1000000 * 5; j++);while (1){for (i = 0; i < 5; i++){BitmapView320x240x256((INT8U*)(aucTempBitmap[i]));for (j = 0; j < 1000000 * 5; j++);}}*/}/****************************************************************************** **************** name: Lcd_Test_board()* func: LCD test function for board all test* para: none* ret: none* modify:* comment:******************************************************************************* **************/void Lcd_Test_board(void){int i, j;/* initial LCD controller */Lcd_Init();/* clear screen */Lcd_Clr();/* draw rectangle pattern */#ifdef Eng_v // english versionLcd_DspAscII8x16(10,0,BLUE,"Embest S3CEV40 ");#elseLcd_DspHz16(10,10,BLUE,"英蓓特三星实验平台");#endif。
C课程设计之电子
词典
仲恺农业工程学院
工程实训报告
电子词典
课程名称 C++面向对象课程设计
姓名郑志欣
院(系)信息科学与技术学院
专业班级计算机科学与技术132班
学号 20244215
指导教师史婷婷
仲恺农业工程学院教务处制
目录
1 需求分析................................................................................ 错误!未定义书签。
2 系统总框图和功能模块说明................................................. 错误!未定义书签。
2.1 系统总框图.................................................................. 错误!未定义书签。
2.2 功能模块说明.............................................................. 错误!未定义书签。
3 系统设计................................................................................ 错误!未定义书签。
3.1 主要结构体 .................................................................. 错误!未定义书签。
3.2主要功能函数 .............................................................. 错误!未定义书签。
3.3 关键函数的流程图....................................................... 错误!未定义书签。
4 系统调试................................................................................ 错误!未定义书签。
5 总结........................................................................................ 错误!未定义书签。
6 源程序清单 ............................................................................ 错误!未定义书签。
1 需求分析
在这个电子词典系统里,我主要是作为一个英汉词典进行,该系统具备简单的英汉词典的功能,使之能提供以下功能:
●单词查找
●单词增除
●单词修改、维护等工作
2 系统总框图和功能模块说明
2.1 系统总框图
2.2 功能模块说明
增加单词,完成单词录入;查找单词,完成单词输出;
3 系统设计""""
3.1 电子词典源代码
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<process.h>
void main()
{
static int n=13;
char m;
struct
{
char eng[50];
char ci[50];
char yin[50];
char chi[50];
}
word[1000]={{"cat","n","猫"}, {"clean","adj&d&v","1.干净 2.整洁"}, {"finally","ad","最终,终于"},};
int();
loop:
for(;;)
{
system("cls");
int();
cout<<"\n\t==========欢迎进入英汉词典=========="<<endl; cout<<"\n\t ****选择项目**** \n"<<endl;
cout<<"\n\n\t 1.增加单词\n"<<endl;
cout<<"\t 2.删除单词\n"<<endl;
cout<<"\t 3.查找单词\n"<<endl;
cout<<"\t 4.修改单词\n"<<endl;
cout<<"\t 5.退出系统\n\n"<<endl;
cout<<" 请选择1~5选项\n"<<endl;
cout<<" Please press the key:";
cin>>m;
switch(m)
{
case '1':
{
char j[10],k[15],l[10],p[30];
++n;
cout<<"\n 增加单词"<<endl;
cout<<"\n\n 请输入单词:";
cin>>j;
cout<<"\n 输入词性:";
cin>>k;。