C语言实验报告3

更新时间:2024-03-17 15:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

大学本科实验报告专用纸

课程名称 数据结构试验 成绩评定 实验项目名称 文本格式化 指导教师

实验项目编号 实验项目类型 实验地点 学生姓名 学号 学院 系 专业

实验时间 年 月 日 午~ 月 日 午 温度 ℃湿度 (一) 实验目的

熟悉串类型的实现方法和文本模式匹配方法,熟悉一般文字处理软件的设计方法,较复杂问题的分解求精方法。

(二) 实验内容和要求

输入文件中含有待格式化(或成为待排版)的文本,它由多行文字组成,例如

一篇英文文章。每一行由一系列被一个或多个空格符所隔开的字所组成,任何完整的字都没被分割在两行(每行最后一个=字与下一行第一个字在逻辑上应该由空格分开),每行字符数不超过80。除了上述文本类字符外,还存在起控制作用的字符:符号\指示它后面的正文在格式化时应另起一段排放,即空一行,并在段首缩入8个字符位置。\自成一个字。

一个文本格式化程序可以处理上述输入文件,按照用户指定的版面规格重排版面:实现页内调整,分段,分页等文本处理功能,排版结果存入输出文本文件中。

[ 基本要求]:

(1) 输出文件中字与字之间只留一个空格符,即实现多余空格符的压缩。 (2) 在输出文件中,任何完整的字仍不能分隔在两行,行尾不齐没关系,但行首要对齐(即左对齐)。

(3) 如果所要求的每页页底所空行数不少于3,则将页号印在页底空行中第2行的中间位置上,否则不印。 (4) 版面要求的参数要包含:

页长(Page Length)——每页内文字(不计页号)的行数。 页宽(Page Wedth)——每行内文字所占最大字符数。 左空白(Left Margin)——每行文字前的固定格数。 头长(Heading Length)——每页页顶所空行数。 脚长(Footing Length)——每页页底所空行数(含页号行) 起始页号(Starting Page Number)——首页的页号。

(三) 主要仪器设备

仪器:计算机 实验环境:Windows 7 & win-tc

暨南大学本科实验报告专用纸(附页)

(四) 源程序

#include #include

int pl=20,pw=80,lm=1,hl=3,fl=3,spn=1; main() {

void operation(void); operation();

printf(\ getch(); }

void operation(void) {

FILE *fp,*pf,*panduan;

int pli=1,pwi=1,lmi=1,spni=1,i,j=0,k=0,sp1,sp2,l=0,m=0,n=0; char ch,hc;

if(!(fp=fopen(\ {

printf(\ exit(1); }

if(!(pf=fopen(\ {

printf(\ exit(1); }

if(!(panduan=fopen(\

暨南大学本科实验报告专用纸(附页)

{

printf(\ exit(1); }

fflush(stdin); ch=fgetc(fp); fflush(stdin); hc=fgetc(panduan);

while(hc!=' '&&hc!=EOF&&hc!=3344&&hc!=46&&hc!=58&&hc!=59&&hc!=63) {

fflush(stdin); hc=fgetc(panduan); m++; }

while(ch!=EOF) {

if(m==n) {

fflush(stdin); hc=fgetc(panduan); m++;

while(hc!=' '&&hc!=EOF&&hc!=33&&hc!=44&&hc!=46&&hc!=58&&hc!=59&&hc!=63) {

fflush(stdin); hc=fgetc(panduan); l++; m++; }

暨南大学本科实验报告专用纸(附页)

if((l+pwi)>pw)

{

pwi=1; pli++; fputc('\\n',pf); fputc(' ',pf); } l=0; } if(pli>=18) {

fputc('\\n',pf); for(i=0;i

for(i=0;i<3;i++) fputc('\\n',pf);

暨南大学本科实验报告专用纸(附页)

pli=hl+1; for(i=0;i<8+lm;i++) fputc(' ',pf); pwi=9; }

if(ch=='@'&&k==0) {

fputc('\\n',pf); pli++;

for(i=0;i

if(ch==' '&&k==0) {if(j==0) fputc(ch,pf); j=1; pwi++; } else

{if(ch!='\\r'&&k==0) fputc(ch,pf);

if((ch==33||ch==44||ch==46||ch==58||ch==59||ch==63)&&k==0) fputc(' ',pf); j=0;

pwi++;}

暨南大学本科实验报告专用纸(附页)

if(pwi==pw&&k==0) { pwi=1; pli++; fputc('\\n',pf); for(i=0;i

(五) 实验步骤与调试

(1) 在计算机F盘中建立doc.txt文件,将待排版内容输入其中。

暨南大学本科实验报告专用纸(附页)

(2) 运行程序。

(3) 打开F盘中生成的new.txt文件,查看排版结果。

(六) 实验结果与分析

实验结果: 输入文本按预定格式输出。

分析:程序输出正常,但尚有一些需改进的地方,例如:文本输出中,作为换段符的@本不该存在(按实验要求保留下来,减轻了程序难度)。而后,分页时,最后不足页的文本也没用分配成新的一页打上页码。最后,文本用到的参数都是预先写在程序之中,可以考虑由操作者自行输入,只需在主函数中写入相关的提示及参数输入语句。

本文来源:https://www.bwwdw.com/article/zed8.html

Top