zhangzujin 发表于 2006-1-10 21:15

[分享]VC基础编程一点

<P ><FONT face="Times New Roman">1.       Gauss</FONT>妙算<FONT face="Times New Roman">   </FONT></P>
<P >单文档:</P>
<P  align=left>void CGauss_MagicView::OnDraw(CDC* pDC)<o:p></o:p></P>
<P >{<o:p></o:p></P>
<P  align=left>int i,sum=0;<o:p></o:p></P>
<P  align=left>     for(i=1;i&lt;=100;i++)<o:p></o:p></P>
<P  align=left>         sum+=i;<o:p></o:p></P>
<P  align=left><o:p> </o:p></P>
<P  align=left>     CString str;<o:p></o:p></P>
<P  align=left>     str.Format("%d",sum);<o:p></o:p></P>
<P  align=left>     <o:p></o:p></P>
<P  align=left>     CRect m_rect;<o:p></o:p></P>
<P  align=left>     GetClientRect(&amp;m_rect);<o:p></o:p></P>
<P  align=left>     pDC-&gt;SetTextAlign(TA_CENTER|TA_CENTER);<o:p></o:p></P>
<P  align=left>     pDC-&gt;TextOut(m_rect.Width( )/2,m_rect.Height( )/2,str);<o:p></o:p></P>
<P  align=left><o:p> </o:p></P>
<P >}<o:p></o:p></P>
<P >对话框:<o:p></o:p></P>
<P  align=left>void CGauss_MagicView::Oncalculate()<o:p></o:p></P>
<P  align=left>{<o:p></o:p></P>
<P  align=left>     Gauss dlg;<o:p></o:p></P>
<P  align=left>     dlg.DoModal( );<o:p></o:p></P>
<P >}<o:p></o:p></P>
<P  align=left>int Gauss::GaussAdd(int n)  // 自定义函数<o:p></o:p></P>
<P  align=left>{<o:p></o:p></P>
<P  align=left>     int i,sum=0;<o:p></o:p></P>
<P  align=left>     for(i=0;i&lt;=n;i++)<o:p></o:p></P>
<P  align=left>         sum+=i;<o:p></o:p></P>
<P  align=left>     return sum;<o:p></o:p></P>
<P >}<o:p></o:p></P>
<P  align=left>void Gauss::OnBnClickedaddbtn()<o:p></o:p></P>
<P  align=left>{<o:p></o:p></P>
<P  align=left>     UpdateData(true);<o:p></o:p></P>
<P  align=left>     m_sum=GaussAdd(m_n);<o:p></o:p></P>
<P  align=left>     UpdateData(false);<o:p></o:p></P>
<P >}<o:p></o:p></P>
<P ><v:shapetype><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape><v:imagedata></v:imagedata></v:shape><o:p></o:p></P>
<P ><FONT face="Times New Roman">2.       </FONT>最大公约数和最小公倍数</P>
<P ><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P  align=left>int CGcdAndLcmDlg::gcd(int a, int b)<o:p></o:p></P>
<P  align=left>{<o:p></o:p></P>
<P  align=left>     if(!b)<o:p></o:p></P>
<P  align=left>         return a;<o:p></o:p></P>
<P  align=left>     return gcd(b,a%b);<o:p></o:p></P>
<P  align=left>}<o:p></o:p></P>
<P  align=left><o:p> </o:p></P>
<P  align=left>int CGcdAndLcmDlg::lcm(int a, int b)<o:p></o:p></P>
<P  align=left>{<o:p></o:p></P>
<P  align=left>     int cm=a;<o:p></o:p></P>
<P  align=left>if(!b)<o:p></o:p></P>
<P  align=left>         return 0;<o:p></o:p></P>
<P  align=left>     while(cm%b)<o:p></o:p></P>
<P  align=left>         cm+=a;<o:p></o:p></P>
<P  align=left>     return cm;<o:p></o:p></P>
<P >}<o:p></o:p></P>
<P ><o:p> </o:p></P>
<P  align=left>void CGcdAndLcmDlg::OnBnClickedcalbtn()<o:p></o:p></P>
<P  align=left>{<o:p></o:p></P>
<P  align=left>     UpdateData(true);<o:p></o:p></P>
<P  align=left>     m_gcd=gcd(m_a,m_b);<o:p></o:p></P>
<P  align=left>     m_lcm=lcm(m_a,m_b);<o:p></o:p></P>
<P  align=left>     UpdateData(false);<o:p></o:p></P>
<P  align=left>     <o:p></o:p></P>
<P >}<o:p></o:p></P>
<P ><o:p><FONT face="Times New Roman"> </FONT></o:p></P>
<P ><o:p><FONT face="Times New Roman"> </FONT></o:p></P>
<P ><o:p><FONT face="Times New Roman"> </FONT></o:p></P>
<P ><o:p><FONT face="Times New Roman"> </FONT></o:p></P>
<P ><o:p><FONT face="Times New Roman"> </FONT></o:p></P>
<P ><o:p><FONT face="Times New Roman"> </FONT></o:p></P>
<P ><o:p><FONT face="Times New Roman"> </FONT></o:p></P>
<P ><o:p><FONT face="Times New Roman"> </FONT></o:p></P>
<P ><FONT face="Times New Roman">3.       </FONT>素数</P>
<P ><FONT face="Times New Roman">   </FONT><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P  align=left>int CprimeDlg::isprime(int n)<o:p></o:p></P>
<P  align=left>{<o:p></o:p></P>
<P  align=left>     if(n&lt;=2)<o:p></o:p></P>
<P  align=left>         return n-1;<o:p></o:p></P>
<P  align=left>     if(n%2==0)<o:p></o:p></P>
<P  align=left>         return 0;<o:p></o:p></P>
<P  align=left><o:p> </o:p></P>
<P  align=left>     int i,limit;<o:p></o:p></P>
<P  align=left>     limit=n/2;<o:p></o:p></P>
<P  align=left>     for(i=3;i&lt;=limit;i+=2)<o:p></o:p></P>
<P  align=left>         if(n%i==0)<o:p></o:p></P>
<P  align=left>              return 0;<o:p></o:p></P>
<P  align=left>     return 1;<o:p></o:p></P>
<P  align=left>}<o:p></o:p></P>
<P  align=left>void CprimeDlg::OnBnClickedprimebtn()<o:p></o:p></P>
<P  align=left>{<o:p></o:p></P>
<P  align=left>     UpdateData(true);<o:p></o:p></P>
<P  align=left>     int i,cnt;<o:p></o:p></P>
<P  align=left>     cnt=m_list.GetCount( );<o:p></o:p></P>
<P  align=left>     for(i=0;i&lt;=cnt;i++)<o:p></o:p></P>
<P  align=left>         m_list.DeleteString(0);<o:p></o:p></P>
<P  align=left>     for(i=2;i&lt;=m_n;i++)<o:p></o:p></P>
<P  align=left>         if(isprime(i))<o:p></o:p></P>
<P  align=left>         {<o:p></o:p></P>
<P  align=left>              CString str;<o:p></o:p></P>
<P  align=left>              str.Format("%d",i);<o:p></o:p></P>
<P  align=left>              m_list.AddString(str);<o:p></o:p></P>
<P  align=left>         }<o:p></o:p></P>
<P  align=left>     UpdateData(false);<o:p></o:p></P>
<P >}<o:p></o:p></P>
<P ><o:p><FONT face="Times New Roman"> </FONT></o:p></P>
<P ><FONT face="Times New Roman">4.       </FONT>等级评分</P>
<P ><FONT face="Times New Roman">  </FONT><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P  align=left>void CGrade_EvalDlg::OnBnClickedevalbtn()<o:p></o:p></P>
<P  align=left>{<o:p></o:p></P>
<P  align=left>     UpdateData(true);<o:p></o:p></P>
<P  align=left>     evaluate(m_mark);<o:p></o:p></P>
<P  align=left>     UpdateData(false);<o:p></o:p></P>
<P  align=left>}<o:p></o:p></P>
<P  align=left><o:p> </o:p></P>
<P  align=left>void CGrade_EvalDlg::evaluate(int mark)<o:p></o:p></P>
<P  align=left>{<o:p></o:p></P>
<P  align=left>     switch(mark/10)<o:p></o:p></P>
<P  align=left>     {<o:p></o:p></P>
<P  align=left>     case 10:<o:p></o:p></P>
<P  align=left>     case 9:<o:p></o:p></P>
<P  align=left>         m_grade="A";<o:p></o:p></P>
<P  align=left>         break;<o:p></o:p></P>
<P  align=left>     case 8:<o:p></o:p></P>
<P  align=left>         m_grade="B";<o:p></o:p></P>
<P  align=left>         break;<o:p></o:p></P>
<P  align=left>     case 7:<o:p></o:p></P>
<P  align=left>         m_grade="C";<o:p></o:p></P>
<P  align=left>         break;<o:p></o:p></P>
<P  align=left>     case 6:<o:p></o:p></P>
<P  align=left>         m_grade="D";<o:p></o:p></P>
<P  align=left>         break;<o:p></o:p></P>
<P  align=left>     default:<o:p></o:p></P>
<P  align=left>         m_grade="E";<o:p></o:p></P>
<P  align=left>     }<o:p></o:p></P>
<P >}<o:p></o:p></P>
<P ><o:p> </o:p></P>
<P ><o:p> </o:p></P>
<P ><o:p> </o:p></P>
<P ><o:p> </o:p></P>
<P ><o:p> </o:p></P>
<P ><o:p> </o:p></P>
<P ><o:p><FONT face="Times New Roman"> </FONT></o:p></P>
<P ><FONT face="Times New Roman">5.       9*9</FONT>乘法表</P>
<P ><v:shape><v:imagedata></v:imagedata></v:shape></P>
<P  align=left>void CBy9FormulaView::OnDraw(CDC* pDC)<o:p></o:p></P>
<P  align=left>{<o:p></o:p></P>
<P  align=left>     int i,j;<o:p></o:p></P>
<P  align=left>     CString str;<o:p></o:p></P>
<P  align=left>     for(j=1;j&lt;=9;j++)<o:p></o:p></P>
<P  align=left>         for(i=1;i&lt;=j;i++)<o:p></o:p></P>
<P  align=left>         {<o:p></o:p></P>
<P  align=left>              str.Format("%d*%d=%2d",i,j,i*j);<o:p></o:p></P>
<P  align=left>              pDC-&gt;TextOut(50*i,20*j,str);<o:p></o:p></P>
<P  align=left>         }<o:p></o:p></P>
<P >}<o:p></o:p></P>[attach]4723[/attach]<BR>

华山一派 发表于 2006-4-12 20:12

<P>谢谢分享!!!</P>

sdpdww 发表于 2006-5-11 20:39

<P>呵呵 不错 看来又找到一个志同道合的了</P>

页: [1]

编程论坛