c语言课程设计之电子词典_第1页
c语言课程设计之电子词典_第2页
c语言课程设计之电子词典_第3页
c语言课程设计之电子词典_第4页
c语言课程设计之电子词典_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、沈阳工程学院课程设计(报告)沈 阳 工 程 学 院课 程 设 计设计题目: 电子词典 系 别 信息工程系 班级 学生姓名 学号 指导教师 职称 讲师、讲师 起止日期:2009年6月15日起至2009年6月26日止沈 阳 工 程 学 院课程设计任务书 课程设计题目:电子词典 (第一组) 系 别 信息工程 班级 学生姓名 学号 指导教师 职称 讲 师、讲师 课程设计进行地点: 实训E 任 务 下 达 时 间: 2009年6月15日起止日期:2009年6月15日起至2009年6月26日止教研室主任 2009年6月15日批准一、课程设计的原始资料及依据在计算机中建立有限规模的电子英汉词典,利用程序实现

2、电子英汉词典的查找、增加、删除、修改等功能。查阅有关资料,进一步理解程序设计模块化的思想,并利用此思想编写一个简单的电子词典。通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。二、课程设计主要内容及要求1.认真阅读资料,掌握程序设计模块化的思想。2.要求在设计的过程中,建立清晰的层次结构。3.画出主要的功能结构图和主要模块的流程图。4.实现功能:查找单词。增加单词。万年历修改单词。显示单词。保存单词。返回帮助退出5. 要求操作简单,用户界面友好。6. 运行程序,检查结果是否和理论值一致。7. 环境使用Windows,Turbo C环境。三、对

3、课程设计说明书撰写内容、格式、字数的要求1.课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。一般不应少于3000字。2.在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。应做到文理通顺,内容正确完整,书写工整,装订整齐。3.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。4.课程设计说明书手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为2

4、0mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。5.课程设计说明书装订顺序为:封面、任务书、成绩评定表、目录、正文、体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。5课程设计说明书装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。四、设计完成后应提交成果的种类、数量、质量等方面的要求1完成“任务书”中指定的功能,运行结果正确。2课程设计说明书。五、时间进度安排顺序阶段日期计 划 完 成 内 容备注1第1天(2008.03.24阅读资料2第23天(2008.03.25

5、2008.03.26)系统分析设计3第48天(2008.03.282008.04.04)程序编制、调试及运行4第9天(2008.04.05)成绩评定5第10天(2008.04.06)撰写课程设计说明书六、主要参考资料(文献)1 谭浩强.程序设计基础.北京:清华大学出版社,20042 郭翠英.程序设计案例经典.中国水利电力出版社,20043 谭浩强 著.C语言程序设计(第三版) 清华大学出版社4 张翔C语言函数大全 电子工业出版社 沈 阳 工 程 学 院程序设计基础课程设计成绩评定表系(部): 信息工程系 班级: 计本083 学生姓名: 刘国志 指 导 教 师 评 审 意 见评价内容具 体 要

6、求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.55432指导教师评审成绩(加权分合计乘以8) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.

7、25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以4)分加权分合计评 阅 教 师 签 名: 年 月 日答 辩 小 组 评 审 意 见评价内容具 体 要 求权重评 分加权分学生汇报汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。0.55432答 辩思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。0.55432答辩小组评审成绩(加

8、权分合计乘以8)分加权分合计答辩小组教师签名: 年 月 日课 程 设 计 总 评 成 绩分摘 要大家可能想知道C语言的起源,为何叫C语言。C语言是由贝尔实验室Dennis Ritchie 于1972年开发的。开发他并非为了消遣。而是有特定的目的;设计UNIX操作系统。从一开始,C语言就是为帮助繁忙的程序员完成其工作而开发的。由于C语言功能强大而灵活,因此很快被传播到贝尔实验室之外,世界各地的程序员都使用它来编写各种程序。然而不久后,不同的组织开始使用自己的C语言版本,不同实现之间微妙的差别令程序员头痛。为解决这种问题,美国国家标准化组织(ANSI)于1983年成立了一个委员会,以确定C语言的标

