课程作业六
c++界面编程
由于vs上可以创建MFC应用项目,所以就找了MFC的教程,跟着教程一起做出了一个很简单的三角形求面积的界面 如下图
突然想以后设计个软件之类的哈哈哈虽然还差得很远 其实一开始选这个专业也是因为想开发软件游戏之类的所以一开始学的这些解数学题本来跟我想象的有些不一样,有时会产生转专业的想法(虽然晚了),但是这也是这些的基础所以也要好好学
代码如下
class Triangle
{
public:
Triangle() { a = 1;b = 1;c = 1; }
Triangle(double x, double y, double z) { a = x; b = y; c = z; }
double area(void);
private:
double a, b, c;
};
#include "stdafx.h"
#include <Cmath>
#include "MyTriangle.h"
double Triangle::area(void)
{
double s = (a + b + c) / 2;
system("pause");
return sqrt(s * (s - a) * (s - b) * (s - c));
}
void CMFCApplication3Dlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(); //将把界面上各控件输入的值“捕获”到与之关联的变量中
Triangle t1(m_aa, m_bb, m_cc); //定义三角形对象
m_areaa = t1.area(); //求面积
UpdateData(FALSE); //用m_area的值更新界面上对应的控件的值并实现显示
}
核心算法
采取栈的知识进行解决
double Mycount::calculateResult(double random1,double random2,double random3,double random4,int sign1,int sign2,int sign3){
double r1[6],r2[6],r[6]={random1,random2,random3,random4};
int rlen1=0,rlen2=0,s1[5],s2[5],slen1=0,slen2=0,s[5]={sign1,sign2,sign3};
r1[rlen1++]=r[0];
for(int i=0;i<3;i++){
r1[rlen1++]=r[i+1];
if(s[i]>=4){rlen1-=2;r1[rlen1]=qcount(r1[rlen1],r1[rlen1+1] ,s[i]);rlen1++;}
else s1[slen1++]=s[i];}
r2[rlen2++]=r1[0];
for(int i=0;i<slen1;i++){
r2[rlen2++]=r1[i+1];
if(s1[i]>=2){rlen2-=2;r2[rlen2]=qcount(r2[rlen2], r2[rlen2+1], s1[i]);rlen2++;}
else s2[slen2++]=s1[i];}
for(int i=0;i<slen2;i++){
r2[i+1]=qcount(r2[i], r2[i+1], s2[i]);}
return r2[slen2];
}