Difference between revisions of "Console UI Core Classes - OOP344 20112"

From CDOT Wiki
Jump to: navigation, search
Line 20: Line 20:
 
:''Instead of replacing the whole logic, you could modify your functions with my additions, but since you have only two platforms covered in your logic, It may be easier to just replace your platform dependent logic with mine.''
 
:''Instead of replacing the whole logic, you could modify your functions with my additions, but since you have only two platforms covered in your logic, It may be easier to just replace your platform dependent logic with mine.''
  
 +
=Objective=
 +
Your objective at this stage is to create series of core classes designed to interact with the user. These '''Core Classes''' then can be used in development of any interactive application.
 +
 +
Please note that the class definitions here are minimum requirement for the Core Classes and you are free to add any enhancements or features you find useful. However make sure that you discuss these enhancements with your professor to make sure they are feasible before implementation.
 +
 +
It is highly recommended to develop the classes in the order they are stated here. You must create your won tester programs fore each class (if possible); However, close to due date of each release, a tester program is provided to help you verify the functionality of your classes. Executables of the test programs are available on matrix to show you how it is supposed to run.
 +
 +
Start by creating mock-up classes (class declaration and definition with empty methods that only compiles and don't do anything).
 +
Each class MUST have its own header file to hold its declaration and "cpp" file to hold its implementation. To make sure you do not do circular includes follow these simple guidelines:
 +
* Add recompilation safeguards to all your header files.
 +
* Always use forward declaration if possible instead of including a class header-file.
 +
* Use includes only in files in which the actual header file code is used.
 +
* '''Avoid "just in case" includes.'''
 
=DueDates=
 
=DueDates=
 
==Adding Buffering logic to your iol logic==
 
==Adding Buffering logic to your iol logic==
 
Duedate: Sunday Jul 24th, 23:59;
 
Duedate: Sunday Jul 24th, 23:59;

Revision as of 09:53, 20 July 2011


OOP344 | Weekly Schedule | Student List | Teams | Project | Student Resources
Release 0.1

Before anything, go to YourRepository/branches/fardad/bio_additions_changes and open iol.h and iol.c.

  1. Replace your iol.h content with mine (if you have any custom additions to your iol.h that mine does not cover it, add your custom prototypes and definitions. (note that my iol.h covers 4 platforms [compiler/operating systems]).
  2. Add the memory buffering logic that prevents flickering (the first 74 lines of code) to the top of your oil.c logic; (getBufChar,setBufChar, putMemch, scrbuf, curRow, curCol, bufrows, bufcols, alocScrBufMem, clrMemScr, freeScrBufMem, iol_capture, iol_restore, iol_getCurPos, iol_freeCapture)
  3. Replace your platform dependent logic with mine ( line 76 to 304) that are:
    1. iol_init
    2. iol_end
    3. iol_rows
    4. iol_cols
    5. iol_clrscr
    6. iol_flush
    7. iol_getch
    8. iol_movecur
    9. iol_putch
    10. iol_prnstr
  4. Compile the new additions with your iolmain.c, everything should work like before.
Instead of replacing the whole logic, you could modify your functions with my additions, but since you have only two platforms covered in your logic, It may be easier to just replace your platform dependent logic with mine.

Objective

Your objective at this stage is to create series of core classes designed to interact with the user. These Core Classes then can be used in development of any interactive application.

Please note that the class definitions here are minimum requirement for the Core Classes and you are free to add any enhancements or features you find useful. However make sure that you discuss these enhancements with your professor to make sure they are feasible before implementation.

It is highly recommended to develop the classes in the order they are stated here. You must create your won tester programs fore each class (if possible); However, close to due date of each release, a tester program is provided to help you verify the functionality of your classes. Executables of the test programs are available on matrix to show you how it is supposed to run.

Start by creating mock-up classes (class declaration and definition with empty methods that only compiles and don't do anything). Each class MUST have its own header file to hold its declaration and "cpp" file to hold its implementation. To make sure you do not do circular includes follow these simple guidelines:

  • Add recompilation safeguards to all your header files.
  • Always use forward declaration if possible instead of including a class header-file.
  • Use includes only in files in which the actual header file code is used.
  • Avoid "just in case" includes.

DueDates

Adding Buffering logic to your iol logic

Duedate: Sunday Jul 24th, 23:59;