9、准定义ANSI标准C语言。现代的C语言编译器决大多数都遵守该标准。在当前的计算机编程领域中,有大量的高级语言可供选择,但基于以下几个原因,很多计算机专业人员认为C语言是其中最佳的:1.C语言功能强大、灵活。使用C语言能够完成的工作只受限于人的想象力,语言本身不会给您带来任何约束。C语言可用于完成操作系统、字处理器、图形、电子表格等项目,甚至可用于编写其他语言的编译器。2.C语言很流行,是专业程序员的首选。因此市面上有大量的C语言编译器和附件可供选择。3.C语言是可移植的。这意味着为一种计算机系统编写的C语言程序,可以在其他系统中编译并运行,而只须做少量的修改,甚至无须修改。另外,在使用Micr

10、osoft Windows操作系统的机器上编写的程序,可以被移植到运行Linux的机器中,而只须做少量的修改,甚至无须修改。C语言的ANSI标准进一步改善了可移植性。4.C语言中的单词很少,包含的术语很少。您可能认为,语言包含的关键字越多,其功能将越强大,情况并非如此。当您使用C语言进行编程时将发现,它能够完成任何任务。5.C语言是模块化的。可以以函数的方式来编写C语言代码,并在其他应用或程序中再次使用这些函数。通过将一些信息传递给函数,可以创建很有用的、可重用代码。如果您使用的是图形集成开发环境,则编译更简单。在大多数图形环境中,可以通过选择“编译”菜单选项来编译程序清单。编译代码后,便可以

11、选择“运行”菜单中相应选项执行该程序。编译后,便获得了一个目标文件。如果您查看编译目录或文件夹中的文件列表,将看到一个名称同源代码文件相同、但扩展名为.obj的文件。扩展名为.obj的文件是目标文件,供连接程序使用。在Linux或UNIX系统中,编译器创建的目标文件的扩展名为.o,而不是.obj目录摘要. . I第一章 引言 .11.1 题目背景. . 11.2题目目的. . . 11.3解决问题. . . 1第二章 C语言概述.32.1 简介. .32.2 C语言的组成.3 2.2.1 范例. 3 2.2.2简述.32.3 数据类型.42.3.1说明.42.3.2数据类型.42.4

12、输入输出操作及函数42.5结构体52.5.1概述.52.5.2定义和声明结构.5第三章 系统分析与设置.73.1系统功能. 73.2功能设计.73.2.1文件保存.7第四章系统功能实现.94.1保存单词94.2结束界面.11总结. . .13致谢. . .14参考文献. . .15第一章 引言1.1设计背景随着现代科学技术的迅猛发展,计算机技术已经渗透到各各领域,成为各行各业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对书数据库的进一步开发和利用显得尤为迫切。当今社

13、会中,随着外语的全面普及,学习外语在每个国家都是非常流行的,学习外语的语种很多,但最多人学习的还是英语,显然,越来越多的关于学习英语的电子设备也随之诞生。当然,电子词典是必不可少的设备之一。在系统设计过程中,我们尽量采用易懂易读的人机界面,使用户可以在短期内完全掌握英语词义。而我们又始终把系统的正确性放在首位,力求数据的完整和处理的正确性。在此基础上优化程序代码,加速系统运行和减少对系统资源的占用。1.2设计目的这次设计主要是应用了C程序设计中的一些算法,还有一些函数的调用,结构体的应用等,根据他们的基本思想来编写程序。程序主要包括的内容可以对单词进行查找、添加、修改、帮助等操作。之所以设计一

14、个有关电子词典管理的程序,是为了方便人们对信息的使用,经过这样一个过程来巩固和完善自己所学的知识,同时来培养自己的实践动手能力。通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,从而提高分析问题、解决问题和实际动手的能力。通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力为了人们能够更快的纪录其他人的联系方式,使人们不再因为记不住其他人的联系方式而苦恼。1.3解决问题电子词典系统是市场上常用的系统之一,它主要包含以下几个模块:查找,增加,删除,修改,浏览,维护几大模块。从而,实现对电子词典的全面使用。从中又增加了万年历的功能。这次实

