Міністерство освіти і науки, молоді та спорту України
Сумський державний університет
Кафедра комп`ютерних наук
Курсова робота
з курсу «Системне програмування»
варіант 10
Виконала:
студентка групи ІН-91
Татарченко А. С.
Перевірила:
Скаковська А.М.
Суми-2012
Задача 1
Умова задачі
Створити та виконати однодокументну Windows- програму на «рідному» С++ з використанням бібліотеки MFC. Передбачити запуск з меню fileдіалогового режиму, зчитування з вікна текстового редактора вихідних даних для табуляції функції, запуск процесу табуляції, вивід результатів в вікно списку, а також у файл при виборі пункту меню file ->save або file ->save as та подальше зчитування з диску по file->open.
Опис виконання роботи
1)Create project odz1 : Project types- MFC,
Templates- MFC Application, Application type - single document.Убрати флажок Use Unicode libraries.
2) Додати пункт меню File/Show dialog….
3) Створити обробник події вибору цього пункту меню та залишити його поки що порожнім.
4) Створити діалогове вікно. Розмістити у ньому кнопку «Пуск», три текстових вікна ab| Edit control і один List box. Проти кожного з вікон ab|Edit control в вікнах Aa Static Text розмістити символічні назви відповідних змінних.
5) Натиснути на діалоговому вікні, викликати контекстне меню Add class. В появленому вікні ввести ім’я діалогового класу Dlg.
6) В класс Dlg додати елементи даних medit1, medit2, medit3 для трьох вікон ab|Edit control. Для List box додати елемент даних mlist1. Викликати для нього properties та вимкнути сортування (в рядку Sort увстановити false). Створити обробник події вибору кнопки «Пуск».В ньому запрограмувати табуляцію функції:
Обробник має вигляд:
voidDlg::OnBnClickedButton1()
{
CString s1;
double x,an,da,ak,a, b;
medit1.GetWindowTextA(s1);
an=atof(s1);
medit2.GetWindowTextA(s1);
da=atof(s1);
medit3.GetWindowTextA(s1);
ak=atof(s1);
medit4.GetWindowTextA(s1);
b=atof(s1);
s1.Format("Результаты:");
for(a=an;a<=ak;a+=da)
{
if(a>=b)
{
x=pow(pow(a,2),1/2)+exp(1+a*b);
s1.Format(" a=%lf x=%lf",a,x);
mlist.AddString(s1);
}
else
{
x=pow(tan(abs(a+pow(b,1/2))),2);
s1.Format(" a=%lf x=%lf",a,x);
mlist.AddString(s1);
}
str+=s1;
}
}
Щоб він працював, в файл Dlg.cpp необхідно додати #include”Dlg.h” та #include<math.h>.
Тут використовується локальна змінна CString s1.
Необхідно звернути увагу на те, що в циклі формується str типу CString, яка є елементом данних класу Dlg.
7) Заповнити обробник події вибору пункту меню «Show Dialog». Обробник має вигляд:
void Codz1View::OnMenu()
{
Dlg dlg1;
int rezult=(int)dlg1.DoModal();
if(rezult==IDOK)
{
Codz1Doc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
if(!pDoc)
return;
pDoc->m_stroka=dlg1.str;
Invalidate();
}
}
В ньому відбувається копіювання інформації з елемента даних str класса Dlg в елемент даних m_stroka класса odz1. Це необхідно для того щоб здійснити серіалізацію отриманих результатів.
8) Тепер необхідно вивести строки символів m_stroka на екран в клієнтську область. Для цього використовуємо функцію OnDraw()класу Codz1View. Функція має вигляд:
void Codz1View::OnDraw(CDC* pDC)
{
Codz1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
pDC->TextOutA(0,0,pDoc->m_stroka);
}
9) Заповнимо функцію Serialize(). Для цього виберемо вкладку Class View, виділимо класс Codz1Doc, з методів цього класу виберемо Serialize() та додамо до неї коди вивода на диск та зчитування з нього.
Функція має вигляд:
void Codz1Doc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar<<m_stroka;//Вывод m_stroka в файл на диск
// TODO: add storing code here
}
else
{
ar>>m_stroka;//чтение из файла
// TODO: add loading code here
}
}
10) Необхідно забезпечити очистку екрану при створенні нового документа. Для цього необхідно виділити клас C odz1Doc, розкрити метод OnNewDocument(). В нього додати обнулювання рядка символів m_stroka, а також функцію UpdateAllViews(NULL) . Вона інформує усі види , пов’язані з документом, що цей документ був модифікований та має бути оновлення усіх видів програми новими даними документа. Функція має вигляд:
BOOL Codz1Doc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
m_stroka="";
UpdateAllViews(NULL);
return TRUE;
}
Программа готова.
Результат роботи програми
Задача2
Умова задачі
Створити проект консольного додатку Win 32, який містить клас “figura” з полями name, a, b, h. Передбачити функції-члени:
- Для введення значень елементів даних з клавіатури;
- Для розрахунку периметру, площі та об’єму фігури;
- Виведення на екран значеньвихідних даних та обчислень величин;
У головній функції описати об’єкт класу і реалізувати виклик всіх членів-функцій .
Опис виконання роботи:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.