C语言课程设计-一种简单的英文词典排版系统的实现
c语言词典课程设计

c语言词典课程设计一、教学目标本课程的教学目标是使学生掌握C语言词典的基本原理和设计方法,能够运用C语言编写简单的词典程序。
具体目标如下:1.理解C语言的基本数据类型和语法结构。
2.掌握函数的定义和调用方法。
3.了解字典树、哈希表等数据结构的基本原理。
4.熟悉常用的词典算法和实现方法。
5.能够运用C语言编写简单的程序。
6.能够使用常用的开发工具和调试方法。
7.能够独立完成简单的词典程序设计。
情感态度价值观目标:1.培养学生对计算机科学的兴趣和好奇心。
2.培养学生解决问题的能力和团队合作精神。
3.培养学生对编程规范和代码质量的重视。
二、教学内容本课程的教学内容主要包括C语言基础知识、数据结构、词典算法和程序设计。
具体安排如下:1.C语言基础知识:介绍C语言的基本数据类型、运算符、控制语句等。
2.数据结构:讲解字典树、哈希表等数据结构的基本原理和实现方法。
3.词典算法:介绍常用的词典算法,如顺序查找、二分查找、哈希查找等。
4.程序设计:通过实例讲解如何运用C语言编写词典程序,包括词条的添加、删除、查找等功能。
三、教学方法本课程采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:讲解C语言基本知识和数据结构原理。
2.案例分析法:通过分析实际案例,讲解词典算法和程序设计方法。
3.实验法:让学生动手编写程序,巩固所学知识和技能。
4.讨论法:学生进行小组讨论,促进学生之间的交流和合作。
四、教学资源本课程所需的教学资源包括教材、参考书、多媒体资料和实验设备。
具体资源如下:1.教材:《C程序设计语言》(K&R)、《C Primer Plus》等。
2.参考书:《数据结构与算法分析》(C语言版)、《C语言程序设计实践》等。
3.多媒体资料:教学PPT、视频教程、在线编程练习等。
4.实验设备:计算机、编程环境、网络等。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。
C语言课程设计之电子词典

