




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文本编辑器C语言课程设计报告目录1. 设计目的及要求 1.1设计目的 1.2设计要求 1.3题目解析2. 总体设计3. 详细设计 3.1流程图 3.2程序解析4. 调试分析5. 设计总结6. 心得体会7. 答辩记录8. 教师意见141.设计目的及要求11设计目的编一个程序对一个指定的文本文件进行处理,要具有统计功能,编辑功能以及查找功能等。12设计要求A) 读取一个指定文本文件,每行以回车结束,显示在屏幕上B) 统计功能:统计字符数,单词数,行数,并输出C) 编辑功能1) 将所有小写字母改成大写字母,将新的文本输出;2) 将所有大写字母改成小写字母,将新的文本输出;3) 输入被替换的字符串,及替换的内容,将新的文本输出;D) 查找功能1) 输入一个字符,在文本中查找是否存在该字符,若存在,统计 其个数,并将信息输出;2) 输入一个单词,在文本中查找是否存在该字符,若存在,统计其个数,并将信息输出;1.3题目解析课程的第一要求就是读取一个指定的文本文件,而且之后还有对字符串,字符数组的运用,所以要使用文本函数将文本中的字符输入到字符数组中。完成第一步之后就是对字符串的处理了。2总体设计因为是对指定的文本文件进行处理,所以需要首先运用fscanf函数将文本文件中的字符读入到指定的数组中,然后才能进行处理。对于字符串的处理,首先在头文件中使用#include,因为下文要使用有关字符串的函数。具体的要用到strlen函数。3详细设计31流程图Fscanf函数将指定的文本文件中的内容读入指定的字符数组中。根据读入数组的字符个数统计出一共字符的个数,再统计出空格和回车的个数,最后两者之差就是字符的个数。输入4输入需要被替换的字符或字符串输入替换的字符或字符串进行替换输入3将所有大写字母变成小写字母输入2将所有小写字母变成大写字母输入1查找统计单词或字符的个数运用switch函数,让运行者选择所需要的功能统计单词的个数,行数3.2程序解析因为下文要运用到字符串函数,所以运用#include头文件#include#includevoid main()预先定义整形和字符型变量char file30=0,m15=0;/file是文件地址,m是下面case 1里用的int c,n,s;/c用于switch,n,s是case 1里用的printf(请输入源文件地址:);scanf(%s,file);char a2000=0,b2000=0;FILE *fp=fopen(file,r);/这是打开文件并把文件地址指针给fpif(!fp)/若是没能打开则运行printf(源文件不存在或地址输入错误!n);int i=0;fscanf(fp,%c,&ai);/读取第一个字符给a0while(ai+) /读取字符并输出fscanf(fp,%c,&ai);注释:fscanf函数用于从磁盘文件中读入数据,送到程序中进行处理,其一般表达形式为:fscanf(文件指针,格式字符串,输入参数列表)与fprintf函数类似,fscanf函数调用时同样返回int型数值,其返回值有两种:函数调用成功时:返回时间输入的字符数函数调用失败时:返回EOFprintf(%c,ai-1);i-;int j=0,k=0;for(;ji;j+)/统计字符个数 40是转义字符空格if(aj=40|aj=n)k+;j=i-k;/i是总共字符的个数, k是空格与换行的个数printf(n此文本中有%d个字符,,j);for(j=0,k=0;ji;j+)/统计单词的个数 if(aj!=40&aj!=n)&(aj+1=40|aj+1=n)k+;if(ai-1!=40&ai-1!=n) k+;/ai-1是最后一个字符 得判断一下最后一个是不是空格或换行 若不是k就得再加一printf(有%d个单词,,k);for(j=0,k=1;ji;j+)/统计行数if(aj=n)k+;统计和编辑功能printf(共%d行。,k);do printf(n功能:统计单词或字符个数请输入1,小写变大写请输入2,大写变小写请输入3,替换字符串请输入4,退出请输入5n);scanf(%d,&c);FILE *fp;int s1,s2,x,y,z;char str120=0,str220=0;用switch语句使得运行程序的人可以对功能进行选择。int d200=0;switch(c)case 1:printf(请输入你要统计的单词或字符:);scanf(%s,m);s=strlen(m);k=0;for(j=0;ji;j+)n=0;while(mn=aj&ns) n+,j+;if(n=s) k+,j-;注释:当m与a的字符数组,不仅对应的字符完全一样,而且长度还要一样,这样才可以统计出一个字符,k累加一。printf(%s共有%d个n,m,k);break;case 2:printf(请输入转变后文件的保存路径:);scanf(%s,file);fp=fopen(file,w);注释: fopen是c语言中文件打开的函数,该函数的声明在头文件stdio.h中,这里“w”是write的缩写,设置对文件“写”的权限。printf(转变后的文本为:0);for(j=0;ji;j+)if(a=aj&aj=z)bj=aj-32;else bj=aj;fprintf(fp,%c,bj);printf(%c,bj);printf(文件保存已完成!0);fclose(fp);break;case 3:printf(请输入转变后文件的保存路径:);scanf(%s,file);fp=fopen(file,w);printf(转变后的文本为:0);for(j=0;ji;j+)if(A=aj&aj=Z)bj=aj+32;else bj=aj;fprintf(fp,%c,bj);printf(%c,bj);printf(0文件保存已完成!0);fclose(fp);break;case 4:printf(请输入需要被替换的字符串:);scanf(%s,str1);printf(n请输入用来替换的字符串:);scanf(%s,str2);printf(n请输入转变后文件的保存路径:);scanf(%s,file);fp=fopen(file,w);s1=strlen(str1);s2=strlen(str2);k=0;while(bk)/消除由于case2和case3带来的影响bk+=0;k=0;for(j=0;ji;j+)n=0;while(str1n=aj&ns1) n+,j+;if(n=s1) dk+=j-n,j-;这里的k就是用来统计需要被替换的字符的个数.dk则表示在被替换字母前有多少个字符x=0,y=0,z=0;while(xk)while(zdx)by+=az+;n=0;while(ns2&z=i)by+=str2n+;x不断累加,直到文本中所有的被替换字符串的个数.不断进行循环z+=s1;x+;while(zi)by+=az+;for(x=0;xy;x+)fprintf(fp,%c,bx);printf(%c,bx);fclose(fp);break;case 5:break;default:printf(输入错误!);while(c!=5);4.程序运行展示首先在D盘建立c_language的文件夹,并在其中建立a、b、c、d四个txt文件,其中a.txt是指定的文本文件。第一步:读取指定的文本文件,并将信息输出功能一功能二功能三功能四功能五5.设计总结文本编辑器这个c语言课程设计课题,主要是对文本文件进行处理,最主要是将指定的文本文件中读取出来并且将文件中的字符赋到字符数组中,然后对字符进行处理。在编程中遇到的困难主要是如何将指定的文本文件读取出来。其中涉及到文件的打开,读取,结束。在刚开始编程的时候,试过许多的函数。比如说,fread函数,在工程应用中,有时候需要从文件中对数据进行批量的复制或存储,所以要使用数据段处理函数fread和fwrite函数。但是这个函数是事先要知道你所要读取的数据段的大小,所以最终并没有采取这个函数。除了读取函数,还有对字符串的处理。比如说在功能四中,被替换和替换的字符串长度不一样的话,还要对字符的相应位置进行处理。除了这些困难,其他就是如何将这个程序编写的规范,清楚。因为其中运用到许多的循环,选择语句。比如for,while,switch语句,还有语句的嵌套,所以比较复杂。最终通过查询书本,向老师同学请教,最后这些困难都得以解决。6.心得体会及致谢经过这次c语言的编程,使我更加懂得c语言的逻辑性。想要编好一个程序,必须要对c语言中的各个函数了解而且要熟练掌握运用。在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 影响跨境电商增长的全球贸易壁垒分析
- 辽宁省辽西重点高中2025届高三下学期模拟预测试题 政治 含答案
- 统筹推进教师教育能力提升的背景意义及必要性
- 白酒行业创新驱动与转型路径
- 多元化学习模式在语文教学中的应用
- 国际儿童节课件4
- 智能健美操设备的设计与应用前景
- 新能源与抽水蓄能的综合利用方案
- 智游新纪元模板
- 电商节购物金融攻略
- 设备故障应急维修预案
- 矿井电气安全培训课件
- (3篇)2025年春季形势与政策大作业:怎样正确理解全过程人民民主的历史逻辑、实践逻辑、理论逻辑?与专题测验(1-5)附答案
- 吉林2025年生态环境部松辽流域生态环境监督管理局生态环境监测与科学研究中心招聘笔试历年参考题库附带答案详解
- 景区设备联营协议书
- TSG Z7002-2022特种设备检测机构核准规则
- 锅炉检修作业安全保障方案
- 2025-2030中国三醋酸纤维素膜行业市场现状供需分析及投资评估规划分析研究报告
- 精麻药品培训课件
- 中国粮食面试题库及答案
- 统编版(2024)七年级下册历史期末复习全册知识点提纲详细版
评论
0/150
提交评论