- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理第一次作业
《编译原理》课程实验报告
实验地点 实验时间 实验名称: 第一次使实验 实验目的: 重温C语言程序设计,重温程序设计从编辑、编译到连接的全过程,理解编译器的重要性。 实验要求(详见实验讲义与实验指导书): 键盘输入任意字符串,统计其中数字、字母的个数并输出到终端。
输入:字符串
输出:(数字,SUMD);(字母,SUML)
其中SUMD和SUML分别为统计出的数字和字母的个数。
查找给定文件中的C语言注释行,并输出其内容。
输入:文本文件“test.txt”
输出:文件中C语言注释行的内容(注:结果同时输出到文件)
提示:注释行以“/* */”或“// ”标示
实验内容及关键步骤(算法描述(流程图或伪代码)、代码)
1.1、算法描述
输入一个字符串
使用for循环检测每个字符,判断是否为字母或数字,判断的条件:
字母:if(str[i] = Astr[i] = Z|| str[i] = astr[i]=z){
字母数量++;
}
数字:if(str[i] =0str[i]=9){
数字数量++;
}
输出最后结果
1.2、流程图描述
是
否
是
否
是
否
2.1、算法描述
读取的模式打开一个txt的一个文件,逐行读入文件的内容
检测每行中的每个字符,判断是否为//注释行或为/**/注释行
判断条件
//注释行:
if (buffer[i] == /buffer[i + 1] == /op ==false){//当前的字符为’/‘,下个字符为‘/’
直接输出注释行内容
跳出当行的字符循环
}
/**/注释行
if (op == true){
该字符是/**/内的字符,
将该字符保存到pstr的字符串中
}
if (buffer[i] == /buffer[i + 1] == *){
以下是/**/注释行的内容
memcpy(pstr, p + i, 1);//拷贝当前字符
op = true;//设置注释行的类型,当前为/**/的类型
}
if (buffer[i] == *buffer[i + 1] == /op == true){
检测到注释行的内容结束
memcpy(pstr, p + i+1, 1);//拷贝当前字符
continue;
}
输出结果
2.2、算法流程图
统计数字和字母数量的结果截图:
实验过程中遇到的问题解决办法与实验体会 在这次的实验中基本没遇到什么问题,只是c语言有点不熟练了
**************************源代码*******************************
#includeiostream
#includestring
using namespace std;
int main()
{
while(1){
char str[100];
cinstr;
int k = 0;
int j = 0;
for(int i = 0;i strlen(str);i++){
if(str[i] = Astr[i] = Z|| str[i] = astr[i]=z){
j++;
}
if(str[i] =0str[i]=9){
k++;
}
}
cout数字:kendl;
cout字母:jendlendl;
}
return 0;
}
#includeiostream
#includestring
#includefstream
using namespace std;
int main()
{
char buffer[256];
bool op = false; //判断是否为/**/的注释
char* pstr = NULL; //记录注释内容
pstr = (char *)malloc(1024 * sizeof(char));
char* ptempstr = NULL; //记录pstr的首地址
ptempstr = (char *)malloc(1024 * sizeof(char));
ptempstr = pstr;
ifstream fileopen;
fileopen.open(d:\\com.txt);
cout 文件内容如下: endl;
while (!fileopen.eof()){
fileopen.
您可能关注的文档
- 继电保护ppt4.6启动元件.ppt
- 继电保护ppt3.3接地保护修改.ppt
- 练闯考2017年春七年级地理下册第六章第二节自然环境课件.ppt
- 细胞膜系统的边界(修改).ppt
- 设计的基本原则zcx.ppt
- 设计文件编制规程培训.ppt
- 绥宁二中原电池说课.ppt
- 设计研发部管理人员考核表.docx
- 经典继电器控制线路.doc
- 继电保护第6讲 短路电流计算.pptx
- 2024年经理述职报告样本(3篇) .pdf
- 2024年经济服务中心工作总结(2篇) .pdf
- 广东省肇庆市2023-2024学年七年级上学期语文期末考试卷(含答案).docx
- 2024年车工四级理论知识考试题(含答案).pdf
- 广东省肇庆市2023-2024学年七年级上学期语文期末考试卷(含答案).pdf
- 口腔综合专业实践能力知识点总结.pdf
- 广东省珠海市2023-2024学年七年级上学期语文期末考试卷(含答案).docx
- 2024年统计师之中级统计师工作实务练习题(二)及答案 .pdf
- 广东省汕尾市2023-2024学年七年级上学期语文期末考试卷(含答案).pdf
- 2024年给普通人的十大忠告一定要牢记 .pdf
文档评论(0)