[分享]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<=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(&m_rect);<o:p></o:p></P>
<P align=left> pDC->SetTextAlign(TA_CENTER|TA_CENTER);<o:p></o:p></P>
<P align=left> pDC->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<=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<=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<=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<=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<=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<=9;j++)<o:p></o:p></P>
<P align=left> for(i=1;i<=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->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>
页:
[1]
