473,836 Members | 2,210 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Mini project suggestions

Hi,
I'm in the middle of "teaching" myself C++. Having skimmed some of
the "Teach Yourself C++ in 21 Days" book, I got a feel for the
language, at least. Then I bought "The C++ Programming Language"
because it was on offer, and I'd have ended up buying it at some stage
anyway.
Skimmed some of that, but there's too much detail (for now) and I
know I won't take it in if I don't get some practice in actually
*writing* programs in C++. I'm getting the very strong impression that
(much more so than in C) learning to write "proper" C++ programs can't
just be done through short question exercises.
To get to the point, I'm wanting to start a moderately-sized
project that would take a week (working full time on it, which I won't
be :-) ) to do reasonably, cover a decent subset of the language, be
interesting to do, and workable under (say) gcc on Linux (without too
much nonstandard code). It'd also be interesting to get some practice
in software design in there.
So, I'd be interested to get some suggestions, because I feel like
doing *something* with all this knowledge (and more importantly,
finding out what I don't know well). Thanks!

Michael Strorm
ms*****@yahoo.c o.uk
Jul 19 '05 #1
41 8743
"Michael Strorm" <ms*****@yahoo. co.uk> wrote in message
news:5e******** *************** **@posting.goog le.com...
Hi,
I'm in the middle of "teaching" myself C++. Having skimmed some of
the "Teach Yourself C++ in 21 Days" book, I got a feel for the
language, at least. Then I bought "The C++ Programming Language"
because it was on offer, and I'd have ended up buying it at some stage
anyway.
Yes, as your knowledge grows, I think you'll find this
book quite valuable. Make sure it's the 3rd or 'special'
edition though. Previous additions are essentially
obsolete.

Another very good book, especially for those who have
previous experience with other languages, is Koenig
& Moo's "Accelerate d C++". www.acceleratedcpp.com

Skimmed some of that, but there's too much detail (for now)
Yes, it's info:page ratio is quite dense. I also needed
to supplement it with other 'lighter' material when learning
C++.

and I
know I won't take it in if I don't get some practice in actually
*writing* programs in C++.
Yes, good that you realize that. Learn by doing.
I'm getting the very strong impression that
(much more so than in C) learning to write "proper" C++ programs can't
just be done through short question exercises.
Short exercises are good start, especially to prove to
yourself you understand a particular concept(s).
To get to the point, I'm wanting to start a moderately-sized
project that would take a week (working full time on it, which I won't
be :-) )
Don't be too optimistic with your time estimates. Don't
worry if something takes far longer than you expect. Even
for professionals, one of the most difficult tasks is making
(and meeting!) time estimates. Only practice and experience
will help with this. And having built up a 'code base' of
useful functions helps a lot toward 'speed of development'.
The concept of code reuse. When writing a function, keep
in mind "can this be 'generalized' to be useful in other
contexts?" This won't always be the case, but often is,
given a bit of forethought before deciding e.g. what
the parameters should be, if any. E.g. if you write a
function to output the contents of an object, you could
'hard code' it to use 'cout', or you could defined a
parameter of type std::ostream&, in which case the
function could operate upon a file (std::ofstream) as
well as on 'cout'.

