реклама на сайте
подробности

 
 
> Прошу помощи в написании простой тестовой программы, Пошаговое обучение программированию в VS2010
Alla_student
сообщение Oct 12 2012, 00:10
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146



Здравствуйте!

Хочу сразу признаться - опыта не было в написании программ на VS (C++). Есть опыт в написании на C. Но по долгу службы приходится обучаться этому ремеслу. Летом в небольшие промежутки свободного времени проштудировала книжки предложенные здесь для прочтения - в голове сумбур. Для наведения порядка ... в моей голове и реального обучению, лучше начинать писать небольшую программу. Так, как рядом (на работе) спецов нет, хочу попросить вас, уважаемые форумчане, помочь в написании программы - примера. Я не прошу написать всю программу (хотя полный текст ее был более удобен для изучения и повторения), а хотя бы части, функциональные блоки программы. Мне будет удобно, изучая эти блоки, понять приемы визуального программирования и соответсвенно написать свою. Теперь к требованиям этой тестовой - учебной программе:
Программа или блоки программы дложны быть написаны нв Visual Studio желательно более старшей версии - 2010 (но не старше). Можно и в предыдущих вплоть до VC6.0. Гланое условие - без использования NET. После запуска программы, она должна работать (открыть порт COM1 со стандартной установкой: старт; 8бит; стоп скорость 9600 бод, если будет предварительный выбор порта с установкой параметров- то еще лучше) и принимать три байта: 1й байт всегда стартовая метка CA, второй - B1 отображается на панели светодиодов сменой картики светодиод зажен или нет, третий B2 отображается на графике ось ординат от 0 до 255. Ось абцисс - номер пакета от 0 до 255, при превышении номера пакета 255 - опять с нуля и стирается старый график. Программа так же должна уметь передавать по COM порту данные при нажатии кнопки send - два байта: первый - стартовый CA, второй - байт данных устанавливатся битовым полем Checkbox. При запуске программы должна открыться база SQL и внее должны записываться принимаемые данные соответственно по полям: N - номер пакета (long?), B1 байт данных (char), второй байт данных B2 (char). При выходе из программы база закрывается.
Из всего выше перечисленного хочется понять как работать:
1) Работа с COM портом. Прием и передача простых 2-х и 3-х байтовых пакетов.
2) Работа с базой данных SQL инициализация, открытие, запись (желательно чтение) полей, закрытие. Возможно что то я не учла.
3) Вывод форматированных данных в окно большим шрифтом (что то типа индикатора, дисплея).
4) Вывод бинарных данных в поле имитирующее светодиоды.
5) Опрос поля Checkbox (хотелось конечно, чтобы было поле выключателей OFF/ON).
6) Работа с Plot функцикей - вывод графика.
Дополнительно - этого нет выше:
7) Вывод принятых данных в виде лога (в скролинговое окно - забыла как оно точно называется) и в тектовый файл, который то же надо открыть или создать, если его нет, ну и закрыть после работы с ним.

Прошу, кто имеет немного свободного времени, помочь в написании этих блоков программы, желательно с небольшими комментариями. Пускай не сразу все, а по кусочкам.. Я думаю это многим поможет, не только мне, в написании своих первых программ на VS, да и не только.
Заранее Спасибо!
Далее в виде изображения требования к программе:

Сообщение отредактировал Alla_student - Oct 12 2012, 00:22
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Genadi Zawidowsk...
сообщение Oct 13 2012, 21:08
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Да не пропал я...

Вы упомянули о хотении добавлять записи в sql базу... Я делал для себя обёртку над ADODB, к сожалению плохо приспособлена для передачи кому-то, а исходинки (архив проектов, который надо передавать для такого случая) занимает под несколько мегабайт.
Принцип - срисован с persistent layer какого-то явовского проекта.

Отдельно существуют классы, описывающие структуру базы данных. А использование - вот такое (заполнение некоего списка из двух колонок на экране:

Код
void CPultsNamesDlg::fromDatabase()
{
    VERIFY(m_lstPults.DeleteAllItems());

    CAbonentsBriefVo vo(lConnection.getConnection());
    CTrue t1;

    COrderBy ord0(vo, vo.chnl, false);


    COrdersList ordlist;
    ordlist.AddTail(& ord0);

    PARS rs;
    CVariantPtrList results;    // list of fields to set results from recordset

    if (!vo.select(& t1, & ordlist, rs, results))
        return;

    while (! rs->BOF && ! rs->adoEOF)
    {
        vo.fillResults(rs, results);
        //
        const long chnl = V_I4(& vo.chnl.value);
        vo.abdescription.value.ChangeType(VT_BSTR);

        CString sChnl;

        sChnl.Format(_T("%ld"), chnl + 1);
        //
        int iTem = m_lstPults.InsertItem(INT_MAX, sChnl);
        m_lstPults.SetItemText(iTem, 1, V_BSTR(& vo.abdescription.value));
        m_lstPults.SetItemData(iTem, V_I4(& vo.id.value));

        //
        rs->MoveNext();
    }
    updateButtons();    
}



Код
////////////////////////////////
//
class CAbonentsEntity : public CEntity
{
public:
    CFieldDef id;        // primary key field
    CFieldDef ts;
    CFieldDef chnl;
    CFieldDef abdescription;

    CAbonentsEntity() :
        id(_T("ABONENT_ID"), ADODB::adInteger, * this),
        ts(_T("TS"), ADODB::adBigInt, * this),
        chnl(_T("CHANNEL"), ADODB::adInteger, * this),
        abdescription(_T("ABDESCRIPTION"), ADODB::adVarWChar, * this)
    {

    }
        
    //
    // This function should be implemented in delivered classes
    // Name of database table holding this entity
    virtual CString getEntityName() const
    {
        return _T("RE_ABONENTS");
    }

    //
    // This function should be implemented in delivered classes
    // Name of database table holding this entity
    virtual const CFieldDef & getPKFieldDef() const
    {
        return id;
    }
    virtual const CFieldDef & getTsFieldDef() const
    {
        return ts;
    }

};

extern const CAbonentsEntity abonentsEntity;


Сообщение отредактировал Genadi Zawidowski - Oct 13 2012, 21:21
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alla_student   Прошу помощи в написании простой тестовой программы   Oct 12 2012, 00:10
- - fox1   Ну уж если так хочется на Visual C++ (на C# намног...   Oct 12 2012, 05:17
- - XVR   Жуть. Пляски с SecurityDescriptor не нужны - вы ж...   Oct 12 2012, 09:18
|- - Alla_student   Цитата(XVR @ Oct 12 2012, 12:18) Жуть. П...   Oct 12 2012, 10:44
|- - SyncLair   Цитата(XVR @ Oct 12 2012, 13:18) К ТС - п...   Oct 20 2012, 15:50
|- - Alla_student   Цитата(SyncLair @ Oct 20 2012, 19:50) Под...   Oct 20 2012, 16:15
|- - SyncLair   Цитата(Alla_student @ Oct 20 2012, 20:15)...   Oct 20 2012, 16:42
- - fox1   SecurityDescriptor обязателен начиная с Windows XP...   Oct 12 2012, 11:22
|- - Alla_student   Цитата(fox1 @ Oct 12 2012, 14:22) Securit...   Oct 12 2012, 11:30
|- - XVR   Цитата(fox1 @ Oct 12 2012, 15:22) Securit...   Oct 12 2012, 11:58
|- - Alla_student   Цитата(XVR @ Oct 12 2012, 14:58) ... Угу,...   Oct 12 2012, 13:15
|- - XVR   Цитата(Alla_student @ Oct 12 2012, 17:15)...   Oct 13 2012, 09:18
|- - Alla_student   Цитата(XVR @ Oct 13 2012, 13:18) ... Вам ...   Oct 13 2012, 12:41
||- - RabidRabbit   Цитата(Alla_student @ Oct 13 2012, 16:41)...   Oct 15 2012, 05:34
||- - XVR   Цитата(Alla_student @ Oct 13 2012, 16:41)...   Oct 15 2012, 08:00
||- - Alla_student   Цитата(XVR @ Oct 15 2012, 11:00) Запросы ...   Oct 15 2012, 10:03
|- - _pv   RE: Прошу помощи в написании простой тестовой программы   Oct 13 2012, 13:23
|- - Alla_student   Цитата(_pv @ Oct 13 2012, 16:23) ну с под...   Oct 13 2012, 18:26
|- - _pv   Цитата(Alla_student @ Oct 14 2012, 00:26)...   Oct 13 2012, 19:49
- - fox1   Ок )) Начните с создания приложения Visual С++ MF...   Oct 12 2012, 11:41
- - fox1   SecurityDescriptor обязателен начиная с Windows XP...   Oct 12 2012, 12:29
|- - RabidRabbit   Цитата(fox1 @ Oct 12 2012, 16:29) Это код...   Oct 12 2012, 13:00
|- - _Артём_   Цитата(RabidRabbit @ Oct 12 2012, 16:00) ...   Oct 12 2012, 13:17
- - Genadi Zawidowski   Вот так выглядела моя программа, написанная по пох...   Oct 12 2012, 16:12
|- - Alla_student   Цитата(Genadi Zawidowski @ Oct 12 2012, 20...   Oct 12 2012, 21:39
|- - Alla_student   Вопрос ко всем: Насколько я поняла, в VS2010 конст...   Oct 15 2012, 00:04
- - fox1   Насчет SECURITY_ATTRIBUTES )) lpSecurityAttribute...   Oct 15 2012, 10:46
|- - XVR   Цитата(fox1 @ Oct 15 2012, 14:46) Windows...   Oct 16 2012, 10:47
||- - _Артём_   Цитата(XVR @ Oct 16 2012, 13:47) Залез в ...   Oct 16 2012, 11:21
||- - XVR   Цитата(_Артём_ @ Oct 16 2012, 15:21) Диза...   Oct 16 2012, 11:24
||- - Alla_student   Вопрос по QT -> QT c официального сайта Nokia с...   Oct 20 2012, 12:33
|- - XVR   -- дубль получился   Oct 16 2012, 10:57
- - RabidRabbit   Зачем сразу CMAKE, когда QT'шный qmake замечат...   Oct 20 2012, 18:31
|- - SyncLair   Цитата(RabidRabbit @ Oct 20 2012, 22:31) ...   Oct 20 2012, 18:51
|- - Alla_student   Цитата(RabidRabbit @ Oct 20 2012, 21:31) ...   Oct 21 2012, 14:27
|- - Cosmojam   Цитата(Alla_student @ Oct 21 2012, 17:27)...   Oct 21 2012, 15:54
- - Владимир Иванов   очень интересно   Oct 21 2012, 15:34
- - яман-тау   Может здесь что нибудь найдете   Oct 21 2012, 16:20


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 11:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01406 секунд с 7
ELECTRONIX ©2004-2016