Speed E398
Početnik
- Poruka
- 37
tREBA DA URADIM NEKI program za izracunavanje prosecne ocene odeljenja a i svakog ucenika posebno.moze li neko da mi pomogne da zapocnem.radio bih vise modula pa ih posle povezivao. Hvala unapred
Donji video prikazuje kako da instalirate aplikaciju na početni ekran svog uređaja.
Napomena: This feature may not be available in some browsers.
class Student {
char* ime; // Ime studenta.
long ind; // Broj indeksa (ggggrrrr).
int* ocene; // Niz ocena.
int kap, brOc; // Kapacitet niza i broj ocena.
Student (const Student&) {} // Ne sme da se kopira.
void operator= (const Student&) {} // Ne sme da se dodeljuje.
public:
Student (const char* iime, long iind, int kkap=40); // Konstruktor.
~Student () { delete [] ime; delete [] ocene; } // Destruktor.
const char* dohvatiIme () const { return ime; } // Ime studenta.
long dohvatiInd () { return ind; } // Broj indeksa.
Student& promeniIme (const char* iime); // Promena imena.
Student& promeniInd (long iind) // Promena broja indeksa.
{ iind = ind; return *this; }
Student& operator+= (int ocena); // Dodavanje ocene.
int operator+ () { return brOc; } // Broj ocena.
int& operator[] (int i); // Dohvatanje ocene.
int operator[] (int i) const;
double operator! () const; // Srednja ocena.
};
#include "student.h"
#include <cstring>
#include <cstdlib>
using namespace std;
Student::Student (const char* iime, long iind, int kkap) { // Konstruktor.
ime = new char [strlen(iime)+1];
strcpy (ime, iime);
ocene = new int [kap = kkap];
brOc = 0;
}
Student& Student::promeniIme (const char* iime) { // Promena imena.
delete [] ime;
ime = new char [strlen(iime)+1];
strcpy (ime, iime);
return *this;
}
Student& Student::operator+= (int ocena) { // Dodavanje ocene.
if (brOc == kap) exit (1);
ocene[brOc++] = ocena;
return *this;
}
int& Student::operator[] (int i) { // Dohvatanje ocene.
if (i<0 || i>brOc) exit (2);
return ocene[i];
}
int Student::operator[] (int i) const {
if (i<0 || i>brOc) exit (2);
return ocene[i];
}
double Student::operator! () const { // Srednja ocena.
double s = 0;
for (int i=0; i<brOc; s+=ocene[i++]);
return brOc ? s/brOc : 0;
}
#include "student.h"
#include <iostream>
using namespace std;
int main () {
int n; cin >> n;
Student** s = new Student* [n];
for (int i=0; i<n; i++) {
// Citanje podataka i stvaranje sledeceg studenta.
char ime[50]; long ind; cin >> ime >> ind;
Student* t = new Student (ime, ind);
int brOc; cin >> brOc;
for (int j=0; j<brOc; j++) { int oc; cin >> oc; *t += oc; }
// Umetanje u uredjeni niz.
int j;
for (j=i; j>0 && !*s[j-1]<!*t; j--) s[j] = s[j-1];
s[j] = t;
}
// Ispisivanje uredjenog niza.
for (int i=0; i<n; i++)
cout << s[i]->dohvatiIme() << '\t' << !*s[i] << endl;
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 35
#define MAX_N 50
typedef struct {int rbr,br_ulaza;
char ime[MAX],ulica[MAX];} Stanari;
FILE *fptr;
int citaj(Stanari []);
int pretraga(void);
main()
{Stanari *st;
int n,nadjen;
st=malloc(MAX_N*sizeof(Stanari));
if (st==NULL) {printf("\nGreska u dodeli memorije\n");exit(1);}
n=citaj(st);
st=realloc(st,n*sizeof(Stanari));
fptr=fopen("adrese.bin","wb");
if(fptr==NULL) {printf("\nGgreska kod otvaranja datoteke\n");exit(1);}
fwrite(st,sizeof(Stanari),n,fptr);
fclose(fptr);
nadjen=pretraga();
if (nadjen==0) printf("\nNema stanara na toj adresi\n");
printf("\n\n");
}
int citaj(Stanari x[])
{int i;
for(i=0;i<MAX_N;i++)
{ printf("\nIme i prezime stanara (za kraj upisite stop): ");
gets(x[i].ime);
if(strcmp(x[i].ime,"stop")==0) break;
printf("\nUlica u kojoj stanuje: ");
gets(x[i].ulica);
printf("\nBroj ulaza: ");
scanf("%d",&x[i].br_ulaza);
x[i].rbr=i+1;
fflush(stdin);
}
return i;
}
int pretraga(void)
{int nadjen=0,broj;
char ul[MAX];
Stanari st;
printf("\nUnesite ulicu :");
gets(ul);
printf("\nUnesite broj: ");
scanf("%d",&broj);
fptr=fopen("adrese.bin","rb");
if(fptr==NULL) {printf("\nGgreska kod otvaranja datoteke\n");exit(1);}
printf("\nNa adresi %s %d stanuju: \n\n",ul,broj);
while(1)
{ fread(&st,sizeof(Stanari),1,fptr);
if(feof(fptr)) break;
if(st.br_ulaza==broj && strcmp(st.ulica,ul)==0)
{ nadjen=1;
printf("\n%d. %s ",st.rbr,st.ime);
}
}
fclose(fptr);
return nadjen;
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100
#define INT_MAX 32767
typedef struct {char ime [35],indeks [10],smer [5];
int semestar,sifra,ocena;} Student;
typedef struct {char ime [35],indeks [10],smer [5];} Student2;
int unos(Student *st);
int trazi (Student *,Student *);
main()
{Student *st;
Student2 stud;
FILE *fptr1,*fptr2;
int n,i,j;
int suma,broj_ispita,nadjen;
st=malloc(MAX*sizeof(Student));
if(st==NULL)
{ printf("\nGreska memorije\n");
exit(1); }
n=unos(st);
st=realloc(st,n*sizeof(Student));
fptr1=fopen("ispit.bin","wb");
if(fptr1==NULL)
{ printf("\nGreska kod otvaranja datoteke za upis\n");
exit(1); }
fwrite(st,sizeof(Student),n,fptr1);
fptr2=fopen("prosek.bin","wb");
if(fptr2==NULL)
{ printf("\nGreska kod otvaranja datoteke za upis\n");
exit(1); }
for(i=0;i<n;i++)
{ nadjen=trazi(st,st+i);
if(nadjen==0)
{ suma=broj_ispita=0;
for(j=i;j<n;j++)
if (strcmp((st+i)->ime,(st+j)->ime)==0 &&
strcmp((st+i)->indeks,(st+j)->indeks)==0 &&
strcmp((st+i)->smer,(st+j)->smer)==0)
{ suma=suma+(st+j)->ocena;
broj_ispita++; }
if((float)suma/broj_ispita>=8.0)
{ strcpy(stud.ime,(st+i)->ime);
strcpy(stud.smer,(st+i)->smer);
strcpy(stud.indeks,(st+i)->indeks);
fwrite(&stud,sizeof(Student2),1,fptr2);
}
}
}
free(st);
fcloseall();
}
int unos(Student *ptr)
{ int i;
for(i=0;i<MAX;i++)
{ printf("\nUnesite ime studenta (za kraj ukucajte stop): ");
gets(ptr->ime);
if (strcmp(ptr->ime,"stop")==0) break;
printf("\nUnesite broj indeksa: ");
gets(ptr->indeks);
printf("\nUnesite smer: ");
gets(ptr->smer);
printf("\nUnesite semestar: ");
scanf("%d",&ptr->semestar);
while(1)
{ printf("\nUnesite sifru predmeta: ");
scanf("%d",&ptr->sifra);
if(ptr->sifra>0 && ptr->sifra <=INT_MAX) break;
printf("\nSifra mora biti u opsegu od 1 do %d\n",INT_MAX);
}
while(1)
{ printf("\nUnesite ocenu: ");
scanf("%d",&ptr->ocena);
if(ptr->ocena>=5 && ptr->ocena<=10) break;
printf("\nOcena je izmedju 5 i 10\n");
}
ptr++;
fflush(stdin);
}
return i;
}
int trazi(Student *od1,Student *do2)
{Student *tmp;
for(tmp=od1;tmp<do2;tmp++)
if (strcmp(tmp->ime,do2->ime)==0 &&
strcmp(tmp->indeks,do2->indeks)==0 &&
strcmp(tmp->smer,do2->smer)==0) return 1;
return 0;
}
toxi:Vlaski kompleksan program,a?
A jel imas ogranicenja po pitanju duzine koda?
opi zar nisi mogo da udaris neki komentar u kod?