C语言课程设计电子词典

C语言课程设计电子词典
C语言课程设计电子词典

沈阳工程学院

课程设计

设计题目:电子词典

系别信息工程系班级计本083

学生姓名学号24

指导教师姜柳、吕海华职称讲师、讲师

起止日期:2009年6月15日起——至2009年6月26日止

沈阳工程学院

课程设计任务书

课程设计题目:电子词典(第1组)

系别信息工程系班级计本083

学生姓名张余学号2008412304

指导教师姜柳、吕海华职称讲师、讲师

课程设计进行地点:实训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.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。

4.课程设计说明书手写或打印均可。手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。

5.课程设计说明书装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。

四、设计完成后应提交成果的种类、数量、质量等方面的要求

1.完成“任务书”中指定的功能,运行结果正确。

2.课程设计说明书。

五、时间进度安排

顺序阶段日期计划完成内容备注12008.03.24读资料及系统分析设计

22008.03.25~26程序编制

32008.03.27~04.04程序编制、调试及运行

42008.04.05成绩评定

52008.04.06书写课程设计说明书

六、主要参考资料(文献)

[1]谭浩强编著《C程序设计》(第二版)。北京:清华大学出版社,2005

[2]吴文虎编著《程序设计基础》(第3版)。北京:清华大学出版社,2005

[3]谭浩强编著《C程序设计》(第三版)。北京:清华大学出版社,2006

[4]C编写组常用C语言用法速查手册。北京:龙门书局,1995

[5]Herbert Schildt著王曦若、李沛译ANSI C标准详解。北京:电子工业出版社,1994

[6]郑莉董渊张瑞丰编著《C++语言程序设计》(第3版)。北京:清华大学出版社,2006

[7]Andrew Koenig编著C语言陷阱与缺陷。Andrew Koenig人民邮电出版社2003

[8](美)林登(Peter Van Der Linden)编著C语言专家编程人民邮电出版社2002

沈阳工程学院

程序设计基础课程设计成绩评定表

系(部):信息工程系班级:计本083学生姓名:张余

指导教师评审意见

评价内容具体要求权重评分加权分

调研论证能独立查阅文献,收集资料;能制定课程设计方

案和日程安排。

0.15432

工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,

能够独立完成设计工作,

0.25432

工作量按期圆满完成规定的设计任务,工作量饱满,

难度适宜。

0.25432

说明书的质量

说明书立论正确,论述充分,结论严谨合理,

文字通顺,技术用语准确,符号统一,编号齐

全,图表完备,书写工整规范。

0.55432指导教师评审成绩

(加权分合计乘以8)

分加权分合计

指导教师签名:年月日

评阅教师评审意见

评价内容具体要求权重评分加权分

查阅文献查阅文献有一定广泛性;有综合归纳资料的能

0.25432

工作量工作量饱满,难度适中。0.55432

说明书的质量

说明书立论正确,论述充分,结论严谨合理,

文字通顺,技术用语准确,符号统一,编号齐

全,图表完备,书写工整规范。

0.35432评阅教师评审成绩

(加权分合计乘以4)

分加权分合计

评阅教师签名:年月日

答辩小组评审意见

评价内容具体要求权重评分加权分

学生汇报汇报准备充分,思路清晰;语言表达准确,概

念清楚,论点正确,有层次,有重点,基本上

反映了所完成任务的全部内容;时间符合要求。

0.55432

答辩

思路清晰;回答问题有理论依据,基本概念清

楚;主要问题回答准确,深入,有说服力。

0.55432答辩小组评审成绩

(加权分合计乘以8)

分加权分合计

答辩小组教师签名:年月日课程设计总评成绩分

摘要

计算机科学与技术是一门实用性很强、发展极其迅速的面向广大社会的技术学科,它建立在数学、电子学(特别是微电子学)、磁学、光学、精密机械等多门学科的基础之上。但是,它并不是简单地应用某些学科的知识,而是经过高度综合形成一整套有关信息表示、变换、存储、处理、控制和利用的理论、方法和技术。作为新世纪的大学生,应当站在时代发展的前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求。新世纪需要具有丰富的现代科学知识,能够独立解决面临的任务,充满活力,有创新意识的新型人才。

C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。C 语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。现在大多数的高校都把C语言作为第一门计算机语言进行教学,这是可行的,学生是能够学习好的。

