课程设计(文本格式化)

上传人:re****.1 文档编号:510244047 上传时间:2023-02-01 格式:DOC 页数:15 大小:348KB
返回 下载 相关 举报
课程设计(文本格式化)_第1页
第1页 / 共15页
课程设计(文本格式化)_第2页
第2页 / 共15页
课程设计(文本格式化)_第3页
第3页 / 共15页
课程设计(文本格式化)_第4页
第4页 / 共15页
课程设计(文本格式化)_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《课程设计(文本格式化)》由会员分享,可在线阅读,更多相关《课程设计(文本格式化)(15页珍藏版)》请在金锄头文库上搜索。

1、优质文档附件1:学 号: 27课 程 设 计题 目文本格式化学 院计算机科学和技术学院专 业计算机科学和技术班 级计算机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、屏幕 3:int zuokongbai(FILE * fp2)该函数的功能是:实现文本参数格式左空白 4:void pageNumber(FILE * fp2,char * aIndex,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)该函数的功能

4、是:输出页首的格式头长+左空白 7:void readIn(FILE * fp1,FILE * fp2)该函数是整个程序的核心,执行程序的主要逻辑判定 8:void main()3,试验设计程序代码:#include#include#includeint (PageLength) = 56;/页长一页最大的行数int PageWedth = 60;/页宽一行最大的字符数int LeftMargin = 10;/左空白一行起先输出的空格数int HeadingLength = 5;/头长一页起先输出的空行数int FootingLength = 5;/脚长每页最终空5行int StaringPa

5、geNumber = 1;/起始页号int page = 1;/记录页数 int i = 0;/循环变量 char a5;/记录page的char类型 char * aIndex = a;/数组a的首地址 /函数声明后面的函数调用了它 void linageFull(FILE * fp2,int * linage,int * columns,int * page);/函数1:void printOut()/输出头文件中的所以整形变量/这个函数中的参数全部来自头文件printf(n);printf(格式化文本文件完毕n);printf(版面的参数如下:n);printf(页长:%dn,PageL

6、ength);printf(页宽:%dn,PageWedth);printf(左空白:%dn,LeftMargin);printf(头长:%dn,HeadingLength);printf(脚长:%dn,FootingLength);printf(起始页号:%dn,StaringPageNumber);printf(n);printf(特殊说明:本程序只支持英文格式化,对于中文格式化存在乱码问题。n);printf(n);/函数2:void writeOut(FILE * fp2,char c1)/输出到文本文件2和屏幕char ch1;ch1 = fputc(c1,fp2);/接收从文本文件

7、1中读出的一个字符,并且保存到文本文件2中printf(%c,ch1);/把这个字符输出到外设(屏幕)/函数3:int zuokongbai(FILE * fp2)/左空白for(i=0; i=0; i-)writeOut(fp2,*(aIndex+i);/向文本文件2中输出page(*page)+;/指向下一页/函数5:void out(int * columns,char * array,int * linage,FILE * fp2,int * page,int * size)/输出if(*(columns)+1+strlen(array) 60)/判定这一行是否还能够输出空格加一个单词

8、/这一行不能再输出了,起先换行if(*(linage)50)/判定这一页是否已经印满linageFull(fp2,linage,columns,page);/转到下一页for(i=0; i*(size); i+)writeOut(fp2,*(array+i);/把保存在数组中的一个字输出到文本文件2中(*(columns)+;/输出一个字符,这一行的字符数就增加一个(*(size) = 0;/输出之后就起先重新向数组array中读入字符,所以size要归0(*(array) =0;/假如是多个空格连在一起,那么就须要把array数组第一个设为完毕字符。else/这一页还没印满,换行后起先输出w

9、riteOut(fp2,n);/换行(*(linage)+;/*(columns)=0;(*(columns) = zuokongbai(fp2);/左空白10for(i=0; i(*(size); i+)writeOut(fp2,(*(array+i);/通过循环向文本文件2中输入字(*(columns)+;(*(size) = 0;(*(array) =0;else/这一行还没有满,还可以再输出writeOut(fp2, );(*(columns)+;for(i=0;i*size; i+)writeOut(fp2,*(array+i);(*(columns)+;(*(size) = 0;(

10、*(array) =0;/函数6:void linageFull(FILE * fp2,int * linage,int * columns,int * page)/起先下一页的打印/完成页的尾部格式空一行后居中输出页码page再空3行writeOut(fp2,n);/空一行for(i=0; i29; i+)/居中输出页码writeOut(fp2, );pageNumber(fp2,aIndex,page);for(i=0; i3; i+)writeOut(fp2,n);/再空3行*linage=0;/起先打印其次页。实现输出页首的格式头长+左空白for(i=0; i5; i+)/头长5wri

11、teOut(fp2,n);*linage+;/已经占有linage行*columns = zuokongbai(fp2);/左空白10/函数7:void readIn(FILE * fp1,FILE * fp2)/读入文本文件int blankNumber=0;/记录空格的数量int linage = 0;/记录行数int columns = 0;/记录单行的字节数char array61 = 0;/存一个单词char * arrayIndex = array;int size = 0; /初始化单词的长度for(i=0; i5; i+)/头长5writeOut(fp2,n);linage+;/已经占有linage行columns = zuokongbai(fp2);/左空白10for(i=0; i7; i+)/段首缩进8字节writeOut(fp2, );columns+;/以上代码实现了根本的版面参数要求,下面起先详细到字母的排版char c

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号