c语言编写英语词典软件,C语言课程设计一种简单的英文词典排版系统的实现.doc...

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

目 录

课程设计评语2

目 录3

1.课程论文题目4

2.程序设计思路4

3.功能模块图5

4.数据结构设计5

5.算法设计6

6.程序代码13

7.程序运行结果22

8.编程中遇到的困难及解决方法25

9.总结心得及良好建议26

10.致谢26

1.课程论文题目

一种简单的英文词典排版系统的实现

【要求】

(1)能输入和现实打入的单词

(2)能分辨出单词

(3)对重复的单词和已经输入的单词能自动排除

(4)能按A~Z的顺序排版

(5)能将运行结果以文本形式储存

(6)具有添加新单词蹦重新排版的能力

[提示]

(1)需求分析:运行结果以文本形式储存,因而要提供文件的输入输出操作;通过查找操作检查重复单词;提供排序操作现实按A~Z的顺序排版;提供插入操作添加新单词并重新排版。另外通过键盘式菜单实现功能选择。

(2)总体设计:整个系统被设计为单词录入模块,文件存储模块和单词浏览模块。其中单词录入模块要完成输入单词,检查是否重复,排序操作。文件存储模块把存放单词的数组中的数据写入文件。单词浏览模块完成英文词典的输出,即文件的输出操作。

(3)数据结构采用指针数组或二维数组。以【Enter】键或者空格键作为单词输入结束标志,对重复的单词自动排除可选用查找方法,数据结构可采用指针和数组。

4.数据结构设计

数据结构采用指针数组或二维数组:char* dictionary[N]; 或 char dictionary[N][20]。其中N是宏定义#define N 256 (表示单词个数)

(1)单词录入模块

输入一个单词,存放在一个临时字符数组中,以空格或回车表示单词的结束(这也是默认操作),然后换行输出刚刚输入的单词。采用插入排序算法的思想把该单词插入单词数组中,不同的是如果两个单词相同则不插入。

(2)文件存储模块

采用fwrite或fprintf把单词数组输入到文件中。

(3)单词浏览模块

采用fread或fscanf把单词从文件中读出,然后输出。

5.算法设计

1.主函数

【流程图】

N

Y

【程序】

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

#include "ctype.h"

#define ROWS 256

#define COLS 32

static 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.");

puts("\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;

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值