在学习中,先要学习程序设计课程的目的掌握设计程序的思路,学习会用计算机语言编写程序,以实现所需要处理的任务。要正确处理算法与语法的关系,算法是程序的核心、是灵魂,语法是外壳、是工具。不应把学习重点放在语法规则上,语法是重要的,不掌握语法规则就无法编写出正确的程序。一定要把重点放在解题的思路上,通过思考,和大量的阅读,来构造一个完整的程序。请记住:重要的是学会编程,而不是背语法。

其次,主要是学习程序设计的方法,进行程序设计的基本训练,大多数的学生应该把精力放在最基本,最常用的内容上,学好基本功。

大学生是社会的一个特殊群体,是指接受过大学教育的人,作为社会新技术、新思想的前沿群体、国家培养的高级专门人才,大学生代表年轻有活力一族。我们当今大学生更应学好每一个学科,来迎接每依次挑战,面对明天,承担明天。

关键词电子词典,算法,结构体

目录

摘要...........................................................................................................I 第一章引言 (1)

1.1题目背景 (1)

1.2题目目的 (1)

1.3解决问题 (1)

第二章使用工具 (2)

第三章系统分析与设置 (5)

3.1系统功能 (5)

3.2功能设计 (5)

3.3总流程图 (6)

3.4万年历函数 (19)

第四章系统功能实现 (23)

4.1万年历函数 (23)

总结 (27)

致谢 (28)

参考文献 (29)

第一章引言

1.1设计背景

随着现代科学技术的迅猛发展,计算机技术已经渗透到各各领域,成为各行各业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,这使得对书数据库的进一步开发和利用显得尤为迫切。

当今社会中,随着外语的全面普及,学习外语在每个国家都是非常流行的,学习外语的语种很多,但最多人学习的还是英语,显然,越来越多的关于学习英语的电子设备也随之诞生。当然,电子词典是必不可少的设备之一。

1.2设计目的

这次设计主要是应用了C程序设计中的一些算法,还有一些函数的调用,结构体的应用等,根据他们的基本思想来编写程序。程序主要包括的内容可以对单词进行查找、添加、修改、帮助等操作。之所以设计一个有关电子词典管理的程序,是为了方便人们对信息的使用,经过这样一个过程来巩固和完善自己所学的知识,同时来培养自己的实践动手能力。通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,从而提高分析问题、解决问题和实际动手的能力。

通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力为了人们能够更快的纪录其他人的联系方式,使人们不再因为记不住其他人的联系方式而苦恼。

1.3解决问题

电子词典系统是市场上常用的系统之一,它主要包含以下几个模块:查找,增加,删除,修改,浏览,维护几大模块。从而,实现对电子词典的全面使用。从中又增加了万年历的功能。

这次实训,使我们对C语言的掌握更加熟练,也解决了一些问题:

1、解决相关函数的使用。

2、解决存储文件的使用。

3、解决函数间的链接关系,使函数的调用更加方便灵活以及相关函数的使用。

4、解决对单个函数如何操作和各种按键的功能设置以及相关函数的使用。

5、解决对程序显示窗口的设置及对各种相关函数的使用。

6、提高分析问题、解决问题和实际动手的能力。

第二章使用工具

C语言是在国内广泛使用的一种计算机语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写编写软件。C语言诞生后,许多原来用汇编语言编写的软件,现在可以用C语言编写了,而学习和使用C 语言要比学习和使用汇编语言容易得多。

近年来,C语言不仅为计算机专业工作者所使用,而且为广大计算机应用人员所喜爱和使用。许多高校不仅在计算机专业开设了C语言课程,而且在非计算机专业也开设了C语言课程。全国计算机等级考试、全国计算机应用技术认证书考试和全国各地区组织的大学生计算机统一考试都将C语言列入了考试范围。许多人用它编写应用软件。学习C语言已经成为广大计算机应用人员和广大青年学生的迫切要求。

由于C语言牵涉的要领比较复杂,规则繁多,使用灵活,容易出错,不少初学者感到困难,迫切希望学会、学懂、学精。而在学校中,学习程序设计课程的目的是为了掌握设计程序的思路,学会用计算机语言编写程序,以实现所需处理的任务。要正确处理算法与语法的关系,算法是程序的核心、是灵魂,语法是外壳、是工具。不应把学习重点放在语法规则上,语法是重要的,不掌握语法规则就无法编写出正确的程序,但是只学会语法,甚至能把语法背得滚瓜烂熟,也不可能编写出好的程序。一定要把重点放在解题的思路上,通过大量的题学习怎样设计一个算法,构造一个程序。在学习开始时更我要在语法细节上死抠。重要的是学会编写程序,而不是背语法。学会看懂程序是关键。

