Премини към съдържанието
Ivan G. Ivanov

Проблем с задача свързана с обектно програмиране

Препоръчан отговор


Здравейте момчета и момичета! За много години!

Стана вече 2 дена се мъч с една задача. Мисля, че съм написал кода правилно и въпреки това получвам грешки. Бихте ли ми помогнали?

Това е header-a:

 

//CAS.h

 

#ifndef _CAS_H
#define _CAS_H
 
#include <iostream>
#include <fstream>
#include <cmath>
#include <iomanip>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <string>
using namespace std;
 
 
 
const double P0 = 1013.25; 
const double a0 =  661.48;
const int barlength = 80;
int LINES = -1;
double maxvalue;
 
 
 
class CASHistory
{
public:
double calcSpeed(double l);
int CountLines(char name);
void CasCalc();
void CasDisp();
void CasHis();
CASHistory();
virtual ~CASHistory();
};
 
struct FlightParams    
{
 
int time;        
double pressure;     // value read from data file
double speed;        // calculated from pressure
 
} fltparams;
 
#endif
Това е .cpp:
#include "CAS.h"#include <iostream>#include <fstream>#include <cmath>#include <iomanip>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cmath>#include <string>using namespace std;using std:: cout;using std:: getline;CASHistory::CASHistory(void){}CASHistory::~CASHistory(void){}  void CASHistory::CasHis(){   ifstream fin;bool reRun;string buf;do {	system("cls"); 	string filename;  	cout << "Please enter the file name:" << endl;	getline(cin,filename);	fin.clear();	fin.open(filename.c_str());	if (!fin.fail()){		cout << "nCAS History Plot(seconds,knots)nn";}	else {		cout << "nPlz check your input file name!nn";}	void CASHistory::CasCalc()	{ 		ifstream infile;    		char filename;		infile.open(filename,ios::in);      		LINES=CountLines(filename);		for(int i=0;i<LINES;i++)		{			infile>>fltparams.time;			infile>>fltparams.pressure;		}	}	double CASHistory:: calcSpeed(double l);       	{		double sp;		sp=a0*sqrt(5*(pow((l/1000)/P0+1,2.0/7)-1));		cout<<"speed="<<sp<<endl;		return 0;	}	int CASHistory::CountLines(char name)	{		ifstream ReadFile;		int n=0;		string temp;		ReadFile.open(name,ios::in);   		if(ReadFile.fail())              {			return 0;		}		else{			while(getline(ReadFile,temp))			{				n++;			}			return n;		}		ReadFile.close();	}	fin.close();	void CASHistory::CasDisp()	{		double j=0;		double   max;		max=fltparams.speed;		for (int o = 0;o<LINES;o++)		{			if(max < fltparams.speed)			{				max   =   fltparams.speed;        			}		}		maxvalue=max;		for (int z=0;z<LINES;z++)		{			double sf;			sf=fltparams.speed/(maxvalue/barlength);			cout << right;			cout.fill('*');			cout<<setw(sf);			cout<<fltparams.time<<","<<fltparams.speed<<endl;		}	}	reRun = false;	cout << "Re-run (Y/N):" << endl;	char tmp;	while (cin >> tmp && tmp != 'Y' && tmp != 'y' && tmp != 'N' && tmp != 'n');	if (tmp == 'Y' || tmp == 'y') reRun = true;	getline(cin, buf);} while (reRun);cout << "End of program execution!" << endl;}

И това е main.cpp:

#include <cstdlib>#include "CAS.h"#include <string>using namespace std;int main(void) {    CASHistory cashistory;    cashistory.CasHis();    system("pause");    return 0;    }  

Благодаря за отделеното време!

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Благодаря за отделеното време!

Ако те интересуваше времето, което отделяме за да ти помогнем, щеше да напишеш, какво прави програмата и ама задължително къде(при компилация, по време на изпълнение) и каква грешка си получил.

Дефиниците на методите на класа са ти сложени във първия от тях. Това не е допустимо.

  • Харесва ми 2

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Програмата има за цел да прочете данни зададени в текстов фаѝл да ги обработи използваѝки формулата за Calibrated Air Speed(Публикувано изображение )и да ги изкара на екрана. Грешките, които получвам са:

1 IntelliSense: member function "CASHistory::CasCalc" may not be redeclared outside its class c:usersivanovdesktop205se assigment 1cas history in one classcashistory.cpp 38 19 CASh
2 IntelliSense: expected a ';' c:usersivanovdesktop205se assigment 1cas history in one classcashistory.cpp 39 2 CASh
3 IntelliSense: identifier "l" is undefined c:usersivanovdesktop205se assigment 1cas history in one classcashistory.cpp 54 22 CASh
4 IntelliSense: return value type does not match the function type c:usersivanovdesktop205se assigment 1cas history in one classcashistory.cpp 56 10 CASh
5 IntelliSense: member function "CASHistory::CountLines" may not be redeclared outside its class c:usersivanovdesktop205se assigment 1cas history in one classcashistory.cpp 58 18 CASh
6 IntelliSense: expected a ';' c:usersivanovdesktop205se assigment 1cas history in one classcashistory.cpp 59 2 CASh
7 IntelliSense: member function "CASHistory::CasDisp" may not be redeclared outside its class c:usersivanovdesktop205se assigment 1cas history in one classcashistory.cpp 78 19 CASh
8 IntelliSense: expected a ';' c:usersivanovdesktop205se assigment 1cas history in one classcashistory.cpp 79 2 CASh
9 IntelliSense: expected 'while' c:usersivanovdesktop205se assigment 1cas history in one classcashistory.cpp 103 2 CASh

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Програмата има за цел да прочете данни зададени в текстов фаѝл да ги обработи използваѝки формулата за Calibrated Air Speed(Публикувано изображение )и да ги изкара на екрана. Грешките, които получвам са:

Това ми е ясно, само че ми стана ясно, след като ти свалих програмата и я разгледах, и я компилирах - и ти писах какъв ти е проблема:

Дефиниците на методите на класа са ти сложени във първия от тях. Това не е допустимо.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.