to do reasonably, cover a decent subset of the language, be
interesting to do,
Only you can know what you find 'interesting'. E.g. many
are eager to write 'cool graphics games' etc. (which btw
is a far too advanced topic when learning the language,
especially since you'll need platform-specific 'extensions'
and special purpose libraries). E.g. Games don't interest
me at all, graphical or otherwise -- I have more fun with
databases and text manipulation. But that's just me.
and workable under (say) gcc on Linux (without too
much nonstandard code).
When learning, you should stay away from all nonstandard
(e.g. platform-specific) constructs. Learn the language
first. Then it matters not what your platform is (C++
is a 'platform-independent' language.)
It'd also be interesting to get some practice
in software design in there.
Design isn't really topical here, but we can help you
organize your code to best take advantage of the
language's power, prevent common errors etc. Software
design itself would be better discussed in groups such
as comp.programmin g and/or comp.algorithms , etc.
Often specific algorithm categories have their own
groups, e.g. cryptography.
So, I'd be interested to get some suggestions, because I feel like
doing *something* with all this knowledge
Yes, it is very satisfying to actually build something
useful and/or interesting with your new found skills.
(and more importantly,
finding out what I don't know well). Thanks!


The first 'nontrivial' thing I did with C++ (after
many small exercises) was a small 'contacts' database with
e.g. names, addresses, phone numbers, etc. That's because
I'm interested in databases, and that's an area where I
already have skill with other languages, and have the most
experience.

Hint: Use the standard library. It is *very* powerful,
and lets you start applying 'code reuse' immediately.
Spend some time learning about containers, iterators,
and the algorithms declared by header <algorithm>
which uses them. *Very* powerful and flexible things can
be done with them. Which reminds me: A very good book to have is
Josuttis' "The C++ Standard Library" www.josuttis.com/libbook
HTH,
-Mike
Jul 19 '05 #2
On 1 Oct 2003 15:30:14 -0700, ms*****@yahoo.c o.uk (Michael Strorm)
wrote:

[snip]
So, I'd be interested to get some suggestions, because I feel like
doing *something* with all this knowledge (and more importantly,
finding out what I don't know well). Thanks!


You could write a small text adventure. It need not do much, but
just to bring it up to framework level, you are going to have to do a
lot of work with I/O and string manipulation. There are plenty of
opportunities to define classes or use STL. After you have the
framework, you can bolt on a lot of other stuff that fits your fancy.

Sincerely,

Gene Wirchenko

Jul 19 '05 #3
> [snip]
So, I'd be interested to get some suggestions, because I feel like
doing *something* with all this knowledge (and more importantly,
finding out what I don't know well). Thanks!


You could write a small text adventure. It need not do much, but
just to bring it up to framework level, you are going to have to do a
lot of work with I/O and string manipulation. There are plenty of
opportunities to define classes or use STL. After you have the
framework, you can bolt on a lot of other stuff that fits your fancy.


But PLEASE, before you ask, there is no way in C++ to clear the screen or
change the colour of the output :)
Jonathan
Jul 19 '05 #4
[Just clearing up a tiny nit]

Jonathan Mcdougall wrote:
But PLEASE, before you ask, there is no way in C++ to clear the screen or
change the colour of the output :)


.....unless you are prepared to use extensions to the language (such as
libraries - ncurses, SDL, OpenGL, whatever) which may not be available on
all your target platforms, and discussion of which is off-topic in both
these newsgroups but not in platform-specific newsgroups.

--
Richard Heathfield : bi****@eton.pow ernet.co.uk
"Usenet is a strange place." - Dennis M Ritchie, 29 July 1999.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
K&R answers, C books, etc: http://users.powernet.co.uk/eton
Jul 19 '05 #5
On Wed, 1 Oct 2003 23:19:44 -0400, "Jonathan Mcdougall"
<jo************ ***@DELyahoo.ca > wrote:

[snip]
But PLEASE, before you ask, there is no way in C++ to clear the screen or
change the colour of the output :)


<EG>

The best response I ever saw to the clear screen question was
"Which screen?"

Sincerely,

Gene Wirchenko
Jul 19 '05 #6
Gene Wirchenko wrote:
You could write a small text adventure. It need not do much, but
just to bring it up to framework level, you are going to have to do a
lot of work with I/O and string manipulation. There are plenty of
opportunities to define classes or use STL. After you have the
framework, you can bolt on a lot of other stuff that fits your fancy.


That's a pretty good project, if you like TA games. It was my learning
program for C many moons ago. It's probably even better for C++, because
the OO approach is natural for a game like that.


Brian Rodenborn
Jul 19 '05 #7

