2014秋C++第16週プロジェクト5参考プログラミング処理C++ソースコード
6834 ワード
カリキュラムのホームページhttp://blog.csdn.net/sxhelijian/article/details/39152703、カリキュラムリソースは雲学堂の「賀先生教室」で同期して展示され、使用するアカウントはカリキュラムのホームページに表示してください.
【項目5-プログラミング処理C++ソースコード】コードフォーマットの機能はCodeBlocksなどのIDEで提供されています.私たちはプログラムを書くことができて、処理するデータはC++で書いたソースコードファイルです.C++ソースファイルは、プログラムで操作できるテキストファイルです.(1)C++プログラムを読み込んで、main()関数が1つしかないかどうかを判断し、「一時的に問題が発見されなかった」、または「main()関数がない」、または「複数のmain()関数を定義できない」を出力する.ヒント1:簡単な処理で、「main()」だけを比較して判断することができ、実際の様々な可能性を考慮すると、mainの後ろの括弧には他にもいろいろな書き方があります.最も簡単な状況で処理することをお勧めします.ヒント2:読み込んだコードを文字列「main()」と比較する関数を設計することをお勧めします.関数は、s 1が読み込まれた1行のs 2に「含まれる」かどうかを判断するために使用され、呼び出されると、形参s 1の実参は「main()」でよい.これにより、書き込みは「抽象」レベルを向上させ、より容易に実現され、より高いコード品質に対応する.(2)一つのC++プログラムを読み込んで、プログラムの中のすべての左かっこ"{"と右かっこ"}"が単独で1行を占め、新しいプログラムは別の.cppファイルに保存し、処理したプログラムを画面に表示し、表示時に行番号を付ける.(3)C++プログラムを読み込み、m、nの2つの数字を入力し、m行目からのn行コードを注釈として使用し(すなわち、これらの行の前に"//")、新しいプログラムを別の.cppファイルに保存し、処理したプログラムを画面に表示し、表示時に上り番号を付ける.(4)(選択して、木は参考解答があります)C++プログラムを読み込んで、そのフォーマットを整理して、規範によってレイアウトさせます.(2)各文は単独で1行を占める.(3)各行は統一された縮尺排出(1つの「{」に遭遇するたびに、その次の行のプログラムは、最初の意味のある記号の前のスペース数を4増やし、1つの「}」に遭遇するたびに、その次の行のプログラムは、最初の意味のある記号の前のスペース数を4減らします.終わりましたか?どうしてそんなことができますか?CodeBlocksに「source code formatter」を作ることができますプラグイン行っちゃった!?マイクロソフトの製品に「集積開発環境(IDE)」があるから、応募しない?へへへ、給料を見てからにしよう.考えられないわけではない.
参考解答:
(1)C++プログラムを読み込んで、main()関数が1つしかないかどうかを判断し、「一時的に問題が発見されなかった」、または「main()関数がない」、または「複数のmain()関数を定義できない」を出力する.
(2)一つのC++プログラムを読み込んで、プログラムの中のすべての左かっこ"{"と右かっこ"}"が単独で1行を占め、新しいプログラムは別の.cppファイルに保存し、処理したプログラムを画面に表示し、表示時に行番号を付ける.
(3)C++プログラムを読み込み、m、nの2つの数字を入力し、m行目からのn行コードを注釈として使用し(すなわち、これらの行の前に"//")、新しいプログラムを別の.cppファイルに保存し、処理したプログラムを画面に表示し、表示時に上り番号を付ける.
【項目5-プログラミング処理C++ソースコード】コードフォーマットの機能はCodeBlocksなどのIDEで提供されています.私たちはプログラムを書くことができて、処理するデータはC++で書いたソースコードファイルです.C++ソースファイルは、プログラムで操作できるテキストファイルです.(1)C++プログラムを読み込んで、main()関数が1つしかないかどうかを判断し、「一時的に問題が発見されなかった」、または「main()関数がない」、または「複数のmain()関数を定義できない」を出力する.ヒント1:簡単な処理で、「main()」だけを比較して判断することができ、実際の様々な可能性を考慮すると、mainの後ろの括弧には他にもいろいろな書き方があります.最も簡単な状況で処理することをお勧めします.ヒント2:読み込んだコードを文字列「main()」と比較する関数を設計することをお勧めします.関数は、s 1が読み込まれた1行のs 2に「含まれる」かどうかを判断するために使用され、呼び出されると、形参s 1の実参は「main()」でよい.これにより、書き込みは「抽象」レベルを向上させ、より容易に実現され、より高いコード品質に対応する.(2)一つのC++プログラムを読み込んで、プログラムの中のすべての左かっこ"{"と右かっこ"}"が単独で1行を占め、新しいプログラムは別の.cppファイルに保存し、処理したプログラムを画面に表示し、表示時に行番号を付ける.(3)C++プログラムを読み込み、m、nの2つの数字を入力し、m行目からのn行コードを注釈として使用し(すなわち、これらの行の前に"//")、新しいプログラムを別の.cppファイルに保存し、処理したプログラムを画面に表示し、表示時に上り番号を付ける.(4)(選択して、木は参考解答があります)C++プログラムを読み込んで、そのフォーマットを整理して、規範によってレイアウトさせます.(2)各文は単独で1行を占める.(3)各行は統一された縮尺排出(1つの「{」に遭遇するたびに、その次の行のプログラムは、最初の意味のある記号の前のスペース数を4増やし、1つの「}」に遭遇するたびに、その次の行のプログラムは、最初の意味のある記号の前のスペース数を4減らします.終わりましたか?どうしてそんなことができますか?CodeBlocksに「source code formatter」を作ることができますプラグイン行っちゃった!?マイクロソフトの製品に「集積開発環境(IDE)」があるから、応募しない?へへへ、給料を見てからにしよう.考えられないわけではない.
参考解答:
(1)C++プログラムを読み込んで、main()関数が1つしかないかどうかを判断し、「一時的に問題が発見されなかった」、または「main()関数がない」、または「複数のmain()関数を定義できない」を出力する.
#include <fstream>
#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
int appear(char*s1,char*s2);
int main( )
{
char line[256];
char main_fun[8]="main()";
int main_num=0;// ,
//
ifstream sourceFile("source.cpp",ios::in); //
if(!sourceFile) //
{
cerr<<"source code read error!"<<endl;
exit(1);
}
while(!sourceFile.eof())
{
sourceFile.getline(line,255,'
');
main_num+=appear(line,main_fun);
if (main_num>1) // 1 ,
break;
}
sourceFile.close();
//
if(main_num==0)
cout<<"error: no main().";
else if (main_num==1)
cout<<"right: a main() be exist.";
else
cout<<"error: more than one main().";
cout<<endl;
return 0;
}
// s2 s1
int appear(char*s1,char*s2)
{
int n=0,flag;
char *p,*q;
for(; *s1!='\0'; s1++)
{
if (*s2==*s1) /* */
{
flag=1;
p=s1 ; /*s1 p */
q=s2;
for(; *q!='\0';) /* */
{
if (*q++!=*p++)
{
flag=0;
break;
}
}
if (flag==1) n++;
}
}
return(n);
}
(2)一つのC++プログラムを読み込んで、プログラムの中のすべての左かっこ"{"と右かっこ"}"が単独で1行を占め、新しいプログラムは別の.cppファイルに保存し、処理したプログラムを画面に表示し、表示時に行番号を付ける.
#include <fstream>
#include<iostream>
//#include<string>
#include<cstdlib>
using namespace std;
void outprogram(char *filename);
int main( )
{
char ch1,ch2;
//
ifstream sourceFile("source.cpp",ios::in); //
if(!sourceFile) //
{
cerr<<"source code read error!"<<endl;
exit(1);
}
ofstream outFile("newsource.cpp",ios::out); //
if(!outFile) //
{
cerr<<"new source code write error!"<<endl;
exit(1);
}
ch1='\0';
while(!sourceFile.eof())
{
sourceFile.get(ch2);
// , ,
if((ch2=='{'||ch2=='}')&&(ch1!='
'))
outFile.put('
');
else
// , ,
if((ch1=='{'||ch1=='}')&&(ch2!='
'))
outFile.put('
');
outFile.put(ch2); //
ch1=ch2;
}
outFile.close();
sourceFile.close();
cout<<" :"<<endl;
outprogram("newsource.cpp");
return 0;
}
void outprogram(char *filename)
{
char line[256];
int n = 1;
ifstream inFile(filename, ios::in); //
if(!inFile) //
{
cerr<<"file open error!"<<endl;
exit(1);
}
while (!inFile.eof())
{
inFile.getline(line,255,'
');
cout<<n<<'\t'<<line<<endl;
n++;
}
inFile.close();
return;
}
(3)C++プログラムを読み込み、m、nの2つの数字を入力し、m行目からのn行コードを注釈として使用し(すなわち、これらの行の前に"//")、新しいプログラムを別の.cppファイルに保存し、処理したプログラムを画面に表示し、表示時に上り番号を付ける.
#include <fstream>
#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;
void outprogram(const char *filename);
int main( )
{
char line[256];
int m,n;
//
ifstream sourceFile("source.cpp",ios::in); //
if(!sourceFile) //
{
cerr<<"source code read error!"<<endl;
exit(1);
}
ofstream outFile("newsource.cpp",ios::out); //
if(!outFile) //
{
cerr<<"new source code write error!"<<endl;
exit(1);
}
cout<<" m n , m n:";
cin>>m>>n;
int n1=0;
while(!sourceFile.eof())
{
sourceFile.getline(line,255,'
');
n1++;
if(n1>=m&&n1<m+n)
outFile.put('/').put('/');
outFile.write(line,strlen(line));
outFile.write("
",1);
}
outFile.close();
sourceFile.close();
cout<<" :"<<endl;
outprogram("newsource.cpp");
return 0;
}
void outprogram(const char *filename)
{
char line[256];
int n = 1;
ifstream inFile(filename, ios::in); //
if(!inFile) //
{
cerr<<"file open error!"<<endl;
exit(1);
}
while (!inFile.eof())
{
inFile.getline(line,255,'
');
cout<<n<<'\t'<<line<<endl;
n++;
}
inFile.close();
return;
}
=================== CSDN =================
|== IT ( ) ==|
|== C++ ( ) ==|
|== ——《 —— IT 》 ==|
===== IT , =====