5.C 语言是模块化的。可以以函数的方式来编写 C 语言代码,并在其他应用或程序中再 次使用这些函数。通过将一些信息传递给函数,可以创建很有用的、可重用代码。
第四章系统功能实现…………………………………………………………....9
4.1 保存单词…………………………………………………………………………9 4.2 结束界面………………………………………………………………………..11
总结……………………………………………………………………………….. …….. ….13
五、时间进度安排
顺序
1 2 3 4 5
阶段日期
第1天 (2008.03.24 第 2—3 天 (2008.03.25—2008.03.26) 第 4—8 天 (2008.03.28—2008.04.04) 第9天 (2008.04.05) 第 10 天 (2008.04.06)
计划完成内容
阅读资料 系统分析设计 程序编制、调试及运行
态度 能够独立完成设计工作,
按期圆满完成规定的设计任务,工作量饱满,
工作量
0.2 5 4 3 2
难度适宜。
说明书立论正确,论述充分,结论严谨合理, 说明书的
文字通顺,技术用语准确,符号统一,编号齐 0.5 5 4 3 2 质量
全,图表完备,书写工整规范。
指导教师评审成绩 (加权分合计乘以 8)
分
加权分合计
3.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到 了什么,哪里遇到了困难,解决的办法以及今后的目标。
C语言课程设计英文排版系统的实现2

C语言课程设计英文排版系统的实现学号:20071000697 班级:055071--04 姓名:黄露指导老师:刘文中前言一、C语言课程设计的目的:高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。
其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
二,要求一种简单的英文词典排版系统的实现(1)能输入和显示打入的单词。
(2)能分辨出单词。
(3)对重复的单词和已经输入的单词能自动排除。
(4)能按A~Z的顺序排版。
(5)能将运行结果以文本形式存储。
(6)具有添加新单词并重新排版的能力。
三.构架建立词库显示单词对单词进行排序添加单词重新排版以文本形式存储结束开始显示:输入文字输入词i+1=iI=file输入文字END结束程序第一次运行时,会创建一个“word.txt”(不包括引号)的文本文件,然后要求输入单词。
若要退出,请不要点DOS窗口的小叉叉,输入d即可。
因为程序在结束之前,对数组中的单词重新排序,并存储到文件中。
#include "stdio.h"---#include "stdlib.h" ---为exit()函数提供原型;#include "string.h"---字符串处理函数原型;#include "ctype.h"---字符处理函数原型;#define ROWS 256#define COLS 32---定义“字典”的大小:可存放256个单词,每个单词的长度不超过31static FILE *fp;---定义文件指针:内部链接,文件作用域;static char a[ROWS][COLS];---定义数组:内部链接,文件作用域;该数组的作用是将文件的内容复制进来,并加以处理。
c英汉词典课程设计

c 英汉词典课程设计一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握英汉词典的基本结构和使用方法,了解英语单词的拼写、词性和意思。
技能目标要求学生能够熟练地使用英汉词典查找单词,提高英语阅读和写作能力。
情感态度价值观目标培养学生对英语学习的兴趣和自信心,培养他们积极学习英语的态度。
通过分析课程性质、学生特点和教学要求,我们将目标分解为具体的学习成果。
课程目标旨在帮助学生掌握英汉词典的使用技巧,培养他们自主学习的能力,提高他们的英语水平。
二、教学内容根据课程目标,我们选择和了以下教学内容。
首先,介绍英汉词典的基本结构,包括前言、目录、词条等部分。
其次,讲解如何使用英汉词典查找单词,包括根据音标、字母顺序和词根等方法。
然后,通过实例演示如何快速找到单词的含义、例句和同义词等。
最后,进行一些练习和活动,让学生实际操作英汉词典,巩固所学内容。
教学大纲将按照以下顺序进行:第一节课,介绍英汉词典的基本结构和使用方法;第二节课,讲解如何查找单词和理解单词的含义;第三节课,通过实例演示和练习,让学生熟练使用英汉词典;第四节课,进行综合练习和活动,巩固所学内容。
三、教学方法为了激发学生的学习兴趣和主动性,我们将采用多种教学方法。
首先,讲授法将用于讲解英汉词典的基本结构和使用方法。
其次,案例分析法将用于分析具体的单词查找实例。
此外,讨论法将用于引导学生主动参与课堂讨论,分享自己的学习经验和心得。
最后,实验法将用于让学生实际操作英汉词典,进行练习和活动。
四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源。
首先,教材《英汉词典》将是主要的教学资源,提供丰富的单词和例句。
其次,参考书和多媒体资料将用于提供更多的学习资源和实例。
此外,实验设备如电脑和投影仪将用于展示和演示英汉词典的使用方法。
通过这些教学资源的利用,我们将丰富学生的学习体验,提高他们的学习效果。
C语言英汉词典课程设计

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语言课程设计课题名称电子英汉词典专业纺织服装学院班级纺工1203学号姓名指导教师田媛2014年 01 月06 日湖南工程学院课程设计任务书课程名称 C语言课程设计课题电子英汉词典专业班级纺工工程学生姓名学号指导老师田媛审批任务书下达日期 2013 年 12 月 26 日任务完成日期2014年 01 月 06 日一、设计内容与设计要求1.设计内容:课题一:电子英汉词典。
具体内容见附录。
2.设计要求:1)设计正确,方案合理。
2)界面友好,使用方便。
3)程序精炼,结构清晰。
4)上机演示。
3.设计报告要求:课程设计报告格式如下:1)正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体,行距为22。
2)正文的内容:课题的主要功能、课题的功能模块的划分、主要功能的实现、程序调试、总结、附件(所有程序的源代码,要求对程序写出必要的注释),课程设计报告需5000字左右(不含附件)。
3)课程设计报告装订顺序:封面、任务书、目录、正文、评分、程序清单附件。
二、进度安排上课时间另外安排上课时间另外安排。
附录:设计课题三:电子英汉词典一、问题描述:该设计实现简单电子英汉词典的功能,具体管理操作包括单词的添加、显示、查找、删除、修改和保存等。
二、功能描述:1、本设计采用结构体数组,每个数据的结构应当包括:单词的英文拼写,单词的中文释义。
2、系统功能:a.词条录入:即添加单词记录。
b.信息显示:将所有的单词按字母顺序显示。
c.词条修改:对已经输入的单词信息进行修改。
d.词条删除:删除某个单词记录。
e.单词查询: 输入单词英文拼写,输出该单词的中文释义。
f.信息保存:将单词信息保存到文件。
g.退出系统3、系统使用说明:执行一个具体的功能之后,程序将重新显示功能菜单。
系统的功能并不限于上述,可以对其进行扩充完善,如在对信息进行修改和删除时,可以考虑系统的安全性,在执行前若输入正确密码,才可进行操作。
C语言电子词典课程设计

