(完整word版)文本格式化.doc
上传人:努力****振宇 上传时间:2024-09-11 格式:DOC 页数:10 大小:101KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

(完整word版)文本格式化.doc

(完整word版)文本格式化.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

课程设计实验报告题目:编制一个将待格式化的文本按照一定的版面要求重新排版并输出到文件的程序一:需求分析1:文本文件非空且以文本文件形式存放(为空没有格式化意义)。输入输出文件名均由用户从键盘输入。2:字的定义:由非(‘@’,‘’(空格))的任意ASCII码字符组成。3:文本文件的定义:由字母字符,数字字符,空格和可以用ASCII代码显示的字符组成。‘@’只表示换行的意义。‘’(空格)只表示一个字的结束的意义。4:任何完整的字都没有被分割在两行:,行尾不齐没关系,但要实现左对齐。每行字符数不超过605:输出文件中字与字之间只留一个空格符,即实现多余空格符的压缩。6:符号‘@’指示它后面的正文在格式化时应另起一段排放,段首缩入8个字符的位置。二:概要设计1:voidprintOut(){该函数的功能是:格式化文本文件后必要提示用户的信息说明}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,int*page,int*size){该函数的功能是:判断是否输出到文本文件和屏幕}6:voidlinageFull(FILE*fp2,int*linage,int*columns,int*page){该函数的功能是:输出页首的格式(头长+左空白)}7:voidreadIn(FILE*fp1,FILE*fp2){该函数是整个程序的核心,执行程序的主要逻辑判断}8:voidmain(){该函数的功能是:程序的入口}三:详细设计1,头文件:noteParameter.h(参数的说明)int(PageLength)=56;//页长(一页最大的行数)intPageWedth=60;//页宽(一行最大的字符数)intLeftMargin=10;//左空白(一行开始输出的空格数)intHeadingLength=5;//头长(一页开始输出的空行数)intFootingLength=5;//脚长(每页最后空5行)intStaringPageNumber=1;//起始页号2,主程序中需要的全局变量和函数声明intpage=1;//记录页数inti=0;//循环变量chara[5];//记录page的char类型char*aIndex=a;//数组a的首地址//函数声明(后面的函数调用了它)voidlinageFull(FILE*fp2,int*linage,int*columns,int*page);3:主函数和其他函数的伪代码算法说明:为了便于描述。‘文本文件1’代表用户输入的要格式化的文本文件。‘文本文件2’代表用户输入的格式化之后保存的文本文件。函数1:voidprintOut()//输出头文件中的所有整形变量{//这个函数中的参数全部来自头文件printf("\n");printf("格式化文本文件结束\n");printf("版面的参数如下:\n");printf("页长:%d\n",PageLength);printf("页宽:%d\n",PageWedth);printf("左空白:%d\n",LeftMargin);printf("头长:%d\n",HeadingLength);printf("脚长:%d\n",FootingLength);printf("起始页号:%d\n",StaringPageNumber);printf("\n");printf("特别说明:本程序只支持英文格式化,对于中文格式化存在乱码问题。\n");printf("\n");}函数2:voidwriteOut(FILE*fp2,charc1)//输出到文本文件2和屏幕{charch1;ch1=fputc(c1,fp2);//接收从文本文件1中读出的一个字符,并且保存到文本文件2中printf("%c",ch1);//把这个字符输出到外设(屏幕)}函数3:intzuokongbai(FILE*fp2)//左空白{for(i=0;i<10;i++)writeOut(fp2,'