Hello, I'm using this version of C++. Recently I discovered that what I'm doing is not visual C++. Why have they named it Visual Studio if it is using command lines and not doing visual stuff.
I apologize if it is visual, but I only learned to do a source code file, and nothing else from those. If there is a visual part I'm unaware of, which part is it? :D
First, there's no such thing as Visual C++. That's just the name Microsoft gave to their C++ compiler because the IDE comes with a GUI editor.
Would you prefer something like VB, where 70% of your time is spent moving buttons around?
Trust me: after the first time you work (and I mean work) laying out a GUI, you'll cherish every second you spend actually writing code.
Finally, yes. Visual Studio includes a GUI editor. You accesse the elements in the forms from source code, similar to how you would with VB.
One other thing.
I only started working on C++ like 2-3 months ago. But my serious work started like 3 weeks ago. I want to make my school (I'm in 11th grade) graduation project using C++.
I want to make a program that gets the teachers names, and the courses they teach, and what class they teach it to, and I want the program to make a table of courses (You know, like the ones you get in school to know what class you got for first period, and what class for second period, and ... etc). If you didn't understand what I mean. Look at this.
Day/Period|First|2nd|3rd|4th|5th|6th|etc..
Sunday|First period of sunday|second period of sunday|etc..
Monday|Math|Science|etc..
Tuesday|
etc,..|
I want to make such a table with C++, where when you enter the teacher's name, the courses they teach and the grades they teach, it will randomly put them in the table where no conflicts will occur (A teacher getting 2 courses for 2 different classes at the same time)..
Is such a project achievable using my experience - knowing that I have to submit it in February - or must I have much bigger knowledge of C++ to do so?
Foo! That's pretty complex.
You don't need experience in C++. You need experience at programming.
I may be over-thinking it, but I think you need a dependency tree (or perhaps a graph, I'm not sure) to detect conflicts.
I would try to do it even if in the end I don't manage to make it work. It's certainly a good practice.
But you still didn't answer my question. Can it be done with my experience? I have no other programming language knowledge. I'm only 11th grade :(
BTW I have another choice of a project.
We have elective courses in our school and each course only fits for 15 students.
Students would enter their accounts on the computer and reach the *.exe file. They would start the program and it would give them a list of the elective courses available. The student would choose a course by entering the correspondent number. The objective of the program is to tell the student if he has been entered in the course or not. If he was entered, his name would be on an outer file(*.doc/*.txt/etc) and then the teachers would access those file, print the students names out and know what each student picked. If the number of the students in the course were 15 already, the program would say that it's full.
Oh, you didn't mention your total programming experience, so I couldn't answer.
With just 2-3 months, it's going to be tough. The problem is multidimensional: you have several teachers, several subjects, and several classes.
I think you might want to try the second alternative. It's a lot easier and you will practice concepts more important for a beginner.
Okay buddy :D
Thanks for the response.
But if I wanted to make a username and password for each student so that he would be able to enter on his own account, will it be easy? I mean assigning a username and password for each student and then comparing it with already stored usernames and passwords? or will that be a bit difficult?
Pairing a username to a password is easy. When in memory, you use a map to keep the relation. For storage, you could use a file with this layout:
username
password
username
password
username
password
...
Looking at your description of the problem, you would need some knowledge of data structures and file processing, since this seems to be an I/O-heavy project. To randomly insert records without conflicts as you mentioned, you would need to learn about hashing and hash tables -- those can be fairly simple in theory. Unless you need to efficiently deal with a very large number of big records.
Assuming that ALL you want is basically random access to some arbitrary table without conflicts, if you just learn something about hashing and hash algorithms, you can probably do what you want, albeit in a very inefficient way.
An efficient solution would be to store records in a data structure called a B-Tree (http://en.wikipedia.org/wiki/B-tree) which is one of the most efficient data storage structures out there. But the concept of a B-tree -- let alone the skill required to code one -- would probably be way above 11th grade level. (Or you could just find a library that does it for you :P) The program would be capable of parsing records from a text file on disk into the B-Tree in RAM, as well as writing the contents of the B-tree onto a disk file.
Even though I said this is a fair bit above 11th grade level, you might be able to do it in two months if you really put your mind to it, since high school is easy :P
By the time you've completed that project, you'll be more than prepared for college-level console-programming projects.
Okay, Zettai, I have a few questions for you:
1. How can a project involving signing up for courses be considered "IO-heavy"?
2. Why is a hash table necessary for students lists no longer than 15 elements?
3. Why should OP manually implement a B-tree, when the standard library already contains a red-black tree for sets and maps?
1. The user would have to interact with the file of records to retrieve, insert, and delete. By comparison, most high school programming projects are something along the lines of "Write a program that accepts grades and assigns a numerical score to them." Relatively I/O-light, wouldn't you think?
2. His first problem statement didn't mention any limit. I didn't read his new choice of project until now. The first one sounds much more interesting anyway.
3. I thought of that after I posted, which is why I edited to mention the STL algorithm builds a B-tree for you. I guess I didn't remember that because I am so used to being forced to manually write algorithms that already exist.
But by the same token, you could say "Why bother doing this project at all? Forget it and go fishing since there's probably thousands of programs out there that do pretty much the same thing.
1. If done properly, there are only two file operations: load the file at the start of the program, update the file at the end. Structure modifications should be done in memory. Even then, he just needs to check if a element exists, which a set can do automatically, if he chooses to use one, get the size of the structure, and add a new element.
2. Yeah, it was, but I think it's not doable with only a couple of months of programming. Of course, it depends on the person and how often they practice, but I think it would be better to present a finished okay project than an unfinished complex project.
3. It's not the same. The point of the project is that he practices a few basic concepts, not that he learns how to write complex data structures. Specially trees. *Chills*
Well regarding basic concepts, I think writing data structures are an effective tool for getting into the mindset of thinking algorithmically, as well as being a rigorous exercise in pointers and low-level data manipulation.
The downside is... they can be really boring. :/ Data structures classes often feel like hard labor to me.
Hi guys. I have been busy yesterday after my last post, so I didn't get to post yesterday, but Woah! Thanks for the feedback. Thank you for helping in this. I guess I'll try to do the second project, because it is a less complex project, and anyway if I got better at C++ this year, I'll probably lose it next year. Because 12th grade in my country is pretty extensive work. So my only hope now is those 3 upcoming months to get to know C++ better. But after 12th grade, I'm definitely going back to C++. It's fun, and after what I have seen, that can be accomplished on C++, I think I'm gonna go pro on it :D
Thank you for the quite hopeful responses.
Mohannad