C语言电子词典课程设计一、课程目标知识目标:1. 理解C语言中结构体、数组、字符串等基本概念及其应用;2. 学会使用C语言实现基本的查找、插入、删除等数据操作;3. 掌握C语言中文件读写功能,实现对电子词典数据的存储和读取。
技能目标:1. 能够运用结构体创建电子词典的数据结构,并实现单词的录入、查询、修改和删除等功能;2. 学会使用二分查找算法优化电子词典的查询速度,提高程序运行效率;3. 能够独立编写C语言程序,完成一个具有基本功能的电子词典项目。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发他们探索计算机科学领域的热情;2. 培养学生的团队协作意识,学会与他人共同解决问题;3. 培养学生严谨、细心的编程习惯,提高他们面对问题的分析能力和解决能力。
本课程旨在帮助学生在掌握C语言基础知识的基础上,学会运用编程解决实际问题。
结合课程性质、学生特点和教学要求,将课程目标分解为具体的学习成果,以便于后续的教学设计和评估。
在教学过程中,注重培养学生的实际操作能力,提高他们运用C语言解决实际问题的综合素质。
二、教学内容1. C语言基础知识回顾:结构体、数组、字符串、指针等基本概念及其应用。
相关教材章节:第一章至第四章2. 算法介绍:二分查找算法原理及其在电子词典查询中的应用。
相关教材章节:第七章3. 文件读写操作:C语言文件操作函数,实现对电子词典数据的存储和读取。
相关教材章节:第九章4. 电子词典功能实现:- 单词录入:设计录入界面,实现单词信息的输入和保存;- 单词查询:实现按单词查找,展示单词释义;- 单词修改:实现对已录入单词的修改功能;- 单词删除:实现对已录入单词的删除功能。
相关教材章节:第五章、第六章、第七章5. 项目实践:分组进行电子词典项目实践,完成一个具有基本功能的电子词典程序。
教学内容安排和进度:第一周:C语言基础知识回顾,学习结构体、数组、字符串等;第二周:学习文件读写操作,理解二分查找算法;第三周:电子词典功能实现(单词录入、查询、修改、删除);第四周:项目实践,分组完成电子词典项目,并进行演示和评价。
c语言课程设计-电子英汉词典(含源码)

