Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<iomanip>
- #include<string.h>
- #include<fstream>
- using namespace std;
- double m;//ukupni bodovi
- double um;//bodovi za prolaznost
- double max=0;
- double min=INT_MAX;
- double max2=INT_MIN;
- int br=0;
- int br2=0;
- void ispis(){
- cout.width(85);
- cout << "------------------------------------------------------------------------" << endl;
- cout.width(25);
- cout<< "\t\t\t\tMENU" << endl ;
- cout.width(85);
- cout<< "------------------------------------------------------------------------" << endl;
- cout << " ID\tOPTION" << endl;
- cout << " 0)\tUnos studenata "<<endl;
- cout << " 1)\tStudent sa maksimalnim brojem bodova" << endl << " 2)\tStudent sa minimalnim brojem bodova" << endl;
- cout << " 3)\tStudenti koji su polozili predmet"<<endl<<" 4)\tStudenti koji nisu polozili predmet"<<endl;
- cout << " 5)\tSortiranji niz studenata po broju bodova"<<endl<<" 6)\tUnesi nove studente"<<endl<<" 7)\tIspisi podatake o studentu na osnovu unesenog predmeta i imena\n"<<" 8)\tSortirani niz studenata po broju bodova na osnovu unesenog predmeta\n"<<" 9)\tProlaznost[%]"<<endl;
- cout << " 10)\ Sacuvaj i izadi";
- }
- void cls(){
- system("pause");
- system("cls");
- ispis();
- }
- struct prosjek{
- double pp,dp;//prva parcijala,druga parcijala
- };
- struct pamtime{
- char ime1[25],ime2[25];
- };
- struct student{
- char predmet[30];
- char ip[25];
- prosjek unos;
- pamtime pi;
- };
- student unesi_podatke(){
- student s;
- cout<<"Unesite predmet: ";cin.getline(s.predmet,30);
- while(!cin) {
- cout << "Pogresan unos!.\nUnesite predmet: ";
- cin.clear(); // Oporavak toka
- cin.ignore(10000, '\n'); // Brisanje spremnika
- cin.getline(s.predmet,30);
- }
- cout<<"Unesite ime i prezime: ";cin.getline(s.ip,25);
- while(!cin) {
- cout << "Pogresan unos!.\nUnesite ime i prezime: ";
- cin.clear(); // Oporavak toka
- cin.ignore(10000, '\n'); // Brisanje spremnika
- cin.getline(s.ip,25);
- }
- cout<<"Unesite bodove sa [ 1.] parcijalnog ispita: ";cin>>s.unos.pp;
- while(!cin) {
- cout << "Pogresan unos!.\nUnesite bodove sa [ 1.] parcijalnog ispita: ";
- cin.clear(); // Oporavak toka
- cin.ignore(10000, '\n'); // Brisanje spremnika
- cin>>s.unos.pp;
- }
- cout<<"Unesite bodove sa [ 2.] parcijalnog ispita: ";cin>>s.unos.dp;
- while(!cin) {
- cout << "Pogresan unos!.\nUnesite bodove sa [ 2.] parcijalnog ispita: ";
- cin.clear(); // Oporavak toka
- cin.ignore(10000, '\n'); // Brisanje spremnika
- cin>>s.unos.dp;
- }
- return s;
- }
- void ispisi_max(student A[],int a){
- int maxI;
- for(int i=0;i<a;i++){
- if(A[i].unos.pp+A[i].unos.dp>::max){
- ::max=A[i].unos.pp+A[i].unos.dp;
- strcpy(A->pi.ime1,A[i].ip);
- ::br++;
- for(int i=1;i<br;i++){
- if(i==br){
- maxI=i;
- strcpy(A->pi.ime1,A[maxI].ip);
- }
- }
- }
- }
- cout<<"Student sa maximalnim brojem bodova je "<<A->pi.ime1<<" i ima ukupno ["<<::max<<"] bodova";
- }
- void ispisi_min(student A[],int a){
- int minI;
- for(int i=0;i<a;i++){
- if(A[i].unos.pp+A[i].unos.dp<(::min)){
- ::min=A[i].unos.pp+A[i].unos.dp;
- strcpy(A->pi.ime2,A[i].ip);
- ::br2++;
- for(int i=1;i<br2;i++){
- if(i==br2){
- minI=i;
- strcpy(A->pi.ime2,A[minI].ip);
- }
- }
- }
- }
- cout<<"Student sa minimalnim brojem bodova je "<<A->pi.ime2<<" i ima ukupno ["<<::min<<"] bodova";
- }
- void ispisi_polozili(student A[],int a){
- int br1=0;
- int br2=0;
- cout<<"Studenti koji su zadovoljili kriterije su: ";
- for(int i=0;i<a;i++){
- if(A[i].unos.pp+A[i].unos.dp>um){
- br1++;
- cout<<i+1<<". "<<A[i].ip<<endl;
- }else{
- br2++;
- if(br2==a){
- cout<<endl;cout<<"Niti jedan student nije zadovoljio ocekivani kriteriji."<<endl;
- }
- }
- }
- }
- void ispisi_nisupolozili(student A[],int a){
- int br1=0;
- int br2=0;
- cout<<"Studenti koji nisu zadovoljili kriterije su: ";
- for(int i=0;i<a;i++){
- if(A[i].unos.pp+A[i].unos.dp<um){
- br1++;
- cout<<i+1<<". "<<A[i].ip<<endl;
- }else{
- br2++;
- if(br2==a){
- cout<<endl;cout<<"Svi studenti su zadovoljili ocekivane kriterije. "<<endl;
- }
- }
- }
- }
- void rotiraj(student &x,student &y){
- student temp=x;
- x=y;
- y=temp;
- }
- void sortiraj(student A[],int a){
- for(int i=0;i<a-1;i++){
- for(int j=0;j<a-1;j++){
- if((A[j].unos.pp+A[j].unos.dp)<(A[j+1].unos.pp+A[j+1].unos.dp)){
- rotiraj(A[j],A[j+1]);
- }
- }
- }
- }
- void ispisi_sortirano(student A[],int a){
- sortiraj(A,a);
- cout<<"====================================================================\n";
- for(int i=0;i<a;i++){
- cout<<" "<<i+1<<". "<<A[i].ip<<" - "<<" PREDMET "<<"["<<A[i].predmet<<"]"<<" "<<(A[i].unos.pp+A[i].unos.dp)<<" [BODA]"<<endl;
- }
- cout<<"====================================================================\n";
- }
- void ispisi_prolaznost(student A[], int a){
- float prolaznost;
- float br3=0;
- for(int i=0;i<a;i++){
- if(A[i].unos.pp+A[i].unos.dp>um){
- br3++;
- }
- }
- prolaznost=(br3/a)*100;
- cout <<"Prolaznost iznosi ["<<prolaznost<<"%]";
- }
- void ispisi_studenta(student A){
- cout<<"==========================================\n";
- cout<<" "<<A.ip<<" "<<(A.unos.pp+A.unos.dp)<<" [BODA]"<<endl;
- cout<<"==========================================\n";
- }
- void pretraga_po_imenu(student *A, char *B, int a){
- student uneseni;
- for(int i=0;i<a;i++){
- if(stricmp((A+i)->ip,B)==0){
- uneseni=A[i];
- }
- }
- ispisi_studenta(uneseni);
- }
- void spisak_unesenih_predmeta(student *A,int a){
- int j=a;
- cout<<" Spisak unesenih predmeta\n";
- cout<<"=================================\n";
- for(int i=0;i<a;i++){
- if(stricmp((A+i)->predmet,(A+j)->predmet)==0){
- }else{
- cout<<"\t"<<(A+i)->predmet<<endl;
- }
- j++;
- }
- cout<<"==================================\n";
- }
- void pretraga_po_predmetu(student *A, char *B, int a){
- student predmet;
- for(int i=0;i<a;i++){
- if(stricmp((A+i)->predmet,B)==0){
- predmet=A[i];
- }
- }
- }
- void pretraga_po_predmetu_isti_predmet(student *A, char *B, int a){
- student predmet2;
- cout<<"=====================================\n";
- for(int i=0;i<a;i++){
- if(stricmp((A+i)->predmet, B)==0){
- predmet2 = A[i];
- cout<<" "<<predmet2.ip<<" "<<(predmet2.unos.pp+predmet2.unos.dp)<<" [BODA]"<<endl;
- }
- }
- cout<<"=====================================\n";
- }
- void sacuvaj_trenutno_stanje(student s[], int n){
- ofstream unosBrojaStudenata("broj_prijava.dat", ios::out|ios::binary);
- unosBrojaStudenata.write((char*)&n, sizeof(int));
- unosBrojaStudenata.close();
- ofstream unosStudenata("studenti.dat", ios::out|ios::binary);
- for(int i(0); i<n; ++i){
- unosStudenata.write((char*)&s[i], sizeof s);
- }
- unosStudenata.close();
- }
- int main(){
- cout<<endl;
- student s[30];
- int izbor,n=0;
- ifstream brojPrijava("broj_prijava.dat", ios::binary);
- brojPrijava.read((char*)(&n), sizeof(int));
- brojPrijava.close();
- ifstream citanje("studenti.dat", ios::binary);
- for(int i=0; i<n; ++i){
- citanje.read((char*)&s[i], sizeof s);
- }
- citanje.close();
- cls();
- cout << endl << "---Odaberite opciju: "; cin >> izbor;cout<<endl;
- while(!cin) {
- cout << "Pogresan unos!. Unesite broj: ";
- cin.clear(); // Oporavak toka
- cin.ignore(10000, '\n'); // Brisanje spremnika
- cin >> izbor;
- }
- cin.ignore(10000,'\n');cin.clear();
- system("cls");
- do{
- if(izbor==0){
- cout<<"==========================\n";
- cout<<"Unesite broj studenata: ";
- cin>>n;
- while(!cin) {
- cout << "Pogresan unos!. Unesite broj studenata: ";
- cin.clear(); // Oporavak toka
- cin.ignore(10000, '\n'); // Brisanje spremnika
- cin >> n;
- }
- cout<<"==========================\n";
- cout<<endl;
- cout<<"----------------------------------------------------------------------\n";
- cout<<"[UKUPNI BROJ BODOVA MORA BITI VECI OD 55% DA BI STUDENT POLOZIO ISPIT]\n\n";
- cout<<"Unesite ukupan broj bodova [ 1.] i [ 2.] parcijalnog ispita: ";
- cin>>m;cin.ignore(10000, '\n'); cin.clear();
- while(!cin) {
- cout << "Pogresan unos!.\nUnesite ukupan broj bodova [ 1.] i [ 2.] parcijalnog ispita: ";
- cin.clear(); // Oporavak toka
- cin.ignore(10000, '\n'); // Brisanje spremnika
- cin >> m;
- }
- cout<<endl;
- um=m/1.8;
- cout<<" [UKUPNI BROJ BODOVA MORA BITI VECI OD "<<um<<"]\n";
- cout<<"----------------------------------------------------------------------\n";
- cout<<endl;
- for(int i=0;i<n;i++){
- system("cls");
- cout<<"Unesite podatke o "<<i+1<<". studentu:\n";
- s[i]=unesi_podatke();
- cin.ignore(10000,'\n');cin.clear();
- cout<<endl;
- }
- sacuvaj_trenutno_stanje(s,n);
- cls();
- cout << endl << endl << "---Odaberite opciju: "; cin >> izbor;
- cin.ignore(10000,'\n');cin.clear();
- }
- if(izbor==1){
- system("cls");
- ispisi_max(s,n);
- cout<<endl;
- cls();
- cout << endl << endl << "---Odaberite opciju: "; cin >> izbor;
- }
- if(izbor==2){
- system("cls");
- ispisi_min(s,n);
- cout<<endl;
- cls();
- cout << endl << endl << "---Odaberite opciju: "; cin >> izbor;
- }
- if(izbor==3){
- system("cls");
- ispisi_polozili(s,n);
- cout<<endl;
- cls();
- cout << endl << endl << "---Odaberite opciju: "; cin >> izbor;
- cin.ignore(10000,'\n');cin.clear();
- system("cls");
- }
- if(izbor==4){
- ispisi_nisupolozili(s,n);
- cout<<endl;
- cls();
- cout << endl << endl << "---Odaberite opciju: "; cin >> izbor;
- cin.ignore(10000,'\n');cin.clear();
- system("cls");
- }
- if(izbor==5){
- ispisi_sortirano(s,n);
- cout<<endl;
- cls();
- cout << endl << endl << "---Odaberite opciju: "; cin >> izbor;
- cin.ignore(10000,'\n');cin.clear();
- system("cls");
- }
- if(izbor==6){
- cout<<"Unesite podatke o novom studentu:\n";
- s[n]=unesi_podatke();
- n=n+1;
- sacuvaj_trenutno_stanje(s,n);
- cout<<endl;
- cls();
- cout << endl << endl << "---Odaberite opciju: "; cin >> izbor;
- cin.ignore(10000,'\n');cin.clear();
- system("cls");
- }
- if(izbor==7){
- system("cls");
- char pretraga[25];
- char clas[30];
- spisak_unesenih_predmeta(s, n);
- cout<<"Unesite predmet: ";
- cin.getline(clas,30);
- pretraga_po_predmetu(s, clas, n);
- cout <<"Unesite ime za ispis: ";
- cin.getline(pretraga,25);
- pretraga_po_imenu(s, pretraga, n);
- cout<<endl;
- cls();
- cout << endl << endl << "---Odaberite opciju: "; cin >> izbor;
- cin.ignore(10000,'\n');cin.clear();
- system("cls");
- }
- if(izbor==8){
- char clas2[30];
- system("cls");
- spisak_unesenih_predmeta(s,n);
- cout<<"Unesite predmet: ";
- cin.getline(clas2,30);
- sortiraj(s,n);
- pretraga_po_predmetu_isti_predmet(s,clas2,n);
- cout<<endl;
- cls();
- cout << endl << endl << "---Odaberite opciju: "; cin >> izbor;
- cin.ignore(10000,'\n');cin.clear();
- }
- if(izbor==9){
- system("cls");
- ispisi_prolaznost(s,n);
- cout<<endl;
- cls();
- cout << endl << endl << "---Odaberite opciju: "; cin >> izbor;
- cin.ignore(10000,'\n');cin.clear();
- }
- } while(izbor!=10);
- sacuvaj_trenutno_stanje(s,n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement