Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovaya_rabota_Variant_6.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
293.69 Кб
Скачать

3.2 Равномерная и неравномерная дискретизация

После запуска программы появляется главное окно, которое содержит в себе поля для ввода минимального и максимального значений для Х, поля для ввода значений А и В, кнопка «График» и переключатель «Задание 2», который позволяет переключатся между типами дискретизации (Рис. 3.4). Чтобы провести равномерную дискретизацию, нужно ввести значения для Х и нажать на кнопку «График». После этого будут нарисованы 4 графика в соответствии с заданием (Рис. 3.5). Для перехода к неравномерной дискретизации необходимо нажать на переключатель «Задание 2». Чтобы вывести график неравномерной дискретизации нужно ввести значения для Х, а также значения А, В и нажать на кнопку «График» (Рис. 3.6). Числа А и В предназначены для формирования шага дискретизации.

Рис. 3.4

Рис. 3.5

Рис. 3.6

3.3 ТАБЛИЧНОЕ ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ И ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В ВИДЕ МНОГОЧЛЕНА

Для создания таблицы с кодами символов нужно ввести имя и нажать на кнопку «Таблица». После этого появится таблица с кодами (Рис. 3.7). Чтобы закодировать текст его нужно ввести в соответствующее поле и нажать на кнопку «Закодировать». После нажатия на кнопку, ниже появится закодированный текст и представление текста в виде многочлена (Рис. 3.8).

Рис. 3.7

Рис. 3.8

ЗАКЛЮЧЕНИЕ

В данной курсовой работе были разработаны программы и схема алгоритмов а также показана их реализация на языке программирования С++. Разработан простой и удобный интерфейс, не требующий определенных навыков и знаний, и позволяющий пользователю без проблем работать с программами. При выполнении курсовой работы были закреплены все знания по дисциплине “Теория информации и кодирования”.

СПИСОК ЛИТЕРАТУРЫ

  1. Франка П. С++. Учебный курс. – М.: Питер, 2003. – 528 c.

  2. Динман М. С++. Освой на примерах. – СПб.: БХВ-Петербург, 2006. – 377 c.

  3. Лаптев В. В. C++. Экспресс-курс. - СПб.: БХВ-Петербург, 2004. – 512 c.

  4. Крупник А.Б. Изучаем С++. - СПб.: Питер, 2004. – 254 c.

ПРИЛОЖЕНИЕ 1. ПРОГРАММНЫЕ КОДЫ.

  1. Обучающая программа

// CourseDlg.cpp

////////////////////////

#include "stdafx.h"

#include "Course.h"

#include "CourseDlg.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

CCourseDlg::CCourseDlg(CWnd* pParent /*=NULL*/)

: CDialog(CCourseDlg::IDD, pParent)

, m_edit_value(_T(""))

{

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

flag = true;

count = 1;

}

void CCourseDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

DDX_Control(pDX, IDC_EXPLORER1, m_browser);

DDX_Control(pDX, IDC_BUTTON1, m_button);

DDX_Control(pDX, IDC_BUTTON2, m_button2);

DDX_Control(pDX, IDC_BUTTON3, m_button3);

DDX_Control(pDX, IDC_STATIC8, m_static);

DDX_Control(pDX, IDC_EDIT1, m_edit);

DDX_Text(pDX, IDC_EDIT1, m_edit_value);

}

BEGIN_MESSAGE_MAP(CCourseDlg, CDialog)

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

//}}AFX_MSG_MAP

ON_BN_CLICKED(IDC_BUTTON1, &CCourseDlg::OnBnClickedButton1)

ON_BN_CLICKED(IDC_BUTTON2, &CCourseDlg::OnBnClickedButton2)

ON_BN_CLICKED(IDC_BUTTON3, &CCourseDlg::OnBnClickedButton3)

END_MESSAGE_MAP()

BOOL CCourseDlg::OnInitDialog()

{

CDialog::OnInitDialog();

SetIcon(m_hIcon, TRUE); // Set big icon

SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here

font.CreateFontA(

17, // nHeight

0, // nWidth

0, // nEscapement

0, // nOrientation

FW_NORMAL, // nWeight

FALSE, // bItalic

FALSE, // bUnderline

0, // cStrikeOut

ANSI_CHARSET, // nCharSet

OUT_DEFAULT_PRECIS, // nOutPrecision

CLIP_DEFAULT_PRECIS, // nClipPrecision

DEFAULT_QUALITY, // nQuality

DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily

"Tahoma");

m_static.SetFont(&font);

test.Create(IDD_FORMVIEW,this);

test.m_answer1.SetFont(&font);

test.m_answer2.SetFont(&font);

test.m_answer3.SetFont(&font);

test.m_answer4.SetFont(&font);

test.m_ch_answer1.SetFont(&font);

test.m_ch_answer2.SetFont(&font);

test.m_ch_answer3.SetFont(&font);

test.m_ch_answer4.SetFont(&font);

m_button2.ShowWindow(SW_HIDE);

m_browser.Navigate(_T("file://localhost/D:/Studio/project/Course/Course/1.html"),0,0,0,0);

return TRUE; // return TRUE unless you set the focus to a control

}

void CCourseDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

// Center icon in client rectangle

int cxIcon = GetSystemMetrics(SM_CXICON);

int cyIcon = GetSystemMetrics(SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CDialog::OnPaint();

}

}

HCURSOR CCourseDlg::OnQueryDragIcon()

{

return static_cast<HCURSOR>(m_hIcon);

}

void CCourseDlg::OnBnClickedButton1()

{

std::ifstream file("1.data",std::ios::in);

if(!file)

{

MessageBox("Ошибка!!! Не найден файл 1.data");

OnOK();

}

test.m_question = readStringFromFile(file).c_str();

test.m_answer1.SetWindowTextA(readStringFromFile(file).c_str());

test.m_answer2.SetWindowTextA(readStringFromFile(file).c_str());

test.m_answer3.SetWindowTextA(readStringFromFile(file).c_str());

test.m_answer4.SetWindowTextA(readStringFromFile(file).c_str());

test.UpdateData(false);

m_button.ShowWindow(SW_HIDE);

m_button2.ShowWindow(SW_SHOW);

::ShowWindow( m_browser.GetSafeHwnd(),SW_HIDE);

test.ShowWindow(SW_SHOW);

file.close();

}

std::string CCourseDlg::readStringFromFile(std::ifstream& file)

{

std::string data,buf;

while(!file.eof())

{

file >> buf;

if(buf == "%|")

break;

else

data += buf+" ";

}

return data;

}

void CCourseDlg::OnBnClickedButton2()

{

test.UpdateData(true);

std::string path;

switch(count)

{

case 1:

path = "2.data";

break;

case 2:

path = "3.data";

break;

case 3:

path = "4.data";

break;

case 4:

path = "5.data";

break;

case 5:

path = "4.data";

}

std::ifstream file(path.c_str(),std::ios::in);

if(!file)

{

MessageBox("Ошибка!!! Не найден файл");

OnOK();

}

switch(count)

{

case 1:

if(!test.m_answer4.GetCheck())

{

flag = false;

}

count++;

test.m_question = readStringFromFile(file).c_str();

test.m_answer1.SetWindowTextA(readStringFromFile(file).c_str());

test.m_answer2.SetWindowTextA(readStringFromFile(file).c_str());

test.m_answer3.SetWindowTextA(readStringFromFile(file).c_str());

test.m_answer4.SetWindowTextA(readStringFromFile(file).c_str());

test.UpdateData(false);

break;

case 2:

if(!test.m_answer2.GetCheck())

{

flag = false;

}

count++;

test.m_answer1.ShowWindow(SW_HIDE);

test.m_answer2.ShowWindow(SW_HIDE);

test.m_answer3.ShowWindow(SW_HIDE);

test.m_answer4.ShowWindow(SW_HIDE);

test.m_ch_answer1.ShowWindow(SW_SHOW);

test.m_ch_answer2.ShowWindow(SW_SHOW);

test.m_ch_answer3.ShowWindow(SW_SHOW);

test.m_ch_answer4.ShowWindow(SW_SHOW);

test.m_question = readStringFromFile(file).c_str();

test.m_ch_answer1.SetWindowTextA(readStringFromFile(file).c_str());

test.m_ch_answer2.SetWindowTextA(readStringFromFile(file).c_str());

test.m_ch_answer3.SetWindowTextA(readStringFromFile(file).c_str());

test.m_ch_answer4.SetWindowTextA(readStringFromFile(file).c_str());

test.UpdateData(false);

break;

case 3:

if(!test.m_ch_answer2.GetCheck() || !test.m_ch_answer3.GetCheck())

{

flag = false;

}

count++;

test.m_question = readStringFromFile(file).c_str();

test.m_ch_answer1.SetWindowTextA(readStringFromFile(file).c_str());

test.m_ch_answer2.SetWindowTextA(readStringFromFile(file).c_str());

test.m_ch_answer3.SetWindowTextA(readStringFromFile(file).c_str());

test.m_ch_answer4.SetWindowTextA(readStringFromFile(file).c_str());

test.UpdateData(false);

break;

case 4:

if(!test.m_ch_answer2.GetCheck() || !test.m_ch_answer4.GetCheck())

{

flag = false;

}

count++;

test.m_ch_answer1.ShowWindow(SW_HIDE);

test.m_ch_answer2.ShowWindow(SW_HIDE);

test.m_ch_answer3.ShowWindow(SW_HIDE);

test.m_ch_answer4.ShowWindow(SW_HIDE);

test.m_edit1.ShowWindow(SW_SHOW);

test.m_edit2.ShowWindow(SW_SHOW);

test.m_edit3.ShowWindow(SW_SHOW);

test.m_stat1.ShowWindow(SW_SHOW);

test.m_stat2.ShowWindow(SW_SHOW);

test.m_stat3.ShowWindow(SW_SHOW);

test.m_stat4.ShowWindow(SW_SHOW);

test.m_stat5.ShowWindow(SW_SHOW);

test.m_stat6.ShowWindow(SW_SHOW);

test.m_question = readStringFromFile(file).c_str();

test.m_stat1.SetWindowTextA(readStringFromFile(file).c_str());

test.m_stat2.SetWindowTextA(readStringFromFile(file).c_str());

test.m_stat3.SetWindowTextA(readStringFromFile(file).c_str());

test.m_stat4.SetWindowTextA(readStringFromFile(file).c_str());

test.m_stat5.SetWindowTextA(readStringFromFile(file).c_str());

test.m_stat6.SetWindowTextA(readStringFromFile(file).c_str());

test.UpdateData(false);

break;

case 5:

if(test.m_edit1_value != 3 || test.m_edit2_value != 1 || test.m_edit3_value != 2)

{

flag = false;

}

if(flag == true)

{

test.ShowWindow(SW_HIDE);

m_button2.ShowWindow(SW_HIDE);

CRect rect;

m_browser.GetWindowRect(&rect);

m_browser.Navigate(_T("file://localhost/D:/Studio/project/Course/Course/2.html"),0,0,0,0);

m_browser.SetWindowPos(0,10,10,857,470,SWP_SHOWWINDOW);

::ShowWindow( m_browser.GetSafeHwnd(),SW_SHOW);

m_button3.ShowWindow(SW_SHOW);

m_edit.ShowWindow(SW_SHOW);

m_static.ShowWindow(SW_SHOW);

}

else

{

MessageBox("Вы не прошли тест!");

OnCancel();

}

break;

}

file.close();

}

void CCourseDlg::OnBnClickedButton3()

{

UpdateData(true);

if(m_edit_value == "25")

{

MessageBox("Ответ правильный!");

OnCancel();

}

else

MessageBox("Неправильно!");

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]