|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jul 2010
Messaggi: 12
|
[C++] problema grosso con esercizio
Ciao ragazzi sono nuova del forum..e ho un grosso problema:il professore di informatica dopo non aver tenuto il corso per 'sciopero' si è presentato e ci ha dato il programma da fare come elaborato per poter accedere all'esame. premesso che il C lo so usare questo programma per me è davvero impossibile. sono stata a impazzire quasi un mese per studiarmi da sola tutte le cose k non ha spiegato su classi e file ma a malapena comprendo le cose base. Qui vuole che usiamo liste concatenate e quant'altro,in pratica vuole in C++ un programma che faccia:
1)creazione di un database 2)inserimento dei record(accodamento) 3)ricerca/stampa di record(anke su più campi in modo dicotomico mediante file-index) 4)modifica/aggiornamento di record 5)eliminazione di record e inoltre poi dobbiamo implementare il metodo grafico preferibilmente con qtcreator !questo è matto e mi manca questo esame che mi blocca altri essendo propedeutico :8...per caso qualcuno ha qualche dritta o programmi simili in modo da aiutarmi un po'?ve ne sarei immensamente grata grazie 1000 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
WTF?!? ma siamo matti, gestione di database a dei ragazzi che stanno imparando il C++ per la prima volta???
e tramite cosa dovreste accedere ad un database? ![]() ed inoltre di quale database si tratta? comunque confermo pienamente, il tuo professore é folle
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
tra l'altro vorrei capire cosa piffero c'entrano i database col C++.
questo corso é di C++ o di database?? io questa domanda gliela farei al professore. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
no be', se non ho capito male, quello che deve fare è una linked list generica e metodi per aggiungere, ricercare, eliminare
|
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Jul 2010
Messaggi: 12
|
allora quelle sono le specifiche ke ci ha dato quel matto ma penso k ad esempio bisogna gestire un magazzino k so di biscotti ocarne o una libreria o cose del genere per cui a ogni elemento si deve fare inserimento di nome codice,scadenza se c'è,prezzo e tutto ciò k serve...poi eventuale modifica (ricercando in modo dicotomico anke se nn vedo l'utilità) cancellazione e quant'altro
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
3 crediti?!? o_o'
e devi fare un intero gestionale!! :| no seriamente, non prendiamoci in giro: dev'essere una forma di protesta dovuta ai recenti disagi accademici (per caso sei di Roma?), vi ha dato apposta un progetto troppo difficile che sicuramente non siete in grado di fare. i progetti degli anni passati come erano? piu semplici? comunque ribadisco, puoi darci qualche dettaglio ulteriore sulla specifica? che database devi usare, e come devi accederci? o c'é libertá totale? non possiamo aiutarti se non ci dici queste cose. anzi, un aiuto te lo do giá da ora: controlla se esiste la possibilitá di fare questo esame con un altro professore e con altre modalitá. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12945
|
Se puoi scrivi esattamente cosa ti chiede.
Sicuramente non deve implementare un dbms ma semplicemente "simularlo". Se hai già imparato le classi non è difficilissimo, le liste collegate anche non sono difficili da fare (ammesso che ti chieda di farle e non di usare le classi già pronte, cosa che credo). Ultima modifica di WarDuck : 16-07-2010 alle 23:50. |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Sì, in effetti... è un problema grosso
Anche a me sembra che la questione si inquadri nella situazione di protesta generalizzata, un compito del genere è di sicuro non banale per studenti alle prime esperienze di programmazione (dato che gli argomenti sono basilari, es. liste concatenate, mi permetto di credere che sia un progetto del I/II anno). Molto dipende da quanta libertà vi è stata data, ma dato che leggo di liste concatenate va a farsi friggere ogni suggerimento di SQLite + QTableView + QSqlTableModel (mi sembra di capire che i dati vadano in un'unica "tabella", dunque non dovrebbe esserci bisogno di gestire vincoli relazionali). Che ci sia da utilizzare una lista dunque è scontato. Puoi utilizzare std::list o devi implementarla? Altra questione: che tipo di dati devi conservare? Mi sembra di capire che i tuoi record possono avere un qualsiasi numero di campi, con un qualsiasi nome. Probabilmente la strategia migliore è una struttura "campo" composta da nome e valore, ed una struttura record che contenga un certo numero di campi. La specifica non parla dei tipi dei valori: puoi semplificare molto usando semplici stringhe. Il 90% delle operazioni si tradurrebbe in semplici operazioni su una lista di strutture di tipo record. Non capisco invece la ricerca "dicotomica": su una lista concatenata come si può gestire l'accesso casuale, necessario per una ricerca binaria?!
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
|
|
|
|
|
|
#10 |
|
Junior Member
Iscritto dal: Jul 2010
Messaggi: 12
|
sì è un esame del I anno e tra parentesi è esame di laboratorio ovvero 3 crediti :s...cmq ha affisso alla porta un foglio con scritto precisamente:
<< PER IL LABORATORIO DI INFORMATICA:PROGRAMMA IN C++ Importante che dopo aver scelto l'applicazione si fornisca: 1-definizione delle specifiche dell'applicazione 2-progetto:flow-chart complessivo e dei vari moduli da implementare(la ricerca dicotomica deve essere parte essenziale del processo) 3-sviluppo:codice sorgente del programma(con GUI) e dei vari moduli(ben commentati) 4-collaudo:definizione delle classi di equivalenza di input utilizzabili per la verifica di correttezza e il test dei moduli(seguire il metodo delle coperture) PASSI RICHIESTI DAL PROGRAMMA: 1)creazione di un database 2)inserimento dei record(accodamento) 3)ricerca/stampa di record(anke su più campi in modo dicotomico mediante file-index) 4)modifica/aggiornamento di record 5)eliminazione di record >> ora non credo sia una maniera di protesta poichè ci avevano già tolto gli appelli fino a metà luglio :s..e questo professore è conosciuto per la sua ''stranezza'' anke se al mio corso è il primo anno k c'è...k sfortuna.. cmq x quello ke abbiamo capito con le altre persone si dovrebbe fare un programma in modo che gestisca un magazzino,ora provo a fare un esempio con i biscotti: quindi ogni elemento deve avere diversi campi(io avevo pensato a 1 struttura) con ad esempio nome(es gocciole),codice(con questo avevo pensato di fare la ricerca dicotomica per ricercare l'elemento e modificare ecc se serve....sempre se è quello k vuole con quella ricerca XD),prezzo,quantità,iva,scadenza,e tante belle cose che si possono mettere..e poi fare in modo k si possano aggiungere nuovo elementi(con tutti i rispettivi campi) modificare8tutti o alcuni campi in base alla necessità) o cancellare elementi esistenti,ecc...non so se sono riuscita a spiegarmi un pò di più Ultima modifica di amandina : 17-07-2010 alle 10:19. |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1385
|
Conosco poco il c++ ma ho provato a buttarti giù una traccia.
L'ho scritta in pochi minuti ed è solo una traccia, non escludo ci siano bug, però credo che possa aiutarti. Codice:
#include <cstdlib>
#include <iostream>
#include <string>
#include <list>
using namespace std;
struct campi{
string nome;
string cognome;
};
string nome;
string cognome;
int main (){
list<campi> miodatabase;
list<campi>::iterator i;
while(true) {
cout << "1 per inserire nuovo record\n";
cout << "2 per cancellare record\n";
cout << "3 per cercare\n";
cout << "0 per uscire\n";
int numero=0;
cin >> numero;
while (!cin >> numero) {
cout << "Inserimento non valido\n";
cin.clear();
string c;
cin >> c;
cin >> numero;
}
while ((numero < 0 ) ||(numero > 4 )) {
cout << "Inserimento non valido\n";
cin >> numero;
}
if (numero==1) {
campi campo;
cout << "Nome?\n";
cin >> nome;
campo.nome=nome;
cout << "Cognome?\n";
cin >> cognome;
campo.cognome=cognome;
miodatabase.push_back(campo);
}
if (numero==3) {
cout << "Nome da cercare?\n";
cin >> nome;
bool trovato;
trovato=false;
int a=0;
for (i = miodatabase.begin(); i != miodatabase.end(); ++i) {
if ((*i).nome==nome) {
cout << "Trovato, il cognome di " << nome << " è " << (*i).cognome << endl;
cout << "Record numero " << a << endl;
trovato=true;
}
a++;
}
if (!trovato) {
cout << "Non trovato\n";
}
}
if (numero==2) {
if (miodatabase.size()>0){
cout << "numero di record presenti ";
cout <<miodatabase.size() << "\n";
cout << "Numero record da eliminare?\n";
int numrecord=0;
cin >> numrecord;
while (!cin >> numrecord) {
cout << "Inserimento non valido\n";
cin.clear();
string c;
cin >> c;
cin >> numrecord;}
while ((numrecord < 0 ) ||(numrecord > miodatabase.size() )) {
cout << "Numero record inesistente\n";
cin >> numrecord;
}
i=miodatabase.begin();
advance(i,numrecord);
cout << (*i).nome << " " << (*i).cognome << " cancellato" << endl;
miodatabase.erase(i);
} else { cout << "Nessun record da cancellare\n\n"; }
}
if (numero==0){
miodatabase.clear();
miodatabase.~list<campi>();
system("PAUSE");
return EXIT_SUCCESS;}
}
}
Usa le liste concatenate(già implementate nella STL), crea record, ricerca e cancella. Non usa la programmazione strutturata ma nel caso ti fosse richiesta dimmelo che te lo modifico. Non so che cosa sia il metodo grafico ma credo che il professore non ti richieda una cosa molto più complicata di questa per soli 3 crediti. Ciao Ultima modifica di das : 17-07-2010 alle 10:35. |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
anke su più campi in modo dicotomico mediante file-index
Per favore non usare le "k" E' un po' strana questa richiesta: l'uso di file indice implica che la ricerca binaria dopo al massimo la puoi fare su un gruppo ristretto. Quello che non capisco è se per "Creazione del database" intende che l'utente possa creare un database come meglio vuole o che il database con campi fissi venga creato alla prima esecuzione del programma. Nel prima caso la cosa diventa tutt'altro che semplice. Il consiglio che ti posso dare è farti tutto da shell e dopo implementarti l'interfaccia grafica. Con l'interfaccia grafica alla fine si tratterà solamente di utilizzare le funzioni che hai implementato senza interfaccia. Quindi è importante separare le parti del codice che fanno input e output da quelle che lavorano veramente sul database. |
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1385
|
Quote:
Ma per metodo grafico si intende semplicemente 'con interfaccia grafica?' In tal caso conviene usare un ambiente RAD come wxdev |
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1385
|
Quote:
Mai utilizzato, è parecchio migliore ? Le QT le ho sempre un po' snobbate per il loro 'background commerciale' però se semplificano la vita... |
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#17 |
|
Junior Member
Iscritto dal: Jul 2010
Messaggi: 12
|
ringrazio per le risposte
|
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
QtCreator è clamorosamente facile, veloce e comodo
|
|
|
|
|
|
#19 | |
|
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Quote:
Sulla ricerca dicotomica mi appello a qualcuno più esperto: ha senso implementarla su una lista concatenata?
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
|
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:25.





















