下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、湖南农业大学信息科学技术学院学 生 实 验 报 告姓名: 林*文 年级专业班级 *级计算机*班 日期 20* 年 * 月 *日 成绩 课程名称编译原理实验名称源程序的输入和扫描 实验类型设计性【实验目的、要求】理解源程序被编译器读取的过程,掌握扫描程序的方法。【实验内容】1.编制一个源程序的输入过程,从键盘、文件或文本框输入若干行语句,依次存入输入缓冲区(字符型数据);2.编制一个扫描子程序,该扫描程序能删除无用的空白字符、回车字符以及其他与输入介质相关的非实质性字符,用“#”分隔单词流。 3.删除注释信息。【实验环境】计算机、编程环境vc+6.0【实验步骤、过程】1 功能描述 编制一个源程序
2、的输入过程,从键盘、文件或文本框输入若干行语句,依次存入输入缓冲区(字符型数据)。 编制一个扫描子程序,该扫描程序能删除无用的空白字符、回车字符以及其他与输入介质相关的非实质性字符,用“#”分隔单词流。 删除注释信息。2 程序结构描述 用freopen读取文件,然后进行读取行数跟每行的字符串长度。接着在开始跟结束先用“#”分隔。 遇到空格先用“#”分隔,然后判断并删除后接的空格;遇到回车字符时,直接指针直到下一位;在Pascal语言中,如果遇到“”此注释标记择指针下移直到遇到“”完,结束。 遇到字母字符时将其输出,并判断下各个字符,如果是继续输出直到不是字母字符。判断数字字符其道理与字母字符处
3、理一样。 遇到运算符时,将其前后加“#”输出;遇到分隔符与运算符一样处理;3 流程图(或原理图)4 关键代码#include <stdio.h>#include <string.h>char a100100;/存放读取文件的字符int count=0;/全局变量用于行数void input()/获取文件行数 while(gets(acount+);void process()/实验工程 printf("#");/开始的# for(int i=0;i<count;i+) int l=strlen(ai); for(int j=0;j<l;j
4、+) if(aij=' ') printf("#"); while(j<l&&aij+1=' ') j+; /遇到空格打#,删除后面的空格 else if (aij='') for(int k=0;k<l;k+) if(aij!='') j+; /删除注释 else if(aij='') printf("#;#");/;为每句的结束即为回车将其转译成#;#分隔 else if(aij>='0'&&aij<
5、='9'|aij>='a'&&aij<='z'|aij>='A'&&aij<='Z') printf("%c",aij);/将数字跟字符分隔 else if(aij='+'|aij=','|aij='*'|aij='-'|aij='/') printf("#%c#",aij);/将运算符和标示符号分隔 else if(aij='(
6、39;) printf("%c#",aij); else if (aij=')') printf("#%c",aij);/将()分隔出来 else if(aij=':'&&aij+1='=') printf("#%c%c#",aij,aij+1); else if(aij=':')/将特殊的 运算符如“:=”等分隔出来 printf("#%c#",aij); printf("#n");/结束的#int main()
7、freopen("D:colin1.txt","r",stdin);/读取实验文件 input(); process(); return 0;【实验结果和总结】(对实验结果进行相应分析,或总结实验的心得体会,并提出实验的改进意见)1 实验结果记录 (截图) 实验文件:(截图)实验结果:(截图)2 实验总结 遇到的问题 所用的时间 所用方法和手段以及心得体会 这个程序存在很多的不足和漏洞,但是我想这只是我的初步程序,应该花更多的时间去考其他的可能性,尽力的完善它。所用的时间:程序花费2小时。遇到的问题; 1. 在处理字母字符和数字字符的时候将每个字符分开输出,比如:#P#R#,#2#3#。 2. 程序里的输入处理语句比较困难,不会用freopen条令。所用的方法和手段: 1. 设置循环语句,进行判断然后输出。2. 与同学交流,并上网查询。心得体会: 经过这次的编译原理实验,不仅仅加深并且更熟识掌握
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年国网西藏电力有限公司招聘568人(第一批)笔试参考题库附带答案详解(3卷)
- 2025四川雅茶集团茶业有限公司第一期招聘人员4人笔试参考题库附带答案详解(3卷)
- 2025“才聚齐鲁成就未来”山东文旅集团有限公司总部招聘3人笔试参考题库附带答案详解(3卷)
- 武汉市2024年湖北武汉华夏理工学院专职辅导员招聘2人笔试历年参考题库典型考点附带答案详解(3卷合一)
- 面试技术科长的关键问题与答案
- 招聘顺丰数据分析专员的面试题及答案
- 软件测试工程师面试准备与技巧指南
- 中成控股集团招聘题库及答案
- 反宗教改革教学课件
- 尽责为主题课件
- 看管牛羊合同范本
- 2025上海崇明区事务性辅助人员招聘7人笔试备考题库带答案解析
- 2025年东营市总工会公开招聘工会社会工作者(25人)笔试考试备考题库及答案解析
- 污水处理厂设备更新项目社会稳定风险评估报告
- 全国人大机关直属事业单位2026年度公开招聘工作人员考试模拟卷附答案解析
- 人社局公益性岗位笔试题目及答案
- 2026全国人大机关直属事业单位招聘50人笔试考试备考题库及答案解析
- 2026年烟花爆竹经营单位主要负责人证考试题库及答案
- 2025秋统编语文八年级上册14.3《使至塞上》课件(核心素养)
- 2025年点石联考东北“三省一区”高三年级12月份联合考试英语试题(含答案)
- 矿山隐蔽致灾因素普查规范课件
评论
0/150
提交评论