https://wiki.cdot.senecacollege.ca/w/api.php?action=feedcontributions&user=Stanislav+Yeshchenko&feedformat=atomCDOT Wiki - User contributions [en]2024-03-29T08:49:53ZUser contributionsMediaWiki 1.30.0https://wiki.cdot.senecacollege.ca/w/index.php?title=User:Stanislav_Yeshchenko&diff=104947User:Stanislav Yeshchenko2014-05-21T18:19:40Z<p>Stanislav Yeshchenko: /* Contact Information */</p>
<hr />
<div>=='''Stanislav Yeshchenko'''==<br />
<br />
'''Name: Stanislav Yeshchenko'''<br /><br />
'''Affiliation: Research Assistant at CDOT, working on the development of BBB, an open source web conferencing system for on-line learning. '''<br /><br />
<br />
=='''Education'''==<br />
'''<br />
<br />
Diploma of a Technician-Electrician 2007 - 2010, Railway Technical College, Ukraine<br />
<br />
Computer Programmer Diploma 2012 - 2014, Seneca College, Toronto, Canada<br />
<br />
=='''Contact Information'''==<br />
{| class="myLink" border="0"<br />
<br />
|-<br />
|<u>'''E_mail Address'''</u><br />
|-<br />
|[mailto:stanislav.yeshchenko@senecacollege.ca stanislav.yeshchenko@senecacollege.ca]<br />
|-<br />
|[mailto:stanislav.yeshchenko@gmail.com stanislav.yeshchenko@gmail.com]<br />
|}<br />
<br />
<br />
<u>'''Github Account'''</u><br />
<br />
https://github.com/syeshchenko</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=User:Stanislav_Yeshchenko&diff=104946User:Stanislav Yeshchenko2014-05-21T18:17:57Z<p>Stanislav Yeshchenko: /* Contact Information */</p>
<hr />
<div>=='''Stanislav Yeshchenko'''==<br />
<br />
'''Name: Stanislav Yeshchenko'''<br /><br />
'''Affiliation: Research Assistant at CDOT, working on the development of BBB, an open source web conferencing system for on-line learning. '''<br /><br />
<br />
=='''Education'''==<br />
'''<br />
<br />
Diploma of a Technician-Electrician 2007 - 2010, Railway Technical College, Ukraine<br />
<br />
Computer Programmer Diploma 2012 - 2014, Seneca College, Toronto, Canada<br />
<br />
=='''Contact Information'''==<br />
{| class="myLink" border="0"<br />
<br />
|-<br />
|<u>'''E_mail Address'''</u><br />
|-<br />
|[mailto:stanislav.yeshchenko@senecacollege.ca stanislav.yeshchenko@senecacollege.ca]<br />
|-<br />
|[mailto:stanislav.yeshchenko@gmail.com stanislav.yeshchenko@gmail.com]<br />
|}</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=User:Stanislav_Yeshchenko&diff=104945User:Stanislav Yeshchenko2014-05-21T18:16:38Z<p>Stanislav Yeshchenko: /* Education */</p>
<hr />
<div>=='''Stanislav Yeshchenko'''==<br />
<br />
'''Name: Stanislav Yeshchenko'''<br /><br />
'''Affiliation: Research Assistant at CDOT, working on the development of BBB, an open source web conferencing system for on-line learning. '''<br /><br />
<br />
=='''Education'''==<br />
'''<br />
<br />
Diploma of a Technician-Electrician 2007 - 2010, Railway Technical College, Ukraine<br />
<br />
Computer Programmer Diploma 2012 - 2014, Seneca College, Toronto, Canada<br />
<br />
=='''Contact Information'''==<br />
{| class="myLink" border="0"<br />
<br />
|-<br />
|<u>'''E_mail Address'''</u><br />
|-<br />
|[mailto:stanislav.yeshchenko@senecacollege.ca stanislav.yeshchenko@senecacollege]<br />
|-<br />
|[mailto:stanislav.yeshchenko@gmail.com stanislav.yeshchenko@gmail.com]<br />
|}</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=User:Stanislav_Yeshchenko&diff=104944User:Stanislav Yeshchenko2014-05-21T18:14:30Z<p>Stanislav Yeshchenko: /* Stanislav Yeshchenko */</p>
<hr />
<div>=='''Stanislav Yeshchenko'''==<br />
<br />
'''Name: Stanislav Yeshchenko'''<br /><br />
'''Affiliation: Research Assistant at CDOT, working on the development of BBB, an open source web conferencing system for on-line learning. '''<br /><br />
<br />
=='''Education'''==<br />
'''<br />
<br />
Diploma of a Technician-Electrician <br />
<br />
(Joint Major in “Assembly, Maintenance, and Repair of Automated Systems of Railway Traffic Control”)<br />
<br />
Mykolaiv College of Railway Transport, Ukraine<br />
<br />
<br />
=='''Contact Information'''==<br />
{| class="myLink" border="0"<br />
<br />
|-<br />
|<u>'''E_mail Address'''</u><br />
|-<br />
|[mailto:stanislav.yeshchenko@senecacollege.ca stanislav.yeshchenko@senecacollege]<br />
|-<br />
|[mailto:stanislav.yeshchenko@gmail.com stanislav.yeshchenko@gmail.com]<br />
|}</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=User:Stanislav_Yeshchenko&diff=104943User:Stanislav Yeshchenko2014-05-21T18:13:09Z<p>Stanislav Yeshchenko: /* Contact Information */</p>
<hr />
<div>=='''Stanislav Yeshchenko'''==<br />
<br />
'''Name: Stanislav Yeshchenko'''<br /><br />
'''Affiliation: Computer Programming and Analysis, Information & Communications Technology, Seneca College of Applied Arts and Technology'''<br /><br />
<br />
<br />
=='''Education'''==<br />
'''<br />
<br />
Diploma of a Technician-Electrician <br />
<br />
(Joint Major in “Assembly, Maintenance, and Repair of Automated Systems of Railway Traffic Control”)<br />
<br />
Mykolaiv College of Railway Transport, Ukraine<br />
<br />
<br />
=='''Contact Information'''==<br />
{| class="myLink" border="0"<br />
<br />
|-<br />
|<u>'''E_mail Address'''</u><br />
|-<br />
|[mailto:stanislav.yeshchenko@senecacollege.ca stanislav.yeshchenko@senecacollege]<br />
|-<br />
|[mailto:stanislav.yeshchenko@gmail.com stanislav.yeshchenko@gmail.com]<br />
|}</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=CDOT_Weekly_Presentations_Summer_2014&diff=104942CDOT Weekly Presentations Summer 20142014-05-21T18:05:43Z<p>Stanislav Yeshchenko: </p>
<hr />
<div>Presentations are held every week on Thursdays at 11:30 to show off the work being done by the teams within CDOT.<br />
<br />
The time-slots below are for 15 minutes with time for Q and A afterwards.<br />
<br/><br/><br />
{|class="mediawiki sortable" border="2" width="100%"<br />
|-<br />
!Date and time (MM-DD HH:MM-HH:MM)<br />
!Project<br />
!Presenter(s)<br />
|-<br />
|-<br />
|05-22 11:30<br />
|Nimble<br />
|Ali<br />
|-<br />
|05-29 11:30<br />
|Big Blue Button Mobile Client<br />
|Stan<br />
|-<br />
|06-05 11:30<br />
|<br />
|<br />
|-<br />
|06-12 11:30<br />
|<br />
|<br />
|-<br />
|06-19 11:30<br />
|<br />
|<br />
|-<br />
|06-26 11:30<br />
|<br />
|<br />
|-<br />
|07-03 11:30<br />
|<br />
|<br />
|-<br />
|07-10 11:30<br />
|<br />
|<br />
|-<br />
|07-17 11:30<br />
|<br />
|<br />
|-<br />
|07-24 11:30<br />
|<br />
|<br />
|-<br />
|07-31 11:30<br />
|<br />
|<br />
|-<br />
|08-07 11:30<br />
|<br />
|<br />
|-<br />
|08-14 11:30<br />
|<br />
|<br />
|-<br />
|08-21 11:30<br />
|<br />
|<br />
|-<br />
|08-28 11:30<br />
|<br />
|<br />
|}<br />
<br />
[[category:CDOT]]</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=Code_Hunters&diff=91795Code Hunters2012-12-04T18:25:15Z<p>Stanislav Yeshchenko: /* discussions */</p>
<hr />
<div>= Team Name (Code Hunters)=<br />
== Project Marking Percentage ==<br />
* due immediately <br />
<big><br />
Group work: 45% (25 <= xx <= 50)<br />
Individual work: 55% + (50 <= xx <= 75) <br />
-------------------------<br />
Total 100%<br />
</big><br />
<br />
== Repository ==<br />
* repo Github id: <br />
==Team Members==<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
|+ Code Hunters Members<br />
! First Name !! Last Name !! Section !! Seneca Id !! GITHUB ID !! wiki id !! IRC nick !! Blog URL<br />
|-<br />
|-<br />
|[[User:chensteven|Steven (Szu-Han)]]||Chen||B||[mailto:sschen4@myseneca.ca?subject=oop344 sschen4]||chensteven||[[Special:Contributions/chensteven|chensteven]]||chensteven|| [http://sschen4.blogspot.ca/ Steven's Blog]<br />
|-<br />
|-<br />
|[[User:Joshua Lane|Joshua]]||Lane||B||[mailto:jlane4@myseneca.ca?subject=oop344 jlane4]||jlane4||[[Special:Contributions/Joshua Lane|Joshua Lane]]||jlane4||[http://jlane4.blogspot.ca/ Joshua Lane oop344]<br />
|-<br />
|-<br />
|[[User:Bo Liu|Bo]]||Liu||B||[mailto:bliu54@myseneca.ca?subject=oop344 bliu54]||bobliuf||[[Special:Contributions/Bo Liu|Bo Liu]]||bobliuf||[http://bobliuf.blogspot.ca/ Boliu's blog]<br />
|-<br />
|-<br />
|[[User:Stanislav Yeshchenko| Stanislav]]||Yeshchenko||B||[mailto:syeshchenko@myseneca.ca?subject=oop344 syeshchenko]||syeshchenko||[[Special:Contributions/Stanislav Yeshchenko|Stanislav Yeshchenko]]||stan_seneca|| [http://stanislavatseneca.blogspot.ca/ Stan's OOP344 blog]<br />
|-<br />
|-<br />
|[[User:Yun Yang|Yun]]||Yang||B||[mailto:yyang154@learn.senecac.on.ca?subject=oop344 yyang154]||hamumu||[[Special:Contributions/Yun Yang|Yun Yang]]||hamumu||[http://yun811.blogspot.ca/ yun's oop344]<br />
|-<br />
|}<br />
<!-- use this to add rows to this table:<br />
|[[User:WikiID | FristName]]|| LastName || Section || [mailto:YourSenecaEmailID@myseneca.ca?subject=oop344 SenecaEmailID] || Github:[http://github.com/GithubID GithubID] || [[Special:Contributions/WikiID | WikiID]] || IrcNick || [http://yourBlogURL BlogName]<br />
|-<br />
--><br />
<br />
==Issues and Status ==<br />
==== 0.2 Milestone (Due Fri 9th)====<br />
# Add console class to project and test with cio_test (issue 1) (By Joshua Reviewed By Stanislav)<br />
# Create Mock-up classes<br />
#: Create the class files (header and cpp) with blank methods and make sure they compile<br />
## CField Mock-up Class (issue 2.1) (By Bo Reviewed by Yun)<br />
## CLabel Mock-up Class (issue 2.2) (By Yun Reviewed by Stanislav)<br />
## CDialog Mock-up Class (issue 2.3) (By Steven, Stanislav and Yun Reviewed by Joshua<br />
## CLineEdit Mock-up Class (issue 2.4) (By Stanislav Reviewed by Steven)<br />
## CButton Mock-up Class (issue 2.5) (By Joshua Reviewed by Yun)<br />
## CValEdit Mock-up Class (issue 2.6) (By Yun Reviewed by Joshua)<br />
## CCheckMark Mock-up Class (issue 2.7) (By Bo Reviewed by Steven)<br />
## CText <br />
### Add Text Class to the project (issue 2.8.1) (By Steven Reviewed by Bo)<br />
### CText Mock-up Class (issue 2.8.2) (By Stanislav Reviewed by Bo)<br />
## CCheckList Mock-up Class (issue 2.9) (By Joshua Reviewed by Stanislav)<br />
==== 0.3 Milestone ====<br />
# CField (issue 3.0) By Bo, Reviewed by Yun<br />
# CDialog (issue 3.1) By Yun, Stanislav and Steven, Reviewed by Joshua <br />
# CLabel (issue 3.2) By Yun, Reviewed by Steven<br />
# CLineEdit (issue 3.3) By Joshua, Reviewed by Stanislav<br />
<br />
==== 0.4 milestone ====<br />
(Sun Nov 25th. 23:59)<br />
# CButton (issue 4.0) By Joshua<br />
# CValEdit (issue 4.1) By Stanislav and Steven<br />
# CCheckMark (issue 4.2) By Yun and Bo<br />
<br />
I did most part of the cchecklist.cpp, but I am confused about the edit() method, I need you help about it.<br />
==== 0.6 milestone ====<br />
# CText By Stanislav, Joshua and Steven<br />
# CheckList By Bo and Yun<br />
<br />
== Coding Rules ==<br />
===Naming Format===<br />
#For header files: __CH_HEADER_H__ team name initials, header file name, h<br />
* Add recompilation safeguards to all your header files.<br />
* Always use forward declaration if possible instead of including a class header-file.<br />
* Use includes only in files in which the actual header file code is used<br />
#Issue and branch name format:<br /><br />
#:V.V_Name <br /><br />
#:example; issue: Add Text Class to the project (issue 2.9.1) issue and branch name on gitub: 2.9.1_AddTextClass<br /><br />
<br />
===Coding Format===<br />
<pre><br />
int main(){<br />
int var; //All variables declared with own type<br />
int* var2; //asterisk on pointer type<br />
<br />
if(...){<br />
var = 0; //three spaces for indentation, check tab length in your editor<br />
} //closing brace lined up with last line in block, brace gets own line<br />
else var = 1;<br />
<br />
} //comment end of functions and long code blocks<br />
</pre><br />
<br />
== meetings ==<br />
* latest will be on top<br />
# [[(Irc)logs of meeting number ### - oop344 20113 | topic and date1 ]]<br />
# [[(Irc)logs of meeting number ### - oop344 20113 | topic and date2 ]]<br />
== discussions ==<br />
* Hi, team. Many of the solutions for the challenging questions are posted on http://yun811.blogspot.ca, if you need them for exam referrence, please feel free to have a look.<br />
<br />
* Hi, do you have any ideas about the application, and when is the due day.<br />
* And have you found the notes of last class, it has not been uploaded?<br />
<br />
* Blog: Common 0.2 errors [http://jlane4.blogspot.ca/2012/11/milestone-02-common-errors.html Joshua 0.2 Blog]<br />
Please help: I am confused about this instruction, what does this mean?<br />
* Always use forward declaration if possible instead of including a class header-file.<br />
Lists of Project confusions: Yun's Blog http://yun811.blogspot.ca<br />
* For CCheckMark class, the base class is CField, but in the constructor and copy constructor, CLabel is initiated, what's the relationship of CCheckMark and CLabel?<br />
* Sets the frame of _Label to its owner (Checkmark i.e. 'this'), what this mean?<br />
* bool operator=(bool flag), what is the return value for this operator?<br />
* I have merged the branch before when it compiled well, later I updated some methods, I want to merge the branch again, but the git does not allow, how do you handle the merge again?<br />
*'''When you are writing something here, please indicate yourself and the date when you are posting it''' - Stan 04/12/2012</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=OOP344&diff=91794OOP3442012-12-04T18:20:59Z<p>Stanislav Yeshchenko: /* Resources */</p>
<hr />
<div><big><big>Object Oriented Programming II Using C++</big></big> with introduction to open source<br />
{{OOP344 Index | 20123}}<br />
<br />
Please help make this page resourceful for all OOP344 students to use!<br />
<br />
Short link for current page: [https://bit.ly/oop344 bit.ly/oop344]<br />
<br />
= OOP344 -- Object Oriented Programming II Using C++ =<br />
== Professors ==<br />
* [[user:Fardad|Fardad Soleimanloo]]<br />
<br />
== [https://scs.senecac.on.ca/course/oop344 Subject Description and Course Outcomes] ==<br />
<br />
* Please visit the [https://scs.senecac.on.ca School Of Computer Studies] website for the [https://scs.senecac.on.ca/course/oop344 detailed description] of the subject<br />
<br />
== The Project ==<br />
*TBA<br />
<!--The project for this semester is a multi-platform, text-based application and is done using opensource concepts.<br /><br />
Check [[Project 20121 - OOP344]] for details.--><br />
<br />
== Exam Schedule ==<br />
* TBA<br />
<br />
== Grading ==<br />
<br />
* Tests<br />
** Test 1 10%<br />
** Test 2 10%<br />
* Project 40%<br />
** Application 30%<br />
** Contribution and Participation and Quizzes 10%<br />
* Final Exam 40%<br />
<br />
== Resources ==<br />
<br />
* [https://cs.senecac.on.ca/~btp300/pages/content/index.html Object-Oriented Programming I - C++]<br />
* [http://teachingopensource.com/index.php/Textbook_Release_0.8 Practical Open Source Software Exploration]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page How To edit Wiki pages]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet How To edit Wiki Cheatsheet]<br />
* [http://www.possibility.com/Cpp/CppCodingStandard.html C++ Coding Standard]<br />
* Mac Lab Available in 2108 as well as in the Computing Commons*<br />
* [http://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#The_Basics_of_IRC IRC Basics]<br />
* [http://irchelp.org/irchelp/irctutorial.html IRC Tutorial]<br />
* How to Install [http://wiki.tryphon.eu/how_to_install_xchat XChat] ([http://www.silverex.org/download/ XChat 2 <free>])<br />
* [http://colloquy.info/downloads.html Colloquy] an IRC Client for Mac<br />
* [http://en.cppreference.com/w/cpp/language/operator_precedence C++ Operator Precedence] C++ Operator Precedence<br />
* [https://github.com/languages/C%2B%2B Open Source C++ projects on GitHub] For those who wants to try their knowledge, you can participate in Open Source C++ Projects on GitHub. Just click the link, choose project for you and start working on it, as simple as that.<br />
* [http://www.sgi.com/tech/stl/ Standard Template Library Programmer's Guide]<br />
<br />
<!-- OLD stuff: to be updated<br />
* [[initial Steps to succeed in OOP344]]<br />
* Class notes can be found here: svn://zenit.senecac.on.ca/oop344 (userid: oop344, no password) <--- You need to install SVN to open the link.<br />
* [http://subversion.tigris.org/ Subversion (SVN)]<br />
* [http://subversion.apache.org/packages.html Subversion (SVN) Binary Packages]<br />
* [http://tortoisesvn.net/downloads Download Page of TortoiseSVN]<br />
* [http://tortoisesvn.net/docs/release/TortoiseSVN_en/index.html TortoiseSVN Documentation]<br />
* [http://svnbook.red-bean.com/ SVN book at red-bean.com] or download [https://cs.senecac.on.ca/~fardad.soleimanloo/oop344/notes/svn-book.pdf the PDF from here].<br />
* Using [[SVN for School Projects]]<br />
* [http://www.rapidsvn.org/download/release/0.12/RapidSVN-0.12.0-8051.dmg RapidSVN] a SVN Client for Mac<br />
* [http://ankhsvn.open.collab.net/ AnkhSVN - Free Visual Studio SVN Integration Alternative To VisualSVN]<br />
<br />
<br />
--><br />
<br />
== Examples and In-class Notes==<br />
* Inclass notes: [https://github.com/Seneca-OOP344/OOP344-20123.git git@github.com:Seneca-OOP344/OOP344-20123.git]<br />
<br />
<br />
<br />
<!-- OLD STUFF<br />
<br />
svn://zenit.senecac.on.ca/oop344 (userid: oop344, no password) <--- You need to install SVN to open the link. <br/><br />
--><br />
<br />
== Archives ==<br />
<!-- OLD REPO<br />
checkout svn://zenit.senecac.on.ca/oop344/tags for all the notes since 2001 (Userid: oop344 | No password) <--- You need to install SVN to open the link. <br />
--><br />
<br /><br />
===Inclass Notes===<br />
*[https://github.com/Seneca-OOP344/fardad-archive.git git@github.com:Seneca-OOP344/fardad-archive.git]<br />
===Weekly Schedules===<br />
*[[OOP344 20093 | OOP344 20093]]<br/><br />
*[[OOP344 - 20101]]<br /><br />
*[[OOP344 Weekly Schedule 20102 | OOP344 - 20102]]<br /><br />
*[[OOP344 Weekly Schedule 20103 | OOP344 - 20103]]<br /><br />
*[[Weekly Schedule 20111 - OOP344 | OOP344 - 20111]]<br /><br />
*[[Weekly Schedule 20112 - OOP344 | OOP344 - 20112]]<br /><br />
*[[Weekly Schedule 20113 - OOP344 | OOP344 - 20113]]<br /> <br />
*[[Weekly Schedule 20121 - OOP344 | OOP344 - 20121]]<br /></div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=OOP344&diff=91554OOP3442012-11-26T22:57:29Z<p>Stanislav Yeshchenko: /* Resources */</p>
<hr />
<div><big><big>Object Oriented Programming II Using C++</big></big> with introduction to open source<br />
{{OOP344 Index | 20123}}<br />
<br />
Please help make this page resourceful for all OOP344 students to use!<br />
<br />
Short link for current page: [https://bit.ly/oop344 bit.ly/oop344]<br />
<br />
Another mirror for short URL to this page: [https://is.gd/OOP344 is.gd/OOP344]<br />
<br />
= OOP344 -- Object Oriented Programming II Using C++ =<br />
== Professors ==<br />
* [[user:Fardad|Fardad Soleimanloo]]<br />
<br />
== [https://scs.senecac.on.ca/course/oop344 Subject Description and Course Outcomes] ==<br />
<br />
* Please visit the [https://scs.senecac.on.ca School Of Computer Studies] website for the [https://scs.senecac.on.ca/course/oop344 detailed description] of the subject<br />
<br />
== The Project ==<br />
*TBA<br />
<!--The project for this semester is a multi-platform, text-based application and is done using opensource concepts.<br /><br />
Check [[Project 20121 - OOP344]] for details.--><br />
<br />
== Exam Schedule ==<br />
* TBA<br />
<br />
== Grading ==<br />
<br />
* Tests<br />
** Test 1 10%<br />
** Test 2 10%<br />
* Project 40%<br />
** Application 30%<br />
** Contribution and Participation and Quizzes 10%<br />
* Final Exam 40%<br />
<br />
== Resources ==<br />
<br />
* [https://cs.senecac.on.ca/~btp300/pages/content/index.html Object-Oriented Programming I - C++]<br />
* [http://teachingopensource.com/index.php/Textbook_Release_0.8 Practical Open Source Software Exploration]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page How To edit Wiki pages]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet How To edit Wiki Cheatsheet]<br />
* [http://www.possibility.com/Cpp/CppCodingStandard.html C++ Coding Standard]<br />
* Mac Lab Available in 2108 as well as in the Computing Commons*<br />
* [http://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#The_Basics_of_IRC IRC Basics]<br />
* [http://irchelp.org/irchelp/irctutorial.html IRC Tutorial]<br />
* How to Install [http://wiki.tryphon.eu/how_to_install_xchat XChat] ([http://www.silverex.org/download/ XChat 2 <free>])<br />
* [http://colloquy.info/downloads.html Colloquy] an IRC Client for Mac<br />
* [http://en.cppreference.com/w/cpp/language/operator_precedence C++ Operator Precedence] C++ Operator Precedence<br />
* [https://github.com/languages/C%2B%2B Open Source C++ projects on GitHub] For those who wants to try their knowledge, you can participate in Open Source C++ Projects on GitHub. Just click the link, choose project for you and start working on it, as simple as that.<br />
<br />
<br />
<!-- OLD stuff: to be updated<br />
* [[initial Steps to succeed in OOP344]]<br />
* Class notes can be found here: svn://zenit.senecac.on.ca/oop344 (userid: oop344, no password) <--- You need to install SVN to open the link.<br />
* [http://subversion.tigris.org/ Subversion (SVN)]<br />
* [http://subversion.apache.org/packages.html Subversion (SVN) Binary Packages]<br />
* [http://tortoisesvn.net/downloads Download Page of TortoiseSVN]<br />
* [http://tortoisesvn.net/docs/release/TortoiseSVN_en/index.html TortoiseSVN Documentation]<br />
* [http://svnbook.red-bean.com/ SVN book at red-bean.com] or download [https://cs.senecac.on.ca/~fardad.soleimanloo/oop344/notes/svn-book.pdf the PDF from here].<br />
* Using [[SVN for School Projects]]<br />
* [http://www.rapidsvn.org/download/release/0.12/RapidSVN-0.12.0-8051.dmg RapidSVN] a SVN Client for Mac<br />
* [http://ankhsvn.open.collab.net/ AnkhSVN - Free Visual Studio SVN Integration Alternative To VisualSVN]<br />
<br />
<br />
--><br />
<br />
== Examples and In-class Notes==<br />
* Inclass notes: [https://github.com/Seneca-OOP344/OOP344-20123.git git@github.com:Seneca-OOP344/OOP344-20123.git]<br />
*Etherpad: <br />
**[http://etherpad.proximity.on.ca:9001/p/oop3441-sep10B Sept 10th] -Starting CPP Projects Intro<br />
**[http://etherpad.proximity.on.ca:9001/p/oop3444-sep24a Sept 24th] -Arrays (Multi), Static Vars, SizeOf <br />
**[http://etherpad.proximity.on.ca:9001/p/oop3444-sep28a Sept 28th] -Returns, Pointer to Func, Typedef<br />
**[http://etherpad.proximity.on.ca:9001/p/oop3445_oct1a Oct 1st] -Virtual Methods, Inheritance, Recursion<br />
**[http://etherpad.proximity.on.ca:9001/p/oop3445_oct8a Oct 8th] (No collaborated notes as of yet)<br />
**[http://etherpad.proximity.on.ca:9001/p/oop3447_oct15a Oct 15th] -Header File Safeguards<br />
**[http://etherpad.proximity.on.ca:9001/p/oop3449_nov2a Nov 2nd] -Github Milestones, Queues<br />
<br />
<br />
<!-- OLD STUFF<br />
<br />
svn://zenit.senecac.on.ca/oop344 (userid: oop344, no password) <--- You need to install SVN to open the link. <br/><br />
--><br />
<br />
== Archives ==<br />
<!-- OLD REPO<br />
checkout svn://zenit.senecac.on.ca/oop344/tags for all the notes since 2001 (Userid: oop344 | No password) <--- You need to install SVN to open the link. <br />
--><br />
<br /><br />
===Inclass Notes===<br />
*[https://github.com/Seneca-OOP344/fardad-archive.git git@github.com:Seneca-OOP344/fardad-archive.git]<br />
===Weekly Schedules===<br />
*[[OOP344 20093 | OOP344 20093]]<br/><br />
*[[OOP344 - 20101]]<br /><br />
*[[OOP344 Weekly Schedule 20102 | OOP344 - 20102]]<br /><br />
*[[OOP344 Weekly Schedule 20103 | OOP344 - 20103]]<br /><br />
*[[Weekly Schedule 20111 - OOP344 | OOP344 - 20111]]<br /><br />
*[[Weekly Schedule 20112 - OOP344 | OOP344 - 20112]]<br /><br />
*[[Weekly Schedule 20113 - OOP344 | OOP344 - 20113]]<br /> <br />
*[[Weekly Schedule 20121 - OOP344 | OOP344 - 20121]]<br /></div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=Code_Hunters&diff=91553Code Hunters2012-11-26T22:45:27Z<p>Stanislav Yeshchenko: /* 0.6 milestone */</p>
<hr />
<div>= Team Name (Code Hunters)=<br />
== Project Marking Percentage ==<br />
* due immediately <br />
<big><br />
Group work: 45% (25 <= xx <= 50)<br />
Individual work: 55% + (50 <= xx <= 75) <br />
-------------------------<br />
Total 100%<br />
</big><br />
<br />
== Repository ==<br />
* repo Github id: <br />
==Team Members==<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
|+ Code Hunters Members<br />
! First Name !! Last Name !! Section !! Seneca Id !! GITHUB ID !! wiki id !! IRC nick !! Blog URL<br />
|-<br />
|-<br />
|[[User:chensteven|Steven (Szu-Han)]]||Chen||B||[mailto:sschen4@myseneca.ca?subject=oop344 sschen4]||chensteven||[[Special:Contributions/chensteven|chensteven]]||chensteven|| [http://sschen4.blogspot.ca/ Steven's Blog]<br />
|-<br />
|-<br />
|[[User:Joshua Lane|Joshua]]||Lane||B||[mailto:jlane4@myseneca.ca?subject=oop344 jlane4]||jlane4||[[Special:Contributions/Joshua Lane|Joshua Lane]]||jlane4||[http://jlane4.blogspot.ca/ Joshua Lane oop344]<br />
|-<br />
|-<br />
|[[User:Bo Liu|Bo]]||Liu||B||[mailto:bliu54@myseneca.ca?subject=oop344 bliu54]||bobliuf||[[Special:Contributions/Bo Liu|Bo Liu]]||bobliuf||[http://bobliuf.blogspot.ca/ Boliu's blog]<br />
|-<br />
|-<br />
|[[User:Stanislav Yeshchenko| Stanislav]]||Yeshchenko||B||[mailto:syeshchenko@myseneca.ca?subject=oop344 syeshchenko]||syeshchenko||[[Special:Contributions/Stanislav Yeshchenko|Stanislav Yeshchenko]]||stan_seneca|| [http://stanislavatseneca.blogspot.ca/ Stan's OOP344 blog]<br />
|-<br />
|-<br />
|[[User:Yun Yang|Yun]]||Yang||B||[mailto:yyang154@learn.senecac.on.ca?subject=oop344 yyang154]||hamumu||[[Special:Contributions/Yun Yang|Yun Yang]]||hamumu||[http://yun811.blogspot.ca/ yun's oop344]<br />
|-<br />
|}<br />
<!-- use this to add rows to this table:<br />
|[[User:WikiID | FristName]]|| LastName || Section || [mailto:YourSenecaEmailID@myseneca.ca?subject=oop344 SenecaEmailID] || Github:[http://github.com/GithubID GithubID] || [[Special:Contributions/WikiID | WikiID]] || IrcNick || [http://yourBlogURL BlogName]<br />
|-<br />
--><br />
<br />
==Issues and Status ==<br />
==== 0.2 Milestone (Due Fri 9th)====<br />
# Add console class to project and test with cio_test (issue 1) (By Joshua Reviewed By Stanislav)<br />
# Create Mock-up classes<br />
#: Create the class files (header and cpp) with blank methods and make sure they compile<br />
## CField Mock-up Class (issue 2.1) (By Bo Reviewed by Yun)<br />
## CLabel Mock-up Class (issue 2.2) (By Yun Reviewed by Stanislav)<br />
## CDialog Mock-up Class (issue 2.3) (By Steven, Stanislav and Yun Reviewed by Joshua<br />
## CLineEdit Mock-up Class (issue 2.4) (By Stanislav Reviewed by Steven)<br />
## CButton Mock-up Class (issue 2.5) (By Joshua Reviewed by Yun)<br />
## CValEdit Mock-up Class (issue 2.6) (By Yun Reviewed by Joshua)<br />
## CCheckMark Mock-up Class (issue 2.7) (By Bo Reviewed by Steven)<br />
## CText <br />
### Add Text Class to the project (issue 2.8.1) (By Steven Reviewed by Bo)<br />
### CText Mock-up Class (issue 2.8.2) (By Stanislav Reviewed by Bo)<br />
## CCheckList Mock-up Class (issue 2.9) (By Joshua Reviewed by Stanislav)<br />
==== 0.3 Milestone ====<br />
# CField (issue 3.0) By Bo Liu, Reviewed by Yun Yang<br />
# CDialog (issue 3.1) By Yun, Stanislav and Steven, Reviewed by Joshua <br />
# CLabel (issue 3.2) By Yun, Reviewed by Steven<br />
# CLineEdit (issue 3.3) By Joshua, Reviewed by Stanislav<br />
<br />
==== 0.4 milestone ====<br />
(Sun Nov 25th. 23:59)<br />
# CButton (issue 4.0) By Joshua Lane<br />
# CValEdit (issue 4.1) By Stanislav and Steven<br />
# CCheckMark (issue 4.2) By Yun and Bo<br />
<br />
==== 0.6 milestone ====<br />
# CText By Stanislav Yeshchenko, Joshua Lane, Steven Chen<br />
# CheckList By Bo and Yun<br />
<br />
== Coding Rules ==<br />
===Naming Format===<br />
#For header files: __CH_HEADER_H__ team name initials, header file name, h<br />
* Add recompilation safeguards to all your header files.<br />
* Always use forward declaration if possible instead of including a class header-file.<br />
* Use includes only in files in which the actual header file code is used<br />
#Issue and branch name format:<br /><br />
#:V.V_Name <br /><br />
#:example; issue: Add Text Class to the project (issue 2.9.1) issue and branch name on gitub: 2.9.1_AddTextClass<br /><br />
<br />
===Coding Format===<br />
<pre><br />
int main(){<br />
int var; //All variables declared with own type<br />
int* var2; //asterisk on pointer type<br />
<br />
if(...){<br />
var = 0; //three spaces for indentation, check tab length in your editor<br />
} //closing brace lined up with last line in block, brace gets own line<br />
else var = 1;<br />
<br />
} //comment end of functions and long code blocks<br />
</pre><br />
<br />
== meetings ==<br />
* latest will be on top<br />
# [[(Irc)logs of meeting number ### - oop344 20113 | topic and date1 ]]<br />
# [[(Irc)logs of meeting number ### - oop344 20113 | topic and date2 ]]<br />
== discussions ==<br />
* Blog: Common 0.2 errors [http://jlane4.blogspot.ca/2012/11/milestone-02-common-errors.html Joshua 0.2 Blog]<br />
Please help: I am confused about this instruction, what does this mean?<br />
* Always use forward declaration if possible instead of including a class header-file.<br />
Lists of Project confusions: Yun's Blog http://yun811.blogspot.ca<br />
* For CCheckMark class, the base class is CField, but in the constructor and copy constructor, CLabel is initiated, what's the relationship of CCheckMark and CLabel?<br />
* Sets the frame of _Label to its owner (Checkmark i.e. 'this'), what this mean?<br />
* bool operator=(bool flag), what is the return value for this operator?<br />
* I have merged the branch before when it compiled well, later I updated some methods, I want to merge the branch again, but the git does not allow, how do you handle the merge again?</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=Weekly_Schedule_20123_-_OOP344&diff=91091Weekly Schedule 20123 - OOP3442012-11-16T03:23:27Z<p>Stanislav Yeshchenko: /* Resources 1 */</p>
<hr />
<div>{{OOP344 Index | 20123}}<br />
<br />
= OOP344 -- Weekly Schedule 2012/3 (Fall Semester)=<br />
* Inclass notes archive: [https://github.com/Seneca-OOP344/fardad-archive.git git@github.com:Seneca-OOP344/fardad-archive.git]<br />
* Inclass notes: [https://github.com/Seneca-OOP344/OOP344-20123.git git@github.com:Seneca-OOP344/OOP344-20123.git]<br />
<br />
<br />
== Week 1 - Sep 3 ==<br />
<br />
=== This Week 1 ===<br />
<br />
* Introduction to Open Source development.<br />
* Collaboration Tools:<br />
** Wiki<br />
** Blog<br />
** IRC<br />
** Code Repository<br />
** Big Blue Button<br />
* Object Orientation Review<br />
<br />
=== To Do 1 ===<br />
# Read [http://git-scm.com/book Pro-git book]<br />
#: Chapter One and if possible Chapter Two<br />
# Create an account on [https://github.com github]<br />
# Create a [http://en.wikipedia.org/wiki/Blog blog] (anywhere you like)<br />
# Join the IRC by [http://www.wikihow.com/Register-a-User-Name-on-Freenode registering your nickname on freenode] server and joining the #seneca-oop344 channel for 344 related dialog<br />
#: Additional channels of interest: #seneca to interact with all Seneca students participating in opensource projects, and #seneca-social for Social (off-topic) dialog.<br />
# Create a team of five students and pick a name for you team<br />
# Send an email to [mailto:fardad.soleimanloo@senecacollege.ca?subject=344info me] and send your github and team information<br />
#: subject of the email should be '''''344info'''''<br />
#: '''''email content'''''<br />
#: nickname:<br />
#: name:<br />
#: surname:<br />
#: seneca username: <br />
#: github id: <br />
#: team name:<br />
#: number of team members:<br />
# Create an account on this wiki <br />
#: send an email to [mailto:cdot-wiki-admin@senecac.on.ca?subject=Wiki+account+request cdot-wiki-admin@senecac.on.ca] and ask for an account, an email will be sent back to you with your userid and a temporary password<br />
# Learn how to do basic editing in a wiki <br />
# Having all the information above add your name to the [[Student List 20123 - OOP344|student list]]<br />
<br />
=== Resources 1 ===<br />
* [http://git-scm.com/book Pro-git book]<br />
* [http://www.sourcetreeapp.com Git GUI Client for Mac ] <br />
* [http://windows.github.com/ Github Client for Windows] <br />
* [https://help.github.com/articles/generating-ssh-keys Generating SSH keys for github]<br />
* [http://www.wikihow.com/Register-a-User-Name-on-Freenode How to register your IRC nickname on freenode]<br />
* [http://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients Compare IRC clients]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page How To edit Wiki pages]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet How To edit Wiki Cheatsheet]<br />
* Blogs<br />
** [http://wordpress.com/ Wordpress]<br />
** [http://www.blogger.com/ Blogger]<br />
** [https://www.tumblr.com/ Tumblr]<br />
* IRC Clients:<br />
** [http://www.silverex.org/download/ XChat 2 (Windows)]<br />
** [http://colloquy.info/downloads.html Colloquy Colloguy (Mac)] <br />
** [https://addons.mozilla.org/en-US/firefox/addon/chatzilla/ ChatZilla (Multi-platform)]<br />
** [http://clicksandwhistles.com/download.php Clicks & Whistles (Windows)]<br />
* How to Install <br />
** [http://wiki.tryphon.eu/how_to_install_xchat XChat]<br />
* Great 15 minutes tutorial that will give you basic understanding of Git<br />
** [http://try.github.com/levels/1/challenges/1 Try GitHub]<br />
<br />
== Week 2 - Sep 9 ==<br />
=== This Week 2 ===<br />
* Object Orientation Review<br />
*: Encapsulation, Inheritance, Polymorphism<br />
* Languages<br />
*: Platforms (Operating System + compiler)<br />
*: Multi-file compilation process basics <br />
*::compiler, linker<br />
<br />
=== To Do 2 ===<br />
# Complete the to do list of last week<br />
# Send an email to [mailto:fardad.soleimanloo@senecacollege.ca?subject=344info me] and send your github and team information<br />
#: subject of the email should be '''''344info'''''<br />
#: '''''email content'''''<br />
#: nickname:<br />
#: name:<br />
#: surname:<br />
#: seneca username: <br />
#: github id: <br />
#: team name:<br />
#: number of team members:<br />
<br />
=== Resources 2 ===<br />
* Sep 10th Col-notes: [http://tinyurl.com/oop3441 note1]<br />
* If anybody didn't notice GitBook has translations. Here is Russian -> [http://git-scm.com/book/ru Русский GitBook]<br />
== Week 3 - Sep 16 ==<br />
=== This Week 3 ===<br />
* Pre-Processor Directives (Compiler continued) <br />
* Macros <br />
*: #define, #undef <br />
*: multi-line macros <br />
* Conditional Compilation <br />
*: #ifdef, #ifndef, #if, #elif, #else, #endif, #undef <br />
* Header file safeguards <br />
*: non-standard: #pragma once, <br />
* Operators<br />
* Data types<br />
*: Integer, floating point, pointer<br />
*: signed, unsigned<br />
* pointers<br />
* Storage Class Specifiers <br />
*: auto, register, volatile, const<br />
<br />
=== To Do 3 ===<br />
* Complete [[Teams' List 20123 - OOP344]] page, (adding your team name and their members information)<br />
*: ''if you are not member of a team, add your name under "[[Teams'_List 20123 - OOP344#Not in a team|Not in a team]]" and I will assign you to a team.''<br />
* Study chapter two of [http://git-scm.com/book Pro-Git Book]<br />
* Make sure your github account contains your '''''REAL FULL NAME'''''<br />
<br />
=== Resources 3 ===<br />
* [https://scs.senecac.on.ca/~oop344/pages/content/macro.html Macros]<br />
* [https://scs.senecac.on.ca/~oop344/pages/content/condi.html Conditional Inclusion]<br />
* [https://scs.senecac.on.ca/~oop344/pages/content/scala.html Primitive Types]<br />
<br />
== Week 4 - Sep 23 ==<br />
=== This Week 4 ===<br />
* Data types (continued) *<br />
*: sizeof *<br />
*: void, enum<br />
* pointers (continued)*<br />
*: pointer arithmetic * <br />
*: function pointers<br />
* Storage Class Specifiers <br />
*: const <br />
* Statics *<br />
* extern *<br />
* typedef <br />
* Compound Types<br />
*: Arrays * , Structures , Unions <br />
* Inheritance<br />
<br />
=== To Do 4 ===<br />
=== Resources 4 ===<br />
*[https://scs.senecac.on.ca/~oop344/pages/content/aggre.html Compound Types]<br />
*[http://etherpad.proximity.on.ca:9001/p/oop3444-sep24a Etherpad Notes(SEP 24)]<br />
*[http://etherpad.proximity.on.ca:9001/p/oop3444-sep28a Etherpad Notes(SEP 28)]<br />
<br />
== Week 5 - Sep 30 ==<br />
=== This Week 5 ===<br />
* Operator overload review (B)<br />
* friends review (B)<br />
* recursion (B)<br />
* Virtual, Pure-Virtual, Abstract Classes (B)<br />
* References<br />
* command line arguments<br />
* variable argument list <br />
* The project (introduction, main design and idea) (B)<br />
<br />
=== To Do 5 ===<br />
=== Resources 5 ===<br />
*[https://cs.senecac.on.ca/~btp300/pages/content/minhe.html#vir Virtual Inheritance]<br />
*[http://etherpad.proximity.on.ca:9001/p/oop3445_oct1a Ethernotes OCT 1]<br />
*[http://etherpad.proximity.on.ca:9001/p/oop3445_oct8a Ethernotes OCT 8]<br />
<br />
== Week 6 - Oct 7 ==<br />
=== This Week 6 ===<br />
* [[Project 20123 - OOP344|The project ]]<br />
<br />
=== To Do 6 ===<br />
* I (Fardad) sent an email with following subject '''''oop344 - Testing Group email to all oop344 students'''''<br />
*: Make sure you received this email, if you did not, please check your spam filter and make sure it is not filtered. <br />
*: If you have not received this email, please let me know as soon as possible so I update my mailing list.<br />
=== Resources 6 ===<br />
[[Project 20123 - OOP344|The project]]<br />
<br />
== Week 7 - Oct 14 ==<br />
=== This Week 7 ===<br />
* [[Project 20123 - OOP344|The Project (Continued)]]<br />
* Lists<br />
*: Arrays<br />
*: Linked Lists<br />
<br />
=== To Do 7 ===<br />
* Double check and correct/update your information on Teams page<br />
*: due date '''''NOW'''''<br />
* Have your team page ready by using [[Team page template - oop344 20123|the team page template]]<br />
*: If you already created your team page, modify it so its format matches [[Team page template - oop344 20123|the team page template]]. <br />
*: If you have not yet created your team page, create it by '''''COPYING''''' the content of [[Team page template - oop344 20123|the team page template]] into a newly created page according to the regulations stated on [[Teams' List 20123 - OOP344 | Teams]] page.<br />
*: Due date: '''''NOW'''''<br />
* pull the notes from github and run and walkthrough '''Test1Frame.cpp''' with CFrame class to understand how it works and post your questions and answer in blogs.<br />
* When posted, pickup, assign and start working on issues....<br />
<br />
=== Resources 7 ===<br />
* [[GIT for OOP344 Projects]]<br />
* [https://cs.senecac.on.ca/~btp300/pages/content/aggre.html Arrays]<br />
* [https://cs.senecac.on.ca/~btp300/pages/content/linkl.html Lists]<br />
* [http://etherpad.proximity.on.ca:9001/p/oop3447_oct15a ETHERNOTES OCT 10]<br />
<br />
== Week 8 - Oct 21 (Study Week)==<br />
=== This Week 8 (STUDY BREAK) ===<br />
* [http://fsoss.senecac.on.ca/2012/ FSOSS]<br />
<br />
=== To Do 8 ===<br />
<br />
=== Resources 8 ===<br />
<br />
== Week 9 - Oct 28 ==<br />
=== This Week 9 ===<br />
* Monday, Midterm TEST<br />
* Working with Git and github<br />
* Linked lists (Queue)<br />
<br />
=== To Do 9 ===<br />
=== Resources 9 ===<br />
* [http://etherpad.proximity.on.ca:9001/p/oop3449_nov2a Etherpad Notes Nov 2/12]<br />
* Lecture video for Git: http://www.youtube.com/watch?v=JXusZR41Je0<br />
=== Challenge! ===<br />
Add the following methods to queue:<br />
* unsigned int size( );<br />
* int operator[](unsigned int index);<br />
: Note* Did you mean int&?<br />
==== Challenge Answers ====<br />
* Yun Yang's version is [http://yun811.blogspot.ca/ here]!http://yun811.blogspot.ca/<br />
* Amir Mobasseri's version can be find [http://ammobasseri.wordpress.com/2012/11/01/c-queue/ http://ammobasseri.wordpress.com/2012/11/01/c-queue/ here!]<br />
* Revised version of Amir's code [http://mmwang2.blogspot.ca/2012/11/updated-version-of-amir-and-saeids-code.html Michael's blog]<br />
: - Also I've noticed that Fardad did not write the return variable as a reference, which made it impossible to edit, as done in line 13 of queuetester.cpp, that is updated that as well.<br />
* Michael Wang's version of the functions [http://mmwang2.blogspot.ca/2012/11/oop344-queue-class-functions.html Michael's blog]<br />
* Prasanth's Version - [http://wereallforked.tumblr.com/post/34878497104/queue-challenge Blog Entry]<br />
* Peter's Version - [http://peter.ug http://peter.ug/queue-cpp-operator-overload/]<br />
* Stanislav's Version - [http://stanislavatseneca.blogspot.ca/ here] http://stanislavatseneca.blogspot.ca/<br />
: - I decided to go a bit further and I did my operator[] method able to add new Nodes to the end of the Queue if we have index > size, comments are greatly appreciated.<br />
* Minh Khoa (Ken) Nguyen's Version - [http://kennguyen4z.wordpress.com/2012/11/02/oop344-challenge/ Ken's blog]<br />
: - I actually go with side. I added a variable into the node.<br />
<br />
== Week 10 - Nov 4 ==<br />
=== This Week 10===<br />
* Project Milestone 0.2<br />
* bitwise operators <br />
*# and, or, not, exclusive or<br />
*# shifts<br />
*# determining the value of bits<br />
*#: masks<br />
*# setting the value of bits<br />
*#: '''"mask AND value"''' to set to "0" (ex. mask for 3rd bit: 1111 0111)<br />
*#: '''"mask OR value"''' to set to "1" (ex. mask for 3rd bit: 0000 1000)<br />
<br />
=== To Do 10===<br />
* [[The CIO Framework - OOP344 20123#0.2 Milestone|Project Milestone 0.2 (Due Monday Nov 12th 23:59)]]<br />
* Challege<br />
*# setBit(unsigned int val, unsigned int bitNo, bool bitVal);<br />
*#: Sets the "bitNo" bit of val to the "bitVal" value<br />
*# char* bits(unsigned int val) <br />
*#: returns a character string holding the bit pattern of val (i.e cout<<bits(0xF7)<<endl, will print 11110111)<br />
*# write the void prnBits(unsigned int val) function (wrote in class) in only one line.<br />
<br />
=== Resources 10===<br />
* https://scs.senecac.on.ca/~oop344/pages/content/bitsw.html<br />
* http://en.wikipedia.org/wiki/Bitwise_operators<br />
* http://bit.ly/TpYFOr<br />
<br />
== Week 11 - Nov 11 ==<br />
=== This Week 11===<br />
* Templates<br />
** functions<br />
** classes<br />
<br />
=== To Do 11===<br />
* [[The CIO Framework - OOP344 20123#0.3 Milestone|Project Milestone 0.3 - Part 1 (Due Saturday Nov 17th 23:59)]]<br />
** CField, CDialog and CLabel<br />
<br />
* [[The CIO Framework - OOP344 20123#0.3 Milestone|Project Milestone 0.3 - Part 2 (Due Sunday Nov 18th 23:59)]]<br />
**CLineEdit<br />
<br />
=== Resources 11===<br />
* http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging<br />
*: to do merging on local repo and basic conflict handling<br />
<br />
* Template Specialization and Partial Template specilization<br />
*: http://www.cprogramming.com/tutorial/template_specialization.html<br />
<br />
== Week 12 - Nov 18 ==<br />
=== This Week 12===<br />
=== To Do 12===<br />
=== Resources 12===<br />
<br />
<br />
== Week 13 - Nov 25 ==<br />
=== This Week 13===<br />
=== To Do 13===<br />
=== Resources 13===<br />
<br />
<br />
== Week 14 - Dec 2 ==<br />
=== This Week 14===<br />
=== To Do 14===<br />
=== Resources 14===<br />
<br />
== Week 15 - Dec 9 (Exam Week) ==<br />
=== This Week 15===<br />
* Final Exam<br />
*: Room: S3031<br />
*: Time: 11:30<br />
*: Date: Wednesday Dec 12th<br />
<br />
=== To Do 15===<br />
=== Resources 15===</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=Weekly_Schedule_20123_-_OOP344&diff=90765Weekly Schedule 20123 - OOP3442012-11-07T23:40:56Z<p>Stanislav Yeshchenko: /* Challenge Answers */</p>
<hr />
<div>{{OOP344 Index | 20123}}<br />
<br />
= OOP344 -- Weekly Schedule 2012/3 (Fall Semester)=<br />
* Inclass notes archive: [https://github.com/Seneca-OOP344/fardad-archive.git git@github.com:Seneca-OOP344/fardad-archive.git]<br />
* Inclass notes: [https://github.com/Seneca-OOP344/OOP344-20123.git git@github.com:Seneca-OOP344/OOP344-20123.git]<br />
<br />
<br />
== Week 1 - Sep 3 ==<br />
<br />
=== This Week 1 ===<br />
<br />
* Introduction to Open Source development.<br />
* Collaboration Tools:<br />
** Wiki<br />
** Blog<br />
** IRC<br />
** Code Repository<br />
** Big Blue Button<br />
* Object Orientation Review<br />
<br />
=== To Do 1 ===<br />
# Read [http://git-scm.com/book Pro-git book]<br />
#: Chapter One and if possible Chapter Two<br />
# Create an account on [https://github.com github]<br />
# Create a [http://en.wikipedia.org/wiki/Blog blog] (anywhere you like)<br />
# Join the IRC by [http://www.wikihow.com/Register-a-User-Name-on-Freenode registering your nickname on freenode] server and joining the #seneca-oop344 channel for 344 related dialog<br />
#: Additional channels of interest: #seneca to interact with all Seneca students participating in opensource projects, and #seneca-social for Social (off-topic) dialog.<br />
# Create a team of five students and pick a name for you team<br />
# Send an email to [mailto:fardad.soleimanloo@senecacollege.ca?subject=344info me] and send your github and team information<br />
#: subject of the email should be '''''344info'''''<br />
#: '''''email content'''''<br />
#: nickname:<br />
#: name:<br />
#: surname:<br />
#: seneca username: <br />
#: github id: <br />
#: team name:<br />
#: number of team members:<br />
# Create an account on this wiki <br />
#: send an email to [mailto:cdot-wiki-admin@senecac.on.ca?subject=Wiki+account+request cdot-wiki-admin@senecac.on.ca] and ask for an account, an email will be sent back to you with your userid and a temporary password<br />
# Learn how to do basic editing in a wiki <br />
# Having all the information above add your name to the [[Student List 20123 - OOP344|student list]]<br />
<br />
=== Resources 1 ===<br />
* [http://git-scm.com/book Pro-git book]<br />
* [http://www.sourcetreeapp.com Git GUI Client for Mac ] <br />
* [http://windows.github.com/ Github Client for Windows] <br />
* [https://help.github.com/articles/generating-ssh-keys Generating SSH keys for github]<br />
* [http://www.wikihow.com/Register-a-User-Name-on-Freenode How to register your IRC nickname on freenode]<br />
* [http://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients Compare IRC clients]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page How To edit Wiki pages]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet How To edit Wiki Cheatsheet]<br />
* Blogs<br />
** [http://wordpress.com/ Wordpress]<br />
** [http://www.blogger.com/ Blogger]<br />
** [https://www.tumblr.com/ Tumblr]<br />
* IRC Clients:<br />
** [http://www.silverex.org/download/ XChat 2 (Windows)]<br />
** [http://colloquy.info/downloads.html Colloquy Colloguy (Mac)] <br />
** [https://addons.mozilla.org/en-US/firefox/addon/chatzilla/ ChatZilla (Multi-platform)]<br />
** [http://clicksandwhistles.com/download.php Clicks & Whistles (Windows)]<br />
* How to Install <br />
** [http://wiki.tryphon.eu/how_to_install_xchat XChat]<br />
<br />
== Week 2 - Sep 9 ==<br />
=== This Week 2 ===<br />
* Object Orientation Review<br />
*: Encapsulation, Inheritance, Polymorphism<br />
* Languages<br />
*: Platforms (Operating System + compiler)<br />
*: Multi-file compilation process basics <br />
*::compiler, linker<br />
<br />
=== To Do 2 ===<br />
# Complete the to do list of last week<br />
# Send an email to [mailto:fardad.soleimanloo@senecacollege.ca?subject=344info me] and send your github and team information<br />
#: subject of the email should be '''''344info'''''<br />
#: '''''email content'''''<br />
#: nickname:<br />
#: name:<br />
#: surname:<br />
#: seneca username: <br />
#: github id: <br />
#: team name:<br />
#: number of team members:<br />
<br />
=== Resources 2 ===<br />
* Sep 10th Col-notes: [http://tinyurl.com/oop3441 note1]<br />
* If anybody didn't notice GitBook has translations. Here is Russian -> [http://git-scm.com/book/ru Русский GitBook]<br />
== Week 3 - Sep 16 ==<br />
=== This Week 3 ===<br />
* Pre-Processor Directives (Compiler continued) <br />
* Macros <br />
*: #define, #undef <br />
*: multi-line macros <br />
* Conditional Compilation <br />
*: #ifdef, #ifndef, #if, #elif, #else, #endif, #undef <br />
* Header file safeguards <br />
*: non-standard: #pragma once, <br />
* Operators<br />
* Data types<br />
*: Integer, floating point, pointer<br />
*: signed, unsigned<br />
* pointers<br />
* Storage Class Specifiers <br />
*: auto, register, volatile, const<br />
<br />
=== To Do 3 ===<br />
* Complete [[Teams' List 20123 - OOP344]] page, (adding your team name and their members information)<br />
*: ''if you are not member of a team, add your name under "[[Teams'_List 20123 - OOP344#Not in a team|Not in a team]]" and I will assign you to a team.''<br />
* Study chapter two of [http://git-scm.com/book Pro-Git Book]<br />
* Make sure your github account contains your '''''REAL FULL NAME'''''<br />
<br />
=== Resources 3 ===<br />
* [https://scs.senecac.on.ca/~oop344/pages/content/macro.html Macros]<br />
* [https://scs.senecac.on.ca/~oop344/pages/content/condi.html Conditional Inclusion]<br />
* [https://scs.senecac.on.ca/~oop344/pages/content/scala.html Primitive Types]<br />
<br />
== Week 4 - Sep 23 ==<br />
=== This Week 4 ===<br />
* Data types (continued) *<br />
*: sizeof *<br />
*: void, enum<br />
* pointers (continued)*<br />
*: pointer arithmetic * <br />
*: function pointers<br />
* Storage Class Specifiers <br />
*: const <br />
* Statics *<br />
* extern *<br />
* typedef <br />
* Compound Types<br />
*: Arrays * , Structures , Unions <br />
* Inheritance<br />
<br />
=== To Do 4 ===<br />
=== Resources 4 ===<br />
*[https://scs.senecac.on.ca/~oop344/pages/content/aggre.html Compound Types]<br />
*[http://etherpad.proximity.on.ca:9001/p/oop3444-sep24a Etherpad Notes(SEP 24)]<br />
*[http://etherpad.proximity.on.ca:9001/p/oop3444-sep28a Etherpad Notes(SEP 28)]<br />
<br />
== Week 5 - Sep 30 ==<br />
=== This Week 5 ===<br />
* Operator overload review (B)<br />
* friends review (B)<br />
* recursion (B)<br />
* Virtual, Pure-Virtual, Abstract Classes (B)<br />
* References<br />
* command line arguments<br />
* variable argument list <br />
* The project (introduction, main design and idea) (B)<br />
<br />
=== To Do 5 ===<br />
=== Resources 5 ===<br />
*[https://cs.senecac.on.ca/~btp300/pages/content/minhe.html#vir Virtual Inheritance]<br />
*[http://etherpad.proximity.on.ca:9001/p/oop3445_oct1a Ethernotes OCT 1]<br />
*[http://etherpad.proximity.on.ca:9001/p/oop3445_oct8a Ethernotes OCT 8]<br />
<br />
== Week 6 - Oct 7 ==<br />
=== This Week 6 ===<br />
* [[Project 20123 - OOP344|The project ]]<br />
<br />
=== To Do 6 ===<br />
* I (Fardad) sent an email with following subject '''''oop344 - Testing Group email to all oop344 students'''''<br />
*: Make sure you received this email, if you did not, please check your spam filter and make sure it is not filtered. <br />
*: If you have not received this email, please let me know as soon as possible so I update my mailing list.<br />
=== Resources 6 ===<br />
[[Project 20123 - OOP344|The project]]<br />
<br />
== Week 7 - Oct 14 ==<br />
=== This Week 7 ===<br />
* [[Project 20123 - OOP344|The Project (Continued)]]<br />
* Lists<br />
*: Arrays<br />
*: Linked Lists<br />
<br />
=== To Do 7 ===<br />
* Double check and correct/update your information on Teams page<br />
*: due date '''''NOW'''''<br />
* Have your team page ready by using [[Team page template - oop344 20123|the team page template]]<br />
*: If you already created your team page, modify it so its format matches [[Team page template - oop344 20123|the team page template]]. <br />
*: If you have not yet created your team page, create it by '''''COPYING''''' the content of [[Team page template - oop344 20123|the team page template]] into a newly created page according to the regulations stated on [[Teams' List 20123 - OOP344 | Teams]] page.<br />
*: Due date: '''''NOW'''''<br />
* pull the notes from github and run and walkthrough '''Test1Frame.cpp''' with CFrame class to understand how it works and post your questions and answer in blogs.<br />
* When posted, pickup, assign and start working on issues....<br />
<br />
=== Resources 7 ===<br />
* [[GIT for OOP344 Projects]]<br />
* [https://cs.senecac.on.ca/~btp300/pages/content/aggre.html Arrays]<br />
* [https://cs.senecac.on.ca/~btp300/pages/content/linkl.html Lists]<br />
* [http://etherpad.proximity.on.ca:9001/p/oop3447_oct15a ETHERNOTES OCT 10]<br />
<br />
== Week 8 - Oct 21 (Study Week)==<br />
=== This Week 8 (STUDY BREAK) ===<br />
* [http://fsoss.senecac.on.ca/2012/ FSOSS]<br />
<br />
=== To Do 8 ===<br />
<br />
=== Resources 8 ===<br />
<br />
== Week 9 - Oct 28 ==<br />
=== This Week 9 ===<br />
* Monday, Midterm TEST<br />
* Working with Git and github<br />
* Linked lists (Queue)<br />
<br />
=== To Do 9 ===<br />
=== Resources 9 ===<br />
* [http://etherpad.proximity.on.ca:9001/p/oop3449_nov2a Etherpad Notes Nov 2/12]<br />
* Lecture video for Git: http://www.youtube.com/watch?v=JXusZR41Je0<br />
=== Challenge! ===<br />
Add the following methods to queue:<br />
* unsigned int size( );<br />
* int operator[](unsigned int index);<br />
: Note* Did you mean int&?<br />
==== Challenge Answers ====<br />
* Yun Yang's version is [http://yun811.blogspot.ca/ here]!http://yun811.blogspot.ca/<br />
* Amir Mobasseri's version can be find [http://ammobasseri.wordpress.com/2012/11/01/c-queue/ http://ammobasseri.wordpress.com/2012/11/01/c-queue/ here!]<br />
* Revised version of Amir's code [http://mmwang2.blogspot.ca/2012/11/updated-version-of-amir-and-saeids-code.html Michael's blog]<br />
: - Also I've noticed that Fardad did not write the return variable as a reference, which made it impossible to edit, as done in line 13 of queuetester.cpp, that is updated that as well.<br />
* Michael Wang's version of the functions [http://mmwang2.blogspot.ca/2012/11/oop344-queue-class-functions.html Michael's blog]<br />
* Prasanth's Version - [http://wereallforked.tumblr.com/post/34878497104/queue-challenge Blog Entry]<br />
* Peter's Version - [http://peter.ug http://peter.ug/queue-cpp-operator-overload/]<br />
* Stanislav's Version - [http://stanislavatseneca.blogspot.ca/ here] http://stanislavatseneca.blogspot.ca/<br />
: - I decided to go a bit further and I did my operator[] method able to add new Nodes to the end of the Queue if we have index > size, comments are greatly appreciated.<br />
<br />
== Week 10 - Nov 4 ==<br />
=== This Week 10===<br />
=== To Do 10===<br />
=== Resources 10===<br />
<br />
<br />
== Week 11 - Nov 11 ==<br />
=== This Week 11===<br />
== To Do 11==<br />
=== Resources 11===<br />
<br />
== Week 12 - Nov 18 ==<br />
=== This Week 12===<br />
=== To Do 12===<br />
=== Resources 12===<br />
<br />
<br />
== Week 13 - Nov 25 ==<br />
=== This Week 13===<br />
=== To Do 13===<br />
=== Resources 13===<br />
<br />
<br />
== Week 14 - Dec 2 ==<br />
=== This Week 14===<br />
=== To Do 14===<br />
=== Resources 14===<br />
<br />
== Week 15 - Dec 9 (Exam Week) ==<br />
=== This Week 15===<br />
=== To Do 15===<br />
=== Resources 15===</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=Project_R0.1_20123-_OOP344&diff=89502Project R0.1 20123- OOP3442012-10-10T20:00:34Z<p>Stanislav Yeshchenko: /* Blog Posts */</p>
<hr />
<div>{{OOP344 Index | 20123}}<br />
=Release=<br />
* 0.1<br />
=Notes=<br />
*Using Linux: please use putty only and set the keyboard to <br />
*: Backspace = Ctrl-?<br />
*: Home and End = Standard<br />
*: Function keys and keypad = Linux<br />
*: And then:<br />
*: Connection > Data > Terminal-type string = linux (This step must be done when first connecting through putty!)<br />
* [https://cs.senecac.on.ca/~chris.szalwinski/resources/borland.html Guide for Using Borland 5.5]<br />
*: Note that to change the cmd.exe window size, right click on the top bar -> Properties -> Layout Tab<br />
<br />
=Due Dates=<br />
*Sun Oct 14th, 23:59<br />
<br />
=Help=<br />
==Help Needed==<br />
==Blog Posts==<br />
*Ok, I did something with the display function. It's not 1 line but it's different from the code that's online and it has less loops. I sincerely hope it's not what was shown in class today, though, lol. I could be just writing remembered code which would be funny. Sad. But funny. Blog: [http://ashtramwasser.blogspot.ca/ ashtramwasser1]<br />
<br />
* Questions about terminating the process of editing by pressing '''ENTER''', '''TAB''', '''ESCAPE''', '''UP''', '''DOWN'''.... and what your program doing after pressing '''ESCAPE''' were not clear for me, so I decided to ask Fardad, here the answers.Blog: [http://stanislavatseneca.blogspot.ca/ stanislavatseneca]<br />
<br />
=Learning Outcome=<br />
Upon successful completion of this first assignment, you will have demonstrated the abilities to design and code<br />
* functions that use the basic console input and output library<br />
* a line editor<br />
* use of extern<br />
* operator overload<br />
* use of namespaces<br />
=Console Line Editing Facility =<br />
As your first assignment, you are to upgrade the basic console input output class (BConsole) to include line-display and line-editing facilities and use of "<<" and ">>" operators for character I/O and string output. <br />
<br />
==Specifications==<br />
<br />
Your submission consists of a class called Console that is to be inherited from BConsole in a namespace called '''cio'''. Your application module is fully portable across Borland C++5.5 on windows, Linux GNU C++, Viusual C++ on Windows and Mac C++ platforms which accepts console input, and provides console output through the set of facilities available in your Console module. <br />
<br />
The name of the library object to be created is console. The header file for the original version of this module is console.h and the implementation file for the original version is console.cpp. All of the identifiers for the library module and all upgrades to the module are defined in the cio namespace (short for console input output).<br />
<br />
Your upgrade in this assignment consists of creating a class called Console, inherited from BConsole, implemented in two files; console.h and console.cpp:<br />
<br />
In addition to all public methods of BConsole, Console must have the following two public methods and overload "<<" and ">>" operators.<br />
===external links===<br />
* Create a global variable (unsigned int) called CIO_TABSIZE in cio namespace and create an external linkage to it in console.h<br />
* instantiate Console, in an object called "console" in cio namespace and create an external linkage to in console.h<br />
<br />
===display() method===<br />
void display(const char* str, int row, int col, int fieldLen=0); <br />
<br />
This method outputs the C-style, null-terminated string pointed to by str starting at row row and column col of the screen in a field of fieldLen characters. Row value 0 refers to the top row, and column value 0 refers to the left-most column. If the string is longer than fieldLen, your function displays the first fieldLen characters. If the string is shorter than fieldLen, your function displays the portion of the entire string that fits on the screen, followed by enough trailing spaces to fill out the field completely. If fieldLen is 0, your function displays the portion of the entire string with no trailing spaces. Your function positions the cursor after the last character displayed. Your function does not flush the output buffer. The results are undefined if the starting position of the string is not within the dimensions of the screen.<br />
<br />
'''Bonus: display() in One Line'''<br />
* [http://sobrisk.tumblr.com/post/33006756229/display-part-2 Matt's Blog : Display (Part 2)]<br />
* [http://chgw.wordpress.com/2012/10/07/display/ Guiwen's Blog : Update Matt's display()]<br />
<br />
===edit() method===<br />
[http://www.youtube.com/watch?v=pVGskz1rRtQ console.edit(.....) startup video part1] [http://matrix.senecac.on.ca/~fardad.soleimanloo/video/demo1.wmv download demo1.wmv]<br /><br />
[http://www.youtube.com/watch?v=7nZO1jCSYCs console.edit(.....) startup video part2] [http://matrix.senecac.on.ca/~fardad.soleimanloo/video/demo2.wmv download demo2.wmv]<br /><br />
[[Console startup oop344 - 20123|code displayed in the video]]<br />
<br />
<big><pre><br />
int edit(char *str, int row, int col, int fieldLength, int maxStrLength, <br />
bool* insertMode, int* strOffset, int* curPosition, <br />
bool IsTextEditor = false, bool ReadOnly = false);<br />
</pre></big><br />
<br />
This method is to be written in two steps. <br />
====Step one==== <br />
''Ignore the last two arguments of the the edit method '''(IsTextEditor and ReadOnly)''' and write the method as follows:''<br />
<br />
This method edits the C-style, null-terminated string pointed by str. The parameter row holds the row (0 is the top row) of the string on the screen. The parameter col holds the starting column (0 is the left-most column) on the screen. The parameter fieldLength holds the length of the editable field. The string may be larger than the field itself, in which case part of the string is hidden from view. The parameter maxStrLength holds the maximum length of the string, excluding the null byte. The parameter insertMode points to a bool variable that holds the current insert mode of the string. The parameter insertMode receives the address of a variable that stores the current editing mode - insert or overwrite. The parameter strOffset points to an int variable that holds the initial offset of the string within the field; that is, the index of the character in the string that initially occupies the first character position in the field. The parameter curPosition points to an int variable that holds the initial cursor position within the field; that is, the index of the character in the field at which the cursor is initially placed. <br />
<br />
If the initial offset is beyond the end of the string, your function resets the offset to the length of the string; that is, to the index of the character immediately beyond the end of the string. If no offset variable is pointed to; that is, if the address of the variable is NULL, your function sets the offset to the index of the first character in the string; that is, to 0.<br />
<br />
If the initial cursor position is beyond the end of the field, your function resets the position to the last character in the field. If the position is beyond the end of the string, your function resets the position to that immediately beyond the end of the string. If no cursor position variable is pointed to; that is, if the address of the variable is NULL, your function sets the cursor position to the first position in the field; that is, to position 0.<br />
<br />
Your function does not allow the cursor to move before the start of the field or past the end of the field. If the field ends at the right edge of the screen, your function does not allow the cursor to the right of that edge.<br />
<br />
Your function uses the symbolic names for non-ASCII and special keys defined in the keys.h header file. These names are the same symbolic names as those used in the original library module.<br />
<br />
The user terminates editing by pressing ENTER, TAB, ESCAPE, UP, DOWN, PGUP, PGDN or any of the function keys F(1) through F(12) inclusive. If the user presses ESCAPE, your function aborts editing, replaces the contents of the string with the original contents upon entry into your function, and leaves the offset and cursor position values unaltered. In order to be able to revert to the original string, your function needs to allocate memory at run time. <br />
<br />
At termination, your function passes back through the same int variables the current values of the offset and the cursor position, unless no variables were pointed to upon entry into your function; that is, unless the value of either address was NULL.<br />
<br />
Your function returns an int identifying the key that the user pressed to exit the function. <br />
<br />
Your function takes no action (other than perhaps beeping) if the user tries to enter too many characters (if, for example, the string is full in insert mode, or the cursor is positioned after the last character of a full string in overstrike mode).<br />
<br />
Your function handles the non-ASCII keys as follows<br />
<br />
*LEFT - moves the cursor left one character, if possible, changing the offset, if necessary.<br />
*RIGHT - moves the cursor right one character, if possible, changing the offset, if necessary.<br />
*HOME - moves the cursor to the beginning of the string, changing the offset, if necessary.<br />
*END - moves the cursor to the position to the right of the last character in the string, changing the offset, if necessary. If the last character is at the edge of the screen, moves the cursor to that character.<br />
*INSERT - toggles Insert/Overstrike mode. In Insert mode, your function inserts a printable character into the string at the current cursor position, moves the remainder of the string to the right to make room for the inserted character, and positions the cursor just to the right of the inserted character. The printable characters are the characters from space (' ') to tilde ('~') inclusive in the ASCII table. In Overstrike mode, your function overwrites the character (if any) at the current cursor position with a printable character and advances the cursor just to the right of the new character. If the cursor is past the end of the string, your function appends a printable character to the string as long as the string isn't full, regardless of the mode. <br />
*DEL - discards the character at the current cursor position and moves all characters to the right of the cursor position one position to the left.<br />
*BACKSPACE - discards the character to the left of the current cursor position, if possible, moves the characters at and to the right of the cursor position one position to the left, if possible, and positions the cursor one character to the left, if possible.<br />
<br />
edit() always displays blanks in any part of the field that is not occupied by the string. UNDER NO CIRCUMSTANCES DOES YOUR FUNCTION CHANGE ANY POSITION ON THE SCREEN OUTSIDE THE FIELD. For example, your function does not display status information (such as "INS" or "OVR") elsewhere on the screen, since such displays limit the programmer's ability to design their own screen layouts.<br />
<br />
You may assume that it is the calling program's responsibility to ensure that the string array is large enough to handle maxStrLength characters and that the starting screen position provides enough room (on the screen) for the field, etc.<br />
<br />
{| class="wikitable" border="0"<br />
|+ <br />
! Edit Method!! Interface<br />
|-<br />
| [[File:editString.png|500px|thumb|center|Edit Method Function Diagram]] || <br />
[[File:interface.png|400px|thumb|center|Interface Diagram]]<br />
|}<br />
<br />
====Step two====<br />
''First run your program with cio_test.cpp and make sure it passes all the tests up to and including "4.16". If all tests are passed continue with step two:<br />
<br />
=====IsTextEditor=====<br />
If '''IsTextEditor''' is true and the value of '''*strOffset''' is changed at any time, then terminate the edit function immediately and return '''0''';<br />
======TAB key======<br />
If '''IsTextEditor''' is true and TAB key is hit, then instead of terminating the function, ''CIO_TABSIZE'' spaces are inserted into ''str''.<br />
'''''CIO_TABSIZE is to be global variable (unsigned integer initially set to be 4) to hold the number of spaces to be inserted when tab is hit.'''''<br />
=====ReadOnly=====<br />
If '''ReadOnly''' is true, then edit function works exactly like before, except that any modification to the data (the content of the '''str''' string) will be ignored.<br />
<br />
===Overload "<<" and ">>" operators===<br />
==== operator>> ====<br />
Console& operator>>(Console& cn, int& ch);<br />
Get a key from keyboard using ''cn'' and store it in ''ch'';<br />
==== operator<< ====<br />
Console& operator<<(Console& cn, char ch);<br />
Print the character ''ch'' on the screen, where the cursor is located, using cn and return the cn reference;<br />
Console& operator<<(Console& cn, const char* str);<br />
print the string '''str''' on the screen where the cursor is using '''cn''' and return the cn reference<br />
<br />
<br />
=Submission=<br />
Compile and test your upgrade with your test main in the following three command-line environments: <br />
<br />
Local PC: Borland 5.5 <br />
bcc32 bconsole.cpp console.cpp cio_test.cpp<br />
<br />
Local PC: Microsoft .net<br />
<br />
Local Mac: (use -lcurses to link curses library)<br />
c++ bconsole.cpp console.cpp cio_test.cpp -lcurses<br />
<br />
matrix: GNU (use -lncurses to link ncurses library)<br />
g++ bconsole.cpp console.cpp cio_test.cpp -lncurses<br />
<br />
For submission purposes, your solution must compile, link, and run without errors in each environment. <br />
<br />
Method of submission will be announced later.</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=Project_R0.1_20123-_OOP344&diff=89501Project R0.1 20123- OOP3442012-10-10T19:55:12Z<p>Stanislav Yeshchenko: /* Blog Posts */</p>
<hr />
<div>{{OOP344 Index | 20123}}<br />
=Release=<br />
* 0.1<br />
=Notes=<br />
*Using Linux: please use putty only and set the keyboard to <br />
*: Backspace = Ctrl-?<br />
*: Home and End = Standard<br />
*: Function keys and keypad = Linux<br />
*: And then:<br />
*: Connection > Data > Terminal-type string = linux (This step must be done when first connecting through putty!)<br />
* [https://cs.senecac.on.ca/~chris.szalwinski/resources/borland.html Guide for Using Borland 5.5]<br />
*: Note that to change the cmd.exe window size, right click on the top bar -> Properties -> Layout Tab<br />
<br />
=Due Dates=<br />
*Sun Oct 14th, 23:59<br />
<br />
=Help=<br />
==Help Needed==<br />
==Blog Posts==<br />
*Ok, I did something with the display function. It's not 1 line but it's different from the code that's online and it has less loops. I sincerely hope it's not what was shown in class today, though, lol. I could be just writing remembered code which would be funny. Sad. But funny. Blog: [http://ashtramwasser.blogspot.ca/ ashtramwasser1]<br />
<br />
* Questions about terminating the process of editing be pressing '''ENTER''', '''TAB''', '''ESCAPE''', '''UP''', '''DOWN'''.... and what your program doing after pressing '''ESCAPE''' were not clear for me, so I decided to ask Fardad, here the answers.Blog: [http://stanislavatseneca.blogspot.ca/ stanislavatseneca]<br />
<br />
=Learning Outcome=<br />
Upon successful completion of this first assignment, you will have demonstrated the abilities to design and code<br />
* functions that use the basic console input and output library<br />
* a line editor<br />
* use of extern<br />
* operator overload<br />
* use of namespaces<br />
=Console Line Editing Facility =<br />
As your first assignment, you are to upgrade the basic console input output class (BConsole) to include line-display and line-editing facilities and use of "<<" and ">>" operators for character I/O and string output. <br />
<br />
==Specifications==<br />
<br />
Your submission consists of a class called Console that is to be inherited from BConsole in a namespace called '''cio'''. Your application module is fully portable across Borland C++5.5 on windows, Linux GNU C++, Viusual C++ on Windows and Mac C++ platforms which accepts console input, and provides console output through the set of facilities available in your Console module. <br />
<br />
The name of the library object to be created is console. The header file for the original version of this module is console.h and the implementation file for the original version is console.cpp. All of the identifiers for the library module and all upgrades to the module are defined in the cio namespace (short for console input output).<br />
<br />
Your upgrade in this assignment consists of creating a class called Console, inherited from BConsole, implemented in two files; console.h and console.cpp:<br />
<br />
In addition to all public methods of BConsole, Console must have the following two public methods and overload "<<" and ">>" operators.<br />
===external links===<br />
* Create a global variable (unsigned int) called CIO_TABSIZE in cio namespace and create an external linkage to it in console.h<br />
* instantiate Console, in an object called "console" in cio namespace and create an external linkage to in console.h<br />
<br />
===display() method===<br />
void display(const char* str, int row, int col, int fieldLen=0); <br />
<br />
This method outputs the C-style, null-terminated string pointed to by str starting at row row and column col of the screen in a field of fieldLen characters. Row value 0 refers to the top row, and column value 0 refers to the left-most column. If the string is longer than fieldLen, your function displays the first fieldLen characters. If the string is shorter than fieldLen, your function displays the portion of the entire string that fits on the screen, followed by enough trailing spaces to fill out the field completely. If fieldLen is 0, your function displays the portion of the entire string with no trailing spaces. Your function positions the cursor after the last character displayed. Your function does not flush the output buffer. The results are undefined if the starting position of the string is not within the dimensions of the screen.<br />
<br />
'''Bonus: display() in One Line'''<br />
* [http://sobrisk.tumblr.com/post/33006756229/display-part-2 Matt's Blog : Display (Part 2)]<br />
* [http://chgw.wordpress.com/2012/10/07/display/ Guiwen's Blog : Update Matt's display()]<br />
<br />
===edit() method===<br />
[http://www.youtube.com/watch?v=pVGskz1rRtQ console.edit(.....) startup video part1] [http://matrix.senecac.on.ca/~fardad.soleimanloo/video/demo1.wmv download demo1.wmv]<br /><br />
[http://www.youtube.com/watch?v=7nZO1jCSYCs console.edit(.....) startup video part2] [http://matrix.senecac.on.ca/~fardad.soleimanloo/video/demo2.wmv download demo2.wmv]<br /><br />
[[Console startup oop344 - 20123|code displayed in the video]]<br />
<br />
<big><pre><br />
int edit(char *str, int row, int col, int fieldLength, int maxStrLength, <br />
bool* insertMode, int* strOffset, int* curPosition, <br />
bool IsTextEditor = false, bool ReadOnly = false);<br />
</pre></big><br />
<br />
This method is to be written in two steps. <br />
====Step one==== <br />
''Ignore the last two arguments of the the edit method '''(IsTextEditor and ReadOnly)''' and write the method as follows:''<br />
<br />
This method edits the C-style, null-terminated string pointed by str. The parameter row holds the row (0 is the top row) of the string on the screen. The parameter col holds the starting column (0 is the left-most column) on the screen. The parameter fieldLength holds the length of the editable field. The string may be larger than the field itself, in which case part of the string is hidden from view. The parameter maxStrLength holds the maximum length of the string, excluding the null byte. The parameter insertMode points to a bool variable that holds the current insert mode of the string. The parameter insertMode receives the address of a variable that stores the current editing mode - insert or overwrite. The parameter strOffset points to an int variable that holds the initial offset of the string within the field; that is, the index of the character in the string that initially occupies the first character position in the field. The parameter curPosition points to an int variable that holds the initial cursor position within the field; that is, the index of the character in the field at which the cursor is initially placed. <br />
<br />
If the initial offset is beyond the end of the string, your function resets the offset to the length of the string; that is, to the index of the character immediately beyond the end of the string. If no offset variable is pointed to; that is, if the address of the variable is NULL, your function sets the offset to the index of the first character in the string; that is, to 0.<br />
<br />
If the initial cursor position is beyond the end of the field, your function resets the position to the last character in the field. If the position is beyond the end of the string, your function resets the position to that immediately beyond the end of the string. If no cursor position variable is pointed to; that is, if the address of the variable is NULL, your function sets the cursor position to the first position in the field; that is, to position 0.<br />
<br />
Your function does not allow the cursor to move before the start of the field or past the end of the field. If the field ends at the right edge of the screen, your function does not allow the cursor to the right of that edge.<br />
<br />
Your function uses the symbolic names for non-ASCII and special keys defined in the keys.h header file. These names are the same symbolic names as those used in the original library module.<br />
<br />
The user terminates editing by pressing ENTER, TAB, ESCAPE, UP, DOWN, PGUP, PGDN or any of the function keys F(1) through F(12) inclusive. If the user presses ESCAPE, your function aborts editing, replaces the contents of the string with the original contents upon entry into your function, and leaves the offset and cursor position values unaltered. In order to be able to revert to the original string, your function needs to allocate memory at run time. <br />
<br />
At termination, your function passes back through the same int variables the current values of the offset and the cursor position, unless no variables were pointed to upon entry into your function; that is, unless the value of either address was NULL.<br />
<br />
Your function returns an int identifying the key that the user pressed to exit the function. <br />
<br />
Your function takes no action (other than perhaps beeping) if the user tries to enter too many characters (if, for example, the string is full in insert mode, or the cursor is positioned after the last character of a full string in overstrike mode).<br />
<br />
Your function handles the non-ASCII keys as follows<br />
<br />
*LEFT - moves the cursor left one character, if possible, changing the offset, if necessary.<br />
*RIGHT - moves the cursor right one character, if possible, changing the offset, if necessary.<br />
*HOME - moves the cursor to the beginning of the string, changing the offset, if necessary.<br />
*END - moves the cursor to the position to the right of the last character in the string, changing the offset, if necessary. If the last character is at the edge of the screen, moves the cursor to that character.<br />
*INSERT - toggles Insert/Overstrike mode. In Insert mode, your function inserts a printable character into the string at the current cursor position, moves the remainder of the string to the right to make room for the inserted character, and positions the cursor just to the right of the inserted character. The printable characters are the characters from space (' ') to tilde ('~') inclusive in the ASCII table. In Overstrike mode, your function overwrites the character (if any) at the current cursor position with a printable character and advances the cursor just to the right of the new character. If the cursor is past the end of the string, your function appends a printable character to the string as long as the string isn't full, regardless of the mode. <br />
*DEL - discards the character at the current cursor position and moves all characters to the right of the cursor position one position to the left.<br />
*BACKSPACE - discards the character to the left of the current cursor position, if possible, moves the characters at and to the right of the cursor position one position to the left, if possible, and positions the cursor one character to the left, if possible.<br />
<br />
edit() always displays blanks in any part of the field that is not occupied by the string. UNDER NO CIRCUMSTANCES DOES YOUR FUNCTION CHANGE ANY POSITION ON THE SCREEN OUTSIDE THE FIELD. For example, your function does not display status information (such as "INS" or "OVR") elsewhere on the screen, since such displays limit the programmer's ability to design their own screen layouts.<br />
<br />
You may assume that it is the calling program's responsibility to ensure that the string array is large enough to handle maxStrLength characters and that the starting screen position provides enough room (on the screen) for the field, etc.<br />
<br />
{| class="wikitable" border="0"<br />
|+ <br />
! Edit Method!! Interface<br />
|-<br />
| [[File:editString.png|500px|thumb|center|Edit Method Function Diagram]] || <br />
[[File:interface.png|400px|thumb|center|Interface Diagram]]<br />
|}<br />
<br />
====Step two====<br />
''First run your program with cio_test.cpp and make sure it passes all the tests up to and including "4.16". If all tests are passed continue with step two:<br />
<br />
=====IsTextEditor=====<br />
If '''IsTextEditor''' is true and the value of '''*strOffset''' is changed at any time, then terminate the edit function immediately and return '''0''';<br />
======TAB key======<br />
If '''IsTextEditor''' is true and TAB key is hit, then instead of terminating the function, ''CIO_TABSIZE'' spaces are inserted into ''str''.<br />
'''''CIO_TABSIZE is to be global variable (unsigned integer initially set to be 4) to hold the number of spaces to be inserted when tab is hit.'''''<br />
=====ReadOnly=====<br />
If '''ReadOnly''' is true, then edit function works exactly like before, except that any modification to the data (the content of the '''str''' string) will be ignored.<br />
<br />
===Overload "<<" and ">>" operators===<br />
==== operator>> ====<br />
Console& operator>>(Console& cn, int& ch);<br />
Get a key from keyboard using ''cn'' and store it in ''ch'';<br />
==== operator<< ====<br />
Console& operator<<(Console& cn, char ch);<br />
Print the character ''ch'' on the screen, where the cursor is located, using cn and return the cn reference;<br />
Console& operator<<(Console& cn, const char* str);<br />
print the string '''str''' on the screen where the cursor is using '''cn''' and return the cn reference<br />
<br />
<br />
=Submission=<br />
Compile and test your upgrade with your test main in the following three command-line environments: <br />
<br />
Local PC: Borland 5.5 <br />
bcc32 bconsole.cpp console.cpp cio_test.cpp<br />
<br />
Local PC: Microsoft .net<br />
<br />
Local Mac: (use -lcurses to link curses library)<br />
c++ bconsole.cpp console.cpp cio_test.cpp -lcurses<br />
<br />
matrix: GNU (use -lncurses to link ncurses library)<br />
g++ bconsole.cpp console.cpp cio_test.cpp -lncurses<br />
<br />
For submission purposes, your solution must compile, link, and run without errors in each environment. <br />
<br />
Method of submission will be announced later.</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=Project_R0.1_20123-_OOP344&diff=89500Project R0.1 20123- OOP3442012-10-10T19:53:06Z<p>Stanislav Yeshchenko: /* Blog Posts */</p>
<hr />
<div>{{OOP344 Index | 20123}}<br />
=Release=<br />
* 0.1<br />
=Notes=<br />
*Using Linux: please use putty only and set the keyboard to <br />
*: Backspace = Ctrl-?<br />
*: Home and End = Standard<br />
*: Function keys and keypad = Linux<br />
*: And then:<br />
*: Connection > Data > Terminal-type string = linux (This step must be done when first connecting through putty!)<br />
* [https://cs.senecac.on.ca/~chris.szalwinski/resources/borland.html Guide for Using Borland 5.5]<br />
*: Note that to change the cmd.exe window size, right click on the top bar -> Properties -> Layout Tab<br />
<br />
=Due Dates=<br />
*Sun Oct 14th, 23:59<br />
<br />
=Help=<br />
==Help Needed==<br />
==Blog Posts==<br />
*Ok, I did something with the display function. It's not 1 line but it's different from the code that's online and it has less loops. I sincerely hope it's not what was shown in class today, though, lol. I could be just writing remembered code which would be funny. Sad. But funny. Blog: [http://ashtramwasser.blogspot.ca/ ashtramwasser1]<br />
<br />
* Questions about terminating the process of editing be pressing '''<span dir="ltr">'''ENTER, TAB, ESCAPE, UP, DOWN'''</span>'''.... and what your program doing after pressing '''ESCAPE''' were not clear for me, so I decided to ask Fardad, here the answers<br />
Blog: [http://stanislavatseneca.blogspot.ca/ stanislavatseneca]<br />
<br />
=Learning Outcome=<br />
Upon successful completion of this first assignment, you will have demonstrated the abilities to design and code<br />
* functions that use the basic console input and output library<br />
* a line editor<br />
* use of extern<br />
* operator overload<br />
* use of namespaces<br />
=Console Line Editing Facility =<br />
As your first assignment, you are to upgrade the basic console input output class (BConsole) to include line-display and line-editing facilities and use of "<<" and ">>" operators for character I/O and string output. <br />
<br />
==Specifications==<br />
<br />
Your submission consists of a class called Console that is to be inherited from BConsole in a namespace called '''cio'''. Your application module is fully portable across Borland C++5.5 on windows, Linux GNU C++, Viusual C++ on Windows and Mac C++ platforms which accepts console input, and provides console output through the set of facilities available in your Console module. <br />
<br />
The name of the library object to be created is console. The header file for the original version of this module is console.h and the implementation file for the original version is console.cpp. All of the identifiers for the library module and all upgrades to the module are defined in the cio namespace (short for console input output).<br />
<br />
Your upgrade in this assignment consists of creating a class called Console, inherited from BConsole, implemented in two files; console.h and console.cpp:<br />
<br />
In addition to all public methods of BConsole, Console must have the following two public methods and overload "<<" and ">>" operators.<br />
===external links===<br />
* Create a global variable (unsigned int) called CIO_TABSIZE in cio namespace and create an external linkage to it in console.h<br />
* instantiate Console, in an object called "console" in cio namespace and create an external linkage to in console.h<br />
<br />
===display() method===<br />
void display(const char* str, int row, int col, int fieldLen=0); <br />
<br />
This method outputs the C-style, null-terminated string pointed to by str starting at row row and column col of the screen in a field of fieldLen characters. Row value 0 refers to the top row, and column value 0 refers to the left-most column. If the string is longer than fieldLen, your function displays the first fieldLen characters. If the string is shorter than fieldLen, your function displays the portion of the entire string that fits on the screen, followed by enough trailing spaces to fill out the field completely. If fieldLen is 0, your function displays the portion of the entire string with no trailing spaces. Your function positions the cursor after the last character displayed. Your function does not flush the output buffer. The results are undefined if the starting position of the string is not within the dimensions of the screen.<br />
<br />
'''Bonus: display() in One Line'''<br />
* [http://sobrisk.tumblr.com/post/33006756229/display-part-2 Matt's Blog : Display (Part 2)]<br />
* [http://chgw.wordpress.com/2012/10/07/display/ Guiwen's Blog : Update Matt's display()]<br />
<br />
===edit() method===<br />
[http://www.youtube.com/watch?v=pVGskz1rRtQ console.edit(.....) startup video part1] [http://matrix.senecac.on.ca/~fardad.soleimanloo/video/demo1.wmv download demo1.wmv]<br /><br />
[http://www.youtube.com/watch?v=7nZO1jCSYCs console.edit(.....) startup video part2] [http://matrix.senecac.on.ca/~fardad.soleimanloo/video/demo2.wmv download demo2.wmv]<br /><br />
[[Console startup oop344 - 20123|code displayed in the video]]<br />
<br />
<big><pre><br />
int edit(char *str, int row, int col, int fieldLength, int maxStrLength, <br />
bool* insertMode, int* strOffset, int* curPosition, <br />
bool IsTextEditor = false, bool ReadOnly = false);<br />
</pre></big><br />
<br />
This method is to be written in two steps. <br />
====Step one==== <br />
''Ignore the last two arguments of the the edit method '''(IsTextEditor and ReadOnly)''' and write the method as follows:''<br />
<br />
This method edits the C-style, null-terminated string pointed by str. The parameter row holds the row (0 is the top row) of the string on the screen. The parameter col holds the starting column (0 is the left-most column) on the screen. The parameter fieldLength holds the length of the editable field. The string may be larger than the field itself, in which case part of the string is hidden from view. The parameter maxStrLength holds the maximum length of the string, excluding the null byte. The parameter insertMode points to a bool variable that holds the current insert mode of the string. The parameter insertMode receives the address of a variable that stores the current editing mode - insert or overwrite. The parameter strOffset points to an int variable that holds the initial offset of the string within the field; that is, the index of the character in the string that initially occupies the first character position in the field. The parameter curPosition points to an int variable that holds the initial cursor position within the field; that is, the index of the character in the field at which the cursor is initially placed. <br />
<br />
If the initial offset is beyond the end of the string, your function resets the offset to the length of the string; that is, to the index of the character immediately beyond the end of the string. If no offset variable is pointed to; that is, if the address of the variable is NULL, your function sets the offset to the index of the first character in the string; that is, to 0.<br />
<br />
If the initial cursor position is beyond the end of the field, your function resets the position to the last character in the field. If the position is beyond the end of the string, your function resets the position to that immediately beyond the end of the string. If no cursor position variable is pointed to; that is, if the address of the variable is NULL, your function sets the cursor position to the first position in the field; that is, to position 0.<br />
<br />
Your function does not allow the cursor to move before the start of the field or past the end of the field. If the field ends at the right edge of the screen, your function does not allow the cursor to the right of that edge.<br />
<br />
Your function uses the symbolic names for non-ASCII and special keys defined in the keys.h header file. These names are the same symbolic names as those used in the original library module.<br />
<br />
The user terminates editing by pressing ENTER, TAB, ESCAPE, UP, DOWN, PGUP, PGDN or any of the function keys F(1) through F(12) inclusive. If the user presses ESCAPE, your function aborts editing, replaces the contents of the string with the original contents upon entry into your function, and leaves the offset and cursor position values unaltered. In order to be able to revert to the original string, your function needs to allocate memory at run time. <br />
<br />
At termination, your function passes back through the same int variables the current values of the offset and the cursor position, unless no variables were pointed to upon entry into your function; that is, unless the value of either address was NULL.<br />
<br />
Your function returns an int identifying the key that the user pressed to exit the function. <br />
<br />
Your function takes no action (other than perhaps beeping) if the user tries to enter too many characters (if, for example, the string is full in insert mode, or the cursor is positioned after the last character of a full string in overstrike mode).<br />
<br />
Your function handles the non-ASCII keys as follows<br />
<br />
*LEFT - moves the cursor left one character, if possible, changing the offset, if necessary.<br />
*RIGHT - moves the cursor right one character, if possible, changing the offset, if necessary.<br />
*HOME - moves the cursor to the beginning of the string, changing the offset, if necessary.<br />
*END - moves the cursor to the position to the right of the last character in the string, changing the offset, if necessary. If the last character is at the edge of the screen, moves the cursor to that character.<br />
*INSERT - toggles Insert/Overstrike mode. In Insert mode, your function inserts a printable character into the string at the current cursor position, moves the remainder of the string to the right to make room for the inserted character, and positions the cursor just to the right of the inserted character. The printable characters are the characters from space (' ') to tilde ('~') inclusive in the ASCII table. In Overstrike mode, your function overwrites the character (if any) at the current cursor position with a printable character and advances the cursor just to the right of the new character. If the cursor is past the end of the string, your function appends a printable character to the string as long as the string isn't full, regardless of the mode. <br />
*DEL - discards the character at the current cursor position and moves all characters to the right of the cursor position one position to the left.<br />
*BACKSPACE - discards the character to the left of the current cursor position, if possible, moves the characters at and to the right of the cursor position one position to the left, if possible, and positions the cursor one character to the left, if possible.<br />
<br />
edit() always displays blanks in any part of the field that is not occupied by the string. UNDER NO CIRCUMSTANCES DOES YOUR FUNCTION CHANGE ANY POSITION ON THE SCREEN OUTSIDE THE FIELD. For example, your function does not display status information (such as "INS" or "OVR") elsewhere on the screen, since such displays limit the programmer's ability to design their own screen layouts.<br />
<br />
You may assume that it is the calling program's responsibility to ensure that the string array is large enough to handle maxStrLength characters and that the starting screen position provides enough room (on the screen) for the field, etc.<br />
<br />
{| class="wikitable" border="0"<br />
|+ <br />
! Edit Method!! Interface<br />
|-<br />
| [[File:editString.png|500px|thumb|center|Edit Method Function Diagram]] || <br />
[[File:interface.png|400px|thumb|center|Interface Diagram]]<br />
|}<br />
<br />
====Step two====<br />
''First run your program with cio_test.cpp and make sure it passes all the tests up to and including "4.16". If all tests are passed continue with step two:<br />
<br />
=====IsTextEditor=====<br />
If '''IsTextEditor''' is true and the value of '''*strOffset''' is changed at any time, then terminate the edit function immediately and return '''0''';<br />
======TAB key======<br />
If '''IsTextEditor''' is true and TAB key is hit, then instead of terminating the function, ''CIO_TABSIZE'' spaces are inserted into ''str''.<br />
'''''CIO_TABSIZE is to be global variable (unsigned integer initially set to be 4) to hold the number of spaces to be inserted when tab is hit.'''''<br />
=====ReadOnly=====<br />
If '''ReadOnly''' is true, then edit function works exactly like before, except that any modification to the data (the content of the '''str''' string) will be ignored.<br />
<br />
===Overload "<<" and ">>" operators===<br />
==== operator>> ====<br />
Console& operator>>(Console& cn, int& ch);<br />
Get a key from keyboard using ''cn'' and store it in ''ch'';<br />
==== operator<< ====<br />
Console& operator<<(Console& cn, char ch);<br />
Print the character ''ch'' on the screen, where the cursor is located, using cn and return the cn reference;<br />
Console& operator<<(Console& cn, const char* str);<br />
print the string '''str''' on the screen where the cursor is using '''cn''' and return the cn reference<br />
<br />
<br />
=Submission=<br />
Compile and test your upgrade with your test main in the following three command-line environments: <br />
<br />
Local PC: Borland 5.5 <br />
bcc32 bconsole.cpp console.cpp cio_test.cpp<br />
<br />
Local PC: Microsoft .net<br />
<br />
Local Mac: (use -lcurses to link curses library)<br />
c++ bconsole.cpp console.cpp cio_test.cpp -lcurses<br />
<br />
matrix: GNU (use -lncurses to link ncurses library)<br />
g++ bconsole.cpp console.cpp cio_test.cpp -lncurses<br />
<br />
For submission purposes, your solution must compile, link, and run without errors in each environment. <br />
<br />
Method of submission will be announced later.</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=User:Stanislav_Yeshchenko&diff=87575User:Stanislav Yeshchenko2012-09-17T18:18:55Z<p>Stanislav Yeshchenko: Created page with '=='''Stanislav Yeshchenko'''== '''Name: Stanislav Yeshchenko'''<br /> '''Affiliation: Computer Programming and Analysis, Information & Communications Technology, Seneca Co…'</p>
<hr />
<div>=='''Stanislav Yeshchenko'''==<br />
<br />
'''Name: Stanislav Yeshchenko'''<br /><br />
'''Affiliation: Computer Programming and Analysis, Information & Communications Technology, Seneca College of Applied Arts and Technology'''<br /><br />
<br />
<br />
=='''Education'''==<br />
'''<br />
<br />
Diploma of a Technician-Electrician <br />
<br />
(Joint Major in “Assembly, Maintenance, and Repair of Automated Systems of Railway Traffic Control”)<br />
<br />
Mykolaiv College of Railway Transport, Ukraine<br />
<br />
<br />
=='''Contact Information'''==<br />
{| class="myLink" border="0"<br />
<br />
|-<br />
|<u>'''E_mail Address'''</u><br />
|-<br />
|[mailto:syeshchenko@myseneca.ca syeshchenko@myseneca.ca &nbsp;&nbsp;]<br />
|-<br />
|[mailto:stanislav.yeshchenko@gmail.com stanislav.yeshchenko@gmail.com &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]<br />
|}</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=Teams%27_List_20123_-_OOP344&diff=87565Teams' List 20123 - OOP3442012-09-17T18:09:01Z<p>Stanislav Yeshchenko: /* Team Name: Code Hunters */</p>
<hr />
<div>{{OOP344 Index | 20123}}<br />
<br />
==Entry Format==<br />
<big><pre> * Name lastName - email:[mailto:YourID@myseneca.ca YourID] - Github:[http://github.com/githubID githubID] </pre></big><br />
<br />
==Not in a team==<br />
* Seong Geun Yoon - email:[mailto:sgyoon@myseneca.ca sgyoon] - Github:[http://github.com/sgyoon sgyoon]<br />
<br />
==Team Name: Alpha==<br />
<br />
number of team members: 5<br />
<br />
* Sivathanushan Easwaran - Email:[mailto:seaswaran@myseneca.ca seaswaran] - Github:[http://github.com/sivae sivae]<br />
* Ji Jungmin [mailto:jjungmin@myseneca.ca email] [http://github.com/jjungmin github]<br />
* Shijie Sun [mailto:ssun24@myseneca.ca email] [http://github.com/nihao123 github]<br />
* James Marmer [mailto:jmarmer@myseneca.ca email]<br />
* Ronny Wan [mailto:rwan3@myseneca.ca email]<br />
<br />
==Team Name: WonderCode==<br />
<br />
number of team members: 5<br />
<br />
* Rody (Hye Young Choi) [mailto:hychoi6@myseneca.ca email]<br />
* Guiwen Chen [mailto:gchen42@myseneca.ca email]<br />
* Jay Feng [mailto:jmfeng1@myseneca.ca email]<br />
* Diao Qiang He [mailto:dqhe1@myseneca.ca email]<br />
* Lily (Linpei Fan) [mailto:lfan9@myseneca.ca email]<br />
<br />
<br />
==Team Name: Skynet==<br />
<br />
number of team members: 5<br />
<br />
* Michael Wang [mailto:mmwang2@myseneca.ca email] [http://github.com/MichaelMWang github]<br />
* Bruno Pereira [mailto:bpereira5@myseneca.ca email] [http://github.com/bpereira5 github]<br />
* Kanghoon Park [mailto:kpark27@myseneca.ca email] [http://github.com/kpark27 github]<br />
* Matthew Torrance [mailto:mstorrance@myseneca.ca email] [http://github.com/mstorrance github]<br />
* Dyllon Ricardo [mailto:ddricardo@myseneca.ca email]<br />
<br />
<br />
==Team Name: C Shepherd==<br />
<br />
number of team members: 5<br />
<br />
* Paul Magda [mailto:plmagda@myseneca.ca email] [http://github.com/pmagda github]<br />
* Gabriel Szczesniak [mailto:gjszczesniak@myseneca.ca email] [http://github.com/gjszczesniak github]<br />
* Gwendolyn Damaren [mailto:gedamaren@myseneca.ca email] [http://github.com/gedamaren github]<br />
* Alina Shtramwasser [mailto:ashtramwasser1@myseneca.ca email] [http://github.com/AlinaShtramwasser github]<br />
* Yaraslau Nikifarau [mailto:ynikifarau@myseneca.ca email] [http://github.com/ynikifarau github]<br />
<br />
<br />
==Team Name: Rhys' Pieces==<br />
<br />
number of team members: 4<br />
<br />
* Mark Sinclair [mailto:mwsinclair@myseneca.ca email] [http://github.com/bgmrk github]<br />
* Rhys Manning [mailto:ramanning@myseneca.ca email] [http://github.com/rahmoses github]<br />
* Jevon Charan [mailto:jscharan@myseneca.ca email] [http://github.com/jscharan github]<br />
* TBA [mailto:@myseneca.ca email] [http://github.com/ github]<br />
<br />
==Team Name: [[oopTech|oopTech]]==<br />
<br />
number of team members: 4<br />
<br />
* Peter Huang [mailto:phuang19@myseneca.onca email] [http://github.com/peter-huang github]<br />
* Alfred Liu [email] [ github]<br />
* Omkar Natvarlal Parmar [mailto:onparmar@myseneca.ca email] [ github]<br />
* Sunny Parnami [mailto:sparnami@myseneca.ca email] [ github]<br />
<br />
<br />
==Team Name: [[Code Hunters|Code Hunters]]==<br />
<br />
number of team members: 5<br />
<br />
* Stanislav Yeshchenko [mailto:syeshchenko@myseneca.onca email] [http://github.com/syeshchenko github]<br />
* Steven (Szu-Han) Chen [mailto:sschen4@myseneca.onca email] [http://github.com/chensteven github]<br />
* Joshua Lane [mailto:jlane4@myseneca.onca email] [http://github.com/jlane4 github]<br />
* Bo Liu [mailto:bliu54@myseneca.onca email] [http://github.com/ github]<br />
* Yun Yang [mailto:yyang154@myseneca.onca email] [http://github.com/oop344 github]</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=Teams%27_List_20123_-_OOP344&diff=87564Teams' List 20123 - OOP3442012-09-17T18:08:25Z<p>Stanislav Yeshchenko: </p>
<hr />
<div>{{OOP344 Index | 20123}}<br />
<br />
==Entry Format==<br />
<big><pre> * Name lastName - email:[mailto:YourID@myseneca.ca YourID] - Github:[http://github.com/githubID githubID] </pre></big><br />
<br />
==Not in a team==<br />
* Seong Geun Yoon - email:[mailto:sgyoon@myseneca.ca sgyoon] - Github:[http://github.com/sgyoon sgyoon]<br />
<br />
==Team Name: Alpha==<br />
<br />
number of team members: 5<br />
<br />
* Sivathanushan Easwaran - Email:[mailto:seaswaran@myseneca.ca seaswaran] - Github:[http://github.com/sivae sivae]<br />
* Ji Jungmin [mailto:jjungmin@myseneca.ca email] [http://github.com/jjungmin github]<br />
* Shijie Sun [mailto:ssun24@myseneca.ca email] [http://github.com/nihao123 github]<br />
* James Marmer [mailto:jmarmer@myseneca.ca email]<br />
* Ronny Wan [mailto:rwan3@myseneca.ca email]<br />
<br />
==Team Name: WonderCode==<br />
<br />
number of team members: 5<br />
<br />
* Rody (Hye Young Choi) [mailto:hychoi6@myseneca.ca email]<br />
* Guiwen Chen [mailto:gchen42@myseneca.ca email]<br />
* Jay Feng [mailto:jmfeng1@myseneca.ca email]<br />
* Diao Qiang He [mailto:dqhe1@myseneca.ca email]<br />
* Lily (Linpei Fan) [mailto:lfan9@myseneca.ca email]<br />
<br />
<br />
==Team Name: Skynet==<br />
<br />
number of team members: 5<br />
<br />
* Michael Wang [mailto:mmwang2@myseneca.ca email] [http://github.com/MichaelMWang github]<br />
* Bruno Pereira [mailto:bpereira5@myseneca.ca email] [http://github.com/bpereira5 github]<br />
* Kanghoon Park [mailto:kpark27@myseneca.ca email] [http://github.com/kpark27 github]<br />
* Matthew Torrance [mailto:mstorrance@myseneca.ca email] [http://github.com/mstorrance github]<br />
* Dyllon Ricardo [mailto:ddricardo@myseneca.ca email]<br />
<br />
<br />
==Team Name: C Shepherd==<br />
<br />
number of team members: 5<br />
<br />
* Paul Magda [mailto:plmagda@myseneca.ca email] [http://github.com/pmagda github]<br />
* Gabriel Szczesniak [mailto:gjszczesniak@myseneca.ca email] [http://github.com/gjszczesniak github]<br />
* Gwendolyn Damaren [mailto:gedamaren@myseneca.ca email] [http://github.com/gedamaren github]<br />
* Alina Shtramwasser [mailto:ashtramwasser1@myseneca.ca email] [http://github.com/AlinaShtramwasser github]<br />
* Yaraslau Nikifarau [mailto:ynikifarau@myseneca.ca email] [http://github.com/ynikifarau github]<br />
<br />
<br />
==Team Name: Rhys' Pieces==<br />
<br />
number of team members: 4<br />
<br />
* Mark Sinclair [mailto:mwsinclair@myseneca.ca email] [http://github.com/bgmrk github]<br />
* Rhys Manning [mailto:ramanning@myseneca.ca email] [http://github.com/rahmoses github]<br />
* Jevon Charan [mailto:jscharan@myseneca.ca email] [http://github.com/jscharan github]<br />
* TBA [mailto:@myseneca.ca email] [http://github.com/ github]<br />
<br />
==Team Name: [[oopTech|oopTech]]==<br />
<br />
number of team members: 4<br />
<br />
* Peter Huang [mailto:phuang19@myseneca.onca email] [http://github.com/peter-huang github]<br />
* Alfred Liu [email] [ github]<br />
* Omkar Natvarlal Parmar [mailto:onparmar@myseneca.ca email] [ github]<br />
* Sunny Parnami [mailto:sparnami@myseneca.ca email] [ github]<br />
<br />
<br />
==Team Name: [[Code Hunters|Code Hunters]]==<br />
<br />
number of team members: 5<br />
<br />
* Stanislav Yeshchenko [mailto:syeshchenko@myseneca.onca email] [http://github.com/syeshchenko github]<br />
* Steven (Szu-Han) Chen[mailto:sschen4@myseneca.onca email] [http://github.com/chensteven github]<br />
* Joshua Lane [mailto:jlane4@myseneca.onca email] [http://github.com/jlane4 github]<br />
* Bo Liu [mailto:bliu54@myseneca.onca email] [http://github.com/ github]<br />
* Yun Yang [mailto:yyang154@myseneca.onca email] [http://github.com/oop344 github]</div>Stanislav Yeshchenkohttps://wiki.cdot.senecacollege.ca/w/index.php?title=Student_List_20123_-_OOP344&diff=87338Student List 20123 - OOP3442012-09-13T18:34:05Z<p>Stanislav Yeshchenko: /* OOP344 Student List for Fall of 2012 */</p>
<hr />
<div>{{OOP344 Index | 20123}}<br />
== OOP344 Student List for Fall of 2012 ==<br />
<br />
Make sure you have the following done before you add your name here:<br />
<br />
* You have a registered name for IRC; irc.freenode.net server.<br />
* You have a blog for OOP344 either by filtering your posts or a dedicated blog.<br />
<br />
Please add your information to the student list table below by adding the following to the end of table code (if you are a student in oop344, Fall of 2012).<br /><br />
<big><pre>|[[User:WUN|FN]]||LN||[[TPN|TN]]||SEC||[mailto:LID@myseneca.ca?subject=oop344 LID]||[[Special:Contributions/WUN|WUN]]||IN||GH|| [BURL|BN]</pre></big><br />
<br />
Replace the following with your own information when adding the row to the table: <br /><br />
* WUN: Your Wiki User name<br />
* FN: Your First Name<br />
* LN: Your Last Name<br />
* TPN: Your Team Page Name on wiki (leave blank if you don't have team page yet)<br />
* TN: Your Team name<br />
* SEC: Your OOP344 Section (example: A, B or C)<br />
* LID: Your seneca email ID (learn id)<br />
* IN: Your IRC '''Registered''' Nickname <br />
* GH: Your GitHub ID<br />
* BURL: Your Blog URL<br />
* BN: Your Blog Title<br />
<br />
Do Not add your row unless you have all the above information.<br />
<br />
If your information is not added to the following line, your work and assignments will not be marked.<br />
<br />
{| class="wikitable sortable" border="1" cellpadding="5"<br />
|+ OOP344 - Fall of 2012 student list<br />
! First Name !! Last Name !! Team Name !! Section !! Seneca Id !! wiki id !! IRC nick !! GITHUB ID !! Blog URL<br />
|-<br />
|[[User:Andre Mendes|Andre]]||Mendes||[[TPN|Hadouken]]||A||[mailto:amendes@myseneca.ca?subject=oop344 amendes]||[[Special:Contributions/Andre Mendes|Andre Mendes]]||AndreM||andrehsmendes|| [http://andrehsmendes.wordpress.com Object Oriented Programming ]<br />
|-<br />
|[[User:Peter Chen|Peter (Xiang Qiang)]]||Chen||[[N/A|N/A]]||A||[mailto:xqchen3@myseneca.ca?subject=oop344 xqchen3]||[[Special:Contributions/Peter Chen|Peter Chen]]||Sushii||Sushii|| [http://peter.ug/ Peter.ug... Just another blog...]<br />
|-<br />
|[[User:Jmarmer | James]]||Marmer||[[N/A|N/A]]||B||[mailto:jmarmer@myseneca.ca?subject=oop344 jmarmer]||[[Special:Contributions/Jmarmer | Jmarmer]]||ToraReaper||JamesM007|JamesM007||[http://jmarmer.blogspot.com/ James Blog ]<br />
|-<br />
|[[User:Zhenyang Chen|Zhenyang]]||Chen||[[N/A|sive]]||A||[mailto:zchen91@myseneca.ca?subject=oop344 zchen91]||[[Special:Contributions/Zhenyang Chen|Zhenyang Chen]]||crans||crans|| [http://kazilemannor.wordpress.com/ Leash]<br />
|-<br />
|[[User:Freddy Gai Fung Cheungh Chen | Freddy]] || Cheungh || [[N/A|N/A]] || A || [mailto:fgcheunghchen1@myseneca.ca?subject=oop344 fgcheunghchen1]|| [[Special:Contributions/Freddy Gai Fung Cheungh Chen|Freddy Gai Fung Cheungh Chen]] || fgcheunghchen1 || fgcheunghchen1 || [http://fgch11.wordpress.com/ Freddy's C++ Blog]<br />
|-<br />
|[[User:Jeremiah Guevarra | Jeremiah]] || Guevarra || [[Knock-Knock!!]] || B || [mailto:jrguevarra@myseneca.ca?subject=oop344 jrguevarra]|| [[Special:Contributions/Jeremiah Reyes Guevarra|Jeremiah Reyes Guevarra]] || jrguevarra || jrguevarra || [http://jrguevarra.wordpress.com/ Jeremiah's Blog]<br />
|-<br />
|[[User:Marcus Gauer|Marcus]]||Gauer||[[TBD|TBD]]||A||[mailto:mgauer@myseneca.ca?subject=oop344 mgauer]||[[Special:Contributions/Marcus Gauer|Marcus Gauer]]||wizardsgambit||Gauer|| [http://gambitkun.blogspot.ca/ Epic Adventures]<br />
|-<br />
|[[User:Ran Li|Ran]]||Li||[[N/A|knock-knock!!]]||A||[mailto:rli64@myseneca.ca?subject=oop344 rli64]||[[Special:Contributions/Ran Li|Ran Li]]||ranli||lynnli|| [http://bleulynn.wordpress.com/ 22yue6] <br />
|-<br />
|[[User:klara|Kelly]]||Lara||[[N/A|cpaCoderpz]]||A||[mailto:klara@myseneca.ca?subject=oop344 klara]||[[Special:Contributions/klara|klara]]||kmlara||kmlara|| [http://kmlara.blogspot.ca/ Occupation:student] <br />
|-<br />
|[[User:Kajanthan Tharmabalan|Kajanthan]]||Tharmabalan||[[TPN|Hadouken]]||A||[mailto:ktharmabalan@myseneca.ca?subject=oop344 ktharmabalan]||[[Special:Contributions/Kajanthan Tharmabalan|Kajanthan Tharmabalan]]||C0d3z||Kajan-|| [http://trytocodes.blogspot.ca/ Research C++ ]<br />
|-<br />
|[[User:Peter Huang|Peter]]||Huang||[[TPN|TBA]]||B||[mailto:phuang19@myseneca.ca?subject=oop344 phuang19]||[[Special:Contributions/Peter Huang|Peter Huang]]||phuang||peter-huang|| [http://peter-huang.blogspot.ca/ Peter Huang's Blog]<br />
|-<br />
|[[User:alf | Jinghui]]||Liu||[[NotYet | ]]<br />
||B||[mailto:jliu164@learn.senecac.on.ca?subject=oop344 jliu164]||[[Special:Contributions/alf | alf]]||jliu||alfred2012||[http://vortexplus.wordpress.com/category/oop344/ Alfred's Blog]<br />
|-<br />
|[[User:Michael Mengyuan Wang|Michael]]||Wang||[[N/A|Skynet]]||B||[mailto:mmwang2@myseneca.ca?subject=oop344 mmwang2]||[[Special:Contributions/Michael Mengyuan Wang|Michael Mengyuan Wang]]||mekko||MichaelMWang|| [http://mmwang2.blogspot.ca/ Michael's Blog ]<br />
|-<br />
|[[User:ynikifarau|Yaraslau]]||Nikifarau||[[N/A|N/A]]||A||[mailto:ynikifarau@myseneca.ca?subject=oop344 ynikifarau]||[[Special:Contributions/ynikifarau|ynikifarau]]||ynikifarau||ynikifarau|| [http://ynikifarau.blogspot.ca/ Seneca OOP344 Yaraslau's Blog ]<br />
|-<br />
|[[User:WUN|Rocco]]||Pietrangelo||||A||[mailto:rmpietrangelo@myseneca.ca?subject=oop344 rmpietrangelo]||[[Special:Contributions/Rocco Matthew Pietrangelo|Rocco Matthew Pietrangelo]]||rmpietrangelo||rmpietrangelo|| [http://oop344-seneca.blogspot.ca/ oop344 ] <br />
|-<br />
|[[User:Alina Shtramwasser|Alina]]||Shtramwasser||[[N/A|N/A]]||A||[mailto:ashtramwasser1@learn.senecac.on.ca?subject=oop344 ashtramwasser1]||[[Special:Contributions/Alina Shtramwasser|Alina Shtramwasser]]||Alya||AlinaShtramwasser||[http://ashtramwasser.blogspot.ca/ ashtramwasser ]<br />
|-<br />
|[[User:Hiroshi Takemoto|Hiroshi]]||Takemoto||[[N/A|N/A]]||A||[mailto:htakemoto@learn.senecac.on.ca?subject=oop344 htakemoto]||[[Special:Contributions/Hiroshi Takemoto|Hiroshi Takemoto]]||rostato||htakemoto||[http://rostato.wordpress.com/ Magic Logic Program ]<br />
|-<br />
|[[User:ammobasseri|Amir Mohammad]]||Mobasseri||[[The Sixth Core|The Sixth Core]]||B||[mailto:ammobasseri@myseneca.ca?subject=oop344 ammobasseri]||[[Special:Contributions/ammobasseri|ammobasseri]]||ammobasseri||ammobasseri||[http://ammobasseri.wordpress.com/ Amir's Blog]<br />
|-<br />
|[[User:czang1 | Chen]]||Zang|| ||B||[mailto:czang1@learn.senecac.on.ca?subject=oop344 czang1]||[[Special:Contributions/czang1 | czang1]]||czang||czang||[http://zangchen88.blogspot.com/ Chen's Blog]<br />
|-<br />
|[[User:pvaaheeswaran|Prasanth]]||Vaaheeswaran||[[N/A|N/A]]||A||[mailto:pvaaheeswaran@myseneca.ca?subject=oop344 pvaaheeswaran]||[[Special:Contributions/pvaaheeswaran|pvaaheeswaran]]||iampv||vprasanth||[http://aminorbug.wordpress.com/ a minor bug]<br />
|-<br />
|[[User:csho3|Christopher]]||Ho||[[N/A|N/A]]||A||[mailto:csho3@learn.senecac.on.ca?subject=oop344 csho3 ]||[[Special:Contributions/csho3|csho3]]||csho3||Chhoris|| [http://csho3.wordpress.com/ Chris's Blog]<br />
|-<br />
|[[User:Mknguyen2|Minh Khoa]]||Nguyen||[[N/A|Knock-Knock!!]]||A||[mailto:mknguyen2@myseneca.ca?subject=oop344 mknguyen2]||[[Special:Contributions/Mknguyen2|Mknguyen2]]||kennguyen||kennguyen|| [http://kennguyen4z.wordpress.com/ Ken's Blog]<br />
|-<br />
|[[User:N/A|Joseph]]||Visconti||[[N/A|cpaCoderpz]]||B||[mailto:jvisconti2@myseneca.ca?subject=oop344 jvisconti2]||[[Special:Contributions/ |TBD]]||Visconti||Joseph-Visconti|| [http://josephvisconti.wordpress.com/ OOP344]<br />
|-<br />
|[[User:Bruno Pereira|Bruno]]||Pereira||[[N/A|SkyNet]]||B||[mailto:bpereira5@myseneca.ca?subject=oop344 bpereira5]||[[Special:Contributions/Bruno Pereira|Bruno Pereira]]||bpereira||bpereira5|| [http://www.bpandemic.com/blog/ Open Source]<br />
|-<br />
|[[User:Seong Geun Yoon|Seong Geun]]||Yoon||[[N/A|N/A]]||A||[mailto:sgyoon@myseneca.ca?subject=oop344 sgyoon]||[[Special:Contributions/Seong Geun Yoon|Seong Geun Yoon]]||sgyoon||sgyoon|| [http://ny08ty.blogspot.ca/ C++ Programming]<br />
|-<br />
|[[User:chensteven|Steven (Szu-Han)]]||Chen||[[N/A|Code Hunters]]||B||[mailto:sschen4@myseneca.ca?subject=oop344 sschen4]||[[Special:Contributions/chensteven|chensteven]]||chensteven||chensteven|| [http://sschen4.blogspot.ca/ Steven's Blog]<br />
|-<br />
|[[User:Ji Jungmin|Jungmin]]||Ji||[[Alpha]]||B||[mailto:jjungmin@myseneca.ca?subject=oop344 jjungmin]||[[Special:Contributions/Ji Jungmin|Ji Jungmin]]||Viscaria||jjungmin|| [http://jijungmin90.blogspot.ca/ Hit!]<br />
|-<br />
|[[User:Sivathanushan Easwaran|Sivathanushan]]||Easwaran||[[TPN|Alpha]]||B||[mailto:seaswaran@myseneca.ca seaswaran]||[[Special:Contributions/Sivathanushan Easwaran|Sivathanushan Easwaran]]||LineCircle||sivae|| [http://oop344class.wordpress.com/ oop344class]<br />
|-<br />
|[[User:Shijie Sun|Shijie]]||Sun||[[Alpha]]||B||[mailto:ssun24@myseneca.ca?subject=oop344 ssun24]||[[Special:Contributions/Jack Sun|Shijie Sun]]||Jack Sun||nihao123|| [http://www.blogger.com/blogger.g?blogID=3685082917224883224#overview program344]<br />
|-<br />
|[[User:Linpei Fan|Linpei]]||Fan||[[WonderCode]]||B||[mailto:lfan9@myseneca.ca?subject=oop344 lfan9]||[[Special:Contributions/Linpei Fan|Linpei Fan]]||Lilyaj||lilyfan|| [http://Linpei.blogspot.ca/ Learning Path to Software Development]<br />
|-<br />
|[[User:Kieran Sedgwick|Kieran]]||Sedgwick||[[N/A|The Scurvy Curs]]||A||[mailto:ksedgwick@myseneca.ca?subject=oop344 ksedgwick ]||[[Special:Contributions/Kieran Sedgwick|Kieran Sedgwick]]||ksedge||ksedge|| [http://ksedge.blogspot.ca/ k.sedge Does OOP344]<br />
|-<br />
|[[User:Samuel Benjamin Azan|Samuel]]||Azan||[[N/A|The Scurvy Curs]]||B||[mailto:sbazan@myseneca.ca?subject=oop344 sbazan]||[[Special:Contributions/Samuel Benjamin Azan|Samuel Benjamin Azan]]||IN||samuel-azan|| [http://samoop.blogspot.ca/ Sam OOP344]<br />
|-<br />
|[[User:sahankoub|Saeid]]||Ahankoub||[[The Sixth Core|The Sixth Core]]||B||[mailto:sahankoub@learn.senecac.on.ca?subject=oop344 sahankoub]||[[Special:Contributions/Saeid Ahankoub|Saeid Ahankoub]]||sahankoub||sahankoub||[http://sahankoub.wordpress.com/ C++ Blog]<br />
|-<br />
|[[User:Jieming Feng|Jieming]]||Feng||[[WonderCode]]||B||[mailto:jmfeng1@myseneca.ca?subject=oop344 jmfeng1]||[[Special:Contributions/Jie Ming Feng|Jie Ming Feng]]||jayfeng||jayfeng|| [http://jayfeng.wordpress.com/ Blue Jay C++]<br />
|-<br />
|[[User:Shuming Lin|Shuming]]||Lin||[[N/A|sive]]||B||[mailto:slin44@myseneca.ca?subject=oop344 slin44]||[[Special:Contributions/Shuming Lin|Shuming Lin]]||kevin000||kevin000||[http://klcpp.wordpress.com/ intermerdiate C++ ]<br />
<br />
|-<br />
|[[User:Stanislav Yeshchenko| Stanislav]]||Yeshchenko||[[Code Hunters]]||B||[mailto:syeshchenko@myseneca.ca?subject=oop344 syeshchenko]||[[Special:Contributions/Stanislav Yeshchenko|Stanislav Yeshchenko]]||stan_seneca||syeshchenko|| [http://stanislavatseneca.blogspot.ca/ Stan's OOP344 blog]</div>Stanislav Yeshchenko