|
hi...
i want som help in my project
Home Work: The Log Entry application
Due date 22/03/1426
Heba KURDI and Mona BENAISSA
As a member of a software development team, you have been delegated the task of implementing a C++ class that will be used to store a log entry.
A security guard may be required to keep a log of people entering and leaving a building, and note what their reasons for being in the building were. A log entry typically contains a sequence number to identify the entry, the name of the person making the entry, the date and time of the entry, and a short message that explains the purpose of the entry and other required details.
The LogEntry class:
The class which you are required to implement stores the following information.
LogEntry Class
Field Data Type Description
LogEntryID Unsigned Integer A unique identification code associated with each log entry. It must be unique and in the range 1 to 9999. Also see NextAvailableLogID below. The default value is 0.
LastName 20 Characters The last name of the person submitting the log entry. The default value is a null string.
Initials 2 Characters The initials of the given names of the person submitting the log entry. The default value is a null string.
Date 10 Characters The date of the log entry stored in YYYY-MM-DD format. We will refer to this format as “Reverse Date FormT”. All stored dates must be after 2000-01-01, and no later than 9999-12-31. The default date is 2000-01-01.
Time 4 Characters The time of the log entry in HHMM 24 hour format, in increments of a minute. The times will range from 0000 to 2359. The default value is 0000.
LogMessage Up to 60 characters The message entered for this log entry. The message may contain up to 60 characters. The default value is a null string.
DateFormat A single character This data field is used to determine how the dates will be displayed in reports. It is set by the SetDateFormat method to ‘F’ if the date is to be displayed in forward format (i.e. DD-MM-YYYY), or ‘R’ if the date is to be displayed in reverse format (i.e. YYYY-MM-DD).
You are required to implement the following public member and friend functions for this LogEntry class. You may implement other private member functions if you wish.
Default Constructor: A default Constructor to initialise all data to their default values.
Overloaded Extraction Operator Function: An overloaded extraction operator function to enable a user to submit a log entry from the keyboard. This function should perform the following processes and validations.
Prompt the user for a LastName and Initials and ensure that these are not null. The name can have no more than 20 characters and there can be a maximum of 2 characters in the initials.
Prompt the user to enter the Date and the Time. The date and time must be validated. That is, 1 <= Day <= 31, 1 <= Month <= 12, and 2000 <= Year <= 9999. Do not worry about leap years, or months with less than 31 days, etc - just keep things simple. The date should be entered in DD-MM-YYYY format and stored in YYYY-MM-DD format.
For the time, 00 <= Hour <= 23, 00 <= Minute <= 59. Time is in a 24 hour format that goes up to 2359 and then wraps to 0000.
Prompt the user for a valid LogMessage, which can have a maximum of 60 characters.
If any invalid input is encountered, then a meaningful and informative error message must be displayed to the user and they should then be prompted to enter the data again, or your program should adjust the data to make it valid.
Note that this extraction operator function should not set the LogEntryID field, as this will be done separately when the main program calls the SetLogEntryID member function. (See below).
You should note that the format of the date stored in the report is different from the format used to enter the date at the keyboard. Your function will need to manipulate the date from the entry format to that required for storage.
DisplayReportHeading :
This function simply displays the report heading. That is, this function should display the following.
ID Date Time Init Surname Message
---- ---------- ---- ---- -------------------- ------------------------------
SetLogEntryID :
This member function should simply set the LogEntryID for the current log entry to a value passed to the function. This function should be called by the main program. (See below).
SetDateFormat:
This member function should simply set the DateFormat for the current log entry to a value passed to the function. The value passed to it must be either ‘F’ or ‘R’. The default value is ‘F’. This function should be called by main program. (See below).
Overloaded Insertion Operator Function :
An overloaded insertion operator function to display the information in a log entry to the screen.
This function should output the details of the log entry onto a tabular report on the screen. An example of this output for 4 log entries is as follows. You should note that the format of the date displayed in the report may be different from the format used to store it in the log entry. Your function will need to manipulate the date from the stored format to that required for the report display.
You should also note that the message is wrapped if it is longer than 30 characters; and that the wrapping does not split up any words.
0001 01-01-2000 0100 ML Turnbull William Smith entered the
building to deliver flowers.
0002 01-01-2000 0134 ML Turnbull William Smith exited the
building.
0003 01-01-2000 0500 ML Turnbull Staff changeover, Turnbull
off, Schlotzer on.
0004 01-01-2000 0516 A Schlotzer Garbage truck collected
contents of 2 wheeley bins.
Main Program :
The LogEntry class will be used in a test application program that you will write. The test application will allow the user to enter up to 20 log entries and be able to display a summary report of the log contents. A sample of the type of report your test program should produce is as follows.
ID Date Time Init Surname Message
---- ---------- ---- ---- -------------------- ------------------------------
0001 01-01-2000 0100 ML Turnbull William Smith entered the
building to deliver flowers.
0002 01-01-2000 0134 ML Turnbull William Smith exited the
building.
0003 01-01-2000 0500 ML Turnbull Staff changeover, Turnbull
off, Schlotzer on.
0004 01-01-2000 0516 A Schlotzer Garbage truck collected
contents of 2 wheeley bins.
Your main program should declare the following data fields.
Field Data Type Description
NextAvailableLogID Unsigned Integer Initially, this item should be set to 1, and then incremented by 1 each time a new log entry is recorded. This variable enables the LogEntryID to be automatically allocated by the system to the next available number by the SetLogEntryID member function.
NumberOfLogEntries Unsigned Integer Initially, this item should be set to 0, and then incremented by 1 after each customer's account is validated by the Overloaded Input member function.
Your main program should also demonstrate all of the functionality in the LogEntry class. For example, this main program should:
Set the NextAvailableLogID to its initial value of 1.
Invoke the Default Constructor member function by declaring an array of type LogEntry of size 20.
Keep invoking the Overloaded Extraction member function for these log entries, until the user has recorded all 20 log entries or until the user does not want to record any more entries. During this phase, the program should :
Call the SetLogEntryID member function to automatically set the LogEntryID for the current log entry.
Increment the NextAvailableLogID. (See above).
Increment the NumberOfLogEntries. (See above).
Invoke the Display Report Headings member function.
Call the SetDateFormat member function to set the DateFormat for displaying each log entry.
Invoke the Overloaded Insertion member function for all log entries to display the details for each customer
|
|
|
|
|
I'll be more than happy to do your homework assignment for you if you can explain what Heba KURDI and Mona BENAISSA mean.
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
Ravi Bhavnani wrote:
Heba KURDI and Mona BENAISSA mean
it seems, they are his/her Project Guide!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
|
|
|
|
|
Hi,
I have a connection to a database with CDatabase via ODBC. The question is:
How to retrieve all tables of the database?
Bye.
Ivan Cachicatari
www.latindevelopers.com
|
|
|
|
|
|
|
I'm using database servers, MySQL, MSDE2000, Firebird..
I make the connection for any of this DBMS.
Ivan Cachicatari
www.latindevelopers.com
|
|
|
|
|
|
im trying to make a prog that finds all the files of a certain extension in a certain directory and then copies those files to another directory. I was wondering what to use to find the paths for the files: something similar to 'glob' from python or $findfile() from irc.
|
|
|
|
|
|
Is there a non-MFC version of CFileFind
|
|
|
|
|
|
Hi,
is it possible to fire an OLE Control Event out of a Class wich is simply derived from a wrapper class of an ActiveX Control?
for example: I have derived a class of CMSFlexGrid (the wrapper class of the MSFlexGrid ActiveX Control) and now I want to fire an userdefined Event wich should be handled by the parent window (Dialog)
Thanks in advance!!!
|
|
|
|
|
I need to read in from a file an array of structs and I don't know how. I have a file with a score and the frequency that it occurs the struct is set up as;
struct stats
{
int score;
int frequency;
};
the file contains 10 lines set up as score frequency
how do I set up the array and read it in from a file?
|
|
|
|
|
|
hi,
i have a code which works in normal user mode. but fails to send request when lauched from service.
it is giving ERROR_WINHTTP_SECURE_FAILURE (12175) im using ssl and digest authentication.
here is my code..
m_hIntOpen = WinHttpOpen(L"HereIm", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0)
m_hIntConnect = WinHttpConnect(m_hIntOpen,m_oszDomain, INTERNET_DEFAULT_HTTPS_PORT , 0)
BOOL bResults = WinHttpAddRequestHeaders( m_hOpenReq,MY_REQUEST_HEADER,-1,
WINHTTP_ADDREQ_FLAG_ADD )
WinHttpSetCredentials (m_hOpenReq,WINHTTP_AUTH_TARGET_SERVER,WINHTTP_AUTH_SCHEME_DIGEST,m_oszUserName,m_oszPassword,NULL)
inHttpSendRequest( m_hOpenReq,WINHTTP_NO_ADDITIONAL_HEADERS, 0,
lpvPostData, dwcbPostData,
dwcbPostData, 0))
any solutions?????
thanx
gP
|
|
|
|
|
gP_t_gr8 wrote:
WinHttpSetCredentials (m_hOpenReq,WINHTTP_AUTH_TARGET_SERVER,WINHTTP_AUTH_SCHEME_DIGEST,m_oszUserName,m_oszPassword,NULL)
Are you sure m_oszUserName and m_oszPassword has correct values, when running as service ?
suhredayan There is no spoon.
|
|
|
|
|
yes. these are some predefined values..
|
|
|
|
|
Hello
I want to enter a name from the user in console based program. I used gets function as written below
char name[40];
cout <<"Enter Name "; (i also checked puts here)
gets(name);
cout <<"Enter age ";
cin>>age;
But it prints message "Enter Name " and then with out prompting me for name, it goes to next statement i.e. "Enter age ".
Can anyone tell me why this happens or please tell me any other way to get input in array on console screen.
Thanks
Aqeel A. Mirza
cout <<"We Believe in Excellence";
|
|
|
|
|
Imho it's best not to mix STL (cin , cout ) and standard (printf , gets , etc.) I/O. Try this instead:
char name [40];
printf ("Enter name: ");
gets (name);
char age [40];
printf ("Enter age: ");
gets (age);
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
Limit the number of characters obtained from the stream that are to be put into the char array.
With gets, an error will occur when the number of characters entered is greater than the char array holder.
const int MAX_LENGTH = 20;
char szName[MAX_LENGTH];
cout << "Enter name: ";
cin.get(szName, MAX_LENGTH);
|
|
|
|
|
Hello
Thanks for reponse
When i use cin.get, program terminates without prompting me for other values
i.e. age, class, phone no.
Please tell me what i should do.
We Believe in Excellence
|
|
|
|
|
Sorry, I forgot to mention that the stream needs to be cleared. So, I wrote this bit of code and made it a static method.
This happens when you have a cin followed by another cin. I learnt about this recently as I too completed a similar task to yours. (Body of code was copied from another forum's thread)
// Purpose : Clear the Input stream
void ClearInputStream(istream& inputstream)
{
inputstream.clear();
while (inputstream.get() != '\n')
{}
};
|
|
|
|
|
Thank you, ddducky (Sorry! I do not know your name). This solves my problem.
cout <<"We Believe in Excellence"
|
|
|
|
|
Is there any message or virtual in MFC that asks the consumer "Can this control loose focus?" and sends the CWnd* or HWND of the control the user is trying to set focus to in the message or virtual?
I'm working on code where when the user leaves a control, the code needs to validate the control's data immediately. If the data is not valid, then a "bad user" messagebox shows and the control must retain focus. There is an exception though. If the user clicks on the "Cancel" or "Close" button or the "x" on the top right, then that's allowed because the user obviously wants to shut down the form so no validation is required.
But then it gets even more complex. The form has a dirty flag so if the form is "dirty", when the form shuts down, I have to ask the user if he/she wants to save the data. If the user clicks "Yes", then the control that previously had focus must be validated first. If it is invalid, then I have to set focus back to it.
From what I've researched, WM_KILLFOCUS is just a notification that the API sends in the middle of the focus change process. What I want is something that allows me to abort the focus change process completely.
I've put PostMessage code in my WM_KILLFOCUS handler to try to get around this but it gets really squirly and the logic just seems unstable. It gets really messy when the user tries to go from one property page to another on a property sheet.
Any ideas?
Peteman_R
Boise, Idaho
|
|
|
|
|