程序设计是一门实践怀很强的课程,既要掌握概念,又要动手编程,还要上机调试,要衡量这门课学习的好坏,不是看我们“知我知道”,而是看我们“会不会干”。要从学习的过程中积累经验,学会举一反三。目前C语言集成开发环境有:Turbo C2.0(Dos平台上的C编译器)、gcc(GUN C Compile,UNIX以及Linux平台上的C/C++编译器)、Developer Studio(Windows平台上的C/C++编译器)。下面主要介绍TurboC2.0。Borland公司在1981年推出C语言程序设计集成开发环境“TurboC2.0”年推出C,由于其实用稳定的性能,一直长期工作应用在社会不同领域,得到社会各界的好评。

Borland公司在1981年推出C语言程序设计集成开发环境“TurboC2.0”有如下特点:

集编辑、编译、链接、调试、运行为一体;提供了一个菜单式界面,其初始界面。如图2-1所示。不支持鼠标,光标的移动键以及一些编辑命令进行。

图2-1主界面

这时,用上下移动光标将光标移向“New”处,按回车键,系统就进入编辑状态,光标停在编辑窗口的左上角。这时就可以开始编辑一个新的源程序文件了。如图2-2所示。

图2-2源程序编辑窗口

这时,可以按F10(或Alt+F)键,使光标回到菜单栏,再选择File菜单中的Save,就可以保存这个源程序文件了。这时,系统将弹出。如图2-3所示。要求编辑者为个这源程序命名(给上述程序命名为ex101),并确定存放位置。如果编辑者不生重命名,系统就以一个隐含的文件名“no name.c”来保存它,并且隐含地保存在TURBOC2文件夹中。

图2-3命名文件对话框

(3)编辑(修改)一个原来的源程序文件

要编辑(修改)一个原来已经有的源程序文件时,要在File菜单中选择Loac 命令。这时,系统就会弹出。如图2-4所示。要求用户在其中输入要编辑的源程序文件名。

输入后,按Enter键,系统就会将要重新编辑的源程序文件调入到编辑区内。

图2-4装入要编辑的源程序文件

为了方便用户,系统也允许用户不为方便命名。只要在要装入文件的对话框

内按一下回车键,系统就会显示出保存在TURBOC2中的所有C语言源程序文件的列表。如图2-5所示。同时列出上一级目录“..\”和同级的其它目录,供用户从中选择。

图2-5供用户选择的源程序文件列表

(4)程序的编译、链接与执行

在Turboc2.0环境下,编辑、链接和执行一个C程序,可以有如下几种方式。

使用Compile菜单(快捷键Alt+C)中的命令。如图2-6所示。

图2-6Compile菜单

主要有两种方式:

选择Compile to OBJ命令,得到目标文件;再在选择菜单中选择Link EXE filc 命令,得到可执行文件。

选择Make EXE filc命令,同时完成编译和链接两个过程,直接得到可执行文件。只要在操作系统环境下单击空上文件即可执行。

使用Run菜单中的Run命令(或用Ctrl+F9快捷键),可以直接完成编译,链接和执行3个过程。

(5)编辑窗口和输出窗口之间的切换

取用Alt+F5快捷键在编辑窗口和输出窗口之间切换。为执行ex101.exe后的输出窗口。如图2-7所示。

图2-7程序输出窗口

第三章系统分析与设置

3.1系统功能

本程序为电子词典,能够完成一般的资料的录入,能够显示录入的资料。利用结构体和链表对数据进行输入,删除和查询等功能。输入的信息通过指针存入所对应的文件中,通过使用定义的各种指针添加,读取和删除信息。程序功能通过下拉菜单实现,其功能描述。如图3-1所示。

图3-1程序模块流程图

3.2功能设计

课程设计的是电子词典程序,电子词典中包括:查找单词、增加单词、万年历、修改单词、浏览单词、保存单词、帮助菜单等项功能。

