←  Gotowe funkcje

AMXX.pl: Support AMX Mod X i SourceMod

»

C++
Program obliczający Nasze średnie szkolne. :)

GoldeN - zdjęcie GoldeN 27.12.2010

Witajcie. Chciałem Wam przedstawić amatorski program do obliczania średniej z Waszych ocen. ;) Jako, że programowaniem w PAWNie zajmuje się od dłuższego czasu (a chcę nauczyć się C++), to na gwiazdkę dostałem 2 tomy książki Jerzego Grębosza "Symfonia C++ Standard" którą bardzo polecam!

#include <iostream>

using namespace std;
int ilosc_przedmiotow;

int main()
{
system("COLOR 2"); // Wiem, dziala tylko w Windowsie

cout << "*************************************************\n"
<< "* *\n"
<< "* Witaj w programie obliczajacym Twoja srednia! *\n"
<< "* *\n"
<< "*************************************************\n\n\n";

cout << "Podaj swoja ilosc przedmiotow ktore masz w szkole: ";
cin >> ilosc_przedmiotow;

/* Zmienne */
string przedmioty[ilosc_przedmiotow+1];
double ocena[ilosc_przedmiotow+1];
double srednia;
double wynik;
/* Zmienne */

srednia = 0;

cout << "\n\nPodaj teraz nazwy przedmiotow, ktore masz w szkole, musisz wpisac "
<< ilosc_przedmiotow
<< " przedmiotow\n\n"
<< endl;

for(int i = 0; i < ilosc_przedmiotow; i++)
{
cout << "Przedmiot nr " << i+1 << ": ";
cin >> przedmioty[i];
}

cout << "\n\nTeraz podaj swoje oceny\n";

for(int x = 0; x < ilosc_przedmiotow; x++)
{
cout << przedmioty[x] << ": ";
cin >> ocena[x];

srednia += ocena[x];
}

system("CLS"); // Wiem, dziala tylko w Windowsie

cout << "***************************\n"
<< "* *\n"
<< "*...OBLICZANIE SREDNIEJ...*\n"
<< "* *\n"
<< "***************************\n\n\n"
<< endl;

if(ilosc_przedmiotow > 0) wynik = ((srednia)/ilosc_przedmiotow);

cout << "Twoja srednia to: "
<< wynik
<< "\n\n\n"
<< "***************************\n"
<< "* *\n"
<< "* Created by GoldeN *\n"
<< "* *\n"
<< "***************************\n\n\n\n\n"
<< endl;

system("PAUSE"); // Wiem, dziala tylko w Windowsie
return 0;
}


PS. Daje w [sma] bo lepiej widać.
PS2. Używałem programu Dev - C++
PS3. Kod nieco zmieniony.
PS4. Zaktualizowane, dzięki Wam.

Załączone pliki


Użytkownik GoldeNx3 edytował ten post 30.12.2010 01:10
Odpowiedz

-PainKiller- - zdjęcie -PainKiller- 27.12.2010

jako że zajmujesz sie pawnem to dostałeś symfonie c++ :D
Odpowiedz

GoldeN - zdjęcie GoldeN 27.12.2010

jako że zajmujesz sie pawnem to dostałeś symfonie c++ :D


Nie, po prostu zacząłem od PAWN'a, bo serwerownia itd, ale chcę nauczyć się języka C++. ;]

Źle tam napisałem, już zmieniłem. ;d
Użytkownik GoldeNx3 edytował ten post 28.12.2010 00:00
Odpowiedz

  • +
  • -
mgr inż. Pavulon - zdjęcie mgr inż. Pavulon 28.12.2010

3 x system() nieobsługiwany przez linux (a nie tylko "clc").
Poza tym po co te nazwy przedmiotów ? Równie dobrze można podać po prostu wszystkie oceny, bo w wyniku i tak nie bierzesz pod uwagę nazw.
A do kompletu to że nie możesz dać w załączniku .exe nie znaczy że nie możesz tego pliku spakować i dać w .zip'ie :mur:


p.s.
na studia bezużyteczny bo tam są jeszcze punkty ECTS ;)

p.p.s.
i tak wolę arkusz kalkulacyjny czy nawet kalkulator :D
Odpowiedz

-PainKiller- - zdjęcie -PainKiller- 28.12.2010

bardzo fajny program na pewno będę nim obliczał swoją średnią czekam na następne
Odpowiedz

GoldeN - zdjęcie GoldeN 28.12.2010

3 x system() nieobsługiwany przez linux (a nie tylko "clc").
Poza tym po co te nazwy przedmiotów ? Równie dobrze można podać po prostu wszystkie oceny, bo w wyniku i tak nie bierzesz pod uwagę nazw.
A do kompletu to że nie możesz dać w załączniku .exe nie znaczy że nie możesz tego pliku spakować i dać w .zip'ie :mur:



Tak, wiem, że 3x system nie obsługiwany.
Po to nazwy, bo chciałem przećwiczyć, czy umiem napisać coś takiego od razu z nazwami przedmiotów, po drugie nazwy są przydatne, aby ktoś, kto wypisuje przedmioty nie zapomniał o którymś / nie wpisał podwójnie oceny na przedmiot.
Co do załącznika, po prostu myślałem, że łamie on warunki mego konta. Już dodaję.

