Introducció
El projecte final del curs de Programació en C és una oportunitat per aplicar tots els coneixements adquirits al llarg dels mòduls. Aquest projecte està dissenyat per avaluar la vostra capacitat de desenvolupar una aplicació completa en C, des de la planificació fins a la implementació i la depuració. A continuació, es presenten les directrius i els requisits per al projecte.
Objectius del Projecte
- Aplicar Conceptes Clau: Utilitzar els conceptes apresos, com ara tipus de dades, flux de control, funcions, arrays, punteres, estructures, gestió de memòria dinàmica, i gestió d'arxius.
- Desenvolupar una Aplicació Completa: Crear una aplicació funcional que resolgui un problema específic o compleixi un conjunt de requisits.
- Practicar la Depuració i l'Optimització: Identificar i corregir errors, així com optimitzar el rendiment del codi.
- Documentar el Codi: Escriure codi llegible i ben documentat per facilitar la comprensió i el manteniment.
Requisits del Projecte
- Elecció del Tema
Podeu triar un dels següents temes per al vostre projecte o proposar-ne un de propi, subjecte a l'aprovació de l'instructor:
- Gestor de Contactes: Una aplicació per gestionar una llista de contactes amb funcionalitats per afegir, eliminar, cercar i actualitzar contactes.
- Sistema de Gestió d'Arxius: Una aplicació per gestionar arxius en un directori, incloent operacions com crear, llegir, escriure, eliminar i cercar arxius.
- Joc de Taula: Desenvolupar un joc de taula senzill com el tres en ratlla o el joc de la serp.
- Calculadora Científica: Una aplicació de calculadora amb funcionalitats avançades com operacions trigonomètriques, logarítmiques, etc.
- Estructura del Projecte
El projecte ha de seguir una estructura clara i organitzada. A continuació es presenta una estructura recomanada:
projecte/ │ ├── src/ # Directori de codi font │ ├── main.c # Fitxer principal │ ├── funcions.c # Implementació de funcions │ └── funcions.h # Capçalera de funcions │ ├── docs/ # Documentació del projecte │ ├── README.md # Descripció del projecte │ └── manual_usuari.md # Manual d'usuari │ ├── tests/ # Directori de proves │ └── test_cases.c # Casos de prova │ └── Makefile # Fitxer Make per compilar el projecte
- Funcionalitats Mínimes
El projecte ha de complir amb les següents funcionalitats mínimes:
- Interfície d'Usuari: Una interfície d'usuari bàsica (pot ser en línia de comandes) que permeti interactuar amb l'aplicació.
- Gestió de Dades: Capacitat per gestionar dades (per exemple, contactes, arxius, moviments del joc, etc.) utilitzant estructures de dades adequades.
- Persistència de Dades: Emmagatzemar i recuperar dades d'arxius per garantir la persistència.
- Gestió de Memòria: Utilitzar tècniques d'assignació dinàmica de memòria quan sigui necessari i assegurar-se que no hi hagi fuites de memòria.
- Documentació: Incloure documentació clara i detallada del codi i un manual d'usuari.
- Documentació
La documentació és una part essencial del projecte. Ha de contenir:
- README.md: Una descripció general del projecte, incloent-hi els objectius, les funcionalitats principals, i les instruccions per compilar i executar l'aplicació.
- Manual d'Usuari: Un document que expliqui com utilitzar l'aplicació, incloent-hi exemples d'ús.
- Comentaris en el Codi: Comentaris adequats en el codi per explicar la funcionalitat de les diferents parts del programa.
- Proves
El projecte ha d'incloure casos de prova per verificar que les funcionalitats implementades funcionen correctament. Les proves han de cobrir:
- Casos Positius: Verificar que l'aplicació funciona correctament amb dades vàlides.
- Casos Negatius: Verificar que l'aplicació gestiona correctament les dades invàlides o les situacions d'error.
Entrega del Projecte
- Format d'Entrega
El projecte s'ha de lliurar en un arxiu comprimit (ZIP o TAR) que contingui tots els fitxers del projecte, incloent-hi el codi font, la documentació i els casos de prova.
- Data Límit
La data límit per a l'entrega del projecte és [data límit]. Assegureu-vos de lliurar el projecte abans d'aquesta data per evitar penalitzacions.
- Avaluació
El projecte serà avaluat segons els següents criteris:
- Funcionalitat: Completesa i correcció de les funcionalitats implementades.
- Qualitat del Codi: Claredat, organització i documentació del codi.
- Gestió de Memòria: Ús adequat de l'assignació dinàmica de memòria i absència de fuites de memòria.
- Proves: Cobertura i correcció dels casos de prova.
- Documentació: Qualitat i claredat de la documentació proporcionada.
Consells Addicionals
- Planificació: Dediqueu temps a planificar el projecte abans de començar a codificar. Definiu clarament els requisits i dissenyeu l'estructura del codi.
- Iteració: Desenvolupeu el projecte de manera iterativa, implementant i provant una funcionalitat a la vegada.
- Depuració: Utilitzeu eines de depuració per identificar i corregir errors en el codi.
- Revisió: Reviseu el codi i la documentació abans de l'entrega per assegurar-vos que compleixen amb els requisits.
Conclusió
El projecte final és una oportunitat per demostrar les vostres habilitats en programació en C i per consolidar els coneixements adquirits durant el curs. Seguiu aquestes directrius per assegurar-vos que el vostre projecte compleix amb els requisits i es lliura amb èxit. Bona sort!
Curs de Programació en C
Mòdul 1: Introducció al C
- Introducció a la Programació
- Configuració de l'Entorn de Desenvolupament
- Programa Hello World
- Sintaxi i Estructura Bàsiques
Mòdul 2: Tipus de Dades i Variables
Mòdul 3: Flux de Control
Mòdul 4: Funcions
- Introducció a les Funcions
- Arguments de Funció i Valors de Retorn
- Àmbit i Durada de les Variables
- Funcions Recursives
Mòdul 5: Arrays i Strings
Mòdul 6: Punteres
Mòdul 7: Estructures i Unions
Mòdul 8: Assignació Dinàmica de Memòria
Mòdul 9: Gestió d'Arxius
- Introducció a la Gestió d'Arxius
- Lectura i Escriptura d'Arxius
- Posicionament d'Arxius
- Gestió d'Errors en Operacions d'Arxius
Mòdul 10: Temes Avançats
- Directives del Preprocessador
- Arguments de Línia de Comandes
- Llistes d'Arguments Variables
- Multifil en C
Mòdul 11: Millors Pràctiques i Optimització
- Llegibilitat del Codi i Documentació
- Tècniques de Depuració
- Optimització del Rendiment
- Consideracions de Seguretat