




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
前 言一、C语言课程设计的目的: 高级语言课程设计是学习完高级语言程序设计课程后进行的一次全面的综合性上机实验。其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。二,要求一种简单的英文词典排版系统的实现(1) 能输入和显示打入的单词。(2) 能分辨出单词。(3) 对重复的单词和已经输入的单词能自动排除。(4) 能按AZ的顺序排版。(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个单词,每个单词的长度不超过31 static FILE *fp;定义文件指针:内部链接,文件作用域; static char aROWSCOLS;定义数组:内部链接,文件作用域;该数组的作用是将文件的内容复制进来,并加以处理。因为处理数组比处理文件方便。 char get_option(void);接收用户的选项,防止误操作。若输入“a;”(不包括引号),那么将视为选项a int b(int count);完成选项b的作用接收新单词; void c(char *pt, int count);完成选项c的作用通过指针对数组排序,实际数组元素位置未改变; int check(char arr, int count);对输入的单词进行分辨,若输入 ni hao ,将视为单词 ni ,并且提示并剔除重复的单词; void storage(char *pt, int count);在程序结束之前重新排序存储数组中的单词到文件中。六。程序源代码。#include stdio.h #include stdlib.h #include string.h #include ctype.h #define ROWS 256 #define COLS 32 static FILE *fp; static char aROWSCOLS; 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 *ptROWS; char ch, len; 输入END结束输入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(iROWS&scanf(%s, ai)=1) fflush(stdin); if(strncmp(ai,END,3)=0) count+=i; break; if(check(ai, i) continue; i+; puts(tt*欢迎使用字典排版系统*nn);puts( MENU );puts(您要做些什么?); puts(a. 显示已有的单词 b. 添加新单词); puts(c. 对已有的单词进行排序 d. 退出); puts(nntt*n);while(input=get_option()!=d) 开始if(input=a) puts(已有的单词:); 判断命令for(i=0;icount;i+) 转到个命令printf( ); puts(ai); 结束 if(input=b) puts(开始创建词库);puts(请输入新的单词(每行一个);puts(在新行输入END结束输入: ); count=b(count); if(input=c) puts(对单词进行排序:); c(pt, count); for(i=0;icount;i+) printf( ); puts(pti); puts(还要做些什么?); storage(pt,count); fclose(fp); puts(谢谢使用,再见!); return 0; char get_option(void) char ch; while(ch=getchar()d) while(ch=getchar()!=n) ; puts(请输入a,b,c或者d.); fflush(stdin); return ch; int b(int count) int i; i=count; while(iROWS&scanf(%s, ai)=1) fflush(stdin); if(check(ai, i) continue; if(strncmp(ai,END,3)=0) count=i; break; i+; return count; void c(char *pt, int count) int i,j; char *temp; for(i=0;iROWS;i+) pti=ai; for(i=0;icount;i+) for(j=i+1;j0) temp=pti; pti=ptj; ptj=temp; int check(char arr, int count) int i; int flag=0; for(i=0;istrlen(arr);i+) if(isalpha(arri)=0) printf(%s不是一个单词.n,arr); flag=1; break; for(i=0;icount;i+) if(strncmp(ai,acount,strlen(acount)+1)=0) puts(重复的单词!); flag=1; return flag; void storage(char *pt, int count) int i,j; char ptrROWSCOLS; c(pt, count); for(i=0;icount;i+) for(j=0;ptij!=0;j+) ptrij=ptij; fp=fopen(words.txt,w+); rewind(fp); fwrite(ptr,32*sizeof(char),count,fp); 七心得体会这两星期一直在做程序设计,今天终于完成了,心里别提有多兴奋。看着这两礼拜自己的劳动成果,这两个礼拜发生的种种历历在目。还记得刚开始时,进展可以用一筹莫展来形容,当时真想放弃,可自身不轻易认输的性格支持着我。同时,我也清楚地知道21世纪挑战与机遇并存,没有足够的知识储备必将被时代所抛弃。C语言作为国际上广泛流行的通用程序设计语言,在计算机的研究和应用中已展现出强大的生命力。C语言兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性。虽然我们C语言已有四个月,但一直都重概念、轻实践,这次设计对我们来说是千载难逢的机会,无论如何都要好好把握。心态一转变,整个人的精神状态都非同寻常,而且这种程序设计课比一般的课堂教学更具灵活性,它可以始终使人处于兴奋之中。高中的教育模式化倾向太强,整齐划一的教育模式使学校变成“工厂”,学生成为统一式模子加工出来的“标准件”。但大学的程序设计实践课促进我们的个性充分、健康地发展,最大限度地激发我们的学习热情和创造热情。我可以说若你一一欣赏我们的设计,你一定会眼花缭乱,因为它们各种各样、各有千秋。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅游景区车位划线及游客引导服务合同
- 草场租赁与草原旅游观光合作协议范本
- 出租屋租赁合同(含健身房、瑜伽馆及健身器材)
- 亚洲企业南美投资合作框架协议
- 场地建设合同常见违规行为防范及监管措施
- 餐饮企业产品研发顾问服务协议
- 乡村民宿租赁合同范例大全
- 工业园区场地调研委托合同范本
- 房屋出租可转租条件审查及执行服务协议
- 肥大细胞案例分享
- 《病理检验技术》课程标准
- 封条模板A4直接打印版
- 服务中心及办公室装修设计方案
- 回弹法检测混凝土强度计算表(自动计算)
- 阀门系数Cv和KV值计算表格(带公式)
- 少儿编程scratch3.0安装使用说明文档
- 小班音乐游戏《会跳舞的跳跳糖》原版有声动态PPT课件
- 项目经理变更申请表
- 正畸治疗中的口腔健康教育和卫生保健课件
- 现代火电机组AGC控制问题的解决平台--INFIT
- 完整版8D改善报告
评论
0/150
提交评论