c语言英文排版程序,C语言设计—英文排版系统精品.docx

一、C语言课程设计的目的:

高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。其目 的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际

有机的结合起来,锻炼同学的分析解决实际问题的能力。提高学生适应实际,实践编程的能

力。

二,要求一种简单的英文词典排版系统的实现

(1)能输入和显示打入的单词。

(2)能分辨出单词。

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

(4)能按的顺序排版。

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

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

三.构架

结束

四。流程图

五。程序说明

程序第一次运行时,会创建一个“ word, txt "(不包括引号)的文本文件,然后要求输入单词。若要退

出,请不要点DOS窗口的小叉叉,输入d即可。因为程序在结束之前,对数组中的

单词重新排序,并存储到文件中。

#i nclude "stdio. h〃

^include "stdlib. h"为 exit 0 函数提供原型;

#i nclude "stri ng. h"字符串处理函数原型;

#i nclude "ctype. h"字符处理函数原型;

#defi ne ROWS 256

define COLS 32定义“字典”的大小:可存放256个单词,每个单词的长度不超过

31

static FILE *fp;定义文件指针:内部链接,文件作用域;

static char a [ROWS] [COLS];定义数组:内部链接,文件作用域;该数组的作用是将文 件的内容复制进来,并加以处理。因为处理数组比处理文件方便。

char get_option(void);接收用户的选项,防止误操作。若输入“a;"(不包括引号),那

么将视为选项a

int b(intcount);完成选项b的作用接收新单词;

void cCeharint count);完成选项c的作用一一通过指针对数组排序,实际数组元

素位置未改变;

int check (char arr[], int count);对输入的单词进彳丁分辨,若输入ni hao,将视为单词

Bi,并且提示并剔除重复的单词;

void storage (char *pt[], int count); 中。

-在程序结束z前重新排序存储数组屮的单词到文件

六。程序源代码。

#i nclude "stdio. h"

开始#in elude "stdlib? h" #include "string? h" #in elude "ctype. h" #defi ne ROWS 256 #defi ne COLS 32 static FILE *fp; static char a[ROWS][COLS]; char get_opti on( void): int b(i nt coun t);

开始

void c(char *pt[], i nt coun t); int check(char arr 11, i nt coun t); void storage(char

*pt [], i nt coun t) ; int main( void)

{ puts ("在新行输入END

{ puts ("在新行输入END结束输入:

int i, co unt;

int start;

char *pt[ROWS]; char

输入单词

每行一词 判断单词是否重复 重复进行替换且不录入

ch, le n; char in put;

输入EKD结東输入

if ((fp=fope n( "words, txt", "a+") )=NULL) {

fputsC不育呂打■开或建立文件I\rT, stderr);

exit(l);

}

fseek(fp, OL, SEEK.END);

start=(i nt)ftell(fp)/32;

coun t=start;

rewi nd(fp);

if (fread (a, 32* sizeof (char), st art, fp) =0) { i=0;

puts("开始创建词库”);

puts("请输入单词(每行一个门;

fflush(stdi n);

if (strncmp(a[i], "END", 3)=0)

{

coun t+二i; break;

} if(check(aEi], i)) con ti nue;

puts ("\t\t *********************欢迎使用 字典排版系统 *******************\n\n")

puts CMENU");

puts ("您要做些什么? ”);

puts ("a.显示已有的单词b

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值