15、训,使我们对C语言的掌握更加熟练,也解决了一些问题:1、解决相关函数的使用。2、解决存储文件的使用。3、解决函数间的链接关系,使函数的调用更加方便灵活以及相关函数的使用。4、解决对单个函数如何操作和各种按键的功能设置以及相关函数的使用。5、解决对程序显示窗口的设置及对各种相关函数的使用。第二章 C语言概述 自21世纪初,发达国家人们的生活开始名副其实地步入计算机社会。从清晨自动打开为你煮好热咖啡的咖啡壶,到为你烹制早点的微波炉,从载你上班的汽车,到支取现金的提款机。的确,人们生活的方方面面都开始依赖于计算机。这些机器可以接受、存储、处理和输出信息,而且能够处理各种各样的数据:数字、文本、图形、

16、图象、声音,等等。2.1 简介C-一种高级语言,于1972由AT&T贝尔实验室的Dennis Ritchie 开发。由于C是作为编写UNIX操作系统的语言设计的,所以最初主要用于系统编程。但几年以后,C的功能和灵活性,再加上各类计算机上都有了高质量的C编译程序,使的C成为业界编写各类应用程序的通用语言。2.2 C语言的组成2.2.1范例C的优点之一是编写程序类似于日常说英语。即使你还不知道如何编写自己的程序,也基本能够读懂下面的程序#include “stdio.h”#define KMS_PER_MILE 1.609int main()double miles; kms; print

17、f(“Enter the distance in miles”); scanf(“%f”,&miles); kms=KMS_PER_MILES*MILES; printf(“that equals %f kilometers.n”,kms); return(0);2.2.2 简述1.预处理命令在C程序编译前对程序进行修改的系统程序,是给c的预处理程序发布的命令,目的是在编译之前修改c程序文本一条预处理命令一符号#作为第一个非空字符开始的,如程序中的#include |#define。2.函数程序可以访问的有用的函数和符号的集合。 C语言仅仅明确定义了一小部分操作,许多计算机程序中必要的

18、操作不是直接用c语言定义的,而是将这写有用的函数和符号放在c工具的库函数中。ANSI标准的C要求ANSI C必须提供一定的标准库函数。C 系统可以通过提供附加的库函数扩展可实现的操作的数量;每个程序员也可以创建自己的函数形式的库函数。每个库函数有一个标准的头文件,其名字一.h结尾3 常量宏一个在程序进行编译前将以特定的常量数植代替的名字4.注释以/*开头,以*/结尾的文本内容,用来提供辅助信息,但被预处理命令程序和编译程序忽略5.说明程序的一部分,用来告诉编译程序中用到的存储单元的名称。程序中“int main()”标志着程序执行的切入点主函数的开始。每个c程序都有一个主函数。程序的其余行行构

19、成了函数体,函数体用花括号括起。2.3 数据类型一种数据类型是一种数值的集合和该类数值上操作的集合。C中标准数据类型是预定义的2.3.1 说明1数据类型的对象可以是变量亦可以是常量。2程序中的正数可以加+号,数值常量不可以带逗号3 c中的数值常量没有负植。虽然可以在程序中使用形如-10022的数据,c会把减号视为取反操作而不是常量的一部分。2.3.2 数据类型1.int 整形数据, 表示范围-3276832767,在内存中占两个地址空间2.double 实形 实型数据有整数和小数两部分,是实型数据的抽象表示,由于一个内存单元空间有限从而导致一些数位不能精确表示。3.char 字符型 代表一个单

20、个的字符-一个字母,数字或是一个特殊符号。每个字符型数值用单撇号括起来。虽然程序中char型数值需要单撇号,但int 型数据并不包括他们。因此如果字母z是程序要读入的一个字符型数据项,直接按z键,而不是字符串z。2.4 输入输出操作及函数数据可以以两种形式存储在内存中:为变量复值或用输入函数如scanf从输入设备输入数据到变量中。如果你希望每次执行时能够处理不同的数据,你就要把数据拷贝到变量中。这种从外部世界到内存数据传送称为输入操作随着程序的执行。要完成各种计算机并把结果存储到内存中。程序结果也可以通过输出操作显示给用户看C中所有的输入输出都是由成作输入输出函数的特殊的程序块完成的,最常用的

21、输入输出函数作为c标准输入输出库函数的一部分,我们可以通过预处理命令对其进行访问。Pirntf函数调用格式:printf(格式字符串,输出列表) Printf(格式字符串);实例:printf(“I am %d years old ,and my gpa is %fn”,age pge); Printf(“enter the object mass in gramsn”);Scanf函数调用格式:scanf(格式字符串,输入列表)实例:scanf(“%c%d”,&a,&b);格式字符串中的占位符占位符变量类型使用函数%ccharPrintf/scanf%dintPrintf/s

