C语言程序设计课程设计-电子英汉词典设计2.doc_第1页
C语言程序设计课程设计-电子英汉词典设计2.doc_第2页
C语言程序设计课程设计-电子英汉词典设计2.doc_第3页
C语言程序设计课程设计-电子英汉词典设计2.doc_第4页
C语言程序设计课程设计-电子英汉词典设计2.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南工程学院 应用技术学院 课 程 设 计 报 告 课程名称 C 语言课程设计 课题名称 电子英汉词典设计 专 业 电气工程及其自动化 班 级 0783 班 学 号 200713010320 姓 名 邓 娜 指导老师 王 颖 老师 20082008 年年 3 3 月月 1818 日日 湖南工程学院 课 程 设 计 任 务 书 课程名称 C 语言程序设计语言程序设计 课 题 电子英汉词典设计 专业班级 电气工程电气工程 0783 学生姓名 邓邓 娜娜 学 号 200713010320 指导老师 王王 颖颖 老师 审 批 任务书下达日期:2008 年 3 月 18 日 任务完成日期: 2008 年 3 月 22 日 C 语言课程设计任务书 前前 言言 C 语言程序设计课程设计是对学生的一种全面综合训练,它包括问题 分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作, 以至一整套软件工作规范的训练和科学作风的培养。是与课堂听讲、自学和练 习相辅相成的必不可少的一个教学环节。通常,课程设计的课题比平时的习题 复杂得多,也更接近实际。课程设计着眼于与应用的结合点,使学生学会如何 把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一 方面,能使书上的知识变“活” ,使学生更好地深化理解和灵活掌握教学内容。 为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程 序设计方法和分析问题的能力,而不强调面面俱到。学生可任选其中一题进行 设计,设计完毕写出课程设计报告,用 A4 纸打印成册;并将课程设计报告与源 程序存盘。学习委员将课程设计报告与磁盘收齐后交指导老师。 一、目的一、目的 全面熟悉、掌握 C 语言基本知识,掌握 C 程序设计中的顺序、分支、循环 三种结构及数组、函数和 C 语言基本图形编程等方法,把编程和实际结合起来, 增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉 编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手 能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范 编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设 计等学习环节打下较扎实的基础。 二、基本情况二、基本情况 课程类别:必修课 课程学分:1 学分 课程学时;1 周 课程对象:电气工程 0781、0782、0783、0784、0785、0786 三、时间安排三、时间安排 时间 任务 2008-3-8 下午 3:40- 5:40 知道老师给学生布置课程设计的任务及要求 2007-3-10 到 2007-3-15学生根据设计任务及要求,对系统进行需求分析、 概要设计和详细设计,并在此基础上编写程序代码 学生提交系统程序清单初稿 上机调试程序。 修改并完善程序并上机调试程序。 2008-3-16 接受指导老师的验收。 2008-3-16 到 2008-3-22书写课程设计报告。 提交课程设计报告。 四、设计和调试过程规范化要求四、设计和调试过程规范化要求 1)需求分析 分析系统功能需求以及用户操作流程。 2)概要设计 在需求分析的基础上,确定系统总体框架(系统功能结构图) 。 3)详细设计 定义数据存储结构,并设计实现系统功能的具体算法,画出各算法的工作流 程图。 4)代码设计 根据所设计的算法,定义相应函数分别实现系统的各子功能块,同时由主程 序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完 成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功 能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功能 部分均要求给出清晰的程序注释。 5)程序调试 程序编译、链界成功后,自己设计实现程序功能的一组或多组测试数据,并 严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行 或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现 中存在的问题,并加以分析和改正。如果程序能够基本正确地运行,可考虑 增加若干基本的容错功能(如避免用户操作错误时程序出现死循环等) ;另 外尽量对现有算法给出改进方案,并比较不同算法之间的优缺点。 五、设计报告及书写内容要求五、设计报告及书写内容要求 课程设计任务完成后,每位同学必须独立书写一份课程设计报告,注意: 不得抄袭他人的报告(或给他人抄袭) ,一旦发现,成绩为零分。课程设计报告 的内容应包括一下五个部分: 1)需求分析:包括设计题目、设计要求以及系统功能需求分析; 2)概要设计:包括系统总体设计框架和系统功能模块图; 3)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图; 4)主要源程序代码:包括储存结构设计说明,以及完整源程序清单; 5)调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中 存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等) ; 6)总结:包括课程设计过程中的学习体会与收获、对 C 语言和本课程设计的认 识以及自己的建议等内容; 7)书写格式严格按所附要求书写。 附: 课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4 大小的 图纸及程序清单) 。 正文的格式:一级标题用 3 号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行 距为 22。 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块 图) ;三、主要功能的实现(至少要有一个主要模块的流程图) ;四、程序调试; 五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释) 。 正文总字数要求在 5000 字以上(不含程序原代码) 。 六、考核方式六、考核方式 指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能 力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不 及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分: 1) 平时出勤 (占 10%) 2) 系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占 10%) 3) 程序能否完整、准确地运行、个人能否独立、熟练地调试程序(占 40%) 4) 设计报告 (占 30%) 5) 独立完成情况 (占 10%) 。 七、指导老师七、指导老师:王颖 目 录 前前 言言. 一、目的. 二、基本情况. 三、时间安排. 四、设计和调试过程规范化要求. 五、设计报告及书写内容要求. 六、考核方式. 设计课程五:电子英汉词典设计设计课程五:电子英汉词典设计. 一 问题的描述:. 二 功能描述. 三 算法提示. 四测试数据. 五其他. 课程设计报告书课程设计报告书. 一、需求分析. (一)、课程的题目. (二)、设计要求:. (三)、需求分析. 二、概要设计. 三详细设计三详细设计. (一)、课题的主要功能. 、各函数的主要功能. (二)、课题功能的模块的划分. (三)、 主要功能的实现. 函数明细. 1、 主函数 main(). 2、 查找函数(). 3、增加函数 add(). 4、删除函数 del(). 5、修改函数 modify() . 6、保存函数 store(). 7、浏览函数 view(). 8、结束. 四、调试程序四、调试程序. 五、总结五、总结. 六、评分六、评分. 七七 、附件、附件. 源程序清单源程序清单. 八、参考资料八、参考资料. 设计课程五:电子英汉词典设计设计课程五:电子英汉词典设计 一一 问题的描述:问题的描述: 词典作为一个常用英汉的学习工作,是我们经常要使用 的,该系统能完成一个简单的电子英汉词典的功能,如: 单词的查找,增词,删除,修改和维护等工作。 二二 功能描述功能描述 1 本词典采用一个包含 N 个数据的结构体数组,每个数 据的结构应当包括,英文单词,词性,拼读音标,中文( 汉语拼音) 。 2对单词和释义字符串长度的限定分别为不少于 50 个 词条。 3本系统显示这样的菜单: 电子英汉词典 (1)输入新单词 (2)删除词汇 (3)查找词汇 (4)修改词汇信息 (5)退出系统 请选择系统功能项(15) 三三 算法提示算法提示 1 数据结构:结构体数组 2 数据库结构:该系统的基本数据库如下表: 英文词性音标中文 charcharcharchar 四测试数据四测试数据 要求被选用的词条有 50 个左右,以中学的单词为主 五其他五其他 对该系统有兴趣的同学可以在实现上述基本功能后,完善其他系统功能。 课程设计报告书课程设计报告书 一、需求分析一、需求分析 ( (一一) )、课程的题目、课程的题目 电子英汉词典设计电子英汉词典设计 ( (二二) )、设计要求:、设计要求: 1 实现电子英汉词典的查找、增词、删除工作。 2 每行对应一个词条,每个词条有两个字符串组成,字符串用若干空格 分开;前一个是单词字符串(英文) ,后一个是释义字符串(中文) , 使用分号作为多个释义的分隔符(无空格) 。 3 对单词和释义字符串长度的限定分别为不少于 20 个与 4 个字词条数 限定为不多于 200 条。 4 采用菜单工作方式。在一个操作执行之后,程序询问是否继续执行该 操作。如输入 Y 和 y,则重复同一操作,不退回到菜单;如输入其他 信息,则回到菜单等待另一次选择。仅当选择退出操作时,程序应询 问是否将修改后词典存盘,并根据用户选择存盘退出或不存盘退出。 5 要求整个设计一人为本,用户界面友好。 ( (三三) )、需求分析、需求分析 1、程序的功能。 2、输入输出的要求。 二、概要设计二、概要设计 1、程序由哪些模块组成以及一个模块之间的层次结构、模块的调用关系;每个模块的 功能。 2、课题的总体数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构, 它们之间有什么关系等。 三详细设计三详细设计 ( (一一) )、课题的主要功能、课题的主要功能 电子英汉词典设计系统能完成一个简单的电子英汉词典的功能,这个 系统有七个功能,如:查找、增加、删除、修改、浏览、维护、结束 。把这七 功能编该成七个子函数。在主函数当数中设计个菜单对这七个子数进行。来实 现对整个系统的操作。 的要求,本词典采用一个包含 N 个数据结构数,每个数据的结构当包括, 英文单词(char) 、词性(char)、拼读音标(char)、中文(汉语拼音) 。再加 上系统功能上的要求每个功能都要能找到对应的单词,所以自然的想到要用 结构体来定义每一个功能的子函数,然后用链表把它们组成一个有序的整体。 用对链表的操作来实现对所存单词容量的查找,最后为了以后按照处理后的 顺序保存到文件中。 、各函数的主要功能、各函数的主要功能 1)程序的模块组成: 主 函 数: int main() 新建函数: init() 输入函数 : scanf() 显示函数: void print() 删除函数: memset() 按单词查找函数 find() 增加函 add() 删除函数 修改函数 modify() 浏览函数 view() 维护函数 store() 结束函数 return() 2) 各个函数的主要功能: 输入函数: 随时输入数据。 菜单函数:显示系统主菜单。 查找函数:能够随时查找某个单词 增加函数:能够随时增加想要增加的单词 删除函数:能够删除某单词信息 修改函数:能随时修改单词信息 浏览函数:能够浏览所有单词 ( (二二) )、课题功能的模块的划分、课题功能的模块的划分 开始开始 输出结果输出结果 ( (三三) )、 主要功能的实现主要功能的实现 函数明细函数明细 整个系统除了主函数外,另外还有 12 个函数,实现七个功能:查找功 能、增加功能、删除功能、修改功能、浏览功能、维护功能、结束功能。各个 函数的详细设计说明如下: 1 1、 主函数主函数 main()main() 利用循环语句 for(;)和 if()条件语句实现各函数的调用,系统根据 输入的数字选项来调用相应的函数。 2 2、 查找函数()查找函数() 首先利用清屏函数对屏幕清屏,利用输入函数输入要查找的单词,如果 找到则显示出所找的单词,再利用 getch()函数,按任意键返回主菜单,如果 没有找到则显示出 not found,按任意键返回。 Find 函数函数 Add 函数函数 Del 函数函数 Modify 函数函数 View 函数函数 Store 函数函数 Return 函数函数 菜单界面菜单界面 开始开始 输入输入 !(!(*dictI.ci= =0) 开始开始 i=0 i=0i=0 3 3、增加函数、增加函数 add()add() 首先清除屏幕,找到一个空位利用输入函数输入要增加的单词,再判 断该单词是否存在,如果存在,则退出,不存在则输入该单词的意思进行存储, 按任意键返回主菜单。 、 输出结果输出结果 输出结果输出结果 DictI.ci=DictI.ci= =o=o i200 输出结果输出结果 i200 j=0 Dictj,ci= =0 输入意思输入意思 保存保存 4 4、删除函数、删除函数 del()del() 首先输入要删除的单词,如果找到则利用删除函数对它进行删除,按任 意键返回主菜单,如果没有找到,则显示没有这个单词。 开始开始 输入输入 j200 存在存在输出结果输出结果输出结果输出结果FULL i=0 + inext)和链表尾的判断 (p= =NULL) 。没有指针的移动,就很容易出现死循环。而在运行过程中不能控 制。所以你就会认为是死机。如果没有链表尾的判断。就会在运行过程出现想 不到的错误。如:在显示链表信息时,后面就会出现乱码。 一个系统的菜单和提示信息非常重要。如果没有这些用户根本不知道怎么用你 设计的这个系统。在设计的调试过程中也无法顺利的完成调试工作。有了一个 清晰简单的菜单和一些提示信息这后,调试过程完成的非常顺利。 五、五、总结总结 在这次 C 语言程序设计课程中,我做的是“电子英汉词典设计” 。通 过近一周的上机操作,充分应用了上期所学的 C 语言的知识,并查找参考了很 多关于 C 语言的资料,如:由谭浩强编著,清华大学出版的C 语言程序设计 , C 语言程序设计题解与上机指导 , C 语言课程设计 , C 语言案列精编等, 粗略设计出并成功的运行起该系统。 在刚开始动手做这个课程的时候,真的不知道怎么动手,我们这些新手来 说,这是很大的考验,我曾多次的问自己,怎么才能找到课堂所学与实际应用 的最佳结合点?怎么才能让自己的程序在篇幅上简单,在使用价值上丰富?怎 样让自己的计划更具有序性,而不会百忙无一用?机会是老师,学校,以及无 数代教育工作者给的,而能力是自己的,需要经过自己的琢磨,才做到了心中 有数,才了解了 C 语言课程设计的真正用意培养自学能力,养成程序编辑 的好习惯。 我们知道,C 语言是在国内外广泛使用的一种计算机语言,C 语言功能丰富,表 达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既有高 级语言的优点,又有低级语言的许多特点,因此特别适合于编写程序,由此可 见学好 C 语言的重要性。 这次的课程设计,让进一步了解了 C 语言,加深了对 C 语言的认识,充 分的将课本知识进行梳理、整合、融会贯通之后应用到了实际的工作需要中。 以实现学以致用,学有所用。同时也增加了我对 C 语言的兴趣,激起了学习的 热情。 我首先觉得,用到的程序段不必太高级,择什么等级的语言就是关键,最后我 决定运用结构体类型数组,电子英汉词典程序设计有几个要求:要能查找单词 信息,要能增加单词信息,要能删除单词信息,修改单词信息,浏览单词信息, 维护单词信息,我的理解是必须建立一个文件,它既能够保存新的录入文挡, 又能在提示语言的要求下读出文档。 当然,由于学艺不精,在课程设计的过程也碰到的一些问题。其中,不乏 一些简单的基础性的错误,如经常输入错误的字母,使程序无法运行,但通过 这次专业性的练习,相信在以后会有所减少。而关键性问题经常出现在一些函 数的使用上,由于对一些函数调用的正确使用不够熟悉,往往也会造成程序无 法运行,出现错误。如:清屏函数 clrscr(),按任意键可以插入 getch(),主 函数 void main()的用法,C 语言的一些标准库函数的应用。然而这一切,通过 老师的指导与帮助,自己的查阅资料,也都一一解决了。 回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整 个编程,从理论到实践,在整整一周的日子里,可以学到很多很多的东 西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有 学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的, 只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理 论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思 考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做 的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之 处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构 体通过这次课程设计之后,一定把以前所学过的知识重新温故 本次课程设计结束了,对于我的影响很大。我通过这次实践学到了许多知 识。学到了设计一个简单的系统。要注意哪些方面。也使我知道自己哪些方面 做得还不够。 但我出总结出了一点点的经验如下: 1、要对系统的功能和要求做出详细的分析,并合理分解任务。 2、把分解出来的子任务,做给一个相对独立的模块。 3、在设计一个模块之前,要简单构想一下总界面的显视情况。 4、针对构想出来的界面进行程序的编写。 最后,感谢老师对我的指导。 六、评分六、评分 应用技术学院课程设计评分表应用技术学院课程设计评分表 课程名称: 电子英汉词典设计 项项 目目评评 价价 设计方案的合理性与创造性 设计与调试结果 设计说明书的质量 答辩陈述与回答问题情况 课程设计周表现情况 综合成绩 日 期: (注:1此页附在课程设计报告之后;2综合成绩按优、良、中、及格和不及格五级评 定。 ) 七七 、附件附件 源程序清单源程序清单 #include /*标准输入、输出头文件*/ #include /*屏幕操作函数*/ typedef struct /*说明结构体类型*/ char ci20; /*可存储单位长度为 20*/ char yi40; Dict; /*定义数据结构*/ Dict dict200; /*一共存储 200 个单词*/ void init() /*程序初试化*/ int i; FILE *fp; /*fp 被定义为文件类型的指针变量*/ for (i=0;i200;i+) memset(dicti.ci,0,20); /*把全部单词清 0*/ memset(dicti.yi,0,40); fp=fopen(lnlh.dat,rb); /*从 lnlh.dat 文件里读出数据*/ for (i=0;i200;i+) fread(char *) fclose(fp); /*关闭 fp 文件*/ void find() /*查找一个单词*/ int i; char temp20; clrscr(); printf(please input a word:); /*请求输入*/ scanf(%s,temp); for (i=0;i200;i+) if(strcmp(temp,dicti.ci)=0) /*如果找到*/ printf (nn%s : %s,dicti.ci,dicti.yi); /*则显示*/ printf (nnpress any key to return); getch(); return; printf (nnnot found); /*如果没找到,显示 not found*/ getch(); /*从键盘读入数据*/ return; void add() /*追加一个数据*/ int i,j; char temp20; char temp140; clrscr(); for (i=0;i200;i+) if(!(*dicti.ci) /*先找到一个空位*/ printf(nnplease input the word:); scanf(%s,temp); for (j=0;j200;j+) /*找到空位后,输入单词,判断单词是否存在*/ if(strcmp(temp,dictj.ci)=0) printf (nnthe word is already storenn); /*如果存在,则提示存在,并退出*/ printf (please any key to return); getch(); return; printf(nnplease input the mean:); /*输入意思*/ scanf(%s,temp1); strcpy(dicti.ci,temp);/*把 temp 指向的字符逐个的赋给 dict 指向的存储空间*/ strcpy(dicti.yi,temp1); return; printf(nnsorry,the data is full); /*如果没有空位,显示 full*/ void del() /*删除*/ int i; char temp20; clrscr(); printf(nnplease input the word:); /*先输入*/ scanf(%s,temp); for (i=0;i200;i+) if(strcmp(temp,dicti.ci)=0) /*如果找到*/ memset(dicti.ci,0,20); /*对其进行清空操作*/ memset(dicti.yi,0,40); printf (nnsuccess,press any key to return); getch(); return; printf (nnnot found); /*如果没找到,显示 not found*/ getch(); return; void modify() /*修改*/ int i; char temp20; char temp140; clrscr(); printf(nnplease input the word:); /*输入*/ scanf(%s,temp); for (i=0;i200;i+) if(strcmp(temp,dicti.ci)=0) /*如果找到单词*/ printf (nnfoundnn); printf(%s : %snn,dicti.ci,dicti.yi); printf (nnplease input the new mean:); scanf(%s,temp1); /*输入意思,并替换*/ strcpy(dicti.yi,temp1); printf (nnsuccess,please

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论