Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Stwórz bazę danych „Dziennik”
- Dane w bazie:
- - od 1 do 10 uczniów (ilość_uczniów(int), nr ewidencyjny (int), klasa (string), imie (string), nazwisko (string)),
- - każdy uczeń ma posiadać: oceny za 1 semestr, oceny za 2 semestr, średnia ocen z 1 i 2 semestru
- - w każdym semestrze jest 5 przedmiotów,
- - w każdym przedmiocie jest od 0 do 10 ocen(int) , ilość_ocen(int), oraz średnia (float),
- Operacje na bazie danych
- Wyświetlanie:
- - wyświetl wszystkich uczniów,
- - wyświetl wybranego ucznia, (tylko z istniejących),
- - wyświetl oceny i średnie wszystkich uczniów,
- - wyświetl oceny i średnią wybranego ucznia,
- - wyświetl oceny i średnie z wybranego przedmiotu (wszyscy uczniowie),
- Zmiany
- - zmień dane wybranego ucznia(tylko z istniejących),
- - zmień wybraną ocenę z wybranego przedmiotu (tylko istniejącą),
- Dodawanie
- - dodaj ucznia,
- - dodaj ocenę z wybranego przedmiotu,
- Usuwanie
- - usuń ucznia,
- - usuń ocenę,
- Na co uważać:
- - rozrysuj sobie układ struktur i tablic, robienie wszystkiego na bieżąco może skutkować tym, że w pewnym momencie lepiej będzie skasować wszystko i robić to od zera, niż bawić się w zmiany,
- - postaraj się zrobić program IO, będę próbował zmienić dane nieistniejącego ucznia, zmienić siódmą ocenę z polskiego dla ucznia, który ma sześć ocen z polskiego itd. ( znacie mnie J ),
- - po zmianie oceny musi też zmienić się średnia,
- - wyświetlanie danych ma za zadanie przekazać użytkownikowi informacje – zrób to w przejrzysty sposób,
- - przygotuj sobie procedurę testową, która wypełnia dane paru uczniów – nie będziesz tracił czasu na wprowadzanie przykładowych danych, za każdym uruchomieniem programu
- - staraj się zamykać ukończone partie kodu w procedurach i funkcjach – łatwiej będzie szukać późniejszych błędów w kodzie.
- Bonus:
- - wyświetl uczniów wg średniej – rosnąco lub malejąco
- - wyświetl przedmioty wg średniej – od przedmiotu z najlepszą średnią*/
- #include <windows.h>
- #include <sstream>
- #include <conio.h>
- #include <cstdlib>
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- using namespace std;
- HANDLE g_hConsol = GetStdHandle(STD_OUTPUT_HANDLE);
- void gotoxy(const int x, const int y){
- COORD coord = {x, y};
- SetConsoleCursorPosition(g_hConsol, coord);
- }
- struct sm12isr{
- int sem1[10],sem2[10];
- float srS1,srS2,srZJPrzed;
- };
- struct oceny{
- sm12isr przedmioty[5];
- float srWszS1,srWszS2,srWsz;
- };
- struct dziennik{
- oceny zb_ocen;
- int nr_ew;
- string klasa,imie,nazwisko;
- };
- // ####################################
- const int pojD=10;
- dziennik tab[pojD],czyscTab;
- // ####################################
- void czyscB(){
- cin.clear();
- cin.sync();
- cin.ignore();
- }
- // UPIEKSZACZ {
- void naglowek(byte ktory){
- switch(ktory){
- case 1:{
- gotoxy(1,0);cout<<"Nr_ewid.";
- gotoxy(11,0);cout<<"Imie";
- gotoxy(24,0);cout<<"Nazwisko";
- gotoxy(43,0);cout<<"klasa";
- ;break;}
- case 2:{
- gotoxy(1,0);cout<<"LP";
- gotoxy(10,0);cout<<"Nr_ewid.";
- gotoxy(21,0);cout<<"Imie";
- gotoxy(34,0);cout<<"Nazwisko";
- gotoxy(53,0);cout<<"klasa";
- break;}
- case 3:{
- gotoxy(0,0);cout<<"LP";
- gotoxy(3,0);cout<<"Nazwisko";
- gotoxy(16,0);cout<<"Matematyka";
- gotoxy(29,0);cout<<"Fizyka";
- gotoxy(42,0);cout<<"MePr";
- gotoxy(55,0);cout<<"Polski";
- gotoxy(68,0);cout<<"SO";
- // 2. linia
- gotoxy(16,1);cout<<"sem1|sem2|k";
- gotoxy(29,1);cout<<"sem1|sem2|k";
- gotoxy(42,1);cout<<"sem1|sem2|k";
- gotoxy(55,1);cout<<"sem1|sem2|k";
- gotoxy(68,1);cout<<"sem1|sem2|k";
- break;}
- case 4:{
- gotoxy(1,0);cout<<"LP";
- gotoxy(4,0);cout<<"Przedmiot";
- gotoxy(15,0);cout<<"Srednia";
- break;}
- case 5:{
- gotoxy(0,0);cout<<"Matematyka";
- gotoxy(15,0);cout<<"Fizyka";
- gotoxy(30,0);cout<<"MePr";
- gotoxy(45,0);cout<<"Polski";
- gotoxy(60,0);cout<<"SO";
- // 2. linia
- gotoxy(0,1);cout<<"sem1|sem2";
- gotoxy(15,1);cout<<"sem1|sem2";
- gotoxy(30,1);cout<<"sem1|sem2";
- gotoxy(45,1);cout<<"sem1|sem2";
- gotoxy(60,1);cout<<"sem1|sem2";
- break;}
- case 6:{
- gotoxy(0,0);cout<<"Matematyka";
- gotoxy(15,0);cout<<"Fizyka";
- gotoxy(30,0);cout<<"MePr";
- gotoxy(45,0);cout<<"Polski";
- gotoxy(60,0);cout<<"SO";
- // 2. linia
- gotoxy(0,1);cout<<"sem1|sem2|k";
- gotoxy(15,1);cout<<"sem1|sem2|k";
- gotoxy(30,1);cout<<"sem1|sem2|k";
- gotoxy(45,1);cout<<"sem1|sem2|k";
- gotoxy(60,1);cout<<"sem1|sem2|k";
- // spod
- gotoxy(0,4);cout<<"--------------";
- gotoxy(0,5);cout<<"Srednia";
- gotoxy(15,4);cout<<"--------------";
- gotoxy(15,5);cout<<"Srednia";
- gotoxy(30,4);cout<<"--------------";
- gotoxy(30,5);cout<<"Srednia";
- gotoxy(45,4);cout<<"--------------";
- gotoxy(45,5);cout<<"Srednia";
- gotoxy(60,4);cout<<"--------------";
- gotoxy(60,5);cout<<"Srednia";
- gotoxy(0,8);cout<<"--------------";
- gotoxy(0,9);cout<<"Ocena";
- gotoxy(15,8);cout<<"--------------";
- gotoxy(15,9);cout<<"Ocena";
- gotoxy(30,8);cout<<"--------------";
- gotoxy(30,9);cout<<"Ocena";
- gotoxy(45,8);cout<<"--------------";
- gotoxy(45,9);cout<<"Ocena";
- gotoxy(60,8);cout<<"--------------";
- gotoxy(60,9);cout<<"Ocena";
- break;}
- case 7:{
- gotoxy(1,0);cout<<"Nr_ewid.";
- gotoxy(11,0);cout<<"Imie";
- gotoxy(24,0);cout<<"Nazwisko";
- gotoxy(40,0);cout<<"Oceny (semestr 1)";
- // nizej
- gotoxy(1,12);cout<<"Nr_ewid.";
- gotoxy(11,12);cout<<"Imie";
- gotoxy(24,12);cout<<"Nazwisko";
- gotoxy(40,12);cout<<"Oceny (semestr 2)";
- break;}
- case 8:{
- gotoxy(1,1);cout<<"Nr_ewid.";
- gotoxy(11,1);cout<<"Imie";
- gotoxy(24,1);cout<<"Nazwisko";
- gotoxy(43,0);cout<<"Srednia";
- gotoxy(64,0);cout<<"Ocena";
- // 2 linia
- gotoxy(40,1);cout<<"Sem1|Sem2|Kon";
- gotoxy(60,1);cout<<"Sem1|Sem2|Kon";
- break;}
- case 9:{
- gotoxy(1,0);cout<<"Nr_ewid.";
- gotoxy(11,0);cout<<"Imie";
- gotoxy(24,0);cout<<"Nazwisko";
- gotoxy(43,0);cout<<"Srednia";
- break;}
- }
- }
- // UPIEKSZACZ }
- // ***************************************************************************
- // PROCEDURY/FUNKCJE {
- int sprawdzIleUcz(){ // licz ile wklepanych uczniow
- int count=0;
- for(int i=0;i<10;i++){
- if (tab[i].nazwisko.length()>0) count++;
- }
- return count;
- }
- void obliczSr(){ // licz srednie wszystkich uczniow, z wszystkich przedmiotow, z dwoch semestrow
- int j,k,sO1,sO2,ilO1,ilO2;
- float srZPrzedmiotowS1,srZPrzedmiotowS2;
- for(int i=0;i<sprawdzIleUcz();i++){
- srZPrzedmiotowS1=0;srZPrzedmiotowS2=0;
- for(j=0;j<5;j++){
- ilO1=0;ilO2=0;sO1=0;sO2=0;
- for(k=0;k<10;k++){
- if (tab[i].zb_ocen.przedmioty[j].sem1[k]!=0){ilO1++;sO1+=tab[i].zb_ocen.przedmioty[j].sem1[k];}
- if (tab[i].zb_ocen.przedmioty[j].sem2[k]!=0){ilO2++;sO2+=tab[i].zb_ocen.przedmioty[j].sem2[k];}
- }
- tab[i].zb_ocen.przedmioty[j].srS1=0;
- tab[i].zb_ocen.przedmioty[j].srS2=0;
- if(ilO1==0) ilO1=1;
- if(ilO2==0) ilO2=1;
- tab[i].zb_ocen.przedmioty[j].srS1=float(sO1)/float(ilO1);
- tab[i].zb_ocen.przedmioty[j].srS2=float(sO2)/float(ilO2);
- tab[i].zb_ocen.przedmioty[j].srZJPrzed=(tab[i].zb_ocen.przedmioty[j].srS1+tab[i].zb_ocen.przedmioty[j].srS2)/2;
- srZPrzedmiotowS1+=tab[i].zb_ocen.przedmioty[j].srS1;
- srZPrzedmiotowS2+=tab[i].zb_ocen.przedmioty[j].srS2;
- }
- tab[i].zb_ocen.srWszS1=srZPrzedmiotowS1/5;
- tab[i].zb_ocen.srWszS2=srZPrzedmiotowS2/5;
- tab[i].zb_ocen.srWsz=(tab[i].zb_ocen.srWszS1+tab[i].zb_ocen.srWszS2)/2;
- }
- }
- void wysWszUczn(byte lp){ // (1)
- int modyf;
- for(int i=0;i<sprawdzIleUcz();i++){
- if (lp==1){gotoxy(1,i+1);cout<<i+1<<".";modyf=10;} else modyf=1;
- gotoxy(modyf,i+1);cout<<tab[i].nr_ew;
- gotoxy(11+modyf,i+1);cout<<tab[i].imie;
- gotoxy(24+modyf,i+1);cout<<tab[i].nazwisko;
- gotoxy(43+modyf,i+1);cout<<tab[i].klasa;
- }
- if (lp==0) czyscB();
- }
- void wysJUcz(){ // (2)
- int lP,ileOs=sprawdzIleUcz();
- wysWszUczn(1);
- cout<<"\nKogo chcesz zobaczyc?\nPodaj liczbe porzadkowa (0 - anuluj): ";do{cin>>lP;}while((lP<0)||(lP>ileOs));system("cls");
- if (lP!=0){naglowek(1);
- gotoxy(1,1);cout<<tab[lP-1].nr_ew;
- gotoxy(11,1);cout<<tab[lP-1].imie;
- gotoxy(24,1);cout<<tab[lP-1].nazwisko;
- gotoxy(43,1);cout<<tab[lP-1].klasa;
- }czyscB();
- }
- int zaokraglOc(float nieZo){ // zaokraglanie ocen
- int zaok;
- if (nieZo>=1) zaok=1;
- if (nieZo>1.75) zaok=2;
- if (nieZo>2.75) zaok=3;
- if (nieZo>3.75) zaok=4;
- if (nieZo>4.75) zaok=5;
- if (nieZo>5.75) zaok=6;
- return zaok;
- }
- void wysWszOcUczn(){ // (3)
- int j,k,modyf,dlaS1,dlaS2,dlaK;
- obliczSr();
- for(int i=0;i<sprawdzIleUcz();i++){
- modyf=16;
- gotoxy(0,i+2);cout<<i+1<<".";
- gotoxy(3,i+2);cout<<tab[i].nazwisko;
- for(j=0;j<5;j++){
- dlaS1=zaokraglOc(tab[i].zb_ocen.przedmioty[j].srS1);
- dlaS2=zaokraglOc(tab[i].zb_ocen.przedmioty[j].srS2);
- dlaK=zaokraglOc(tab[i].zb_ocen.przedmioty[j].srZJPrzed);
- gotoxy(modyf,i+2);cout<<dlaS1;
- gotoxy(modyf+5,i+2);cout<<dlaS2;
- gotoxy(modyf+10,i+2);cout<<dlaK;
- modyf+=13;
- }
- gotoxy(37,18);cout<<"Oceny";
- //gotoxy(1,24);cout<<tab[0].zb_ocen.przedmioty[0].srS1;
- }
- gotoxy(69,23);cout<<"Srednie >>>";getch();system("cls");naglowek(3);
- gotoxy(37,18);cout<<"Srednie";cout.precision(2);
- for(int i=0;i<sprawdzIleUcz();i++){
- obliczSr();
- gotoxy(0,i+2);cout<<i+1<<".";
- gotoxy(3,i+2);cout<<tab[i].nazwisko;
- modyf=16;
- for(j=0;j<5;j++){
- gotoxy(modyf,i+2);cout<<tab[i].zb_ocen.przedmioty[j].srS1<<"|"<<tab[i].zb_ocen.przedmioty[j].srS2<<"|"<<tab[i].zb_ocen.przedmioty[j].srZJPrzed;
- modyf+=13;
- }
- }
- czyscB();
- }
- void wysJUczOcSr(){ // (4)
- int lP,ileOs=sprawdzIleUcz(),j,dlImINaz,modyf=0;
- string lacznik;
- obliczSr();
- wysWszUczn(1);
- cout<<"\nKogo oceny chcesz zobaczyc?\nPodaj liczbe porzadkowa (0 - anuluj): ";do{cin>>lP;}while((lP<0)||(lP>ileOs));system("cls");
- if (lP!=0){
- naglowek(5);gotoxy(33,18);cout<<"Oceny czastkowe";
- lacznik=tab[lP-1].imie+" "+tab[lP-1].nazwisko;dlImINaz=lacznik.length()-1;gotoxy(40-dlImINaz/2,20);cout<<tab[lP-1].imie<<" "<<tab[lP-1].nazwisko;
- gotoxy(38,21);cout<<tab[lP-1].klasa;
- for(int i=0;i<5;i++){
- for(j=0;j<10;j++){
- gotoxy(modyf,j+2);if(tab[lP-1].zb_ocen.przedmioty[i].sem1[j]!=0) cout<<tab[lP-1].zb_ocen.przedmioty[i].sem1[j];
- gotoxy(modyf+5,j+2);if(tab[lP-1].zb_ocen.przedmioty[i].sem2[j]!=0) cout<<tab[lP-1].zb_ocen.przedmioty[i].sem2[j];
- }
- modyf+=15;
- }
- gotoxy(69,23);cout<<"Srednie >>>";getch();system("cls");naglowek(6);gotoxy(40-dlImINaz/2,20);cout<<tab[lP-1].imie<<" "<<tab[lP-1].nazwisko;
- gotoxy(38,21);cout<<tab[lP-1].klasa;
- gotoxy(28,18);cout<<"Oceny koncowe i srednie";cout.precision(2);
- modyf=0;
- for(int i=0;i<5;i++){
- gotoxy(modyf,3);cout<<tab[lP-1].zb_ocen.przedmioty[i].srS1;
- gotoxy(modyf+5,3);cout<<tab[lP-1].zb_ocen.przedmioty[i].srS2;
- gotoxy(modyf+10,3);cout<<tab[lP-1].zb_ocen.przedmioty[i].srZJPrzed;
- gotoxy(modyf,7);cout<<zaokraglOc(tab[lP-1].zb_ocen.przedmioty[i].srS1);
- gotoxy(modyf+5,7);cout<<zaokraglOc(tab[lP-1].zb_ocen.przedmioty[i].srS2);
- gotoxy(modyf+10,7);cout<<zaokraglOc(tab[lP-1].zb_ocen.przedmioty[i].srZJPrzed);
- modyf+=15;
- }cout.precision(3);
- gotoxy(0,20);cout<<"Srednia z 1. semestru: "<<tab[lP-1].zb_ocen.srWszS1;
- gotoxy(0,21);cout<<"Srednia z 2. semestru: "<<tab[lP-1].zb_ocen.srWszS2;
- gotoxy(0,22);cout<<"Srednia caloroczna: "<<tab[lP-1].zb_ocen.srWsz;
- }
- czyscB();
- }
- void wysWszOcenPrzed(){ // (5)
- string przedmSrT[5]={"Matematyka","Fizyka","MePr","Polski","SO"};
- int lP,j,bylOc;
- obliczSr();
- for(int i=0;i<5;i++){
- cout<<i+1<<". "<<przedmSrT[i]<<endl;
- }
- cout<<"Z jakiego przedmiotu chcesz zobaczyc oceny i srednie?\nPodaj liczbe porzadkowa (0 - anuluj): ";do{cin>>lP;}while((lP<0)||(lP>5));
- if (lP!=0){
- system("cls");naglowek(7);gotoxy(32,23);cout<<"Przedmiot: "<<przedmSrT[lP-1];
- gotoxy(27,24);cout<<"Oceny czastkowe z 1. i 2. semestru";
- for(int i=0;i<sprawdzIleUcz();i++){
- gotoxy(1,i+1);cout<<i+1<<".";
- gotoxy(11,i+1);cout<<tab[i].imie;
- gotoxy(24,i+1);cout<<tab[i].nazwisko;
- gotoxy(40,i+1);
- bylOc=0;
- for(j=0;j<10;j++){
- if(tab[i].zb_ocen.przedmioty[lP-1].sem1[j]!=0){
- if(bylOc>0) cout<<", ";
- cout<<tab[i].zb_ocen.przedmioty[lP-1].sem1[j];bylOc++;
- }
- }
- }
- for(int i=0;i<sprawdzIleUcz();i++){
- gotoxy(1,12+i+1);cout<<i+1<<".";
- gotoxy(11,12+i+1);cout<<tab[i].imie;
- gotoxy(24,12+i+1);cout<<tab[i].nazwisko;
- gotoxy(40,12+i+1);
- bylOc=0;
- for(j=0;j<10;j++){
- if(tab[i].zb_ocen.przedmioty[lP-1].sem2[j]!=0){
- if(bylOc>0) cout<<", ";
- cout<<tab[i].zb_ocen.przedmioty[lP-1].sem2[j];bylOc++;
- }
- }
- }
- gotoxy(65,24);cout<<"Srednie >>>";getch();system("cls");
- naglowek(8);gotoxy(32,23);cout<<"Przedmiot: "<<przedmSrT[lP-1];
- gotoxy(27,24);cout<<"Oceny koncowe i srednie";
- for(int i=0;i<sprawdzIleUcz();i++){
- gotoxy(1,i+2);cout<<i+1<<".";
- gotoxy(11,i+2);cout<<tab[i].imie;
- gotoxy(24,i+2);cout<<tab[i].nazwisko;
- gotoxy(40,i+2);cout<<tab[i].zb_ocen.przedmioty[lP-1].srS1;
- gotoxy(45,i+2);cout<<tab[i].zb_ocen.przedmioty[lP-1].srS2;
- gotoxy(50,i+2);cout<<tab[i].zb_ocen.przedmioty[lP-1].srZJPrzed;
- }
- for(int i=0;i<sprawdzIleUcz();i++){
- gotoxy(1,i+2);cout<<i+1<<".";
- gotoxy(11,i+2);cout<<tab[i].imie;
- gotoxy(24,i+2);cout<<tab[i].nazwisko;
- gotoxy(60,i+2);cout<<zaokraglOc(tab[i].zb_ocen.przedmioty[lP-1].srS1);
- gotoxy(65,i+2);cout<<zaokraglOc(tab[i].zb_ocen.przedmioty[lP-1].srS2);
- gotoxy(70,i+2);cout<<zaokraglOc(tab[i].zb_ocen.przedmioty[lP-1].srZJPrzed);
- }
- }czyscB();
- }
- void zmDWU(){ // (6)
- int lP=1,d,nrEw;
- do{
- system("cls");naglowek(2);wysWszUczn(1);
- cout<<"\nKtorego ucznia dane chcesz zmienic?\nPodaj liczbe porzadkowa (0 - anuluj): ";do{cin>>lP;}while((lP<0)||(sprawdzIleUcz()<lP));
- if(lP!=0){
- cout<<"Wybrano "<<tab[lP-1].imie<<" "<<tab[lP-1].nazwisko;
- cout<<"\nPodaj imie: ";do{cin>>tab[lP-1].imie;}while((tab[lP-1].imie.length()==0)&&(tab[lP-1].imie==" "));
- cout<<"Podaj nazwisko: ";do{cin>>tab[lP-1].nazwisko;}while((tab[lP-1].nazwisko.length()==0)&&(tab[lP-1].nazwisko==" "));
- cout<<"Podaj klase: ";do{cin>>tab[lP-1].klasa;}while((tab[lP-1].klasa.length()==0)&&(tab[lP-1].klasa==" "));
- cout<<"Podan numer ewidenyjny (rozny od 0): ";do{d=0;cin>>nrEw;
- for(int i=0;i<sprawdzIleUcz();i++){
- if(nrEw==tab[i].nr_ew){d=1;cout<<"Niestety, "<<tab[i].imie<<" "<<tab[i].nazwisko<<" posiada taki numer ewidencyjny\nPodaj inny: ";break;}
- }
- }while((d==1)||(nrEw<=0));
- tab[lP-1].nr_ew=nrEw;
- }
- }while(lP!=0);
- czyscB();
- }
- void zmWOZWP(){ //(7)
- int lP,nrPrz,semK,lPOc,jO,czySaOceny;
- string przedmSrT[5]={"Matematyka","Fizyka","MePr","Polski","SO"};
- obliczSr();
- do{
- system("cls");naglowek(2);wysWszUczn(1);
- cout<<"\nKogo ocene chcesz zmienic?\nPodaj liczbe porzadkowa (0 - anuluj): ";do{cin>>lP;}while((lP<0)||(sprawdzIleUcz()<lP));
- system("cls");
- if(lP!=0){
- cout<<"Wybrano "<<tab[lP-1].imie<<" "<<tab[lP-1].nazwisko;
- cout<<"\nZ jakiego przedmiotu?\n1 - matematyka\n2 - fizyka\n3 - MePr\n4 - polski\n5 - SO\nWybor:";do{cin>>nrPrz;}while((nrPrz<1)||(5<nrPrz));
- cout<<"Z ktorego semestru\nWybor: ";do{cin>>semK;}while((semK!=1)&&(semK!=2));
- system("cls");
- cout<<"Imie: "<<tab[lP-1].imie;
- cout<<"\nNazwisko: "<<tab[lP-1].nazwisko;
- cout<<"\nPrzedmiot: "<<przedmSrT[nrPrz-1];
- cout<<"\nSemestr: "<<semK;getch();system("cls");
- gotoxy(1,0);cout<<"Lp";gotoxy(7,0);cout<<"Oceny";
- czySaOceny=0;
- for(int i=0;i<sprawdzIleUcz();i++){
- if(semK==1){
- if(tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem1[i]!=0){czySaOceny=1;gotoxy(1,i+1);cout<<i+1;gotoxy(7,i+1);cout<<tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem1[i];}
- }
- else{
- if(tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem2[i]!=0){czySaOceny=1;gotoxy(1,i+1);cout<<i+1;gotoxy(7,i+1);cout<<tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem2[i];}
- }
- }
- if(czySaOceny==1){
- cout<<"\nKtora ocene chcesz zmienic?\nPodaj lp: ";
- if(semK==1){
- do{cin>>lPOc;}while(tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem1[lPOc-1]==0);
- cout<<"Podaj ocene: ";do{cin>>jO;}while((jO<1)||(6<jO));
- tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem1[lPOc-1]=jO;
- }
- else{do{cin>>lPOc;}while(tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem2[lPOc-1]==0);
- cout<<"Podaj ocene: ";do{cin>>jO;}while((jO<1)||(6<jO));
- tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem2[lPOc-1]=jO;
- }
- }else{cout<<"\nNiestety, ta osoba nie posiada ocen w tym semestrze.";}
- obliczSr();
- }
- }while(lP!=0);
- czyscB();
- }
- void dodajUcz(){ //(8)
- int idNUcz=-1,d,nrEw;
- system("cls");
- for(int i=1;i<pojD;i++){
- if((tab[i].nazwisko.length()==0)||(tab[i].nazwisko==" ")){
- idNUcz=i;break;
- }
- }
- if(idNUcz!=-1){
- cout<<"Podaj imie: ";do{cin>>tab[idNUcz].imie;}while((tab[idNUcz].imie.length()==0)&&(tab[idNUcz].imie==" "));
- cout<<"Podaj nazwisko: ";do{cin>>tab[idNUcz].nazwisko;}while((tab[idNUcz].nazwisko.length()==0)&&(tab[idNUcz].nazwisko==" "));
- cout<<"Podaj klase: ";do{cin>>tab[idNUcz].klasa;}while((tab[idNUcz].klasa.length()==0)&&(tab[idNUcz].klasa==" "));
- cout<<"Podan numer ewidenyjny (rozny od 0): ";do{d=0;cin>>nrEw;
- for(int i=0;i<sprawdzIleUcz();i++){
- if(i!=idNUcz){
- if(nrEw==tab[i].nr_ew){d=1;cout<<"Niestety, "<<tab[i].imie<<" "<<tab[i].nazwisko<<" posiada taki numer ewidencyjny\nPodaj inny: ";break;}
- }
- }
- }while((d==1)||(nrEw<=0));
- tab[idNUcz].nr_ew=nrEw;
- obliczSr();
- }else cout<<"\nDziennik pelny";
- czyscB();
- }
- void dodajOc(){ //(9)
- int lP,nrPrz,semK,czyNieMaOceny,jO;
- system("cls");naglowek(2);wysWszUczn(1);
- cout<<"\nKtoremu uczniowi chcesz dodac ocene/oceny?\nPodaj liczbe porzadkowa (0 - anuluj): ";do{cin>>lP;}while((lP<0)||(sprawdzIleUcz()<lP));
- system("cls");
- if(lP!=0){
- cout<<"Wybrano "<<tab[lP-1].imie<<" "<<tab[lP-1].nazwisko;
- do{
- cout<<"\nZ jakiego przedmiotu dodac ocene?\n1 - matematyka\n2 - fizyka\n3 - MePr\n4 - polski\n5 - SO\n6 - anuluj\nWybor:";do{cin>>nrPrz;}while((nrPrz<1)||(6<nrPrz));
- if(nrPrz!=6){
- cout<<"Z ktorego semestru\nWybor: ";do{cin>>semK;}while((semK!=1)&&(semK!=2));
- czyNieMaOceny=0;
- for(int i=0;i<10;i++){
- if(semK==1){
- if(tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem1[i]==0){
- czyNieMaOceny=1;tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem1[i];
- cout<<"Podaj ocene: ";do{cin>>jO;}while((jO<1)||(6<jO));
- tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem1[i]=jO;
- break;
- }
- }
- else{
- if(tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem2[i]==0){
- czyNieMaOceny=1;tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem2[i];
- cout<<"Podaj ocene: ";do{cin>>jO;}while((jO<1)||(6<jO));
- tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem2[i]=jO;
- break;
- }
- }
- }
- if(czyNieMaOceny==0) cout<<"\nUczen ma wszystkie 10 ocen w tym semestrze";
- }
- obliczSr();}while(nrPrz!=6);
- }
- czyscB();
- }
- void usunUcz(){ //(10)
- int lP;
- system("cls");naglowek(2);wysWszUczn(1);
- cout<<"\nKtorego ucznia chcesz usunac?\nPodaj liczbe porzadkowa (0 - anuluj): ";do{cin>>lP;}while((lP<0)||(sprawdzIleUcz()<lP));
- if(lP!=0){
- for(int i=lP-1;i<pojD-1;i++){
- tab[i]=tab[i+1];
- }
- if((tab[pojD-1].nazwisko.length()!=0)||(tab[pojD-1].nazwisko!=" ")) tab[pojD-1]=czyscTab;
- }
- czyscB();
- }
- void usunOc(){ //(11)
- int lP,nrPrz,semK,czySaOceny,lPOc,jO;
- string przedmSrT[5]={"Matematyka","Fizyka","MePr","Polski","SO"};
- do{
- system("cls");naglowek(2);wysWszUczn(1);
- cout<<"\nKtoremu uczniowi chcesz usunac ocene/oceny?\nPodaj liczbe porzadkowa (0 - anuluj): ";do{cin>>lP;}while((lP<0)||(sprawdzIleUcz()<lP));
- system("cls");
- if(lP!=0){
- cout<<"Wybrano "<<tab[lP-1].imie<<" "<<tab[lP-1].nazwisko;
- cout<<"\nZ jakiego przedmiotu?\n1 - matematyka\n2 - fizyka\n3 - MePr\n4 - polski\n5 - SO\nWybor:";do{cin>>nrPrz;}while((nrPrz<1)||(5<nrPrz));
- cout<<"Z ktorego semestru\nWybor: ";do{cin>>semK;}while((semK!=1)&&(semK!=2));
- system("cls");
- cout<<"Imie: "<<tab[lP-1].imie;
- cout<<"\nNazwisko: "<<tab[lP-1].nazwisko;
- cout<<"\nPrzedmiot: "<<przedmSrT[nrPrz-1];
- cout<<"\nSemestr: "<<semK;getch();system("cls");
- gotoxy(1,0);cout<<"Lp";gotoxy(7,0);cout<<"Oceny";
- czySaOceny=0;
- for(int i=0;i<sprawdzIleUcz();i++){
- if(semK==1){
- if(tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem1[i]!=0){czySaOceny=1;gotoxy(1,i+1);cout<<i+1;gotoxy(7,i+1);cout<<tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem1[i];}
- }
- else{
- if(tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem2[i]!=0){czySaOceny=1;gotoxy(1,i+1);cout<<i+1;gotoxy(7,i+1);cout<<tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem2[i];}
- }
- }
- if(czySaOceny==1){
- cout<<"\nKtora ocene chcesz usunac?\nPodaj lp: ";
- if(semK==1){
- do{cin>>lPOc;}while(tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem1[lPOc-1]==0);
- tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem1[lPOc-1]=0;
- }
- else{do{cin>>lPOc;}while(tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem2[lPOc-1]==0);
- tab[lP-1].zb_ocen.przedmioty[nrPrz-1].sem2[lPOc-1]=0;
- }
- }else{cout<<"\nNiestety, ta osoba nie posiada ocen w tym semestrze.";}
- }
- obliczSr();
- }while(lP!=0);
- czyscB();
- }
- void wysWgSrZWsz(){ // (12 a)
- dziennik tabK[10];
- int j,ks;
- string uporzJ;
- obliczSr();
- for(int i=0;i<sprawdzIleUcz();i++){
- tabK[i]=tab[i];
- }
- cout<<"Sortowanie\n1 - rosnace\n2 - malejace\nWybor";do{cin>>ks;}while((ks<0)||(2<ks));
- switch(ks){
- case 1:{
- for(int i=0;i<sprawdzIleUcz()-1;i++){
- for(int j=0;j<sprawdzIleUcz()-1;j++){
- if(tabK[j].zb_ocen.srWsz>tabK[j+1].zb_ocen.srWsz){
- swap(tabK[j],tabK[j+1]);
- }
- }
- }
- uporzJ="rosnace";break;}
- case 2:{
- for(int i=0;i<sprawdzIleUcz()-1;i++){
- for(int j=0;j<sprawdzIleUcz()-1;j++){
- if(tabK[j].zb_ocen.srWsz<tabK[j+1].zb_ocen.srWsz){
- swap(tabK[j],tabK[j+1]);
- }
- }
- }
- uporzJ="malejace";break;}
- }
- system("cls");
- naglowek(9);
- for(int i=0;i<sprawdzIleUcz();i++){
- gotoxy(1,i+1);cout<<tabK[i].nr_ew;
- gotoxy(11,i+1);cout<<tabK[i].imie;
- gotoxy(24,i+1);cout<<tabK[i].nazwisko;
- gotoxy(43,i+1);cout<<tabK[i].zb_ocen.srWsz;
- }
- gotoxy(32,24);cout<<"Uporzadkowane "<<uporzJ;
- czyscB();
- }
- void wysWgSrPrzed(){ // (12 b)
- int count,j;
- float przedSrO[5];
- string przedmSrT[5]={"Matematyka","Fizyka","MePr","Polski","SO"};
- obliczSr();
- naglowek(4);
- for(int i=0;i<5;i++){
- count=0;przedSrO[i]=0;
- for(j=0;j<sprawdzIleUcz();j++){
- if (tab[j].zb_ocen.przedmioty[i].srZJPrzed!=0){przedSrO[i]+=tab[j].zb_ocen.przedmioty[i].srZJPrzed;count++;}
- //gotoxy(1,10);cout<<"srZJPrzed: "<<tab[j].zb_ocen.przedmioty[i].srZJPrzed<<";count="<<count;getch();gotoxy(1,10);cout<<" ";
- }
- if (count>0) przedSrO[i]/=count;
- //gotoxy(1,11);cout<<"Przedmiot="<<przedmSrT[i]<<";Srednia="<<przedSrO[i];getch();cout<<" ";
- }
- for(int i=0;i<4;i++){
- for(j=0;j<4;j++){
- if(przedSrO[j]<przedSrO[j+1]){
- swap(przedSrO[j],przedSrO[j+1]);swap(przedmSrT[j],przedmSrT[j+1]);
- }
- }
- }
- for(int i=0;i<5;i++){
- gotoxy(1,i+1);cout<<i+1<<".";
- gotoxy(4,i+1);cout<<przedmSrT[i];
- gotoxy(15,i+1);cout<<przedSrO[i];
- }
- //gotoxy(1,24);cout<<tab[0].zb_ocen.przedmioty[0].sem1[9];
- czyscB();
- }
- void podWgSr(){ // pod 12 wybor dwoch roznych sortowan
- int kt;
- cout<<"Sortowanie wg:\n1 - sredniej wszystkich uczniow\n2 - sredniej z przedmiotow\nWybor: ";do{cin>>kt;}while((kt<1)||(2<kt));
- system("cls");
- switch(kt){
- case 1:{wysWgSrZWsz();break;}
- case 2:{wysWgSrPrzed();break;}
- }
- }
- // PROCEDURY/FUNKCJE }
- // ***************************************************************************
- // PRZYKLADOWE DANE (tylko 3 oceny na przedmiot) {
- void przykDan(){
- srand(time(NULL));
- int j,k,m,f;
- for(int i=0;i<8;i++){
- do{f=0;tab[i].nr_ew=rand()%(100)+1;
- if (i>0){
- for(m=i-1;m>=0;m--){
- if(tab[i].nr_ew==tab[m].nr_ew){
- f=1;break;
- }}
- }else f=0;
- }while(f==1);
- for(j=0;j<5;j++){
- for(k=0;k<10;k++){
- tab[i].zb_ocen.przedmioty[j].sem1[k]=0;
- tab[i].zb_ocen.przedmioty[j].sem2[k]=0;
- }
- for(k=0;k<3;k++){
- tab[i].zb_ocen.przedmioty[j].sem1[k]=rand()%(6)+1;
- tab[i].zb_ocen.przedmioty[j].sem2[k]=rand()%(6)+1;
- }
- }
- }
- tab[0].imie="Adam";tab[0].nazwisko="Zygadlo";tab[0].klasa="3F";
- tab[1].imie="Barbara";tab[1].nazwisko="Nowak";tab[1].klasa="3F";
- tab[2].imie="Dariusz";tab[2].nazwisko="Makaroniewski";tab[2].klasa="3F";
- tab[3].imie="Ryszard";tab[3].nazwisko="Niciecki";tab[3].klasa="3G";
- tab[4].imie="Piotr";tab[4].nazwisko="Szefler";tab[4].klasa="3G";
- tab[5].imie="Jacek";tab[5].nazwisko="Wolny";tab[5].klasa="3G";
- tab[6].imie="Kamil";tab[6].nazwisko="Andrusiewicz";tab[6].klasa="3G";
- tab[7].imie="Patryk";tab[7].nazwisko="Zacharjasik";tab[7].klasa="3G";
- }
- // PRZYKLADOWE DANE }
- int main(){
- przykDan();
- int wybor;
- do{cout.precision(3);
- system("cls");
- // wyswietlanie
- cout<<"1 - wyswietl wszystkich uczniow\n";// (+)
- cout<<"2 - wyswietl wybranego ucznia, (tylko z istniejacych)\n"; // (+)
- cout<<"3 - wyswietl oceny i srednie wszystkich uczniow\n";
- cout<<"4 - wyswietl oceny i srednia wybranego ucznia\n";
- cout<<"5 - wyswietl oceny i srednie z wybranego przedmiotu (wszyscy uczniowie)\n";
- // zmiany
- cout<<"6 - zmien dane wybranego ucznia (tylko z istniejacych)\n";
- cout<<"7 - zmien wybrana ocene z wybranego przedmiotu (tylko istniejaca)\n";
- // dodawanie
- cout<<"8 - dodaj ucznia\n";
- cout<<"9 - dodaj ocene z wybranego przedmiotu\n";
- // usuwanie
- cout<<"10 - usun ucznia\n";
- cout<<"11 - usun ocene\n";
- cout<<"12 - wyswietl wg sredniej (uczniow/przedmiotow)\n";
- cout<<"13 - Wylacz\n";
- cout<<"Wybor: ";
- cin>>wybor;
- switch(wybor){
- case 1:{system("cls");naglowek(1);wysWszUczn(0);break;}
- case 2:{system("cls");naglowek(2);wysJUcz();break;}
- case 3:{system("cls");naglowek(3);wysWszOcUczn();break;}
- case 4:{system("cls");naglowek(2);wysJUczOcSr();break;}
- case 5:{system("cls");wysWszOcenPrzed();break;}
- case 6:{zmDWU();break;}
- case 7:{zmWOZWP();break;}
- case 8:{dodajUcz();break;}
- case 9:{dodajOc();break;}
- case 10:{usunUcz();break;}
- case 11:{usunOc();break;}
- case 12:{system("cls");podWgSr();/*naglowek(4);wysWgSrPrzed();*/break;}
- }}while(wybor!=13);
- }
Advertisement
Add Comment
Please, Sign In to add comment