1 Screenshot
2 Source code
/*
* QuickSort.cpp
* Copyright (c) 2015 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED.
*/
// SOL++2000
// 2000.02.18
#include <sol\ApplicationView.h>
#include <sol\Stdio.h>
#include <sol\QuickSorter.h>
#include <sol\ScrolledText.h>
#include <sol\String.h>
#include <sol/StringConverter.h>
#include <sol/StringT.h>
#include "resource.h"
namespace SOL {
class AppView :public ApplicationView {
private:
ScrolledText text;
public:
/**
* Constructor
*/
AppView(Application& applet, const TCHAR* label, Args& args)
:ApplicationView(applet, label, args)
{
Args ar;
text.create(this, NULL, ar);
add(text);
// Add an eventhandler start to handle a user-defined event.
addEventHandler(WM_USER+300, this,
(Handler)&AppView::start, NULL);
addCallback(XmNmenuCallback, IDM_EXIT, this,
(Callback)&AppView::exit, NULL);
// Post the user-defined event.
post(WM_USER+300, 0, 0);
}
private:
long start(Event& event)
{
static int integers[] = {
1, 200, 3, 11, 0,
500, 20, 600, 30
};
static wchar_t* strings[] = {
L"orange", L"banana", L"apple", L"melon", L"grape",
};
static char* cstrings[] = {
"USA", "Russia", "China", "Taiwan", "England",
"Japan", "France", "Germany",
};
QuickSorter qsorter1;
// Sort an array of integers.
qsorter1.sort(integers, XtNumber(integers));
qsorter1.wait();
// Sort an array of TCHAR*.
QuickSorter qsorter2;
qsorter2.sort(strings, XtNumber(strings));
qsorter2.wait();
static Object* objects[10];
int num = 0;
objects[num++] = new String("dog");
objects[num++] = new String("sheep");
objects[num++] = new String("pig");
objects[num++] = new String("cat");
objects[num++] = new String("hen");
objects[num++] = new String("ox");
// Sort an array of instances of String.
QuickSorter qsorter3;
qsorter3.sort(objects, num);
qsorter3.wait();
// Sort an array of instances of String.
QuickSorter qsorter4;
qsorter4.sort(cstrings, XtNumber(cstrings));
qsorter4.wait();
int i = 0;
for (i = 0; i<XtNumber(integers); i++) {
text.printf(_T("%d \r\n"), integers[i]);
}
text.printf(_T("--------------------\r\n"));
for (i = 0; i<XtNumber(strings); i++) {
text.printf(_T("%s \r\n"), strings[i]);
}
text.printf(_T("--------------------\r\n"));
for (i = 0; i<num; i++) {
String* string = (String*)objects[i];
text.printf(_T("%s \r\n"), (const TCHAR*)(*string));
}
text.printf(_T("--------------------\r\n"));
for (i = 0; i<XtNumber(cstrings); i++) {
StringConverter converter;
StringT<TCHAR> tstring;
converter.convert(cstrings[i], tstring);
text.printf(_T("%s \r\n"), (const TCHAR*)tstring);
}
return 0L;
}
};
}
//
void Main(int argc, TCHAR** argv)
{
ModuleFileName module(argv[0]);
const TCHAR* name = module.getFileName();
try {
Application applet(name, argc, argv);
Args args;
AppView appView(applet, name, args);
appView.realize();
applet.run();
} catch (Exception& ex) {
caught(ex);
} catch (...) {
caught(UnknownException());
}
}
Last modified: 1 Feb 2017
Copyright (c) 2017 Antillia.com ALL RIGHTS RESERVED.