22、canf%ffloutPrintf/scanf%ddoublePrintf/scanf2.5结构体2.5.1概述结构是为易于操作而被组合在一起的一个或多个变量。不同于数组,结构中的变量的数据类型可以不同。结构可以包含任何数据的变量,包括数组和其他结构。结构中的变量被称为结构的成员。2.5.2定义和声明结构编写图形程序时,需要处理屏幕上的点坐标。屏幕坐标用x和y值表示,前者为水平位置,后者为垂直位置。可以定义一个包含屏幕位置的x和y值的coord 结构,如下所示:Struct coordint x;int y;关键字struct 用于标识结构的开始,后面跟结构的名称。结构的名称也叫结构的标记或类

23、型名结构标记的后面是左花括号。花括号内是结构的成员变量列表,对于其中的每个成员,都必须指定其数据类型和名称。前面的代码定义了一个名为coord的结构类型,他包含两个整形变量:x和y。上述结构coord及其成员的声名并不会创建结构coord或变量x和y的实例,即它没有声名任何结构。声名结构的方式有两种。一种是在结构定义的后面加上一个或多个变量名,如下所示: int x; int y;first,second;上述语句定义了结构类型coord ,并声明了两个这样的结构:first 和second 。first 和second都是coord 类型的实例,另一种方法是将定义和声名分开,如下所示:Str

24、uct coord int x;int y;Struct coord first,second;在这个例子中,coord结构的定义和变量声明分开。单独声明变量时,使用关键字struct ,然后是结构名和变量名。结构可以包含任何数据类型,包括其他结构、指针和数组。结构中的数据项被称为成员。要存取成员可使用结构名和成员名,并用结构成员运算符(.)将他们连接起来。可以使用单个结构,也可以使用结构叔祖。第三章 系统分析与设置3.1系统功能本程序为电子词典,能够完成一般的资料的录入,能够显示录入的资料。利用结构体和链表对数据进行输入,删除和查询等功能。输入的信息通过指针存入所对应的文件中,通过使用定义的

25、各种指针添加,读取和删除信息。程序功能通过下拉菜单实现,其功能描述。如图3-1所示。电子词典查找单词增加单词万年历修改单词浏览单词保存单词返回键帮助菜单退出图3-1 系统模块结构图3.2功能设计在本次的实训中我负责单词保存功能函数,和结结束界面。将用户输入的单词及翻译通过自编函数保存到结构体变量中,使用了库函数进行操作。结束界面用仅用输出函数fprint进行编写。3.2.1 文件保存在保存函数中首先调用库函数fopen来打开文件,它是在头文件stdio.h中定义的,fopen()返回一个FILE指针,指向lnlh.dat文件FILE是stdio.h声明的一个结构。FILE结构的成员被程序用来执

26、行各种文件存取操作,对于每一个要打开的文件,都必须声明一个FILE指针。当调用fopen()时该函数将创建一个FILE结构的实例,并返回一个指向该文件的指针。而接下来对文件执行的所有操作都是通过该指针来完成的。以二进制流的形式进行读写。二进制流能够处理各种类型的数据,对于二进制流中的数据字节,不会以任何特殊的方式进行转换或解释,而只是按原来的样子被读写。 For控制输入,调用 fwrite函数,fwrite()将内存中的一个数据快写入到二进制文件中,用结构体变量dict接受从键盘输入的单词,dict从键盘所接受的最大长度为60,每次向文件输入一次,即每次只能存储一个单词,fp是一个FILE指针

27、 ,是由ofpen()在打开文件时返回的。I=0;I=I+1;关闭fp文件输出界面输出store successI<800从&dicti所指向的1*60个字节输入到fp所指向的文件中以二进制读写方式打开lnlh文件保存函数流程图如图3-2示:图3-2保存流程图第四章 系统功能实现 4.1保存单词在保存函数中首先调用库函数fopen来打开文件,它是在头文件stdio.h中定义的,fopen()返回一个FILE指针,指向lnlh.dat文件FILE是stdio.h声明的一个结构。FILE结构的成员被程序用来执行各种文件存取操作,对于每一个要打开的文件,都必须声明一个FILE指针。当调