+ dzięki za wypowiedzenie się. ;d

@-PainKiller-

Dziękuję. ; D (Mam nadzieję, że nie była to ironia. ;) )

@Pavulon

Ja tylko robię dla ćwiczeń. ; ]
Użytkownik GoldeNx3 edytował ten post 28.12.2010 04:12
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 28.12.2010

nie ma to jak uzywac stringow nic o nich nie wiedzac xD na poczatek polecam poczytac cos o Cstringach a potem sie brac za same stringi
Odpowiedz

GoldeN - zdjęcie GoldeN 28.12.2010

nie ma to jak uzywac stringow nic o nich nie wiedzac xD na poczatek polecam poczytac cos o Cstringach a potem sie brac za same stringi


No właśnie o CStringach jeszcze nie czytałem. ;D Dlatego szukałem jak to napisać. No ale da się wpisać przedmiot, więc w czym problem? ;d
Odpowiedz

MaDaFaKa - zdjęcie MaDaFaKa 28.12.2010

1.

string przedmioty[ilosc_przedmiotow+1];

Nie ma to jak zdefiniować stałą ;d
2. Mówiąc o samym kodzie, to muszę przyznać, że jest słaby i chaotyczny, lecz jak na początkującego to aż tak tragicznie nie jest.
3. Twoje "upiększacze" tylko marnują zasoby pamięci.
4. Żaden z profesjonalnych programistów nie odwołuje się do funkcji składowej(not. dla G[o]Q) system, gdyż programy tworzone są z założeniem działania na wszystkich systemach operacyjnych.
5. Na przyszłość pamiętaj o niedołączaniu do programu metody "getch()" z biblioteki conio.h, gdyż działa ona tylko na linux'ie, jak wspominane wcześniej funkcje systemowe. Oczywiście jeżeli mówimy w tym momencie o trochę bardziej profesjonalnych programach, niż te, które tworzysz teraz.

PS. Kod sam pisałeś czy może zerżnąłeś z książki Grębosza?
Odpowiedz

GoldeN - zdjęcie GoldeN 28.12.2010

Kod calutki mój, nie patrzałem w książkę, sam główkowałem jak to napisać. Na początku zrobiłem program który obliczał tylko 5 przedmiotów, nie dało się wybrać ile, no ale w końcu udało mi się napisać taki.

Co do "string przedmioty[ilosc_przedmitow+1], czemu mówicie, że tutaj błąd jest? ;d

Dzięki za wypowiedzenie się.
Użytkownik GoldeNx3 edytował ten post 28.12.2010 14:15
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 28.12.2010

dobrze jest tylko tablice nie po to sie indexuje od 0 zebys ty to robil od 1 bo marnujesz 1 komorke :D
Odpowiedz

GoldeN - zdjęcie GoldeN 28.12.2010

Chodzi o pętle? Że mogłem zacząć od 0, tak ?
Odpowiedz

-PainKiller- - zdjęcie -PainKiller- 28.12.2010

tak, a madafaka ty też upiększasz swoje programy super kodem, nie ma to jak być hipokryta

3. Twoje "upiększacze" tylko marnują zasoby pamięci.



Nie ma to jak zdefiniować stałą ;d

ciekawe gdzie tu jest stała
Odpowiedz

  • +
  • -
false - zdjęcie false 28.12.2010

hehe fajne :) Dobrze jak na początki... książkę ja sam sobie muszę też sprawić.. :P
Odpowiedz

GoldeN - zdjęcie GoldeN 28.12.2010

hehe fajne :) Dobrze jak na początki... książkę ja sam sobie muszę też sprawić.. :P


Książkę polecam! Naprawdę bardzo dobrze napisana i każda funkcja z osobno opisana.
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 28.12.2010

ksiazka dobra polecam jeszcze pasje

a stalej tam zadnej nie ma xD

tak petle mogles a nawet miales zaczac od 0 :D
Odpowiedz

  • +
  • -
false - zdjęcie false 28.12.2010

ksiazka dobra polecam jeszcze pasje


a czym różni się jedna od drugiej ? xD
Odpowiedz

  • +
  • -
Ortega - zdjęcie Ortega 28.12.2010

@UP

[...]templates i exception handling, (szablony i wyjątki) jako że jest to temat na tyle obszerny iż poświęciłęm im osobną książkę pt. "Pasja C++"

Przypis:
Są w niej omówione szablony funkcji , szablony klas, klasy pojemnikowe i obsługa sytuacji wyjątkowych.[...]

Odpowiedz

MaDaFaKa - zdjęcie MaDaFaKa 28.12.2010

String jest to zmienna tekstowa uznawana za wielu programistów za stałą.
Odpowiedz

GoldeN - zdjęcie GoldeN 28.12.2010

Zacząłem pętle od 0, to jak wpisałem, żeby wyciągnął średnią z dwóch przedmiotów, to on podał mi trzy przedmioty.

Przedmiot 0:
Przedmiot 1:
Przedmiot 2:

Więc nie wiem czemu tak się stało. ;d

Co do stringów. Jak mogę wpisać np. "Język Polski" jest tutaj odstęp, a jak tak wpisze, to program przechodzi mi dwa wpisy dalej..
Użytkownik GoldeNx3 edytował ten post 28.12.2010 18:53
Odpowiedz