网站大量收购独家精品文档,联系QQ:2885784924

2025年c++语言万能源代码,《C++语言基础》实践参考——处理C++源代码的程序精品.pdfVIP

2025年c++语言万能源代码,《C++语言基础》实践参考——处理C++源代码的程序精品.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

为天地立心,为生民立命,为往圣继绝学,为万世开太平。——张载

c++语⾔万能源代码,《C++语⾔基础》实践参考——处理

C++源代码的程序

返回:贺⽼师课程教学链接项⽬要求

【项⽬4-处理C++源代码的程序】

在CodeBlocks等IDE中都提供了代码格式整理的功能。完成这种功能的程序,操作的数据是⽤C++写的源代码⽂件。C++源⽂件是⼀种⽂

本⽂件,可以通过程序进⾏操作。

集成开发环境(IDE)对对程序进⾏编译,操作的“数据”是源程序。编译中,要对源程序进⾏词法检查和语法检查,后续还要进⾏⽬标代码

⽣成、代码优化等⼯作。相关的技术将在《编译原理》课中学习。这些技术可以⽤在很多领域,当然也能够让我们对于编程语⾔有更深的了

解。

本项⽬将以C++源程序为操作对象,完成对源程序的⼀系列处理。各功能可以分别编制⼀个程序实现(建议⽤这种简单的⽅案),也可以将其

集成在⼀起(向着⾃⼰做出IDE努⼒)。

(1)读⼊⼀个C++程序,判断其中是否只有⼀个main()函数,输出“暂时没有发现问题”,或者“没有main()函数”,或者“不能定义多个

main()函数”;

提⽰1:简单处理,可以只⽐较判断”main()”,考虑实际上的各种可能,main后⾯的括号中有任意多个空格及void的都应该算在内。建议

按最简单的情形处理。

提⽰2:建议设计⼀个函数,将读到的代码与字符串”main()”进⾏⽐较。函数⽤于判断s1是否“包含”在读⼊的⼀⾏s2中,调⽤时,形

参s1处的实参⽤”main()”即可,这样写提升了“抽象”级别,更容易实现,对应更⾼的代码质量。

【参考解答】

#include

#include

#include

#include

usingnamespacestd;

intappear(char*s1,char*s2);

intmain()

{

charline[256];

charmain_fun[8]=main();

intmain_num=0;//初时,尚未发现

//将⽂件中的数据读⼊到字符数组中

ifstreamsourceFile(source.cpp,ios::in);//以输⼊的⽅式打开⽂件

if(!sourceFile)//测试是否成功打开

{

cerr

exit(1);

}

吾日三省乎吾身。为人谋而不忠乎?与朋友交而不信乎?传不习乎?——《论语》

while(!sourceFile.eof())

{

sourceFile.getline(line,255,\n);

main_num+=appear(line,main_fun);

if(main_num1)//多于1个,没有必要再去读取

break;

}

sourceFile.close();

//识别结论

if(main_num==0)

cout

elseif(main_num==1)

cout

else

cout

cout

return0;

}

//返回s2在s1中出现了⼏次

intappear(char*s1,char*s2)

{

intn=0,flag;

char*p,*q;

for(;*s1!=\0;s1++)

{

if(*s2==*s1)/*判断字符串中是否有和要判断的字串⾸字符相同的字符*/

{

flag=1;

p=s1;/*s1p为第⼀个相同字符的地址*/

q=s2;

for(;*q!=\0;)/*如果有则判断接下去的⼏个字符是否相同*/

{

if(*q++!=*p++)

{

天行健,君子以自强不息。地势坤,君子以厚德载物。——《周易》

flag=0;

break;

}

}

if(flag==1)n++;

}

}

return(n);

}

(2)读⼊⼀个C++程序,使程序中的所有左花括号“{”和右花括号“}”都单独占⼀⾏,新程序保存到另⼀个.cpp⽂件中,并在屏幕上显⽰

处理过的程序,显⽰时加上⾏号。

[参考解答]

#include

#include

//#include

#include

usingnamespacestd;

voidoutprogram(char*filename);

intmain()

{

charch1,ch2;

//将⽂件中的数据读⼊到字符数组中

ifstreamsourceFile(source.cpp,ios::in);//以输⼊

文档评论(0)

176****5504 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档