28、用fopen()时该函数将创建一个FILE结构的实例,并返回一个指向该文件的指针。而接下来对文件执行的所有操作都是通过该指针来完成的。以二进制流的形式进行读写。二进制流能够处理各种类型的数据,对于二进制流中的数据字节,不会以任何特殊的方式进行转换或解释,而只是按原来的样子被读写。 For控制输入,调用 fwrite函数,fwrite()将内存中的一个数据快写入到二进制文件中,用结构体变量dict接受从键盘输入的单词,dict从键盘所接受的最大长度为60,每次向文件输入一次,即每次只能存储一个单词,fp是一个FILE指针 ,是由ofpen()在打开文件时返回的。保存函数运行结果如图所示4-1所示

29、图4-1a)为保存前单词前图4-1b)提示保存成功图4.1c) 保存完成后程序原代码/*保存单词,参数无*/void store() /*以store的保存函数*/ int i; /*定义变量用以控制单词流向*/ FILE *fp; /*定义结构体指针*/ fp=fopen("lnlh.dat","wb"); /*打开文件*/ for (i=0;i<800;i+) /*进行循环*/ fwrite(char *)&dicti,60,1,fp); /*把从键盘输入的单词向文件输入*/ fclose(fp); /*调用库函数关闭文件*/ prin

30、tf("n -election English to Chinese dictionary design- nn"); printf(" | |n"); printf("| 1.FIND |n"); printf("| |n"); printf("| 2.ADD |n"); printf("| |n") ; printf("! | 3.DATE |n"); printf(“| | |n"); printf("| | 4.MODI |n&

31、quot;); printf("| | |n") ; printf("| 5.VIEW |n") ; printf("| |n"); printf(" | 6.STORE |n"); printf(" | |n") printf(" 7.RETRUN | |n"); printf(" | |n") printf(" 8.HELP | |n"); printf(" | |n"); printf(“ 9.BYE -|-

32、-!-n"); printf(" | | n"); printf(" - -|-|-n"); printf(" | | n"); printf(" | n"); /*向文件输入完单词后显示主界面*/ printf ("n -store successnn"); /*提示保存成功*/”); getch();4.2结束界面结束界面运行结果如图4-2所示图4.2结束界面结束界面函数代码如下:void bye() /*wei ye mian*/ printf("n *=*n"

33、;); printf(" | bye |n"); printf(" =n");printf(" | Thank | nn"); printf(" | | nn"); printf(" | You | nn");printf(" | | nn"); printf(" | for | nn"); printf(" | | nn"); printf(" | Your | nn"); printf(" | | nn

34、"); printf(" | Using! | nn"); printf(" | see you! | nn"); printf(" =n");printf("tttHave a Good Luck,Bye-bye!n"); /*jie shu cheng xu*/ printf("ttt");system("pause");exit(0); 总结两周是一个学习的过程,更是一个收获的过程,通过这两周的历练,我对c语言有了更深的认识,由于c语言牵涉的概念比较多,规则繁

35、多,使用灵活,容易出错,刚刚编程的时候有很多困难,但在这两周的锻炼过程中,慢慢放平了心态,认真对待每一个步骤,每一个问题。通过查书,询问同学,老师的帮助,圆满的完成了这次的实训。编写程序其实是一个灵活的过程,在这次实训当中慢慢体会到了这一点的重要性,最开始以为是个很简单的过程,有一些漫不经心的,渐渐的发现应该要认真才对。放着很清松的心态。但到调试的过程系统检测到了很多的错误。让我很吃惊。才对自己说要认真起来。逐步的分析完成每一个步骤。耐心的对待每一个问题。从各个方面全面的考虑问题。最后在老师和同学的帮助下完成了这次的实训。通过这两周对c语言有了更多的掌握,以前对他只是粗略的掌握,通过在编程中一次一次亲自解决问题,才认识到c语言有深的奥秘。每一部分都是知识的应用,解决每一个问题都要有知识的积累。经常的翻书让我意识到对c语言知识的匮乏,但通过这样也可以对知识有更牢固的学习。现代科学技术的飞速发

温馨提示

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

评论

0/150

提交评论