Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2015, 15:00   #1
Васо
Новичок
Джуниор
 
Регистрация: 21.05.2015
Сообщений: 1
По умолчанию перевести из С++ в Java - домашнее задание

Доброго времени суток.

Помогите, пожалуйста, перевести из С++ в Java:
Программа читает Название Фильма, Директора, Продолжительность и Качество.
Спасибо!

Код:
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>


using namespace std;

class Movie{
public:
	Movie (string ttl="NONE", string d="NONE", int t=0.0, int q=0.0) : title(ttl), director(d), time(t), quality(q){};
	virtual ~Movie(){};
	void setTitle (const string& ttl) { title = ttl;};  // inline
	void setDirector (const string& d) { director = d;};
	void setTime (int t = 0 ){ time = t;};
	void setQuality (int q = 0) { quality = q;};
	virtual void display()const;
	virtual void getData (ifstream& fin);
	static bool readFromFile (string fname, Movie* Movies[], int n);
protected:
	string title;
  	string director;
	int time;  // in minutes
	int quality; // 0 (bad) to 5 (tops)
};


class Foreign : public Movie{
public:
	Foreign (string l="NONE") : language(l){}
	~Foreign(){};
	void setLanguage (const string& l) {language = l;};   // inline
	virtual void display() const;
	virtual void getData (ifstream& fin);
private:
	string language;
};



class Revised : public Movie{
public:
	Revised (string c="NONE") : changes(c){}
   ~Revised(){};
	void setChanges(const string& c){changes = c;};  //inline
   void setRevisedTime(int r = 0){revisedTime = r;};
   void display()const;
   void getData(ifstream& fin);
private:
   int revisedTime;
   string changes;
};









//====================================MOVIE
void Movie::getData(ifstream& fin){
	string line;
	getline(fin, line);
	setTitle(line);
	getline(fin, line);
	setDirector(line);
	getline(fin, line);
	int a = atoi (line.c_str());  // string to integer
	setTime(a);
	getline(fin, line);
	a = atoi (line.c_str());
	setQuality(a);
}


void Movie::display() const{
	cout << "Title: " << title << endl;
	cout << "Director: " << director << endl;
	cout << "Time: " << time << " mins" << endl;
	string stars (quality, '*');  // for printing *-rating
	cout << "Quality: " << stars << endl;
}



//====================================FOREIGN
void Foreign::display() const{
	Movie::display();  // using BASE class data to display Title, Director, Time, Quality
	cout << "Language: " << language << endl;
}

void Foreign::getData (ifstream& fin){
   Movie::getData(fin); // using BASE class data to set Title, Director, Time, Quality
   string lang;
   getline(fin, lang);  //getting foreign language
   setLanguage(lang);
}



//====================================REVISED
void Revised::display()const{
   Movie::display();  // using BASE class data to display Title, Director, Time, Quality
   cout << "Revised time: " << revisedTime << " mins" <<  endl;
   cout << "Changes: " << changes << endl;
}

void Revised::getData(ifstream& fin){
   Movie::getData(fin);   // using BASE class data to set Title, Director, Time, Quality
   string revised;
   getline(fin, revised);
	string changed;
   getline(fin, changed);
	int a = atoi(revised.c_str());  // string to integer
   setRevisedTime(a);
   setChanges(changed);
}



bool Movie::readFromFile(string fname, Movie *Movies[], int n){
		ifstream fin(fname.c_str());  // reading file "inF.txt"
	
		int next = 0;
		string line;
		while(getline(fin, line) && next < n){ // n - number of Movies in "inF.txt" file
				if (line == "Movie"){
					Movie *m = new Movie();       // create a new Movie object 
					m -> getData(fin);            // read the data: Title, Director, Time, Quality
					Movies[next] = m;	            // store in the array Movies[].
				} else if (line == "Foreign"){ // create a new Foreign object 
					Movie *f = new Foreign();
					f -> getData(fin);
					Movies[next] = f;
				} else if (line == "Revised"){ // create a new Revised object 
					Movie *r = new Revised();
					r -> getData(fin);
					Movies[next] = r;
				} else {
					return false; // movie, foreign, revised - not found.
				}

			next++;
			
		}
		fin.close();
		return true;
}





int main(){
	const unsigned n = 10;
	Movie *Movies[n];
	
	if(!Movie::readFromFile("inF.txt", Movies, n)){
		cout << "Unable to read getData file --> exiting!! Press Enter." << endl;
		exit (EXIT_FAILURE);
	}
	
	// display to screen
	for (unsigned i=0; i < n; ++i){
		Movies[i] -> display();
		cout << endl;
	}
	
	cout << "\nThank you for visiting our Video shop!\n";
	return EXIT_SUCCESS;
}
Васо вне форума Ответить с цитированием
Старый 21.05.2015, 20:59   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Я так полагаю вам в раздел фриланс.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Домашнее задание 10 класс Григорий Матеюнас Паскаль, Turbo Pascal, PascalABC.NET 19 18.12.2012 07:26
Домашнее задание)) pachalol Visual C++ 0 13.12.2012 22:46
Домашнее задание 11 класс! pascal011 Паскаль, Turbo Pascal, PascalABC.NET 1 12.09.2012 21:34
Домашнее задание дмитрий12123 Паскаль, Turbo Pascal, PascalABC.NET 4 03.09.2012 22:15
помогите решить домашнее задание Nastya123 Помощь студентам 2 12.04.2009 17:35