c语言课程设计-电子英汉词典(含源码)————————————————————————————————作者:————————————————————————————————日期:C语言课程设计软件学院指导老师:学号:姓名:一、实验题目及要求题目:电子英汉词典设计要求:1.用图形用户界面实现2.能够编辑词典库中的信息3.能够实现英译汉,汉译英。
(要考虑一词多义)二、实验过程主要思想: 1 建立词典库(相关文件的处理)2 设计词典图形用户界面3 查找单词及词典的重复使用(实现一词多义)主要过程1.词典库的建立:文件的建立,写入和调出参考老师给的FILE.C 文件FILE.C大致内容{FILE *fp/*建立文件指针*/fp=fopen("d:\list.txt","wb+");/*在指定路径建立文本文件*/for(i=0;i<SIZE;i++) /*将结构体中的内容if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) 写进指定文件中并进{ printf("file write error!"); 行判断是否写入*/ exit(0);}fread(&stu_temp,sizeof(struct student),1,fp); /*将文件中的指定内容调出*/ }单词库存储在指定路径的指定文件中方便后文的查询和调出单词库的建立利用结构体可以包含一词多义,并将汉译英和英译汉的词典库分开以便实现英汉互译(在中文dos环境下运行)图例:(未在中文dos环境下运行)2. 设计词典图形用户界面参考文件Graph.c 进行图形驱动void init(){int gdriver, gmode, i, j;gdriver = DETECT;registerbgidriver(EGA VGA_driver);initgraph(&gdriver, &gmode, "");}图例(未设置鼠标前)上网查找相关资料调用鼠标鼠标绘制函数设置鼠标指针位置函数设置函数得到鼠标左右键点击的不同状态(设置鼠标后运行结果全屏无法截图)在图形界面下设计用户界面并使用该鼠标设置相关区域的鼠标键点击后得到不同的结果,进入英译汉或汉译英界面3. 查找单词及词典的重复使用(考虑一词多义)利用文件指针和函数fseek ,fread 对结构体内的单词名称查找和该相关释义的调用同时考虑英汉互译设置查找不到单词的页面和利用while语句使实现词典是否需要重复使用功能图例:三、实验结果及心得根据题目描述基本达到题目要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计-一种简单的英文词典排版系统的实现目录课程设计评语 ..................................................................... ............................. 错误~未定义书签。
2目录...................................................................... ........................................................................ ...... 1 1(课程论文题目 ..................................................................... .. (2)2(程序设计思路 ..................................................................... .. (2)3(功能模块图 ..................................................................... ............................................................... 3 4(数据结构设计 ..................................................................... .. (3)5(算法设计...................................................................... .................................................................. 4 (程序代码...................................................................... ................................................................ 12 6 7(程序运行结果 ..................................................................... (17)8(编程中遇到的困难及解决方法 ..................................................................... .. (19)9(总结心得及良好建议 ..................................................................... (20)10(致谢...................................................................... ......................................................................2011(课程论文题目一种简单的英文词典排版系统的实现【要求】1)能输入和现实打入的单词 ((2)能分辨出单词(3)对重复的单词和已经输入的单词能自动排除(4)能按A~Z的顺序排版(5)能将运行结果以文本形式储存(6)具有添加新单词蹦重新排版的能力[提示](1)需求分析:运行结果以文本形式储存,因而要提供文件的输入输出操作;通过查找操作检查重复单词;提供排序操作现实按A~Z的顺序排版;提供插入操作添加新单词并重新排版。
另外通过键盘式菜单实现功能选择。
(2)总体设计:整个系统被设计为单词录入模块,文件存储模块和单词浏览模块。
其中单词录入模块要完成输入单词,检查是否重复,排序操作。
文件存储模块把存放单词的数组中的数据写入文件。
单词浏览模块完成英文词典的输出,即文件的输出操作。
(3)数据结构采用指针数组或二维数组。
以【Enter】键或者空格键作为单词输入结束标志,对重复的单词自动排除可选用查找方法,数据结构可采用指针和数组。
2(程序设计思路整个系统被设计为单词录入模块,文件存储模块和单词浏览四个模块。
其中单词录入模块要完成输入单词,检查是否重复,排序操作。
文件存储模块把存放单词的词组中的数据写入文件。
单词浏览模块完成英文词典的输出,即文件的输出操作。
这四个模块是整体的设计思路,设计核心,整个程序的设计都将围绕这四个模块进行,各个模块都相互衔接,所以需要在设计好各个部分地同时,还要把握好各个部分的连接。
23(功能模块图(英文词典排版系统单词录入文件存储单词浏览4(数据结构设计数据结构采用指针数组或二维数组:char* dictionary[N]; 或 char dictionary[N][20]。
其中N是宏定义#define N 256 (表示单词个数) (1)单词录入模块输入一个单词,存放在一个临时字符数组中,以空格或回车表示单词的结束(这也是默认操作),然后换行输出刚刚输入的单词。
采用插入排序算法的思想把该单词插入单词数组中,不同的是如果两个单词相同则不插入。
(2)文件存储模块采用fwrite或fprintf把单词数组输入到文件中。
(3)单词浏览模块采用fread或fscanf把单词从文件中读出,然后输出。
35(算法设计1.主函数【流程图】显示一系列的功能选项N 输入n,判断n是否是1—9Y【程序】根据n的值调用各功能模块函数 #include "stdio.h"#include "stdlib.h"#include "string.h"#include "ctype.h"#define ROWS 256#define COLS 32static FILE *fp;static char a[ROWS][COLS];char get_option(void);int b(int count);void c(char *pt[], int count); int check(char arr[], int count); void storage(char *pt[], int count); int n; //****n全局变量*****// char word[N][20];void menu()//***主界面***//{int n,w;//*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*//do{puts("\t\t********************MENU********************\n\n");puts("\t\t\tWelcome to dj's program!\n\n");puts("\t\t\t\t 1.Add new word.");puts("\t\t\t\t 2.Browse all the words.");puts("\t\t\t\t 3.Search the word.");4puts("\t\t\t\t 4.Sort the words.");puts("\t\t\t\t 5.Order by A-z.");puts("\t\t\t\t 6.Exit!");puts("\n\n\t\t****************************************\n");printf("Choice your number(1-6): [ ]\b\b"); scanf("%d",&n);if(n<1||n>6)//*对选择的数字作判断*//{w=1;getchar();}else w=0;}while(w==1);switch(n){case 1:add();break;//*追加模块*//case 2:browse();break;//*浏览模块*//case 3:search();break;//*查找模块*//case 4:sort();break;//*分类模块*//case 5:order();break;//*排序模块*//case 6:exit(0);//*退出*//}}void main() //********主函数*********// { menu();}2.公共函数【程序】int load()//*加载函数*//{int i,count;int start;char *pt[ROWS];char ch, len;char input;if((fp=fopen("words.txt","a+"))==NULL)//*以输出打开方式,在此前的记录被覆盖*//{printf("\nCannot open file!\n");return NULL;}5for(i=0;!feof(fp);i++)fscanf(fp,"%s",&word[i]);fclose(fp);return i+1;//*返回记录个数*//}void save(int n)//*保存函数,保存n个记录*//{FILE *fp;int i;if((fp=fopen("words.txt","a+"))==NULL)//*以输出打开方式,在此前的记录被覆盖*//{printf("\nCannot open file!\n");exit(0);}for(i=0;i<n;i++)fprintf(fp,"%s",&word[i]);fclose(fp);}3.各功能模块设计1)分类模块【程序】void sort(){int i,j,k;char c[20];if((n=load())==0){printf("\nCannot open file!\n");exit(0);}for(i=0;i<n;i++)for(j=0;j<n-i-1;j++);if(strcmp(word[j],word[j+1])>0){strcmp(c,word[j]);strcmp(word[j],word[j+1]);strcmp(word[j+1],c);}save(n);printf("Successful!^_^.\n");printf("\nNow? 1.browse all 2.back");6scanf("%d",&k);if(k==1)browse();else if(k==2)menu();}2)排序模块用选择法排序【流程图】【程序】void order() //*排序模块*// 保存{int a[N],i,j,t;struct words; 返回主菜单n=load();for(i=0;i<N;i++)for(i=0;i<N-1;i++)for(j=i+i;j<N;j++)if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}for(j=0;j<N;j++)printf("%3d",a[i]); }3)修改模块【流程图】显示所有记录,让用户看哪个要修改输入要修改的单词是否找到此单词记录Y N提示没有找到显示找到的单词,调用修改函数 YY7 询问用户是返回主菜单否继续修改【程序】void modify(int a) //*修改模块*//{char c[20];printf("Enter the new word:");scanf("%s",c);strcpy(word[a],c);save(n);}4)删除模块【流程图】显示所有记录,让用户看哪个需要删除输入需要删除的单词是否找到此单词记录Y N显示找到的记录提示没有找到调用删除函数YN 询问用户是否继返回主菜单续删除【程序】void del(int a) //*删除模块*// {int x,i,y;printf("Are you sure to delete this word?\n\t1).sure 2).no and back menu[ ]\b\b");scanf("%d",&x); //*输入要修改的单词*//if(x==1)8{for(i=a;i<n-1;i++) //*查找要修改的单词*//strcpy(word[i],word[i+1]);save(n-1);printf("Successful!^_^.\nNow? 1).one more 2).back menu"); scanf("%d",&y);if(y==1)search();else if(x==2)menu();}else if(x==2){menu();}}5)追加模块【流程图】调用加载函数n=load();并计算可以记录个数n输入用户要追加的的单词保存追加的单词Y 询问用户是否继续追加单词N返回主菜单【程序】void add() //*追加模块*//{int i,x,w1,w2,w;char c[20];9if((n=load())==0)exit(0);else{puts("Enter the new word!\n");scanf("%s",c); //*输入要追加的单词*// for(i=0;i<n;i++){if(strcmp(word[i],c)==0)break;}if(i<n){w=1;do{printf("The word has already exit!\n");printf("\n\nWhat do you want to do?\n\t1).enter one more 2).back menu [ ]\b\b");scanf("%d",&x);if(x<1||x>2)w1=1;elsew1=0;}while(w1==1);}else{w2=1;strcpy(word[i],c);save(n+1);printf("Successful!^_^.Now choose what you will do next?\n\t1).add another 2).back menu [ ]\b\b");do{scanf("%d",&x);if(x<1||x>2)w2=1;elsew2=0;}while(w2==1);}10switch(x){case 1:add();break;case 2:menu();break;}} 显示所有单词记录6)浏览(全部)模块【流程图】用户进行选项回到分类模块返回主菜单【程序】void browse() //*浏览(全部)模块*// { int i,w;if((n=load())==0) //*加载记录*// {printf("\nCannot open file!\n");exit(0);}for(i=0;i<n-1;i++)printf("%s/n",word[i]);puts("Successful!^_^.Now 1.back menu 2.sort"); scanf("%d",&w);if(w==1)menu();else if(w==2)sort();}7)查找模块【流程图】输入需要查找的单词是否找到该单Y N 词记录显示找到的记录提示没有找到询问用户是否继续查找 11让用户选择1).查找返回主菜单Y N【程序】void search() //*查找模块*//{int i,x,y;char vs[20];if((n=load())==0) //*加载记录*//{printf("\nCannot open file!\n");exit(0);}printf("Enter the word what you want to search!");scanf("%s",vs); //*输入要查找的单词*//for(i=0;i<n;i++) //*查找要修改的单词*//if(strcmp(word[i],vs)==0){printf("Successful!^_^.\nThe word is:%s\n",word[i]);//*找到需要修改的单词*//printf("What would you like to do with the word?\n\t1).modify2).delrte 3).nothing []\b\b");scanf("%d",&y);if(y==1)modify(i);else{del(i);}}if(i==n)printf("HOHO!Sorry........Not found~~~");printf("Now.....1).one more 2).back 3).exit");scanf("%d",&x);switch(x){ case 1:search();break;case 2:menu();break;case 3:exit(0);}}6(程序代码#include "stdio.h"#include "stdlib.h"#include "string.h"12#include "ctype.h"#define ROWS 256#define COLS 32static FILE *fp;static char a[ROWS][COLS]; char get_option(void); int b(int count); void c(char *pt[], int count); int check(char arr[], int count); void storage(char *pt[], int count);int main(void){int i,count;int start;char *pt[ROWS];char ch, len;char input;if((fp=fopen("words.txt","a+"))==NULL){fputs("不能打开或建立文件~\n",stderr); exit(1);}fseek(fp,0L,SEEK_END); start=(int)ftell(fp)/32; count=start;rewind(fp);if(fread(a,32*sizeof(char),start,fp)==0){i=0;puts("开始创建词库");puts("请输入单词(每行一个)");puts("在新行输入END结束输入:");while(i<ROWS&&scanf("%s", a[i])==1){fflush(stdin);if(strncmp(a[i],"END",3)==0) {count+=i;break;}13if(check(a[i], i)) continue;i++;}}puts("\t\t*********************欢迎使用字典排版系统*******************\n\n");puts(" MENU ");puts("您要做些什么,");puts("a. 显示已有的单词 b. 添加新单词");"); puts("c. 对已有的单词进行排序 d. 退出puts("\n\n\t\t********************************************************** \n");while((input=get_option())!='d'){if(input=='a'){puts("已有的单词:");for(i=0;i<count;i++) {printf(" ");puts(a[i]);}}if(input=='b'){puts("开始创建词库");puts("请输入新的单词(每行一个)"); puts("在新行输入END结束输入: "); count=b(count);}if(input=='c'){puts("对单词进行排序:");c(pt, count);for(i=0;i<count;i++) {printf(" ");puts(pt[i]);}}puts("还要做些什么?");}storage(pt,count);14fclose(fp);puts("谢谢使用,再见!");return 0;}char get_option(void) {char ch;while((ch=getchar())<'a'||ch>'d') {while((ch=getchar())!='\n');puts("请输入a,b,c或者d."); } fflush(stdin);return ch;}int b(int count) {int i;i=count;while(i<ROWS&&scanf("%s", a[i])==1){fflush(stdin);if(check(a[i], i)) continue;if(strncmp(a[i],"END",3)==0){count=i;break;}i++;}return count;}15void c(char *pt[], int count){int i,j;char *temp;for(i=0;i<ROWS;i++) pt[i]=a[i];for(i=0;i<count;i++) for(j=i+1;j<count;j++) { if(strcmp(pt[i],pt[j])>0) {temp=pt[i];pt[i]=pt[j];pt[j]=temp;}}}int check(char arr[], int count){int i;int flag=0;for(i=0;i<strlen(arr);i++) if(isalpha(arr[i])==0) {printf("%s不是一个单词.\n",arr); flag=1;break;}for(i=0;i<count;i++) if(strncmp(a[i],a[count],strlen(a[count])+1)==0) {puts("重复的单词!");flag=1;}return flag;}void storage(char *pt[], int count){16int i,j;char ptr[ROWS][COLS];c(pt, count);for(i=0;i<count;i++)for(j=0;pt[i][j]!='\0';j++) ptr[i][j]=pt[i][j]; fp=fopen("words.txt","w+"); rewind(fp);fwrite(ptr,32*sizeof(char),count,fp);}7(程序运行结果17188(编程中遇到的困难及解决方法在学习C语言时,最初使用的是TurboC计算机编程软件,实习则用VC软件编程。