upgrade kodu

0

witam wszystkich, mam prośbę do Was starych wyjadaczy, gdyż moja przygoda z programowaniem dopiero raczkuje. Zatem do sedna, na zeszłym semestrze napisałem programik na przedmiot systemy wbudowane, program oblicza wyniki wyborów, w tym semestrze ten sam wykładowca dał nam za zadanie ulepszenie/uproszczenie tego samego kodu. Trochę się napociłem aby go stworzyć i nie za bardzo wiem co jeszcze mógłbym w nim zmienić. Proszę o porady. Oto kod:

https://megawrzuta.pl/downloa[...]29a98375bcdbf6616d80f443.html

#include <iostream>
#include <string>
#include <cmath>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

int main(int argc, char** argv) {
    //zmienne
    int nr_alb=24506;

    int ktoragodz=1;
    int godz1=(nr_alb/470)*ktoragodz-(7-ktoragodz)*(7-ktoragodz);
    ktoragodz=2;
    int godz2=(nr_alb/470)*ktoragodz-(7-ktoragodz)*(7-ktoragodz);
    ktoragodz=3;
    int godz3=(nr_alb/470)*ktoragodz-(7-ktoragodz)*(7-ktoragodz);
    ktoragodz=4;
    int godz4=(nr_alb/470)*ktoragodz-(7-ktoragodz)*(7-ktoragodz);
    ktoragodz=5;
    int godz5=(nr_alb/470)*ktoragodz-(7-ktoragodz)*(7-ktoragodz);
    ktoragodz=6;
    int godz6=(nr_alb/470)*ktoragodz-(7-ktoragodz)*(7-ktoragodz);
    ktoragodz=7;
    int godz7=(nr_alb/470)*ktoragodz-(7-ktoragodz)*(7-ktoragodz);

    // drugi wzor
    ktoragodz=8;
    int godz8=(nr_alb/470)*(15-ktoragodz)-(8-ktoragodz)*(8-ktoragodz);
    ktoragodz=9;
    int godz9=(nr_alb/470)*(15-ktoragodz)-(8-ktoragodz)*(8-ktoragodz);
    ktoragodz=10;
    int godz10=(nr_alb/470)*(15-ktoragodz)-(8-ktoragodz)*(8-ktoragodz);
    ktoragodz=11;
    int godz11=(nr_alb/470)*(15-ktoragodz)-(8-ktoragodz)*(8-ktoragodz);
    ktoragodz=12;
    int godz12=(nr_alb/470)*(15-ktoragodz)-(8-ktoragodz)*(8-ktoragodz);
    ktoragodz=13;
    int godz13=(nr_alb/470)*(15-ktoragodz)-(8-ktoragodz)*(8-ktoragodz);
    ktoragodz=14;
    int godz14=(nr_alb/470)*(15-ktoragodz)-(8-ktoragodz)*(8-ktoragodz);

    int suma2i3=godz1+godz2+godz3+godz4+godz5+godz6+godz7+godz8+godz9+godz10+godz11+godz12+godz13+godz14;
    int suma4=(godz1+godz2+godz3+godz4+godz5+godz6+godz7+godz8+godz9+godz10+godz11+godz12+godz13+godz14)*0.07;
    int suma5=(godz1+godz2+godz3+godz4+godz5+godz6+godz7+godz8+godz9+godz10+godz11+godz12+godz13+godz14)*0.02;
    int suma6=(godz1+godz2+godz3+godz4+godz5+godz6+godz7+godz8+godz9+godz10+godz11+godz12+godz13+godz14)*0.05;
    int suma7=(godz1+godz2+godz3+godz4+godz5+godz6+godz7+godz8+godz9+godz10+godz11+godz12+godz13+godz14)*0.93;
    int suma8=(godz1+godz2+godz3+godz4+godz5+godz6+godz7+godz8+godz9+godz10+godz11+godz12+godz13+godz14)*0.93*0.43;
  int suma9=(godz1+godz2+godz3+godz4+godz5+godz6+godz7+godz8+godz9+godz10+godz11+godz12+godz13+godz14)*0.93*0.33;
 int suma10=(godz1+godz2+godz3+godz4+godz5+godz6+godz7+godz8+godz9+godz10+godz11+godz12+godz13+godz14)*0.93*0.12;
 int suma11=(godz1+godz2+godz3+godz4+godz5+godz6+godz7+godz8+godz9+godz10+godz11+godz12+godz13+godz14)*0.93*0.06;
 int suma12=(godz1+godz2+godz3+godz4+godz5+godz6+godz7+godz8+godz9+godz10+godz11+godz12+godz13+godz14)*0.93*0.03;
 int suma13=(godz1+godz2+godz3+godz4+godz5+godz6+godz7+godz8+godz9+godz10+godz11+godz12+godz13+godz14)*0.93*0.02;
 int suma14=(godz1+godz2+godz3+godz4+godz5+godz6+godz7+godz8+godz9+godz10+godz11+godz12+godz13+godz14)*0.93*0.01;

    cout<<"Wyniki wyborow:"<<endl;
    cout.fill('0');
    cout<<"____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|     1      |      2        |      3     |       4     |      5     |       6      |    7    |    8    |    9    |   10    |   11    |   12    |    13   |   14    |"<<endl;
    cout<<"|  Godziny   | ilosc kart    | ilosc kart | ilosc kart  | ilosc kart | ilosc kart   | ilosc   | ilosc   | ilosc   | ilosc   | ilosc   | ilosc   | ilosc   | ilosc   |"<<endl;
    cout<<"| glosowania | wydanych      | wrzuconych | lacznie     | gl niewaz. | gl niewaz.   | glosow  | glosow  | glosow  | glosow  | glosow  | glosow  | glosow  | glosow  |"<<endl;
    cout<<"|  od .. do  | przez komisje | do urny    | glos niewaz | pustych    | wyp. niepraw | waznych | na k[A] | na k[B] | na k[C] | na k[D] | na k[E] | na k[F] | na k[G] |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|   7 - 8    |  "<<godz1<<"           |  "<<godz1<<"        | "<<round(godz1*0.07)<<"           | "<<round(godz1*0.02)<<"          | "<<round(godz1*0.05)<<"            | "<<godz1-(round(godz1*0.05)-round(godz1*0.02))<<"      |    "<<round(godz1*0.43*0.93)<<"    |    "<<round(godz1*0.33*0.93)<<"    |    "<<round(godz1*0.12*0.93)<<"    |    "<<round(godz1*0.06*0.93)<<"    |    "<<round(godz1*0.03*0.93)<<"    |    "<<round(godz1*0.02*0.93)<<"    |    "<<round(godz1*0.01*0.93)<<"    |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|   8 - 9    |  "<<godz2<<"           |  "<<godz2<<"        | "<<round(godz2*0.07)<<"           | "<<round(godz2*0.02)<<"          | "<<round(godz2*0.05)<<"            | "<<godz2-(round(godz2*0.05)-round(godz2*0.02))<<"      |   "<<round(godz2*0.43*0.93)<<"    |   "<<round(godz2*0.33*0.93)<<"    |    "<<round(godz2*0.12*0.93)<<"    |    "<<round(godz2*0.06*0.93)<<"    |    "<<round(godz2*0.03*0.93)<<"    |    "<<round(godz2*0.02*0.93)<<"    |    "<<round(godz2*0.01*0.93)<<"    |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|   9 - 10   |  "<<godz3<<"          |  "<<godz3<<"       | "<<round(godz3*0.07)<<"          | "<<round(godz3*0.02)<<"          | "<<round(godz3*0.05)<<"            | "<<godz3-(round(godz3*0.05)-round(godz3*0.02))<<"     |    "<<round(godz3*0.43*0.93)<<"   |    "<<round(godz3*0.33*0.93)<<"   |    "<<round(godz3*0.12*0.93)<<"   |    "<<round(godz3*0.06*0.93)<<"    |    "<<round(godz3*0.03*0.93)<<"    |    "<<round(godz3*0.02*0.93)<<"    |    "<<round(godz3*0.01*0.93)<<"    |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|  10 - 11   |  "<<godz4<<"          |  "<<godz4<<"       | "<<round(godz4*0.07)<<"          | "<<round(godz4*0.02)<<"          | "<<round(godz4*0.05)<<"           | "<<godz4-(round(godz4*0.05)-round(godz4*0.02))<<"     |    "<<round(godz4*0.43*0.93)<<"   |    "<<round(godz4*0.33*0.93)<<"   |    "<<round(godz4*0.12*0.93)<<"   |    "<<round(godz4*0.06*0.93)<<"   |    "<<round(godz4*0.03*0.93)<<"    |    "<<round(godz4*0.02*0.93)<<"    |    "<<round(godz4*0.01*0.93)<<"    |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|  11 - 12   |  "<<godz5<<"          |  "<<godz5<<"       | "<<round(godz5*0.07)<<"          | "<<round(godz5*0.02)<<"          | "<<round(godz5*0.05)<<"           | "<<godz5-(round(godz5*0.05)-round(godz5*0.02))<<"     |    "<<round(godz5*0.43*0.93)<<"  |    "<<round(godz5*0.33*0.93)<<"   |    "<<round(godz5*0.12*0.93)<<"   |    "<<round(godz5*0.06*0.93)<<"   |    "<<round(godz5*0.03*0.93)<<"    |    "<<round(godz5*0.02*0.93)<<"    |    "<<round(godz5*0.01*0.93)<<"    |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|  12 - 13   |  "<<godz6<<"          |  "<<godz6<<"       | "<<round(godz6*0.07)<<"          | "<<round(godz6*0.02)<<"          | "<<round(godz6*0.05)<<"           | "<<godz6-(round(godz6*0.05)-round(godz6*0.02))<<"     |   "<<round(godz6*0.43*0.93)<<"   |    "<<round(godz6*0.33*0.93)<<"   |    "<<round(godz6*0.12*0.93)<<"   |    "<<round(godz6*0.06*0.93)<<"   |    "<<round(godz6*0.03*0.93)<<"    |    "<<round(godz6*0.02*0.93)<<"    |    "<<round(godz6*0.01*0.93)<<"    |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|  13 - 14   |  "<<godz7<<"          |  "<<godz7<<"       | "<<round(godz7*0.07)<<"          | "<<round(godz7*0.02)<<"          | "<<round(godz7*0.05)<<"           | "<<godz7-(round(godz7*0.05)-round(godz7*0.02))<<"     |   "<<round(godz7*0.43*0.93)<<"   |  "<<round(godz7*0.33*0.93)<<"    |    "<<round(godz7*0.12*0.93)<<"   |    "<<round(godz7*0.06*0.93)<<"   |    "<<round(godz7*0.03*0.93)<<"   |    "<<round(godz7*0.02*0.93)<<"    |    "<<round(godz7*0.01*0.93)<<"    |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|  14 - 15   |  "<<godz8<<"          |  "<<godz8<<"       | "<<round(godz8*0.07)<<"          | "<<round(godz8*0.02)<<"          | "<<round(godz8*0.05)<<"           | "<<godz8-(round(godz8*0.05)-round(godz8*0.02))<<"     |   "<<round(godz8*0.43*0.93)<<"   |  "<<round(godz8*0.33*0.93)<<"    |    "<<round(godz8*0.12*0.93)<<"   |    "<<round(godz8*0.06*0.93)<<"   |   "<<round(godz8*0.03*0.93)<<"    |    "<<round(godz8*0.02*0.93)<<"    |    "<<round(godz8*0.01*0.93)<<"    |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|  15 - 16   |  "<<godz9<<"          |  "<<godz9<<"       | "<<round(godz9*0.07)<<"          | "<<round(godz9*0.02)<<"          | "<<round(godz9*0.05)<<"           | "<<godz9-(round(godz9*0.05)-round(godz9*0.02))<<"     |    "<<round(godz9*0.43*0.93)<<"  |    "<<round(godz9*0.33*0.93)<<"   |    "<<round(godz9*0.12*0.93)<<"   |    "<<round(godz9*0.06*0.93)<<"   |    "<<round(godz9*0.03*0.93)<<"    |    "<<round(godz9*0.02*0.93)<<"    |    "<<round(godz9*0.01*0.93)<<"    |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|  16 - 17   |  "<<godz10<<"          |  "<<godz10<<"       | "<<round(godz10*0.07)<<"          | "<<round(godz10*0.02)<<"          | "<<round(godz10*0.05)<<"           | "<<godz10-(round(godz10*0.05)-round(godz10*0.02))<<"     |    "<<round(godz10*0.43*0.93)<<"  |    "<<round(godz10*0.33*0.93)<<"   |    "<<round(godz10*0.12*0.93)<<"   |    "<<round(godz10*0.06*0.93)<<"   |    "<<round(godz10*0.03*0.93)<<"    |    "<<round(godz10*0.02*0.93)<<"    |    "<<round(godz10*0.01*0.93)<<"    |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|  17 - 18   |  "<<godz11<<"          |  "<<godz11<<"       | "<<round(godz11*0.07)<<"          | "<<round(godz11*0.02)<<"          | "<<round(godz11*0.05)<<"           | "<<godz11-(round(godz11*0.05)-round(godz11*0.02))<<"     |    "<<round(godz11*0.43*0.93)<<"   |    "<<round(godz11*0.33*0.93)<<"   |    "<<round(godz11*0.12*0.93)<<"   |    "<<round(godz11*0.06*0.93)<<"   |    "<<round(godz11*0.03*0.93)<<"    |    "<<round(godz11*0.02*0.93)<<"    |    "<<round(godz11*0.01*0.93)<<"    |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|  18 - 19   |  "<<godz12<<"          |  "<<godz12<<"       | "<<round(godz12*0.07)<<"          | "<<round(godz12*0.02)<<"          | "<<round(godz12*0.05)<<"            | "<<godz12-(round(godz12*0.05)-round(godz12*0.02))<<"     |    "<<round(godz12*0.43*0.93)<<"   |    "<<round(godz12*0.33*0.93)<<"   |    "<<round(godz12*0.12*0.93)<<"   |    "<<round(godz12*0.06*0.93)<<"    |    "<<round(godz12*0.03*0.93)<<"    |    "<<round(godz12*0.02*0.93)<<"    |    "<<round(godz12*0.01*0.93)<<"    |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|  19 - 20   |  "<<godz13<<"           |  "<<godz13<<"        | "<<round(godz13*0.07)<<"           | "<<round(godz13*0.02)<<"          | "<<round(godz13*0.05)<<"            | "<<godz13-(round(godz13*0.05)-round(godz13*0.02))<<"      |    "<<round(godz13*0.43*0.93)<<"   |    "<<round(godz13*0.33*0.93)<<"   |    "<<round(godz13*0.12*0.93)<<"    |    "<<round(godz13*0.06*0.93)<<"    |    "<<round(godz13*0.03*0.93)<<"    |    "<<round(godz13*0.02*0.93)<<"    |    "<<round(godz13*0.01*0.93)<<"    |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|  20 - 21   |  "<<godz14<<"           |  "<<godz14<<"        | "<<round(godz14*0.07)<<"           | "<<round(godz14*0.02)<<"          | "<<round(godz14*0.05)<<"            | "<<godz14-(round(godz14*0.05)-round(godz14*0.02))<<"      |    "<<round(godz14*0.43*0.93)<<"    |    "<<round(godz14*0.33*0.93)<<"    |    "<<round(godz14*0.12*0.93)<<"    |    "<<round(godz14*0.06*0.93)<<"    |    "<<round(godz14*0.03*0.93)<<"    |    "<<round(godz14*0.02*0.93)<<"    |    "<<round(godz14*0.01*0.93)<<"    |"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cout<<"|            |               |            |             |            |              |         |         |         |         |         |         |         |         |"<<endl;
    cout<<"|    SUMA    |  "<<suma2i3<<"         |  "<<suma2i3<<"      | "<<suma4<<"         | "<<suma5<<"         | "<<suma6<<"          | "<<suma7<<"    | "<<suma8<<"    | "<<suma9<<"     | "<<suma10<<"     | "<<suma11<<"     | "<<suma12<<"      | "<<suma13<<"      | "<<suma14<<"      |"<<endl;
    cout<<"_____________________________________________________________________________________________________________________________________________________________________"<<endl;
    cin.get();

return 0;
}
5
  1. Podziel kod na funkcje.
  2. Poczytaj o tablicach oraz pętlach i ich użyj.
  3. Jeśli gdzieś używasz kopiuj wklej to znaczy, że to powinna być osobna funkcja.
2
  1. Po pierwsze linie ze zmiennymi godz1...godz 14 - da się wyciągnąć do ładnej prostej funkcji z parametrem. Tym parametrem będzie ktoragodz. Tak czy siak porada tutaj jest prosta do bólu, tam gdzie widzisz powtarzający się kod, który różni się jedną/dwiema zmiennymi - wyciągasz do metody/funkcji.

  2. Po co sumujesz tyle zmiennych? suma14 = (godz1 +..... Zrób sobie jakąś tablicę i sumuj jej elementy w pętli, albo za pomocą jakiejś wbudowany funkcji do sumowania wartości tablicy.

  3. Output..... Nigdy nie pisz tego w taki sposób. NIGDY.... poza tym sporo z tego Twojego kodu podpada pod te stwierdzenie. A co jakbyś miał 5000 godzin/dat/pól w tabeli do rozpisania? Klepałbyś to ten sposób?
    Ad.3 - Przecież to wszystko można sparametryzować. A czy same nagłówki tej tabeli muszą byc koniecznie rozbite na kilka linii?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0