Для того чтобы создать приложение, просмотреть текст программы или запустить её на выполнение – необходимо, чтобы на компьютере был установлена среда Mirsft Visul ++. Чтобы просмотреть текст программы Funtin или запустить её на выполнение – надо скопировать с носителя папку с проектом на жёсткий диск компьютера. Если надо просмотреть текст программы, шаблоны диалоговых окон и др., то следует открыть файл Funtin.dsw, являющийся файлом проекта.
Требования к техническому обеспечению
Для корректной работы программы необходимы IBM совместимый компьютер, операционная система семейства Windows версии 95/98/NT/, оперативная память 128 Mb и выше, свободное место на диске 3153 Кбайт под размещение приложения.
Вызов программы. Входные и выходные данные
Программа представляет собой единственный файл-приложение Tringl., запускаемое в любой операционной системе семейства Windows.
Входными данными является введенные пользователем длины сторон треугольника. Результаты своих вычислений программа выводит на экран.
|
|
Тестирование программы
Программа тестировалась стохастическим методом. Тестировался запуск программы, задавались неправильно заданные треугольники, вводились числа большого размера, ответа и подсчет результата. Выявленные незначительные ошибки функционирования были устранены.
В общем, программа работает без сбоев и может широко использоваться при обучении математике школьников и студентов.
Заключение
В ходе выполнения курсового проекта было создано Windows-приложение, которое вычисляет различные характеристики треугольника, заданного пользователем. Данная программа была написана на Mirsft Visul ++ 6.0 с использованием библиотеки MF.
В ходе разработки курсового проекта была освоена работа с Mirsft Visul ++. В результате чего была написана программа. Была освоена работа с различными элементами интерфейса, работа с мастерами Visul ++ 6.0.
Такие простые приложения и ему подобные, могут широко внедряться в различных сферах человеческой деятельности. Можно написать подобные программы на языке программирования Mirsft Visul ++ с использованием библиотеки MF для создания других приложений.
Список литературы
1. «Основы программирования на Visul ++», методические указания по курсу «Технология программирования» для специальности 220200,071900
2. Кейт Грегорий «Использование Visul ++ 6.0», М, СПб, К.: издательский дом «Вильямс», 2000.
3. Черносвитов А., «Visul ++ и MF. Курс MSD для профессионалов.» – СПб: Издательство «Питер», 2000.
4. Паппас К., Мюррей У. «Полное руководство по Visul ++». Минск: ООО «Попурри», 1999.
|
|
5. Марк Луис. «Visul ++ 6». – М.: Лаборатория базовых знаний, 1999.
6. Гилберт Стивен, Маккарти Билл. «Программирование на Visul ++ 6. Этюды профессионалов» – К.: Издательство «ДиаСофт», 1999.
7. Баженова И.Ю. «Visul ++6.0 (VISUL STUDI 1998). Уроки программирования», М.: Диалог – МИФИ, 1999
8. А.В. Фролов, Г.В. Фролов «Mirsft Visul ++ и MF. Программирование для Windows 95 и Windows NT» в 2-х ч. (часть1) (библиотека системного программиста; т. 24) М.: Диалог – МИФИ, 1997
9. А.В. Фролов, Г.В. Фролов «Mirsft Visul ++ и MF. Программирование для Windows 95 и Windows NT». (часть2) (библиотека системного программиста; т. 28) М.: Диалог – МИФИ, 1997
10. Х.А. Цвиринько, В.Д. Коровина «Методические рекомендации по оформлению дипломных и курсовых проектов (работ)», Ставрополь: изд–во СевКавГТУ, 2000
Приложение 1
Диаграмма классов
Приложение 2
Листинг программы
// TringlDlg.: imlmnttin fil
//
#inlud «stdf.h»
#inlud «Tringl.h»
#inlud «TringlDlg.h»
#inlud «mth.h»
#ifdf _DBUG
#dfin nw DBUG_NW
#undf THIS_FIL
stti hr THIS_FIL[] = __FIL__;
#ndif
/////////////////////////////////////////////////////////////////////////////
// butDlg dilg usd fr but
lss butDlg: ubli Dilg
{
ubli:
butDlg();
// Dilg Dt
// {{F_DT(butDlg)
num {IDD = IDD_BUTB};
// }} F_DT
// lssWizrd gnrtd virtul funtin vrrids
// {{F_VIRTUL(butDlg)
rttd:
virtul vid DDthng (Dthng* D); // DD/DDV surt
// }} F_VIRTUL
// Imlmnttin
rttd:
// {{F_MSG(butDlg)
// }} F_MSG
DLR_MSSG_M()
};
butDlg:butDlg(): Dilg (butDlg:IDD)
{
// {{F_DT_INIT(butDlg)
// }} F_DT_INIT
}
vid butDlg:DDthng (Dthng* D)
{
Dilg:DDthng(D);
// {{F_DT_M(butDlg)
// }} F_DT_M
}
BGIN_MSSG_M (butDlg, Dilg)
// {{F_MSG_M(butDlg)
// N mssg hndlrs
// }} F_MSG_M
ND_MSSG_M()
/////////////////////////////////////////////////////////////////////////////
// TringlDlg dilg
TringlDlg: TringlDlg (Wnd* rnt /*=NULL*/)
: Dilg (TringlDlg:IDD, rnt)
{
// {{F_DT_INIT(TringlDlg)
m_lin_1 = 0;
m_lin_2 = 0;
m_lin_3 = 0;
m_rsult = _T(«»);
// }} F_DT_INIT
// Nt tht LdIn ds nt rquir subsqunt DstrIn in Win32
m_hIn = fGt()->LdIn (IDR_MINFRM);
}
vid TringlDlg:DDthng (Dthng* D)
{
Dilg:DDthng(D);
// {{F_DT_M(TringlDlg)
DD_Tt (D, ID_DIT1, m_lin_1);
DD_Tt (D, ID_DIT2, m_lin_2);
DD_Tt (D, ID_DIT3, m_lin_3);
DD_Tt (D, ID_STTI_1, m_rsult);
// }} F_DT_M
}
BGIN_MSSG_M (TringlDlg, Dilg)
// {{F_MSG_M(TringlDlg)
N_WM_SSMMND()
N_WM_INT()
N_WM_QURDRGIN()
N_BN_LIKD (ID_BUTTN1, nlult)
N_NTIF (UDN_DLTS, ID_SIN1, nDltsSin1)
N_NTIF (UDN_DLTS, ID_SIN2, nDltsSin2)
N_NTIF (UDN_DLTS, ID_SIN3, nDltsSin3)
N_NTIF (NM_UTFMMR, ID_SIN3, nutfmmrSin3)
// }} F_MSG_M
ND_MSSG_M()
/////////////////////////////////////////////////////////////////////////////
// TringlDlg mssg hndlrs
BL TringlDlg:nInitDilg()
{
Dilg:nInitDilg();
// dd «but…» mnu itm t sstm mnu.
// IDM_BUTB must b in th sstm mmnd rng.
SSRT((IDM_BUTB & 0FFF0) == IDM_BUTB);
SSRT (IDM_BUTB < 0F000);
Mnu* SsMnu = GtSstmMnu(FLS);
if (SsMnu!= NULL)
{
String strbutMnu;
strbutMnu. LdString (IDS_BUTB);
if (! strbutMnu. Ismt())
{
SsMnu->ndMnu (MF_SRTR);
SsMnu->ndMnu (MF_STRING, IDM_BUTB, strbutMnu);
}
}
// St th in fr this dilg. Th frmwrk ds this utmtill
// whn th litin's min windw is nt dilg
StIn (m_hIn, TRU); // St big in
StIn (m_hIn, FLS); // St smll in
// TD: dd tr initiliztin hr
m_lin_1 = 1;
m_lin_2 = 1;
m_lin_3 = 1;
UdtDt(fls);
rturn TRU; // rturn TRU unlss u st th fus t ntrl
}
vid TringlDlg:nSsmmnd (UINT nID, LRM lrm)
{
if ((nID & 0FFF0) == IDM_BUTB)
{
butDlg dlgbut;
dlgbut.DMdl();
}
ls
{
Dilg:nSsmmnd (nID, lrm);
}
}
// If u dd minimiz buttn t ur dilg, u will nd th d blw
// t drw th in. Fr MF litins using th dumnt/viw mdl,
// this is utmtill dn fr u b th frmwrk.
vid TringlDlg:nint()
{
if (IsIni())
{
intD d(this); // dvi ntt fr inting
SndMssg (WM_INRSBKGND, (WRM) d. GtSfHd(), 0);
// ntr in in lint rtngl
int In = GtSstmMtris (SM_IN);
int In = GtSstmMtris (SM_IN);
Rt rt;
GtlintRt(&rt);
int = (rt. Width() – In + 1) / 2;
int = (rt. Hight() – In + 1) / 2;
// Drw th in
d. DrwIn (, m_hIn);
}
ls
{
Dilg:nint();
}
}
// Th sstm lls this t btin th ursr t disl whil th usr drgs
// th minimizd windw.
HURSR TringlDlg:nQurDrgIn()
{
rturn (HURSR) m_hIn;
}
vid TringlDlg:nlult()
{
// TD: dd ur ntrl ntifitin hndlr d hr
UdtDt(tru);
int rimtr = m_lin_1+ m_lin_2+ m_lin_3;
dubl = (dubl) (m_lin_1+ m_lin_2+ m_lin_3)/2;
dubl s = sqrt(*(– (dubl) m_lin_1)*(– (dubl) m_lin_2)*(– (dubl) m_lin_3));
if (s==0.0 || s<0.0)
{
fMssgB («Треугольник задан неправильно»);
rturn;
}
dubl R_= (dubl) (m_lin_1*m_lin_2*m_lin_3)/(4*s);
dubl R_V = s/;
/////// Для начала определим, является ли треугольник прямоугольным
/////// Определим самую большую сторону
int m_lin = m_lin_1;
int m_ind = 1;
if (m_lin_2>m_lin)
{
m_lin = m_lin_2;
m_ind = 2;
}
if (m_lin_3>m_lin)
{
m_lin = m_lin_3;
m_ind = 3;
}
bl rm=fls;
swith (m_ind)
{
s 1: if (m_lin*m_lin==m_lin_2*m_lin_2+m_lin_3*m_lin_3)
rm = tru; brk;
s 2: if (m_lin*m_lin==m_lin_1*m_lin_1+m_lin_3*m_lin_3)
rm = tru; brk;
s 3: if (m_lin*m_lin==m_lin_2*m_lin_2+m_lin_1*m_lin_1)
rm = tru; brk;
};
if (rm)
fMssgB («Треугольник прямоугольный»);
ls
fMssgB («Треугольник не прямоугольный»);
m_rsult. Frmt («Периметр % d, Площадь % f, Радиус описанной окружности % f, Радиус вписанной окружности % f», rimtr, s, R_, R_V);
UdtDt(fls);
}
vid TringlDlg:nDltsSin1 (NMHDR* NMHDR, LRSULT* Rsult)
{
NM_UDWN* NMUDwn = (NM_UDWN*) NMHDR;
// TD: dd ur ntrl ntifitin hndlr d hr
|
|
UdtDt(tru);
m_lin_1-=NMUDwn->iDlt;
if (m_lin_1==0)
m_lin_1=1;
UdtDt(fls);
*Rsult = 0;
}
m_lin_3=1;
UdtDt(fls);
vid TringlDlg:nutfmmrSin3 (NMHDR* NMHDR, LRSULT* Rsult)
{
// TD: dd ur ntrl ntifitin hndlr d hr
*Rsult = 0;
}