» »

napaka v c++

napaka v c++

kretze ::

Zdravo majstri kaj ve kdo zakaj mi ta program ne deluje pravilno??

class gradebook
{
private:
	string courseName;
	int acount;
	int bcount;
	int cCount;
	int dcount;
	int fcount;

public:
	gradebook(string name)
	{
		if (name.length() <= 25)
			courseName = name;
		else
		{
			courseName = name.substr(0, 25);
			cout << "name\"" << name << "\ exceeds maximum lenght (25).\n"
				<< "limiting coursename to first 25 charchters.\n" << endl;

		}

		acount = 0;
		bcount = 0;
		cCount = 0;
		dcount = 0;
		fcount = 0;

	}


	string getcoursename()
	{
		return courseName;
	}
	void dipslaymassage()
	{
		cout << "welcome to the gradebook for\n" << getcoursename() << "!\n";

	}

	void inputgrades()
	{
		int grade;
		cout << "enter the letter grades" << endl
			<< "enter the EOF charachter to end ";
		while ((grade = cin.get()) != EOF)
		{
			switch (grade)
			{
			case 'A':
			case 'a':
				++acount;
				break;

			case 'B':
			case 'b':
				++bcount;
				break;

			case 'C':
			case 'c':
				++cCount;
				break;

			case 'D':
			case 'd':
				++dcount;
				break;

			case 'F':
			case 'f':
				++fcount;
				break;

			case'\n':
			case'\t':
			case' ':
			default:
				cout << "incorect letter grade enter "
					 << "enter a new grade ";
				break;


			


			}
		}
	}
	void displaygradereport()
	{
		cout << "\n\nNumber of student who recived each letter grade: "
			<< "\nA" << acount
			<< "\nB" << bcount
			<< "\nC" << cCount
			<< "\nD" << dcount
			<< "\nF" << fcount
			<< endl;


			
	}
};

int main()
{
	
	gradebook gb("c++ programming ");
	gb.dipslaymassage();
	gb.inputgrades();
	gb.displaygradereport();

St753 ::

Bi lahko bil malo bolj specifičen? Kaj ti ne dela? Kje imaš include statemente in zakaj manjka del main funkcije?

kretze ::

int main pa include vse mam kot je treba sem samo kodo skopiral...ja ko vtippkam kako oceno mi vedno piše incorect

St753 ::

Ne vem na kakšen način si ti mislil vnest na tipkovnici EOF? Zamenjaj z drugim veljavnim znakom (poglej si ASCII Chart). Poleg tega cin.get() pričakuje character, tako da nima smisla, da uprabljaš int (pazi tudi pri vnosu številk: 0 != '0'). Naslednji problem je pa v tem, da sprejme cin.get() samo en znak in ko klikneš enter za vnos, gre ta v buffer. Pri naslednjem klicu cin.get() se enter prebere iz bufferja in potem gre to v switch, kjer prideš na default case, zato izpiše incorrect. To lahko preveriš tudi tako, da dodaš cout k enem izmed veljavnih znakov, poleg tega lahko dodaš še case za enter. O vnosu si poglej tukaj: http://www.learncpp.com/cpp-tutorial/5-...

Zate pride v poštev cin.ignore() na koncu while loopa.

MrStein ::

St753 je izjavil:

Ne vem na kakšen način si ti mislil vnest na tipkovnici EOF?

Verjetno kot ctrl-D (oziroma ctrl-Z na "retard OS").
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

MrStein ::

St753 je izjavil:

Poleg tega cin.get() pričakuje character, tako da nima smisla, da uprabljaš int (pazi tudi pri vnosu številk: 0 != '0').

get() vrača int. Torej je tip int smiseln.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Java skeniranje map in podmap

Oddelek: Programiranje
61149 (1038) nightrage
»

[Java] While zanka

Oddelek: Programiranje
262365 (1948) kunigunda
»

[C] struct in int[] (strani: 1 2 )

Oddelek: Programiranje
657329 (6402) MrBrdo
»

[c] Enaki datoteki

Oddelek: Programiranje
71032 (892) Spura
»

Vodenje videoteke v C++

Oddelek: Programiranje
51776 (1596) Tutankhamun

Več podobnih tem