资源描述:
《程设计(文本格式化)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、附件1:学号:0121110340427课程设计题目文本格式化学院计算机科学与技术学院专业计算机科学与技术班级计算机1104班姓名成霖指导教师吴利军2013年6月17日题目:文本格式化一,问题描述:试写一个文本格式化程序可以处理一个输入文件,它按照用户指定的下列版面规格参数重排版面:实现页内调整、分段、分页等文本处理功能,排版结果存入输出文本文件中。(1)输出文件中字与字之间只留一个空格符,即实现多余空格符的压缩。(2)输出文件中,任何完整的字不能分割在两行,行尾可以不齐,但行首要对齐。(3)将页号印在页底空行
2、中第2行的中间位置上。(4)版面要求的参数见题集p117。(5)测试用例自己设计。二,设计:1,版面要求的参数要包含:页长(PageLength)——每页内文字(不计页号)的行数。页宽(PageWedth)——每行内文字所占最大字符数。左空白(LeftMargin)——每行文字前的固定格数。头长(HeadingLength)——每页页顶所空行数。脚长(FootingLength)——每页页底所空行数(含页号行)起始页号(StartingPageNumber)——首页的页号。2,概要设计:Ø1:voidprint
3、Out(){该函数的功能是:格式化文本文件后必要提示用户的信息说明}Ø2:voidwriteOut(FILE*fp2,charc1){该函数的功能是:将字符输出到文本文件和屏幕}Ø3:intzuokongbai(FILE*fp2){该函数的功能是:实现文本参数格式(左空白)}Ø4:voidpageNumber(FILE*fp2,char*aIndex,int*page){该函数的功能是:输出当前页码}Ø5:voidout(int*columns,char*array,int*linage,FILE*fp2,in
4、t*page,int*size){该函数的功能是:判断是否输出到文本文件和屏幕}Ø6:voidlinageFull(FILE*fp2,int*linage,int*columns,int*page){该函数的功能是:输出页首的格式(头长+左空白)}Ø7:voidreadIn(FILE*fp1,FILE*fp2){该函数是整个程序的核心,执行程序的主要逻辑判断}Ø8:voidmain()3,实验设计程序代码:#include#include#include
5、int(PageLength)=56;//页长(一页最大的行数)intPageWedth=60;//页宽(一行最大的字符数)intLeftMargin=10;//左空白(一行开始输出的空格数)intHeadingLength=5;//头长(一页开始输出的空行数)intFootingLength=5;//脚长(每页最后空5行)intStaringPageNumber=1;//起始页号intpage=1;//记录页数inti=0;//循环变量chara[5];//记录page的char类型char*aIndex=a
6、;//数组a的首地址//函数声明(后面的函数调用了它)voidlinageFull(FILE*fp2,int*linage,int*columns,int*page);//函数1:voidprintOut()//输出头文件中的所以整形变量{//这个函数中的参数全部来自头文件printf("");printf("格式化文本文件结束");printf("版面的参数如下:");printf("页长:%d",PageLength);printf("页宽:%d",PageWedth);printf("
7、左空白:%d",LeftMargin);printf("头长:%d",HeadingLength);printf("脚长:%d",FootingLength);printf("起始页号:%d",StaringPageNumber);printf("");printf("特别说明:本程序只支持英文格式化,对于中文格式化存在乱码问题。");printf("");}//函数2:voidwriteOut(FILE*fp2,charc1)//输出到文本文件2和屏幕{charch1;ch1=fp
8、utc(c1,fp2);//接收从文本文件1中读出的一个字符,并且保存到文本文件2中printf("%c",ch1);//把这个字符输出到外设(屏幕)}//函数3:intzuokongbai(FILE*fp2)//左空白{for(i=0;i<10;i++)writeOut(fp2,'');//循环10次,输出10个空格到文本文件2中returni;//返回值为10.它赋给记录单行字节数