|
Kindly gurus,
Assist me in the below questions. I am new in C++ and even don't know where to start. Please somebody help me out
Write a program using functions that prompts for the input of social security numbers upto a maximum of 10. Store the social security numbers in a two dimensional array of characters. Ask if the array of social security numbers is to be sorted in ascending or descending order, then call a bubble sort function that you write to sort the array. The program should print the unsorted list first, sort the list, then print the sorted list. The bubble sort algorithm is as follows:
A. Start with the first two array elements.
B. Compare the elements and exchange them if the
compare function indicates they should be swapped.
C. Bump up one element and repeat step B.
D. Continue until the end of the array is reached.
E. Repeat steps B -> D decreasing the upperlimit on
the array by one for each iteration of the loop.
In other words, stop one element short of the
previous iteration in the main loop.
F. End the sort if:
1. No exchanges occur during an iteration or
2. The upper limit for the loop reaches one.
|
|
|
|
|
Member 8856752 wrote: Assist me in the below questions.
You haven't asked any questions.
Member 8856752 wrote: Please somebody help me out
See here[^].
|
|
|
|
|
Member 8856752 wrote: Write a program That looks very like an instruction telling you to do some assignment for school or college. So, if someone here wrote it for you, would you still expect to submit it as your own work?
It would be better if you made an effort to write at least part of it, and come back here with more specific issues when you get stuck.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Since you've already written the pseudo-code, it should be straightforward to convert it to working code.
Anyway, you can always do:
- an internet search for "bubble sort implementation in C++"
- then compare the steps there with the ones you've listed
- modify the code there to suit your requirements
- run and test it
- and, most important, make sure that you understand, and are able to explain each line of your code.
|
|
|
|
|
Hi All,
i need to return input value after press enter. how to make it. need little help.
the main think here that i have to make function that return value after press Enter.
here is link of project file.
https://skydrive.live.com/redir?resid=78B222720843DE16!116&authkey=!AAjKOKZHSd-q9lI
i have a dialog box with 2 EditBox (m_TxInput and m_TxOutPut) and 2 Button for (GetString and GetNumber)
i made class CMyTextBox for m_TxInput . here is code below. i have 2 function GetString and GetNumber in CMyTextBox Class. i am calling these function on button down in dlg.
class CMyTextBox : public CEdit
{
public:
CMyTextBox();
public:
public:
bool InFlag; CString RetVal;
public:
CString GetString();
double GetNumber();
virtual ~CMyTextBox();
protected:
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
DECLARE_MESSAGE_MAP()
};
void CMyTextBox::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if (nFlags == 28) GetWindowText(RetVal);
CEdit::OnKeyDown(nChar, nRepCnt, nFlags);
}
double CMyTextBox::GetNumber()
{
if (InFlag == true)
return atof(RetVal);
return 0;
}
CString CMyTextBox::GetString()
{
if (InFlag == true)
return RetVal;
return "";
}
Thanks
Amrit
modified 2-Nov-12 14:29pm.
|
|
|
|
|
This is not the best way to implement a dialog. You should allow the user to fill in the various fields and then capture the data when the OK button is pressed. In general you do not need to check for key down characters, since most CEdit classes offer other methods and events for checking the content, and the CDialog class offers the UpdateData() [^] method to capture all fields.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
well, this is what i have to complete task. it is required.
|
|
|
|
|
Fine, you do it any way you want.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
I felt three problems.
1) InFlag is always false. You have to set it to true from OnKeyDown with Enter key.
if (nFlags == 28) {
InFlag = true;
GetWindowText(RetVal);
}
2) Please ensure you added ON_WM_KEYDOWN() in message map of CMyTextBox class.
3) Normally an Edit control will not get Enter key press, On Enter keypress, focused button click action will be performed.
One option is to change the style of your Edit control to Multi-line. Change MultiLine to true, or enable ES_MULTILINE for the CMyTextBox window style.
Another option is to identify enter keypress from PreTranslateMessage(), if "VK_ENTER" key down is occurred from edit control set your InFlag to true.
|
|
|
|
|
yes i have add InFlag = true; it is not working.
CString CMyTextBox::GetString()
{
if (InFlag == true)
return RetVal;
return "";
}
it is call form dialog class here is code.
void CRetValTestDlg::OnGetString()
{
m_TxInput.InFlag = false;
CString s = m_TxInput.GetString();
m_TxOutput.SetWindowText (s);
}
void CRetValTestDlg::OnGetNumber()
{
m_TxInput.InFlag = false;
CString s;
double d = m_TxInput.GetNumber();
s.Format ("%d",d);
m_TxOutput.SetWindowText (s);
}
i would like to upload project file for review. if possible.
|
|
|
|
|
Few comments.
1) First statement of CRetValTestDlg::OnGetString() set InFlag to false. Therefore m_TxInput.GetString() will return "".
Move InFlag = false to CRetValTestDlg::OnGetString(). Accessing a member variable outside of class is not a good.
2) First statement of CRetValTestDlg::OnGetNumber() set InFlag to false. Therefore m_TxInput.GetString() will return 0. Move InFlag = false to CRetValTestDlg::OnGetNumber().
3) modify CMyTextBox::OnKeyDown() like this
if (nFlags == 28)
{
InFlag = true;
GetWindowText(RetVal);
}
4) Need to identify Enter KeyPress in your EditControl. 3) Normally an Edit control will not get Enter key press, On Enter keypress, focused button click action will be performed.
One option is to change the style of your Edit control to Multi-line. Change MultiLine to true, or enable ES_MULTILINE for the CMyTextBox window style.
Another option is to identify enter keypress from PreTranslateMessage(), if "VK_ENTER" key down is occurred from edit control set your InFlag to true.
|
|
|
|
|
yes i did as you said.
the functions does not work. because functions does not wait for Enter.
The function call from outer class so that InFlag has to false until press enter but with out press enter function ends. the function is not giving chance to press Enter or type any text to Edit box.
|
|
|
|
|
Which function ?
On every key press, CMyTextBox::OnKeyDown() will call. But Enter will not called. Its reason is "Enter" keypress will consider as Action of currently focused button. please change the MultiLine property of EditBox and check whether enter is recieved in KEyDown
|
|
|
|
|
keyDown received Enter. that is not a problem. but if you see my code you will find that function does not wait for enter. function are (double CMyTextBox::GetNumber() and CString CMyTextBox::GetString()) they have to wait until press enter. i think the problem is this.
here is link of project file.
https://skydrive.live.com/redir?resid=78B222720843DE16!116&authkey=!AAjKOKZHSd-q9lI
please kindly check test project.
|
|
|
|
|
Please move GetWindowText() to CMyTextBox::GetNumber() and CMyTextBox::GetString(). CMyTextBox::OnKeyDown() will not give text values.
CRetValTestDlg::OnGetString() still calls m_TxInput.InFlag = false; Please remove it.
|
|
|
|
|
no no. this is not a way what i need. i need to get value after press Enter Key.
|
|
|
|
|
"After press Enter key" I can undestand that you need to get the String and Number values on pressing Enter key.is it right ?
|
|
|
|
|
Yes. when it call function. like GetString();
|
|
|
|
|
If you can override PreTranslateMessage() in your Dialog class, you can track Enter press from PreTranslateMessage().
BOOL CRetValTestDlg::PreTranslateMessage(MSG* pMsg)
{
if( pMsg->message == WM_KEYDOWN &&
pMsg->wParam == VK_RETURN &&
pMsg->hwnd == GetDlgItem( IDC_TX_INPUT )->m_hWnd)
{
}
return CDialog::PreTranslateMessage(pMsg);
}
|
|
|
|
|
yes this is the part which i did not understand. how it goes to GetString or GetNumber function. because PreTranslateMessage in Dlg class. and GetString and GetNumber function in other class. so how it will connect with each other. and how it trap event from one class to other class function. i would like to request for little more detail and step. how it work?
if that is just need to get number or string and put in variable it will be ok. but the value should return from function.
|
|
|
|
|
PreTranslateMessage in Dlg class. and GetString and GetNumber function in other class. so how it will connect with each other.
You can directly call m_TxInput.GetString() and m_TxInput.GetNumber() from PreTranslateMessage().
If you want to send a message to CMyTextBox class, you can call PostMessage() with a USER function to the edit control.
|
|
|
|
|
Thanks. but i don't know about it. is it possible to give one working example. it will be great help for me. please consider i am learning.
|
|
|
|
|
I have been following this thread and I think you are painting yourself into a corner. You could make this so much easier for yourself by using the standard messages and notifications available to a dialog and its child controls.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
well sir, i am just learning and doing work. i don't have much idea about it. so i request for help. i am trying this from all most a week. i google it and did not found simillar to what i am looking for. maybe because i don't have enough knowledge. so..
hoping to get help from some kind heart.
|
|
|
|
|
Member 2119844 wrote: hoping to get help from some kind heart. Which is what I offered to you yesterday. Use the features of the CDialog and its controls rather than struggling to try and interpret individual keystrokes that are already captured for you. Text boxes have events that you can capture as characters are entered into them, which allow you to check and/or modify their content. The CDialog class has a function that will capture or refresh all the data between the dialog and the associated class variables etc.
One of these days I'm going to think of a really clever signature.
|
|
|
|