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

下载本文档

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

文档简介

课 程 设 计 报 告 课程名称课程名称 C 语言程序设计语言程序设计 课题名称课题名称 电子英汉词典设计电子英汉词典设计 专专 业业 信息管理与信息系统信息管理与信息系统 班班 级级 学学 号号 姓姓 名名 指导教师指导教师 2011 年年 XX 月月 XX 日日 湖南工程学院 课 程 设 计 任 务 书 课程名称 C 语言程序设 课 题 电子英汉词典设计 专业班级 学生姓名 学 号 指导老师 审 批 任务书下达日期 20XX 年 XX 月 XX 日 任务完成日期 20XX 年 XX 月 XX 日 一 设计内容与设计要求 1 课程设计目的 全面熟悉 掌握 C 语言基本知识 增强对不同的问题运用和灵活选择 合适的数据结构以及算法描述的本领 熟悉编制和调试程序的技巧 掌握 分析结果的若干有效方法 进一步提高上机动手能力 培养使用计算机解 决实际问题的能力 养成提供文档资料的习惯和规范编程的思想 为后继 课程 数据结构和数据库等课程 的实验以及课程设计打下较扎实的基础 2 课题题目 班级成绩管理系统 班级档案管理系统 飞机订票系统 猜数字游戏 电子英汉词典设计 通讯录管理系统 3 设计要求 掌握结构化程序设计的主体思想 以自顶向下逐步求精的方法编制程 序解决一些实际的中型问题 为将来开发软件积累一些典型的案例处理经 验 具体要求如下 1设计课题题目 每位同学根据自己学号除以 6 所得的余数加一 选择相应题号的课题 原则上不予换提 私自换题者不记成绩 根据自己对应的课题完成以下主要工作 完成系统需求分析 包 括系统设计目的与意义 系统功能需求 输入输出的要求 完成系统概 要设计 程序由哪些模块组成以及模块之间的层次结构 各模块的调用关 系 每个模块的功能 课题涉及的数据结构和数据库结构 即要存储什么 数据 这些数据是什么样的结构 它们之间有什么关系等 完成系统详 细设计 包括采用 C 语言定义相关的数据类型 写出各模块的类 C 码算法 画出函数的调用关系图 调试分析 设计体会 测试数据 准备典型的 测试数据和测试方案 包括正确的输入及输出结果和含有错误的输入及输 出结果 程序调试中遇到的问题以及解决问题的方法 课程设计过程经验 教训 心得体会 关键源程序 带注释 按规定格式完成课程设计报告 将其打印稿 A4 纸 上交给老 师存档 不得抄袭他人程序 课程设计报告 每个人应体现自己的个性 设计 二 进度安排 第 17 周 星期一 8 时 00 分 11 时 30 分 星期二 8 时 00 分 11 时 30 分 星期四 8 时 00 分 11 时 30 分 星期五 8 时 00 分 11 时 30 分 第 18 周 星期一 8 时 00 分 11 时 30 分 第 18 周 星期二 14 时 30 分 18 时 00 分 目 录 1 系统需求分析 1 1 1 问题描述 1 1 2 功能要求 1 2 概要设计 2 2 1 系统的总体设计 2 2 2 各模块的功能 3 2 3 相关数据结构设计 3 3 详细设计 4 3 1 采用 C 语言定义相关的数据类型 4 3 2 各功能模块的流程图 5 4 系统调试 10 5 运行结果 11 5 1 查询单词界面 11 5 2 新增词条界面 13 5 3 编辑词条界面 15 5 4 删除词条界面 17 5 5 退出字典 17 6 心得体会 18 7 附录 18 7 1 参考书目 18 7 2 源程序清单 19 8 评分表 25 1 1 系统需求分析 1 1 问题描述 英汉词典作为一个常用的学习工具 是我们经常要使用的 该系统能 完成一个简单的电子英汉词典的功能 如 单词的查找 增词 删除 修 改和维护等工作 1 2 功能要求 1 在计算机中建立有限规模的电子英汉词典 文件 利用程序实现 电子英汉词典的查找 增词 删除 修改和维护工作 2 词典的内容为 每行对应一个词条 每个词条由两个字符串组成 字符串用若干空格符分开 前一个是单词字符串 英文 后一个是释义字 符串 中文 使用分号作为多个释义的分隔符 无空格 3 对单词和释义字符串长度的限定分别为不少于 20 个与 40 个字符 词条数限定为不多于 200 条 4 采用菜单工作方式 在一个操作执行之后 程序询问是否继续执行 该操作 如输入 Y 或 y 则重复同一操作 不退回到菜单 如输入其它信 息 则回到菜单等待另一次选择 仅当选择退出操作时 程序应询问是否 将修改后的词典存盘 并根据用户选择存盘退出或不存盘退出 5 要求整个设计以人为本 用户界面友好 2 2 概要设计 2 1 系统的总体设计 程序共有六个子函数和一个主函数 1 query void 是查找函数 2 append void 是新增函数 3 edit void 是编辑函 4 erase 是删除函数 5 add 是一个初始化函数 6 lookup 是用来实现单词查询的一个子函数 7 主程序通过无限循环来接收输入的命令 并且根据命令调用相应的函 数处理 主函数 查询函数 query voi d 新增函数 append v oid 编辑函数 edit void 删除函数 erase 初始化 add 查找功能函 数 lookup 图 2 1 总体设计图 3 2 2 各模块的功能 1 query 是查找函数 用户通过系统提示输入要查找的单词 只要单词 库中含有此单词便能找到相应的中文解释 2 append 是新增函数 用户可通过此函数来增加单词库单词的数量 3 edit 是编辑函数 程序提示用户输入要修改的单词 如果找到 则提 示输入新单词及中文解释 4 erase 是删除函数 程序提示用户输入要删除的单词 在得到确认后 删除这个单词的纪录 5 add 是一个初始化函数 让建立的词库里有一部分单词 6 lookup 是用来实现单词查询的一个子函数 2 3 相关数据结构设计 1 宏定义的一些相关数据 define szWORD 32 define szSTRN 224 define szITEM sizeof struct TItem char fileDict szSTRN 2 开头定义一个结构体数组用于单词和释义的存放 单词 释义 char char 4 3 详细设计 3 1 采用采用 C 语言定义相关的数据类型语言定义相关的数据类型 定义结构体数组 typedef struct TItem char word szWORD char mean szSTRN Item 宏定义的数据 define szWORD 32 define szSTRN 224 define szITEM sizeof struct TItem char fileDict szSTRN 定义的文件 File f 5 3 2 各功能模块的流程图 1 1 查询函数 query void 流程图 否 输入要查询的单词 调用 lookup 函数 是否能打开 文件 返回到查询函数 用 while 函数进行单词查询 关闭文件 回到查询函 数 是否找到单词 输出没有该单 词记录 输出该单词和 释义 是 否是 图 3 1 查询函数 query void 流程图 开始 6 2 新增函数 append void 流程图 开始 输入要新增的单词 判断词库里是否 有该单词 输出字典内已有 该单词记录 输出请输入释义 按回车结束 把获得的字符串给 i mean 打开这个文件以追加的方式 写入函数 把 i 所指向的 1 szITEM 个字节输入到 f 所 指的文件中 关闭文件 词条已新增 是否 图 3 2 新增函数 append void 流程图 3 编辑函数 edit void 流程图 7 开始 输入要编辑的单词 判断词典里是否有 该单词 输出 字典内没有该 单词记录 请输入释义 按回车结束 输入 abort 放弃修改 获得字符串 放在 i mean 中 判断是否为 abort 已放弃修改 以读写的方式打开 fileDict 将continue 就实现了单词删除的功能 因为我加了一个初始化的功能 让所定义的文件中有部分单词 而这个功 能就是要给结构体初始化 而我开始定义的结构体后就在后面直接初始化 运 行的时候并没有达到我预期的效果 还是显示词库里没有单词 于是我在结构 体上下工夫 我开始的赋值出现了问题 导致我定义的结构体是个非法结构体 所以我重新定义结构体 按照规范的要求重新赋值 就达到了我想要的效果了 由于主函数是运用的无限循环体 所以在运行时 友好界面会一直出现 不仅不美观 看起来结不简洁 所以我在后面加了一条清屏的语句 就是界面 看起来美观大方了 11 5 运行结果运行结果 5 1 初始化界面 图 5 1 初始化界面 5 2 查询单词界面 1 查询单词的界面 图 5 2 查询单词界面 12 2 未初始化下查询单词界面 图 5 3 未初始化查询单词 3 初始化后查询单词 图 5 4 初始化后查询单词 13 5 查不到单词的情况 图 5 5 查不到单词的情况 5 2 新增词条界面 1 新增词条界面 图 5 6 新增词条的界面 14 2 输入新增的单词 图 5 7 输入新增的单词 3 输入新增单词的释义 图 5 8 输入新增单词的释义 15 4 新增成功 图 5 9 新增成功 5 3 编辑词条界面 1 输入要编辑的单词和释义 图 5 10 输入要编辑的单词和释义 16 2 编辑成功界面 图 5 11 编辑成功 3 放弃编辑的界面 图 5 12 放弃编辑 17 5 4 删除词条界面 图 5 13 删除词条 5 5 退出字典 图 5 14 退出字典 18 6 心得体会 在学习了一个学期的 c 语言后 在大一下期我开始按照老师的要求做课程 设计 在拿到这个课题时我十分困惑 因为我觉得就学了这么一点皮毛 怎么 可能会做出如此与现实联系的程序 于是我开始收集大量的资料 向同学老师 请教 上机调试的时候 程序出现的问题也是很多的 自己摸索着调试程序 有时实在是程序错误找不出来 就请教身旁的指导老师 听老师耐心的给我讲 解程序出现的问题 由于我们是第一次做课程 遇到的问题各种各样 有时一 个很小的问题也找不出来 还好指导老师们都很好 不厌其烦的给我们讲解 帮助我们一起调试程序 当完成的时候心里别提有多高兴 一个星期下来 在 机房的待着成了我们生活的主旋律 在其中收获了许多 困难永远是被战胜的 无论它是多么的强大 要始终相信自己会比它更强大 7 附录 7 1 参考书目 1 谭浩强 C 语言程序设计 第四版 M 北京 清华大学出版社 2010 6 4 2 姜仲秋等 C 语言程序设计 M 南京 南京大学出版社 1998 1 2 3 陈朔鹰等 C 语言程序设计基础教程 M 北京 兵器工业出版社 1994 9 4 刘瑞挺 计算机二级教程 M 天津 南开大学出版社 1996 10 19 7 2 源程序清单 基本的库函数 include include include include define szWORD 32 define szSTRN 224 define szITEM sizeof struct TItem char fileDict szSTRN typedef struct TItem 定义一个结构体 char word szWORD char mean szSTRN Item void add void 词库初始化 Item i 2 you 你 me 我 初始化 FILE f 0 int p 0 定义指针型未打开的文件 f 整型 p 0 f fopen fileDict ab 以追加的方式打开文件 fwrite 写入函数 把 i 所指向的 1 szITEM 个 字节输入到 f 所指的文件中 fclose f 关闭文件 printf 词条已初始化 n int lookup char word char mean 实现单词查询功能 20 FILE f 0 Item i 定义指针型未打开的文件 f i 表示 Item int r 0 int p 0 定义整型 r 0 整型 p 0 if word return 0 如果找不到该单词 则返回 f fopen fileDict rb 如果有 打开这个文件以 rb 的方式 if f return 0 如果文件不存在 返回 while feof f 如果文件存在 当如果未遇到输入文件的 结束标志 r fread 从 f 中读取长度为 szITEM 的一个 数据项存到 i 所指向的内存 if r 1 break 如果 r 1 则跳出该循环 if i word 0 0 continue 如果 i word 0 0 则结束本次循环 if strcmp i word word p p szITEM continue 如果要查的单词 在词库里有则执行下一步 否 则结束本次循环 if mean strcpy mean i mean 把单词的意思 copy 到 mean 中 fclose f 关闭该文件 return p 1 返回到下一个单词 fclose f 关闭该文件 return 0 返回主函数 void append void 新增词条 Item i FILE f 0 int p 0 定义指针型未打开的文件 f i 表示 Item 定义整型 p 0 printf 请输入单词 scanf s i word p lookup i word 0 p 要新增的单词 if p 如果 p 0 则输出字典内已经有该单词记录 21 printf 字典内已经有该单词记录 n return printf 请输入释义 按回车结束 否则输出 请输入释义 按回车结束 fflush stdin 清空输入缓冲区 gets i mean 把获得的字符串给 i mean f fopen fileDict ab 打开这个文件以追加的方式 fwrite 写入函数 把 i 所指向的 1 szITEM 个 字节输入到 f 所指的文件中 fclose f 关闭文件 printf 词条已新增 n void erase void 删除词条 Item i FILE f 0 int p 0 定义指针型未打开的文件 f i 表 示 Item 定义整型 p 0 memset 清除数组的内容 printf 请输入单词 scanf s i word p lookup i word 0 p 要查找的单词 if p 0 如果 p 0 则输出字典内没有该单词记录 printf 字典内没有该单词记录 n return p p 回到它原来的位置 memset 清除数组的内容 f fopen fileDict rb 以读写的方式打开 fileDict fwrite 写入函数 把 i 所指向的 1 szITEM 个 字节输入到 f 所指的文件中 22 fclose f 关闭文件 printf 词条已删除 n void edit void 编辑词条 Item i FILE f 0 int p 0 定义指针型未打开的文件 f i 表示 Item 定义整型 p 0 memset 清除数组的内容 printf 请输入单词 scanf s i word p lookup i word 0 p 要编辑的单词 if p 0 如果 p 0 则输出字典内没有该单词记录 printf 字典内没有该单词记录 n return p p 回到它原来的位置 printf 请输入释义 按回车结束 输入 abort 放弃修改 fflush stdin 清空输入缓冲区 gets i mean 获得字符串 放在 i mean 中 if strstr i mean abort 如果 abort 字符串的出现 则表示已经放弃修改 printf 已放弃修改 n return f fopen fileDict rb 以读写的方式打开 fileDict fwrite 将 关闭文件 printf 词条已保存 n 23 void query void 查询单词 Item i in

温馨提示

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

评论

0/150

提交评论