"Gene Wirchenko" <gw************ **@CAPITALSwenc omine.com> wrote in message
news:2t******** *************** *********@4ax.c om...
On Wed, 1 Oct 2003 23:19:44 -0400, "Jonathan Mcdougall"
<jo************ ***@DELyahoo.ca > wrote:

[snip]
But PLEASE, before you ask, there is no way in C++ to clear the screen or
change the colour of the output :)


<EG>

The best response I ever saw to the clear screen question was
"Which screen?"


I like "use glass cleaner". :-)

-Mike
Jul 19 '05 #8
WW
Mike Wahler wrote:
"Gene Wirchenko" <gw************ **@CAPITALSwenc omine.com> wrote in
message news:2t******** *************** *********@4ax.c om...
On Wed, 1 Oct 2003 23:19:44 -0400, "Jonathan Mcdougall"
<jo************ ***@DELyahoo.ca > wrote:

[snip]
But PLEASE, before you ask, there is no way in C++ to clear the
screen or change the colour of the output :)


<EG>

The best response I ever saw to the clear screen question was
"Which screen?"


I like "use glass cleaner". :-)


Or if you need fast code and aggresive optimization there is the
hammer-fast-forward followed by a circle-to-remove-remainder (aka modulus)
method. And it is a time tested pattern used by burlgars and fireman all
around the world. ;-)

--
WW aka Attila
Jul 19 '05 #9
>> >> The best response I ever saw to the clear screen question was
"Which screen?"


I like "use glass cleaner". :-)

I just tell them to turn the computer upside down and shake.
Jul 19 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
4750
by: alpa shah | last post by:
Hi, please suggest me Mini project topic in ASP language....
0
1618
by: tbatwork828 | last post by:
VS 2005. I have compiled my dlls/exes in Release mode and also setting Debug Info="full"under Project - Properties - Build - select "Release" under "Configuration" drop down - the Advanced button at the bottom. When I compile, I get all pdbs for each dll/exe. We are running Win XP. At the client, my app then crashes, and a dump is created on the user machine where the app runs, but it is completely empty. Of course, I would like to get...
2
1390
by: Eric S. Johansson | last post by:
as one would expect when creating a body of software, eventually you create a series of relatively generic components you find yourself using over and over again. As a result, I'm finding myself slightly bit by the same problem I have faced multiple times of the past. Namely, how do you distribute "small" components that are used in a series of larger applications. Yes, I could turn each 300 line file into a Python module complete with...
7
4251
by: pangsans | last post by:
hai i wud like to do a mini project with two of my friends in c or c++.i jus cant decide on a suitable one.it wud n very very helpful if u guys cud suggest some topics
0
5578
by: gunimpi | last post by:
http://www.vbforums.com/showthread.php?p=2745431#post2745431 ******************************************************** VB6 OR VBA & Webbrowser DOM Tiny $50 Mini Project Programmer help wanted ******************************************************** For this teeny job, please refer to: http://feeds.reddit.com/feed/8fu/?o=25
4
9515
by: paprockfx | last post by:
hai there, i am Gautham.I am very much need of suggestion of an mini project in c++.If anyone has one can u jus forward it to me.Please give me ur suggestions also. thankin you, Gautham
0
1109
by: priyanan | last post by:
suggest me a new mini project in asp.net which is easy to understand and well to do
4
1633
by: Pankaj S | last post by:
Hi! I have just joined this group. I want just a mini project in c/c++ on any topic so that it is not so much easy and not so much complicated. It should be just looking like a engineering project. Just send it or you can suggest a topic. Plz! Thanks!
8
2783
by: geert | last post by:
Hi all, I have a mac mini running maocosx 10.5 leopard I want to deploy a django project on. My backend is MySQL, and I have it running as a 64- bit app. Of course, apache2 is also running as 64-bit. MySQLdb installs with the usual warnings after applying the various patches I found here and there. These patches consist of altering _mysql.c and site.cfg.
0
9812
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10824
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10533
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
7775
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5644
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5813
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4443
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
4003
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3103
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.