PDA

Visualizza la versione completa : progetto con dev c++


pietrol83
28-01-2010, 14:55
ciao a tutti. sto imparando (da solo) a usare i dev C++. a dire la verità sto imparando la programmazione a oggetti. ho un esercizio la cui traccia dice:

obiettivi: costruttore struct, passaggio di parametri per riferimento.

definire il tipo di dato studente, utilizzando il costrutto struct, contenente le seguenti componenti:
1) matricola: intero;
2) nome: stringa;
3) cognome: stringa;
4) età: intero.

implementare, inoltre, le funzioni per l'inserimento e la stampa delle componenti della struttura.

Suggerimenti:
1. definire un progetto Dev-C++ contenente i file studente.h, studente.cpp e provastudente.cpp;

2. Nel file studente.h definire la struttura e i prototipi delle funzioni;

3. Nel file studente.cpp implementare le funzioni;

4. Nel file provastudente.cpp implementare il main che definisce le variabili di tipo studente e utilizza le funzioni definite nella libreria studente.h.

allora io ho fatto così:
FILE studente.h

#ifndef STUDENTE_H
#define STUDENTE_H

#include <iostream>

struct tipostudente

using namespace std;

void insnome(studente *);
void inscognome(studente *);
void insmatricola(studente *);
void inseta(studente *);
char *stampanome(studente *);
char *stampacognoma(studente *);
int stampamatricola(studente *);
int stampaeta(studente *);

#endif

FILE studente.cpp

#include "studente.h"

struct tipostudente
{
char[30] nome;
char[30] cognome;
int matricola;
int eta;
}

typedef struct tipostudente studente;

void insnome(studente &stud)
{
cout << "nome: ";
cin >> stud->nome;
cout << "\n";
}

void inscognome(studente &stud)
{
cout << "cognome: ";
cin >> stud->cognome;
cout << "\n";
}

void insmatricola(studente &stud)
{
cout << "matricola: ";
cin >> stud->matricola;
cout << "\n";
}

void inseta(studente &stud)
{
cout << "eta': ";
cin >> stud->eta;
cout << "\n\n\n";
}

char *stampanome(studente &stud)
{
return(stud->nome);
}

char *stampacognome(studente &stud)
{
return(stud->cognome);
}

int stampamatricola(studente &stud)
{
return(stud->matricola);
}

int stampaeta(studente &stud)
{
return(stud.eta);
}
.

il main non l'ho ancora fatto. quando vado per compilare il codice mi da errore (ricordo che utilizzo il dev-c++). cosa c'è che non va? vi prego aiutatemi, sto impazzendo!!!

Lawliet
28-01-2010, 15:09
Ma che stai facendo un esercizio del laboratorio ASD? :D
Comunque ritornando a te, se non ci dici che errore ti dice il Dev-C++ non possiamo aiutarti molto.
Misa che manca proprio la virgola dopo a struct nell'header.

pietrol83
28-01-2010, 15:22
si è un esercizio di asd.

mi esce questo errore:

4 C:\Dev-Cpp\include\c++\3.4.2\backward\iostream.h:31, from studente.h

come messaggio esce questo:

In file included from C:/Dev-Cpp/include/c++/3.4.2/backward/iostream.h:31, from studente.h

pietrol83
28-01-2010, 15:25
in verità mi dà una serie di errori di cui il primo è quello che ho scritto sopra.

Lawliet
28-01-2010, 15:38
Originariamente inviato da pietrol83
si è un esercizio di asd.
Allora c'è la probabilità che frequentiamo la stessa università! :P

Non devi postare dove ci sono errori, ma che tipo di errori ci sono.
Comunque dando uno sguardo al tuo codice errori al momento che vedo sono:

Nel .h Dopo la struct tipostudente:

struct tipostudente
{
char[30] nome;
char[30] cognome;
int matricola;
int eta;
} <-- manca ;

E nel .cpp
void insnome(studente &stud) <--- perchè &?

Se nel .h hai scritto void insnome(studente *);
quindi nel .cpp dovresti scrivere (studente *stud); uguale a quello scritto nell'header.
E così vale per tutti gli altri prototipi, al momento vedo solo questi errori. Risolvi questi, e se ci sono altri posta pure gli altri eventuali errori.

pietrol83
28-01-2010, 15:40
ok allora provo a correggere dove mi hai detto tu. a titolo informativo io frequento l'università di bari

pietrol83
28-01-2010, 15:41
mi dice che l'errore sta alla linea 4 e poi di fianco c'è scritto quello che ho postato prima

pietrol83
28-01-2010, 15:46
ma tu l'hai già fatto questo esercizio?

Lawliet
28-01-2010, 15:48
L'avevo capito dove frequenti l'università data che è la stessa che faccio ^^'

Ora ho notato un altro errore molto grave,

char[30] nome;
char[30] cognome;

Non si dichiara così un array di caratteri, assolutamente no!
ma char nome[30]; Comunque prima di andare avanti, posso consigliarti di darti una bella rilettura al libro di programmazione.. che non sono banali questi errori.

Edit: fai attenzione a non fare multiposting,
Comunque si ho già fatto l'esercizio, è pure banale! ^^

pietrol83
28-01-2010, 15:50
si lo so che è un errore e grave anche, però molte volte mi confondo e non me ne accorgo che scrivo certe boiate

Loading