|
You have prototype of the function, but there's no function definition. Maybe you've forgot about const in argument list.
Tomasz Sowinski -- http://www.shooltz.com
Free your mind and your ass will follow.
|
|
|
|
|
Hmmm...ok. I have only one, well two of the functions written now. Inside main looks like this:
#include "hw1.h"
void main()
{
Diver_Info theDivers[Total_Divers];
cout << "Loading list of divers from file.\n";
Input_Data(theDivers);
cout << "Computing scores of divers.\n";
cout << "Creating a report of divers information.\n";
cout << "Sorting scores in descending order.\n";
cout << "Writing the output file of divers.\n";
}
I have the function defined in another file, but it looks like this:
#include "hw1.h"
void Input_Data(Diver_Info theDivers[])
{
int DiverCount = 0;
ifstream inputFile;
inputFile.open(ListOfDivers, ios::in);
inputFile.get(theDivers[DiverCount].Diver_Name, 80);
while(! inputFile.eof())
{
for(int i = 0; i < Num_Of_Dives; i++)
{
inputFile >> theDivers[DiverCount].Dives[i].difficulty;
for(int j = 0; j < Num_Of_Scores; j++)
{
inputFile >> theDivers[DiverCount].Dives[i].scores[j];
}
}
DiverCount++;
inputFile.ignore(100, '\n');
inputFile.get(theDivers[DiverCount].Diver_Name, 80);
}
inputFile.close();
}
void Calculate_Totals(Diver_Info theDivers[])
{
float Score, Max_Score, Min_Score;
for(int i = 0; i < Total_Divers; i++)
{
theDivers[i].Total_Score = 0.0f;
for(int g = 0; g < Num_Of_Dives; g++)
{
Max_Score = 0.0f;
Min_Score = 10.0f;
Score = 0.0f;
for(int h = 0; h < Num_Of_Scores; h++)
{
Score += theDivers[i].Dives[g].scores[h];
if(theDivers[i].Dives[g].scores[h] < Min_Score)
{
Min_Score = theDivers[i].Dives[g].scores[h];
}
if(theDivers[i].Dives[g].scores[h] > Max_Score)
{
Max_Score = theDivers[i].Dives[g].scores[h];
}
}
theDivers[i].Total_Score += (Score - Max_Score - Min_Score) * .6f * theDivers[i].Dives[g].difficulty;
}
}
}
Does something look missing?
Nick Parker
|
|
|
|
|
In the header file I have the other function prototypes commented out.
#ifndef HW1_H
#define HW1_H
#include <fstream.h>
#include <iomanip.h>
#define ListOfDivers "divers.dat"
#define OutputFile "output.dat"
#define ReportFile "report.dat"
const int Total_Divers = 24;
const int Best_Divers = 12;
const int Num_Of_Dives = 10;
const int Num_Of_Scores = 7;
struct Dive_Stats
{
float difficulty;
float scores[Num_Of_Scores];
};
struct Diver_Info
{
char Diver_Name[80];
Dive_Stats Dives[Num_Of_Dives];
float Total_Score;
};
void Input_Data(Diver_Info []);
#endif
Nick Parker
|
|
|
|
|
|
|
Oh boy, I am ashamed to admit this, really, please don't hold it against me......PLEASE. I am blaming it on the fact that classes started again on Monday. I am also hoping and praying that for x periods of time as I would look through various pages of code that I was going temporarily blind.
I just needed to include "hw1f.cpp".
#include "hw1.h"
#include "hw1f.cpp"
void main()
{
Diver_Info theDivers[Total_Divers];
cout << "Loading list of divers from file.\n";
Input_Data(theDivers);
cout << "Computing scores of divers.\n";
Calculate_Totals(theDivers);
cout << "Creating a report of divers information.\n";
Create_Report(theDivers);
}
Thanks for all the help this morning though, hopefully I have all the cobwebs cleaned out.
Nick Parker
|
|
|
|
|
Instead of #including .cpp file, you should add it to the project. But maybe it's the content of the next class
Tomasz Sowinski -- http://www.shooltz.com
Free your mind and your ass will follow.
|
|
|
|
|
No, this is just a refresher application to "wake us up" from the summer. There aren't any assigned points (yet). HELLO MY NAME IS NICK, I AM AWAKE NOW Thanks for all your help.
Nick Parker
|
|
|
|
|
I would like to create a tree class, which has associated with each child item a structure of various flags, etc. Can someone point me in the right direction for this?
I'm not sure how, in deriving my new class from CTreeCtrl, I could access the nodes to add this new structure. (Assuming of course that would be the right path)
Thanks in advance!!
BW
{insert witty/thought-provoking saying here}
|
|
|
|
|
Well, you *can* associate data with CTreeCtrl items. Use CTreeCtrl::GetItemData and CTreeCtrl::SetItemData for that.
The question is, however, if you really should go this way. Do you just want to have in-memory tree, or displaying contents in window is essential?
Tomasz Sowinski -- http://www.shooltz.com
Free your mind and your ass will follow.
|
|
|
|
|
I have a tree which is essentially a project file structure. With each file(leaf/node) in the tree I would like to track several flags and strings.
I don't need to display this extra info, just access it for a variety of tasks performed on these files.
Are you suggesting to just create a duplicate tree, that has nodes defined to hold my structure?
BW
{insert witty/thought-provoking saying here}
|
|
|
|
|
If you already have a CTreeCtrl/CTreeView in your project, and you just want to add extra data to tree items, then Set/GetItemData is the way to go.
If you don't have CTreeCtrl and you're not going to display your tree in window, then you should rather create the tree yourself - it'll be trivial.
Tomasz Sowinski -- http://www.shooltz.com
Free your mind and your ass will follow.
|
|
|
|
|
Thanks, again.
BW
{insert witty/thought-provoking saying here}
|
|
|
|
|
When I change font in List Control using SetFont function,
it always redraws my last modified item in the list (even with redraw parameter set to FALSE). Does anybody knows why is this happening and how to avoid it. Please help.
|
|
|
|
|
Please explain me on how to register a class
If you have a code ...
Thanks
Uday
|
|
|
|
|
Registering a class in the Win32 API is used to notify windows of a type of window that you want to create. It has nothing to do with C++. You can simply declare, define and use a C++ class. There is no special registration required.
There are pre-registered windows classes in windows called the standard controls. They are the buttons, scrollbars, edit, listbox and combo boxes, etc... Then there are the common controls that include things like the listview and treeview.
If you want to create your own window class you will need to fill out the parameters of a WNDCLASS struct and pass that to the RegisterClass. The WNDCLASS struct contains fields that will allow you to specify the default menu handle, iocn, title, styles, wndproc and other things like that.
After you register the window class then you can call CreateWindow, or CreateWindowEx with the name of the class that you registered, or the ATOM that is returned to you.
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
You want to register your class with what?
Tomasz Sowinski -- http://www.shooltz.com
Free your mind and your ass will follow.
|
|
|
|
|
To register a class in Registry, and later use Findwindow
to post a message to that class
|
|
|
|
|
I'm working with some project (MDI application), but I forgot to add html-help support when I created project and I don't know how to do this know.
|
|
|
|
|
there is an article in the MSDN entitled "Including HTML Help Support Files in an Application". it goes through all the steps required.
it links to a number of other useful articles.
-c
Aiei i ea eio aoa i e eio e aigoa
|
|
|
|
|
I've created an MDI application and need some help please!!! I'm having trouble trying to find information on how to open child windows. What I want to do is select a record in my database and place the information in a child. So the idea that I have is that I would open a dialog box, which would display all the records that I could open. Once I select a particular record I would like to display the information in a child window. All information given is greatly appreciated.
Thanks, Steve...
|
|
|
|
|
Hi.
I find that I often need to make a comparison between a private variable of some class with another variable outside of the class. I would like to know the best way to make the comparison. Here are two examples.
-----
MyClass mCls;
int nNum = 1;
// Assuming GetNum() returns an int private variable of MyClass.
if (nNum == mClas.GetNum())
...
-----
Here is the second possible algorithm.
-----
MyClass mCls;
int nNum = 1;
// Assuming GetNum() accepts a const reference to an int variable.
// GetNum() returns a bool based on the comparison.
if (GetNum(nNum))
...
-----
Which if any of the example is preferred? I am also aware there are other possible solutions such as the use of a pointer. However, I believe using reference is faster and is more optimized than a pointer. In general, I use const reference when possible and pointer otherwise.
Thanks,
Kuphryn
|
|
|
|
|
kuphryn wrote:
However, I believe using reference is faster and is more optimized than a pointer.
It's not faster or more optimized. References are implemented using pointers.
If GetNum is inline, you'll get the performance equal with direct access to member variable. I'd go with classic getter method. Your second version should be called CompareNum, not GetNum.
Tomasz Sowinski -- http://www.shooltz.com
Free your mind and your ass will follow.
|
|
|
|
|
OH. Reference is not optimized? Hmmmm. I thought reference has always been optimized and is faster than a pointer.
Kuphryn
|
|
|
|
|
kuphryn wrote:
Hmmmm. I thought reference has always been optimized and is faster than a pointer
Faster to type, maybe.
Tomasz Sowinski -- http://www.shooltz.com
Free your mind and your ass will follow.
|
|
|
|