Program Wirtualny dziekanat ( baza danych )

0

Witam,
mam do napisania program który będzie przypominał prostą bazę danych przypominającą wirtualny dziekanat.

  1. Dane studenta
  • Imię Nazwisko
  • Nr Albumu
    ......
  1. Lista przedmiotów
  • nazwa przedmiotu
  • semestr / rok srudiów
  • forma zajęć
  • prowadzący
  • punkty ECTS za przedmiot
  • ocena + data ( możliwość przypisania max 3 ocen pod warunkiem wcześniejszych ocen niedostatecznych)
  1. Raportowanie
  • wyświetlanie ocen danego studenta w semestrze bierzącym lub we wskazanym
  1. Wprowadzanie ocen

Jest to mój pierwszy projekt więc każda pomoc waszej strony mile widziana.
Jeśli ma ktoś podobny gotowy program prosiłbym o zamieszczenie.

0

Zakladajac, ze jeden przedmiot prowadzi jeden prowadzacy to widze tu 3 tabele, w innym wypadku 4.

0

Jako formę zajęć można zastosować spokojnie enum class albo przechowywać w tabeli. Kwestia tego czy ma tutaj być SQL czy nie.

0

żeby lepiej zilustrować o co mi chodzi, ma to być program na kształt takiego programu co poniżej, wiadomo inne funkcje ale coś w ten deseń, no chyba że macie prostszą wizję, nie mam żadnych większych ram, jedynie zależy mi żeby był jak najprościej napisany:

#include <iostream>
#include <fstream>

using namespace std;

void menu();
void dodaj();
void lista();
void dane();
void zagrozeni();

struct adr
{
    char miasto [20];
    char ulica [20];
    int numer;
};

struct uczniowie
{
    char imie[20];
    char nazwisko [20];
    adr adres;
    int telefon;
    char ojciec [20];
    char matka [20];
    int oceny;
};

int main ()
{
    menu();
}

void lista()
{
    uczniowie uczen;
    int i=1;
    ifstream plik("uczniowie.dat", ios::binary | ios::in);
    while (1)
    {
        plik.read(reinterpret_cast<char*>(&uczen),sizeof(uczen));
        if(plik.eof()) break;
        cout<<i<<" "<<uczen.imie<<" "<<uczen.nazwisko<<endl;
        i++;
    }
    plik.close();

}

void dane()
{
    uczniowie uczen;
    int wybor;
    cout<<"Dane ktorego ucznia chcesz wyswietlic?"<<endl;
    cin>>wybor;
    if (cin.good()==0)
        {
            while (cin.good()==0)
            {
                cin.clear();
                cin.sync();
                cout<<"Podano bledna liczbe, wprowadz ja raz jeszcze: ";
                cin>>wybor;
            }
        }
    ifstream plik("uczniowie.dat", ios::binary | ios::in);
    plik.seekg(sizeof(struct uczniowie)*(wybor-1));
    plik.read(reinterpret_cast<char*>(&uczen),sizeof(uczen));
    cout<<"Uczen "<<uczen.imie<<" "<<uczen.nazwisko
    <<endl
    <<"Adres "<<uczen.adres.miasto<<" "<<uczen.adres.ulica<<" "<<uczen.adres.numer
    <<endl
    <<"Numer telefonu "<<uczen.telefon
    <<endl
    <<"Rodzice "<<uczen.ojciec<<" "<<uczen.matka
    <<endl
    <<uczen.oceny
    <<endl<<endl;
    plik.close();
}

void zagrozeni()
{
    cout<<"W budowie"<<endl;
}

void dodaj()
{
    int liczba;
    cout<<" Ilu uczniow chcesz dodac do listy?"<<endl;
    cin>>liczba;
    if (cin.good()==0)
        {
            while (cin.good()==0)
            {
                cin.clear();
                cin.sync();
                cout<<"Podano bledna liczbe, wprowadz ja raz jeszcze: ";
                cin>>liczba;
            }
        }
    uczniowie uczen;
    ofstream plik ("uczniowie.dat", ios::out | ios::app | ios::binary);
    for (int i=0; i<liczba; i++)
    {
        cout<<" Uczen numer "<<i+1
        <<endl;
        cout<<" Nazwisko : ";
        cin>>uczen.nazwisko;
        cout<<endl;
        cout<<" Imie: ";
        cin>>uczen.imie;
        cout<<endl;
        cout<<" Miasto: ";
        cin>>uczen.adres.miasto;
        cout<<endl;
        cout<<" Ulica: ";
        cin>>uczen.adres.ulica;
        cout<<endl;
        cout<<" Numer domu: ";
        cin>>uczen.adres.numer;
        cout<<endl;
        cout<<" Numer telefonu: ";
        cin>>uczen.telefon;
        cout<<endl;
        cout<<" Imie matki: ";
        cin>>uczen.matka;
        cout<<endl;
        cout<<" Imie ojca: ";
        cin>>uczen.ojciec;
        cout<<endl;
        cout<<" Oceny: ";
        cin>>uczen.oceny;
        cout<<endl;
        cout<<endl;
        plik.write(reinterpret_cast<char*>(&uczen),sizeof(uczen));
    }
    plik.close();
}

void menu()
{
    int wybor1, wybor2;
        do
        {
        cout<<"\t\t***** DZIENNIK LEKCYJNY ***** "<<endl;
        cout<<"\t[1] MENU "<<endl;
        cout<<"\t[0] KONIEC PROGRAMU"<<endl;
        cin>>wybor1;
        if (cin.good()==0)
        {
            while (cin.good()==0)
            {
                cin.clear();
                cin.sync();
                cout<<"Podano bledna liczbe, wprowadz ja raz jeszcze: ";
                cin>>wybor1;
            }
        }
            if (wybor1==1)
            {
            cout<<"\t\t      MENU"
                <<endl
                <<"\t  Prosze o wybranie dzialania:"
                <<endl
                <<"\t  [1] Dodanie ucznia do listy"                        //
                <<endl
                <<"\t  [2] Wyswietlenie listy uczniow"
                <<endl
                <<"\t  [3] Wyswietlanie danych ucznia"            //
                <<endl
                <<"\t  [4] Generowanie listy zagrozonych osob"
                <<endl
                <<"\t  [0] Koniec programu"
                <<endl
                <<endl;
                cin>>wybor2;
                    if (cin.good()==0)
                    {
                        while (cin.good()==0)
                        {
                            cin.clear();
                            cin.sync();
                            cout<<"Podano bledna liczbe, wprowadz ja raz jeszcze: ";
                            cin>>wybor2;
                        }
                    }
                switch (wybor2)
                {
                    case 1:
                    {
                        dodaj();
                        break;
                    }
                    case 2:
                    {
                        lista();
                        break;
                    }
                    case 3:
                    {
                        dane();
                        break;
                    }
                    case 4:
                    {
                        zagrozeni();
                        break;
                    }
                    case 0:
                    {
                        cout<<"KONIEC";
                        break;
                    }
                    default:
                    {
                        cout<<"Cos poszlo nie tak.";
                        break;
                    }
                }
            }
            else
                {
                    cout<<"KONIEC"
                    <<endl;
                }
        cout<<endl;
        if (wybor1!=0) cout<<"Co teraz?"<<endl<<endl;
        }while (wybor1!=0);
}

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