(1) 能输入和显示所打的单词。 (2) 能分辨出单词。 (3) 对重复的单词和已经输入的单词能自动排除。 (4) 能按A-Z的顺序排版。 (5) 能将运行结果以文本形式存储。 (6) 具有添加新单词并重新排版的能力。 二、 需求分析 运行结果以文本方式存储,因而要提供文件的输入输出操作;通过查找操作检查重复单词;提供排序操作实现按A-Z 的顺序排版;提供插入操作添加新单词并重新排版。另外通过键盘式菜单实现功能操作选择。 三、 总体设计 整个系统被设计为单词录入模块、文件存储模块和单词浏览模块。其中单词录入模块要完成输入单词、检查是否重复、排序操作。文件存储模块把存放单词的数组中的数据写入文件。单词浏览模块完成英文词典的输出,即文件的输出操作/。 数据结构采用指针数组或二维数组。以回车键或空格键作为单词输入结束标志,对重复的单词自动排除可选第一章提到的查找方法,数据结构可采用指针和数组。 四、 详细设计 #include #include #include #define N 1000 char dic[N][20]; FILE *p; /*清屏*/ void clear() { system("cls"); } /*写入文件*/ void Write( int r ) { int i; p = fopen( "Data.txt", "w" ); for( i = 0; i < r; i++ ) { fprintf( p, "%s\n", dic[i] ); } fclose(p); } /*读取文件*/ int Read() { int r = 0; 英文词典排版系统 单词录入模块 文件存储模块 单词浏览模块 p = fopen( "Data.txt", "r" ); while( fscanf( p, "%s", dic[r] ) != EOF ) { r++; } fclose(p); Write(r); return r; } /*主菜单*/ void Print() { printf( "\n\n" ); printf( "********************************************************\n" ); printf( "* way = 1 : append words *\n" ); printf( "* way = 2 : lookup words *\n" ); printf("* way = 3 : end work *\n" ); printf("* way = 4 : cheak *\n" ); printf( "********************************************************\n" ); printf( "please choose a way = " ); } /*字符排序*/ int sort( ) { int i, j, flag = 1, r; char s[20]; r = Read(); for( i = 1; i < r && flag == 1; i++ ) { flag = 0; for( j = 0; j < r-i; j++ )...