运行程序出现主界面后,输入“1”可以进入查找功能,可以查找相应以存储的单词,其中先定义一个字符数组,输入要找的单词后在与已存单词进行比较,如果找到则显示单词。输入“2”可以进入增加单词功能,定义两个字符数组分别存储,单词和词意,然后再把输入的单词和词意,传送到结构体中定义的单词和词意数组中去,以便能够调用。

输入“3”可以进入万年历功能,在程序设计中,我编制了万年历函数,万年历函数是利用date()函数和m_days 函数相互调转的形式来实现的,采用菜单工作方式,主要程序用switch 语句来完成,利用switch 语句来先判断用户所输入的年份是否为闰年再返回相应的月份天数。

输入“4”可以进入修改功能,修改单词必须建立在已有单词的前提下,只有系统的“lnlh.dat”文件里存在单词以后,才能对其修改。它可以在浏览单词后找

电子词典

查找单词增加单词

万年历

修改单词浏览单词保存单词

返回键

帮助菜单

退出

到想要修改的单词。将所要修改的释义存在temp1中,再将其复制到dict[i].yi 。当所存入的单词释义有误时,就可以利用修改功能就其单词释义进行修改。

输入“5”可以进入游览功能,用俩个一维数组temp 与temp1,来实现修改功能。将输入的单词用字符串的形式存入temp 中,在经过循环语句来实现查找单词。如果temp 与单词dict[].ci 比较等于0时,则说明已经单词找到,便可以显示单词了。

输入“6”存储功能,此功能是把所输入的资料保存到文件中去,先定义一个文件,以写的二进制文件形式打开,文件中最多可以存储200个单词,从&dict[i]所指的文件中长度为60的一个数据项写入fp 所指向的内存区。

3.3总流程图

清屏

输出界面

键盘输入一个值赋给Key

开始

1

yes

yes

no yes

no

Find ()

循环结束Break

Add ()

循环结束Break

2

Date ()

循环结束Break

判断key 值查找key

1

表达式=常量表达式1

表达式=常量表达式2

表达式=常量表达式3

no

no

图3-2控制菜单

yes

no

yes

no

yes

no

yes

no

yes

no

yes

no

2

表达式=常量表达式8

Help ()

循环结束Break

表达式=常量表达式9

Bye ()

循环结束Break

Modify ()

循环结束Break

表达式=常量表达式4

表达式=常量表达式5

View ()

循环结束Break

表达式=常量表达式6

Store ()

循环结束Break

表达式=常量表达式7

Return 0

此函数结束

2

图3-2控制菜单

图3-3查找单词

比较temp ,dict[i].ci 等于0且i<800

No

输出not found

I=I+1;

输出单词与意思输出press any key to return

返回

Yes

返回主界面

此函数结束输入temp

I=0;

清屏

输入界面

输出please input a word:

Find ()

Yes

No

Yes

5

No

J=j+1;

输出please input

the mean:

4

3比较temp 与结构题中单词是否相同并且个数小于800

输出the word is already store 输出press any key to return

j=0;

!(*dict[i].ci)&&I<800

清屏

I=0;

输出界面

输出please input the word:输出temp

输出sorry,the data is full:

Add ()

图3-4增加单词

把temp 拷贝到dict[I].ci 把temp1拷贝到dict[i].yi

输入temp1

I=I+1;

4

3

5

返回主界面

此函数结束

i

8

6

万年历计算公式:

d=year-1+(year-1)/4-(year-1)/100+(year-1)/400+days+1;

调用函数:

days=月数累加

9

i=1

定义整形

year,month;

Date()子函数开始系统清屏

换行输出:----Enter the year:输入年份:year 输入月份:month

6

输出格式:

===

===

=====

输出年-月:year,month

输出换行:\n

输出格式:Sun Mon Tue Wed Thu Fri Sat

输出换行:\n

i=1

No

i

Yes

i++

输出空格:“”

i=1

No

i<=7-d%7

Yes

i++

累加天数:day++;

输出日期:day

输出换行:\n

7

7

输出格式:

printf("\n===\n");

printf("===\n");

printf("=====\n");

输出年-月:

printf("\n\n\n---%d-%d-----\n",year,month);

printf("\n\n");

printf("Sun Mon Tue Wed Thu Fri Sat\n");

i=1

i

i++

输出空格:

printf("");

i=1

i<=7-d%7

i++;累加天数:day++;

输出日期

printf("%8d",day)

;

输出换行:

printf("\n");

8

相关主题
相关文档
最新文档