课程设计文本格式化
认证信息
个人认证
孙**(实名认证)
天津



《课程设计文本格式化》由会员分享,可在线阅读,更多相关《课程设计文本格式化(16页珍藏版)》请在人人文库网上搜索。
1、附件1:学 号:课程设计题目文本格式化学院计算机科学与技术学院专业计算机科学与技术班级计算机1104班姓名成霖指导教师吴利军2013年 6月 17日题目:文本格式化一,问题描述:试写一个文本格式化程序可以处理一个输入文件,它按照用户指定的如下版面规格参数重排版面:实现页内调整、分段、分页等文本处理功能,排版结果存入输出文本文件中。1输出文件中字与字之间只留一个空格符,即实现多余空格符的压缩。2输出文件中,任何完整的字不能分割在两行,行尾可以不齐,但行首要对齐。3将页号印在页底空行中第2行的中间位置上。4版面要求的参数见题集p117。5测试用例自己设计。二,设计:1,版面要求的参数要包含:页长(
2、Page Length)每页内文字(不计页号)的行数。页宽(Page Wedth)每行内文字所占最大字符数。左空白(Left Margin)每行文字前的固定格数。头长(Heading Length)每页页顶所空行数。脚长(Footing Length)每页页底所空行数(含页号行)起始页号(Starting Page Number)首页的页号。2,概要设计:?1: void printOut()该函数的功能是:格式化文本文件后必要提示用户的信息说明?2: void writeOut(FILE * fp2,char c1)该函数的功能是:将字符输出到文本文件和屏幕?3: int zuokongba
3、i(FILE * fp2)该函数的功能是:实现文本参数格式左空白4: void pageNumber(FILE * fp2,char * alndex,int * page)该函数的功能是:输出当前页码5: void out(int * columns,char * array,int * linage,FILE * fp2,int * page,int * size)该函数的功能是:判断是否输出到文本文件和屏幕6: void linageFull(FILE * fp2,int * linage,int * columns,int * page)该函数的功能是:输出页首的格式头长 +左空白 7
4、: void readln(FILE * fp1,FILE * fp2)该函数是整个程序的核心,执行程序的主要逻辑判断8: void main()3,实验设计程序代码:#in clude #in clude/页长一页最大的行数/页宽一行最大的字符数左空白一行开始输出的空格数/头长一页开始输出的空行数/脚长每页最后空 5行II起始页号#in clude in t (PageLe ngth) = 56;int PageWedth = 60;int LeftMargin = 10;int Headi ngLe ngth = 5;int Footi ngLe ngth = 5; int Stari n
5、gPageNumber = 1;int page = 1;II记录页数int i = 0;循环变量char a5;记录 page 的 char 类型char * alndex = a; II数组a的首地址函数声明后面的函数调用了它void lin ageFull(FILE * fp2,i nt * lin age,i nt * colu mn s,i nt * page);II函数1:void prin tOut()II输出头文件中的所以整形变量II这个函数中的参数全部来自头文件prin tf(n ”);printf(格式化文本文件完毕n);printf(版面的参数如下:n);printf(页
6、长:%dn”,PageLength);printf(页宽:%dn,PageWedth);printf(左空白:%dn,LeftMargin);printf(头长:%dn,HeadingLength);printf(脚长:%dn,FootiingLength);printf(起始页号:%dn”,StaringPageNumber);prin tf(n);prin tf(特别说明:本程序只支持英文格式化,对于中文格式化存在乱码问题。n);prin tf(n ”);/函数2:void writeOut(FILE * fp2,char c1) /输出到文本文件 2 和屏幕char ch1;ch1 =
7、fputc(c1,fp2);接收从文本文件1中读出的一个字符,并且保存到文本文件2中prin tf(%c,ch1);把这个字符输出到外设(屏幕)/函数3:int zuoko ngbai(FILE * fp2)/ 左空白for(i=0; i=0; i-)writeOut(fp2,*(aIndex+i); /向文本文件 2 中输出 page(*page)+;/ 指向下一页 /函数5:void out(i nt * colu mn s,char * array,i nt * lin age,FILE * fp2,i nt * page,i nt * size)/ 输出if(*(colu mn s)+
8、1+strle n(array) 60) /判断这一行是否还能够输出空格加一个单词/这一行不能再输出了,开始换行if(*(li nage)50)/判断这一页是否已经印满linageFull(fp2,linage,columns,page);/ 转至U下一页for(i=0; i*(size); i+)writeOut(fp2,*(array+i);把保存在数组中的一个字输出到文本文件2中(*(columns)+;/输出一个字符,这一行的字符数就增加一个(*(size) = 0;/输出之后就开始重新向数组array中读入字符,所以size要归0(*(array) =0;/如果是多个空格连在一起,那
9、么就需要把array数组第一个设为完毕字符。else /这一页还没印满,换行后开始输出writeOut(fp2,n); 换行(*(li nage)+;/*(colu mn s)=0;(*(colu mn s) = zuoko ngbai(fp2); / 左空白 10for(i=0; i(*(size); i+)writeOut(fp2,(*(array+i);/通过循环向文本文件2中输入字(*(colu mn s)+;(*(size) = 0;(*(array) =0;else /这一行还没有满,还可以再输出writeOut(fp2,);(*(colu mn s)+;for(i=0;i*siz
10、e; i+)writeOut(fp2,*(array+i);(*(colu mn s)+;(*(size) = 0;(*(array) =0;开始下一页的打印/函数6:void lin ageFull(FILE * fp2,i nt * lin age,i nt * colu mn s,i nt * page)/完成页的尾部格式空一行后居中输出页码page再空3行writeOut(fp2,n);/ 空一行for(i=0; i29; i+)/ 居中输出页码 writeOut(fp2,);pageNumber(fp2,a In dex,page);for(i=0; i3; i+)writeOut(
11、fp2,n);/再空 3 行*li nage=0;开始打印第二页。实现输出页首的格式头长+左空白for(i=0; i5; i+)/ 头长 5writeOut(fp2,n);*linage+;/ 已经占有 linage 行*columns = zuokongbai(fp2); / 左空白 10/函数7:void readI n(FILE * fp1,FILE * fp2)/读入文本文件int bla nkNumber=O;int lin age = 0;int colu mns = 0;/记录空格的数量/记录行数/记录单行的字节数char array61 = 0; 存一个单词char * arr
12、ayin dex = array;int size = 0;II初始化单词的长度for(i=0; i5; i+) II 头长 5 writeOut(fp2,n);linage+;/ 已经占有 linage 行colu mns = zuok on gbai(fp2); / 左空白 10for(i=0; i50)/判断这一页是否已经印满/印满了要换页输出lin ageFull(fp2,&li nage,& colu mns,&page);for(i=0; i7; i+)段首缩进8字节 writeOut(fp2,); colu mn s+;else/这一页没有印满writeOut(fp2,n); 换
13、行lin age+;colu mn s=0;colu mns = zuok on gbai(fp2); / 左空白 10for(i=0; i61)/程序中设计一个字不能超过60个字符,这里判断条件为完毕符 0.printf(字符格式错误!哪有这么长的单词!n);break; /完毕 while 循环/函数8: /程序的入口void mai n()FILE * fpl,* fp2;/char fileName_o ne100;/char fileName_two100;/fp1指向读入的文本文件,fp2指向输出的文本文件 保存要格式化文本文件的文件名保存格式化之后输出文本文件的文件名printf
14、(”请输入要格式化文件的文件名(包括后缀名):n);gets(fileName_ on e);if(fp 1= fope n(fileName_o ne,r)=NULL)prin tf(The file %s was n ot fope n!n ,fileName_o ne); exit(0);/得到要进展格式化的文本文件1的地址printf(”请输入输出文件的文件名(包括后缀名):n);gets(fileName_two);if(fp2=fope n(fileName_two,a)=NULL)prin tf(The file %s was not fope n!n ,fileName_two
15、); exit(0);/得到格式化后要保存到文本文件2的地址readI n( fp1,fp2);II读入文本文件开始格式化prin tOut();II 参数说明fclose(fpl);fclose(fp2);II关闭文件(把文件缓冲区的数据送入硬盘中)II关闭文件(把文件缓冲区的数据送入硬盘中)3,调试过程:1:开始我设计页码是整形,当格式化文本文件过大时,页码输出就出现了问题。 实现输出页码是用 fputc这个函数,它是实现字符的输出,就把整形的页码数转换为 ASCII码形式输出了。改为:把整形的页码转换为字符型用一个字符数组来保存。每次输出页码是就是输出这个数组中的数据。这样就实现了页码的
16、完整输出。2读一个字符判断是否为:空,。占不考虑其他条件不是就直接输出。导致不能实现任何完整的字都没有被分割在两行这个功能。改为:读一个字符判断是否为:空字符,。占不考虑其他条件不是就保存在数组中,这个数组就是保存一个字的 作用。判断输出就是一个一个字的输出,这样就实现了任何完整的字都没有被分割在 两行这个功能。4,运行结果:本人运行程序的到的结果:测试数据1.txtThe use of sile nee in mun icati on is differe nt from culture to culture. Sile nee can muni cate agreeme nt, con f
17、usi on, respect, sad ness, or any nu mber of meanin gs.In easter ncultures, sile nee has long bee n regarded as a virtue. While in western cultures, sile nee has gen erally bee n con sidered socially disagreeable.To most people in the Un ited States, sile nee Theuse of sile nee The use of sile nee i
18、n muni cati on is differe nt from culture to culture. Sile nee can muni cate agreeme nt, con fusi on, respect, sad ness, or any nu mber of meanin gs.In easter ncultures, sile nee has long bee n regarded as a virtue. While in western cultures, sile nee has gen erally bee n con sidered socially disagr
19、eeable.To most people in the Un ited States, sile nee Theuse of sile nee The use of sile nee in muni cati on is differe nt from culture to culture. Sile nee can muni cate agreeme nt, con fusi on, respect, sad ness, or any nu mber of meanin gs.In easter ncultures, sile nee has long bee n regarded as
20、a virtue. While in western cultures, sile nee has gen erally bee n con sidered socially disagreeable.To most people in the Un ited States, sile nee Theuse of sile nee The use of sile nee in muni cati on is differe nt from culture to culture. Sile nee can muni cate agreeme nt, con fusi on, respect, s
21、ad ness, or any nu mber of meanin gs.In easter ncultures, sile nee has long bee n regarded as a virtue. While in western cultures, sile nee has gen erally bee n con sidered socially disagreeable.To most people in the Un ited States, sile nee Theuse of sile nee The use of sile nee in muni cati on is
22、differe nt from culture to culture. Sile nee can muni cate agreeme nt, con fusi on, respect, sad ness, or any nu mber of meanin gs.In easter ncultures, sile nee has long bee n regarded as a virtue. While in western cultures, sile nee has gen erally bee n con sidered socially disagreeable.To most peo
23、ple in the Un ited States, sile nee Theuse of sile nee The use of sile nee in muni cati on is differe nt from culture to culture. Sile nee can muni cate agreeme nt, con fusi on, respect, sad ness, or any nu mber of meanin gs.In easter ncultures, sile nee has long bee n regarded as a virtue. While in
24、 western cultures, sile nee has gen erally bee n con sidered socially disagreeable.1To most people in the Un ited States, sile nee Theuse of sile nee The use of sile nee in muni eati on is differe nt from culture to culture. Sile nee can muni eate agreeme nt, con fusi on, respeet, sad ness, or any n
25、u mber of meanin gs.In easter ncultures, sile nee has long bee n regarded as a virtue. While in western cultures, sile nee has gen erally bee n con sidered socially disagreeable.To most people in the Un ited States, sile nee Theuse of sile nee The use of sile nee in muni eati onis differe nt from cu
26、lture to culture. Sile nee can muni eate agreeme nt, con fusi on, respect, sad ness, or any nu mber of meanin gs.In easter ncultures, sile nee has long bee n regarded as a virtue. While in western cultures, sile nee has gen erally bee n con sidered socially disagreeable.To most people in the Un ited States, sile nee Theuse of sile nee附截图:To most people in the United States, silence The use of silence The use of silence in comnunicacion is different fculture to cultureSHence can cofDinun icate agieenient ednf
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省深圳市成考专升本2023年大学语文预测卷(含答案)
- R1快开门式压力容器操作试题及答案
- 环境影响评价技术方法模拟124真题含答案解析
- 山东省威海市成考专升本2023年医学综合自考预测试题(含答案)
- 【轨道物流】气动物流传输系统方案
- 《行政职业能力测验》2023年公务员考试衡阳市石鼓区巅峰冲刺试卷含解析
- 单回路控制系统实验(过程控制实验指导书)
- 小组交流合作学习实施方案
- 广东省阳江市成考专升本2022-2023学年计算机基础真题及答案
- 分子筛制氧机原理简介
- 招标文件编号的自编
- 灌浆施工技术要求
- 九年级化学上册第二单元课题1空气随堂练习(附模拟试卷含答案)
- 施工安全考试题(卷)试题(库)与答案解析
- 动火、进入受限空间、吊装、高处、盲板抽堵、动土、断路、设备检维修等作业安全管理制度
- 内蒙古自治区鄂尔多斯市成考专升本2023年英语真题及答案
- 四川省广元市成考专升本2021-2022学年大学语文第二次模拟卷(附答案)
- 2022-2023学年陕西省咸阳市普通高校对口单招英语一模测试卷(含答案)
- 原油和石油化工产品的储存安全技术措施
- 食品添加剂采购合同协议书