c语言词典课程设计报告,C语言课程设计英语词典排版系统

《C语言课程设计英语词典排版系统》由会员分享,可在线阅读,更多相关《C语言课程设计英语词典排版系统(21页珍藏版)》请在人人文库网上搜索。

1、C语言课程设计院系:姓名:学号:班号:指导教师:日期:2010年9月第一部分1.设计题目:一种简单份的英文词典排版系统2实践目的通过进行计算机实践,更加系统地理解和掌握C语言的基本概念、语言特点和编程技巧。利用系统提供的标准函数和自定义函数进行程序设计,培养利用C语言设计综合程序的能力。2.要求: (1)能输入和显示打入的词。 (2)能分辨出单词。 (3)对重复的单词和已输入的单词能自动排除。(4)能按A-Z排序排版。(5)能将运行结果以文本形式存储。(6)具有添加新单词并重新排版的能力。3.分析: 运行结果以文本形式存储,因而要提供文件份额输入输出操作;通过查找操作检查重复单词;提供排序操作。

2、实现按A-Z的顺序排版;提供插入操作添加新单词并重新排版。另外通过键盘式菜单实现功能选择。数据结构采用指针数组或二维数组。以回车键或者空格键作为单词输入结束标志对重复的单词自动排除排除可选第一章的查找方法,数据结构可采用指针和数组。 第二部分1总体设计整个系统被设计为单词录入模块,文件存储模块和单词浏览四个模块。其中单词录入模块要完成输入单词,检查是否重复,排序操作。文件存储模块把存放单词的词组中的数据写入文件。单词浏览模块完成英文词典的输出,即文件的输出操作。这四个模块是整体的设计思路,设计核心,整个程序的设计都将围绕这四个模块进行,各个模块都相互衔接,所以需要在设计好各个部分地同时,还要把。

3、握好各个部分的连接。以下这个是简单的设计模块:英文词典排版系统单词录入文件存储单词浏览2详细设计按照上面的整体思路,分别设计各个模块。单词录入模块要完成输入单词,检查是否重复,排序操作。是设计程序的核心部分,对于检查是否重复,以及排序两个主要方面,我在设计中采用了两个结构体。文件存储模块把存放单词的词组中的数据写入文件,这个模块还需具有天将新单词的功能。单词浏览模块完成英文词典的输出,即文件的输出操作。将文件储存模块的内容输出。流程图输入单词检查是否重复删除 No yesno排序操作文件存储 单词输出主函数一般设计的简洁,只提供输入,输出,功能处理和输出部分的函数使用。其中各功能模块选择菜单方。

4、式。以下是主要的设计程序:程序#define N 1000char dicN20;void main()Cheak();sort();Work(); 该程序以菜单的形式简要反映了主要的设计思路。包含了几个主要模块的核心部分。3各功能模块设计1 单词录入单词可是字符型,输入时可采用字符型数组;这是一个重要的模块,包含设计的几个重要部分, 这个模块包含着几个功能,输入单词,检查单词,删除重复的单词,并且对单词进行排序,比较复杂。流程图如下: 输入单词检查单词,并排序由于需要检查是否有多于的单词,而且还要对单词进行排序,所以这个模块需要采用结构体。(1)对单词进行排序输入单词判断条件排序以下的是程序。

5、:void Write( int r )int i;p = fopen( Data.txt, w );for( i = 0; i 0 )flag = 1;strcpy( s, dicj );strcpy( dicj, dicj+1 );strcpy( dicj+1, s );Write( r );return 0; 这个结构体采用了strcmp函数,对单词进行比较,从而完成排序。(2)检查删除重复的单词这个模块的流程图如下: 单词条件删除重复的单词以下是这个结构体的设计程序:clear();for( i = 0; i #include#include#define N 1000char dic。

6、N20;FILE *p;void clear()system(cls);void Write( int r )int i;p = fopen( Data.txt, w );for( i = 0; i 0 )flag = 1;strcpy( s, dicj );strcpy( dicj, dicj+1 );strcpy( dicj+1, s );Write( r );return 0;void Cheak()int r = 0;clear();p = fopen( Data.txt, r );while( fscanf( p, %s, dicr ) != EOF )printf( %s , di。

7、cr );r+;fclose(p);Write(r);if( r = 0 )printf( there is no word in Data.txtn );else printf( nnthere are %d words in Data.txt!n, r ); void Insert( char *d )int i;char f20;int r = Read();int flag = 0;clear();for( i = 0; i r; i+ )if( strcmp( d, dici ) = 0 )printf( the word %s has already existedn,d );fl。

8、ag = 1;break;if( flag = 0 )printf( the word %s is successfully addedn, d );strcpy( dicr, d );r+;printf( nncontinue adding,please input a word;back to main menu,input 0 :n );while( scanf( %s, f ) & ! ( f0 = 0 & f1 = 0 ) )flag = 0;for( i = 0; i r; i+ )if( strcmp( f, dici ) = 0 )clear();printf( the wor。

9、d %s has already existedn,d );flag = 1;break;if( flag = 0 )clear();printf( the word %s is successfully addedn, f );strcpy( dicr, f );r+;printf( nncontinue adding,please input a word;back to main menu,input 0 :n );Write( r );sort(); clear();return;void Find( char *s )char t20;int flag = 0;char f20;in。

10、t r = 0, c, i;int temp;p = fopen( Data.txt, r );clear();while( fscanf( p, %s, t ) != EOF )strcpy( dicr, t );r+;temp = strcmp( s, t );if( temp = 0 )c = r;flag = 1;Write( r );if( flag )printf( %ss sequence number is %d!n, s, c );elseprintf( can not find %s!n, s ); printf( nncontinue lookuping,please i。

11、nput a word;back to main menu,input 0 :n );while( scanf( %s, f ) & ! ( f0 = 0 & f1 = 0 ) )flag = 0;for( i = 0; i r; i+ )if( strcmp( f, dici ) = 0 )flag = 1;c = i+1;break;if( flag )clear();printf( %ss sequence number is %d!n, f, c );elseclear();printf( can not find %s!n, f ); printf( nncontinue looku。

12、ping,please input a word;back to main menu,input 0 :n );clear();return;void Work()int i, way;char d20;while( 1 )Print();scanf( %d, &way );switch( way )case 1: printf( please input a word : );scanf( %s, d );Insert(d );break;case 2: printf( please input a word : );scanf( %s, d );Find( d );break;case 3: printf( all the words are saved in Data.txt ! );return; case 4: clear();Cheak(); void main()Cheak();sort();Work(。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值