放課後

友達のレポートをやっていました。彼は必修のプログラミングを落としていて、最履修なので、切羽詰っているみたいです。問題は辞書ファイルと英単語ファイルを読み込んで、英単語ファイルの単語を辞書ファイルと照らし合わせ単語の訳とその出現回数を表示しなさいっていうもの。簡単なのだけど、やっぱり最近コードを書いてないせいか思考が鈍っています。でも、コンパイルも一回ですんだし、なかなか満足のいくできでした。
例のようにソースさらしますww

#include<iostream>
#include<string>
#include<fstream>
#include<cassert>
#include<iomanip>
using namespace std;

const int size =100;
const int dicsize=50;
int main(){
	ofstream fout;
	ifstream fin1,fin2;
	string filename_dic , filename_word , output_file;
	string words[size];
	string eDic[dicsize], jDic[dicsize];
	string temp;
	bool flag = true;
	int freq[size]={0};
	int n=0,m;
	int i=0,j=0;

	cout<<"英文ファイル名を入力:";
	cin>>filename_word;
	cout<<"辞書ファイル名を入力:";
	cin>>filename_dic;
	cout<<"出力ファイル名を入力:";
	cin>>output_file;

	output_file += ".htm";
	fin1.open(filename_word.c_str());
	assert(fin1);
	fin2.open(filename_dic.c_str());
	assert(fin2);
	fout.open(output_file.c_str());
	assert(fout);

	while(fin1>>temp){		
		for(j=0 ; j<i ; j++){
			if(temp == words[j]){
				freq[j]++;
				flag = false;
				break;
			}		
		}
		if(flag){
			words[i] = temp;
			freq[i]++;
			i++;
		}
		flag =true;
	}
	n = i;
	i = 0;
	while(true){
		fin2>>eDic[i]>>jDic[i];
		if(!fin2 || (i > dicsize))
			break;
		i++;
	}
	m = i;	
	flag = false;
	for(i=0 ; i<n ; i++){
		for(j=0 ; j<m ; j++){
			if(words[i] == eDic[j]){
				flag = true;
				break;
			}
		}

		if(flag){
			cout<<words[i]<<"   "<<jDic[j]<<"   "<<freq[i]<<endl;
			fout<<words[i]<<"   "<<jDic[j]<<"   "<<freq[i]<<"<BR>"<<endl;			
		}
		else{
			cout<<words[i]<<"   "<<"未登録"<<"   "<<freq[i]<<endl;
			fout<<words[i]<<"   "<<"未登録"<<"   "<<freq[i]<<"<br>"<<endl;
		}

		flag = false;
	}
}