WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Розробка обўєктно-орієнтованих програм мовою C++ в середовищі Windows 95/98 (на основі бібліотеки MFC пакету VISUAL C++ 6.0) - Курсова робота

Розробка обўєктно-орієнтованих програм мовою C++ в середовищі Windows 95/98 (на основі бібліотеки MFC пакету VISUAL C++ 6.0) - Курсова робота

) - таблиця реакцій, якя зв'язує вибір команди меню з відповідною функцією обробки;
class CPashaWnd:public CFrameWnd
{
public:
CPashaWnd();
protected:
protected:
afx_msg void OnOpen();
afx_msg void OnSaveAs();
afx_msg void OnQuit();
afx_msg void OnDelete();
afx_msg void OnPaint();
afx_msg void OnInput();
afx_msg void OnHelp();
afx_msg void OnRun();
afx_msg void OnResult();
afx_msg void OnInfo();
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CPashaWnd, CFrameWnd)
ON_COMMAND(ID_OPEN,OnOpen)
ON_COMMAND(ID_SAVE,OnSaveAs)
ON_COMMAND(ID_DELETE,OnDelete)
ON_COMMAND(ID_QUIT,OnQuit)
ON_COMMAND(ID_INPUT,OnInput)
ON_COMMAND(ID_HELP,OnHelp)
ON_COMMAND(ID_RUN,OnRun)
ON_COMMAND(ID_INFO,OnInfo)
ON_COMMAND(ID_RESULT,OnResult)
ON_WM_PAINT()
END_MESSAGE_MAP();
void CPashaWnd::OnInput()
{
}
void CPashaWnd::OnHelp()
{
}
void CPashaWnd::OnRun()
{
}
void CPashaWnd::OnResult()
{
}
void CPashaWnd::OnInfo()
{
}
CPashaWnd::CPashaWnd()
{
Create(NULL,"My program",
WS_OVERLAPPEDWINDOW,rectDefault,NULL,
MAKEINTRESOURCE(IDR_MENU1)); };
7.Робота з файлами в Visual C++6.0
Зручний багатофункціональний інтерфейс даної роботи передбачає також і роботу з файлами, їх зберігання, відкриття, знищення, що є зручним для користувача. Робота з файлами здійснюється за допомогою бібліотеки .
Всі функції роботи з файлами знаходяться в меню в пункті File:
Open Save Delete
Вибираємо потрібну нам функцію та файл, з яким будемо працювати за допомогою миші.
В змінній DlgOpen.GetPathName зберігається ім'я файлу.
Функції реалізовані слідуючим чином: Open
void CPashaWnd::OnOpen()
{
CString m_Text;
створення стандартної панелі вибору файлу Open
CFileDialog DlgOpen(TRUE,(LPCSTR)"*",NULL,
OFN_HIDEREADONLY,(LPCSTR)" ALL Files (*.*) |*.*||");
відображения стандартної панелі вибору файлу
if(DlgOpen.DoModal()==IDOK)
відкриття файлу і зчитування:
FILE *f = fopen(dlg.GetPathName(), "rt");
if (f == NULL)
{
AfxMessageBox("Can'topen file");
return;
}
int i;
char str[101], acBuf[1001];
acBuf[0] = '';
for (i = 0; i < 10; i++)
{
if (fgets(str, 100, f) == NULL)
break;
::lstrcat(acBuf, str);
}
MessageBox(acBuf, dlg.GetPathName(),
MB_ICONINFORMATION | MB_OK);
fclose(f);
}
Save
void CPashaWnd::OnFSaveAs()
{
char filter[] = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*|";
CFileDialog dlg(FALSE, "*.txt", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, filter);
if (dlg.DoModal() == IDOK)
{
FILE *f = fopen(dlg.GetPathName(), "wt");
if (f == NULL)
{
AfxMessageBox("Can'topen file");
return;
}
char acBuf[400];
if (fMatrFilled)
{
Calc();
::wsprintf(acBuf, "Result = %d", result);
}
else
::strcpy(acBuf, "Matrix has not inputed");
fputs(acBuf, f);
::wsprintf(acBuf, "File : %s succesfully saved", dlg.GetPathName());
MessageBox(acBuf, "File Saving",
MB_ICONEXCLAMATION | MB_OK);
fclose(f);
}
}
Delete
void CPashaWnd::OnFDelete()
{ char filter[ ] = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*|";
CFileDialog dlg(TRUE, "*.txt", NULL, OFN_HIDEREADONLY, filter);
if (dlg.DoModal() == IDOK)
{
::remove(dlg.GetPathName());
MB_ICONINFORMATION | MB_OK);
}
}
Виведення повідомлення після виконання операції
MessageBox("Succesfully deleted", dlg.GetPathName(),
6. Виконання обробки матриці на Асемблері
Основні функції Асемблера
Головні функції та переривання, що були використані при програмуванні на мові Асемблера в даній курсовій роботі:
Функція 03сh переривання 21h - створення файлу; в СХ - атрибути файлу, DS:DX - специфікація файлу. В АХ повертає значення відкритого каналу для цього файлу.
Функція 03dh переривання 21h - відкрити файл; в AL - режим доступу до файлу, DS:DX - специфікація файлу.
Функція 03eh переривання 21h - закрити файл; BX - номер каналу.
Функція 03fh переривання 21h - читання з файлу або пристрою; BX - номер каналу, СX - кількість байт, що зчитуються, DS:DX буфер.
Функція 042h переривання 21h - перемістити покажчик файлу; BX - номер каналу, CX:DX - зміщення покажчика.
Взаємодія Асемблера та проекту мовою VisualC++6.0
Для підключення файлу Асемблера до проекту треба виконати наступні дії:
Під час створення проекту задати режим не Win32, а 16.
Після створення проекту підключити до нього вручну сам файл Асемблера через контекстне меню.
Переписати в каталог, де міститься проект сам Асемблер "TASM32.EXE".
Написати програму на Асемблері за правилами інтерфейсу С++:
Повинна співпадати модель пам'яті (по умовчанню LARGE)
Використовувати скорочені назви сегменту.
Всі зовнішні імена на Асемблері повинні мати знак підкреслення "__".
Імена зовнішніх змінних і в Асемблері, і в С++ повинні бути однакові з урахуванням регістра.
Після введення даних в діалогове вікно вони записуються в файл "in.dat"
Програма на Асемблері зчитує з дані з цього файлу та перетворює їх в число.
Над даними виконати арифметичні дії.
Результати виконання програми записати в файл "out.dat".
Програма мовою Visual С++ зчитує ці дані з файлу і виводить результат на екран .
Якщо результат вивели на екран - основна задача та мета роботи досягнута.
Додаток 1.
Лістинг програми мовою С++ паекту Visual C++6.0
#include
#include "resource.h"
#include
#include
#include
#include
#include
#include
char str2[300];
int radio1=1,radio2=0,radio3=0; int t, i, j;
char str[80];
char buf1[80];
char buf2[80];
int matrix[20][20];
char str1[300],listStr[10];
int index,inde,ind=10;
short int average ,max,min;
class CMyDialog:public CDialog
{
public:
CString m_text;
CMyDialog():CDialog(IDD_DIALOG) { m_text=_T("text"); }
protected:
afx_msg void OnInput();
virtual void DoDataExchange(CDataExchange *pDX);
BOOL OnInitDialog();
afx_msg void OnLIST2();
afx_msg void OnLIST3();
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CMyDialog,CDialog)
ON_COMMAND(IDC_OK,OnInput)
ON_LBN_DBLCLK(IDC_LIST2,OnLIST2)
ON_LBN_DBLCLK(IDC_LIST3,OnLIST3)
END_MESSAGE_MAP()
void CMyDialog::DoDataExchange(CDataExchange *pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX,IDC_EDIT1,m_text);
//AfxMessageBox(m_text);
}
void CMyDialog::OnInput()
{
//CEdit*ped=(CEdit*)GetDlgItem(IDC_EDIT1);
//ped->GetWindowText(str1,sizeof(str1-1));
//AfxMessageBox(str1);
//CDialog::OnOk();
GetDlgItemText(IDC_EDIT1,str1,255);
{char t[10];
int arr[10];
int i=0,n=0,j=0,m=0;
while(str1[n]!='')
{
Loading...

 
 

Цікаве