




免费预览已结束,剩余14页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
作 者: 裴超晨 班 级: 07信息 学 号: 200710520113 指导老师: 彭永康 时 间: 2009.12.282010.01.08 景德镇陶瓷学院前言 随着21世纪面向对象程序设计技术的蓬勃发展,在全球软件业掀起了面向对象程序设计的浪潮,在众多的面向对象程序设计语言中,Visual C+6.0将程序设计方法和可视的软件开发环境完美的结合在一起,其崭新的开发数据库和适应Internet应用程序的新特点引起了开发人员的广泛关注,尤其受广大软件设计人员的亲睐,逐渐成为软件设计、Windows应用程序开发的首选语言。 Visual C+6.0是汇集MS公司技术精华的主流产品,使用Visual C+6.0可以开发强大的32应用程序,能为用户提供全方位的服务,具有广阔的商业前景。 本次课程设计是为配合课堂教学,提高学生动手能力和创新能力而安排的一次实践性教学环节,学生通过本课程设计,进一步掌握Windows程序设计课程中有关理论知识,将所学理论知识应用于实践,按软件工程方法,完成简单的Windows程序设计。本次课程设计主要有:设计一个具备基本计算能力的计算器、设计一个浏览器SEExplorer、设计一个小闹钟还选做了一个在VC6.0下自制多媒体播放器可以通过这几个例子更加深刻地了解Visual C+6.0.第一篇 多媒体播放器1. 内容设计一个多媒体播放器2. 要求 具有一般的播放功能,能播放*.mp3,*.wma,*.mdi,*.wav,*.avi,*.dat等文件,还有Repeat功能编写有关本程序的使用手册3. 程序设计框架和步骤1打开VC6.0,在Projects下选择MFC AppWizard(exe),并取名MediaPlayer,然后建立基于对话框(Dialog Based)的运用程序。 2打开Resource View,选择其中的对话框,打开其中的主对话框,去掉对话框上的“确定”按钮,保留“取消”,将Caption改为“Exit”。然后再在上面加上九个按钮,ID和Caption分别为 IDC_OPEN,Open;IDC_PLAY,Play;IDC_PAUSE,Pause;IDC_STOP,Stop;IDC_CLOSE,Close;IDC_LOWER,;IDC_FULLSCREEN,Full;IDC_REPEAT,Repeat;再加入两个静态文本控件,分别为IDC_STATIC,Volume;IDC_STATIC2,Status:Normal。 3 再打开Projects-Add to Project-Components and Controls-Registered ActiveX Controls对话框,选择其中的ActiveMovieControl Object, Insert,OK之后,你会发现你的控件面板上多了一项ActiveMovieControl Object,将它选中,直接放在你的对话框上就行了。按Ctrl+W打开ClassWizard为它添加变量CActiveMovie3 m_ActiveMovie。各控件的布局如图:194接下来,就是为程序添加消息处理函数。打开 ClassWizard,为各个按钮加入消息处理函数。在MediaPlayerDlg.cpp文件里为各消息处理函数添加代码,各代码如下: void CMediaPlayerDlg:OnClose() m_ActiveMovie.CloseWindow();/关闭窗口void CMediaPlayerDlg:OnOpen() char szFileFilter= Mp3 File(*.mp3)|*.mp3| Wma File(*.wma)|*.wma| Video File(*.dat)|*.dat| Wave File(*.wav)|*.wav| AVI File(*.avi)|*.avi| Movie File(*.mov)|*.mov| Media File(*.mmm)|*.mmm| Mid File(*.mid;*,rmi)|*.mid;*.rmi| MPEG File(*.mpeg)|*.mpeg| All File(*.*)|*.*|;/文件类型过滤 CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter); if(dlg.DoModal()=IDOK) CString PathName=dlg.GetPathName(); PathName.MakeUpper(); m_ActiveMovie.SetFileName(PathName); void CMediaPlayerDlg:OnPlay() m_ActiveMovie.Run();/播放文件 SetTimer(0,20,NULL);/设置定时器void CMediaPlayerDlg:OnStop() m_ActiveMovie.Stop();/停止播放文件 KillTimer(0);/关掉定时器void CMediaPlayerDlg:OnPause() m_ActiveMovie.Pause();void CMediaPlayerDlg:OnUpper() long Volume=m_ActiveMovie.GetVolume(); m_ActiveMovie.Pause(); m_ActiveMovie.SetVolume(Volume+100); m_ActiveMovie.Run();void CMediaPlayerDlg:OnLower() long Volume=m_ActiveMovie.GetVolume(); m_ActiveMovie.Pause(); m_ActiveMovie.SetVolume(Volume-100); m_ActiveMovie.Run(); void CMediaPlayerDlg:OnRepeat() if(!isRepeat) isRepeat=TRUE; SetDlgItemText(IDC_STATIC2,Status:Repeat); else isRepeat=FALSE; SetDlgItemText(IDC_STATIC2,Status:Normal); void CMediaPlayerDlg:OnFulscreeen() m_ActiveMovie.Pause(); m_ActiveMovie.SetFullScreenMode(true); m_ActiveMovie.SetMovieWindowSize(SW_SHOWMAXIMIZED); m_ActiveMovie.Run();(注释:函数OnTimer()需通过ClassWizard(Ctrl+W)来添加,不能直接复制) void CMediaPlayerDlg:OnTimer(UINT nIDEvent) double CurrentPos=m_ActiveMovie.GetCurrentPosition(); if(CurrentPos=0&isRepeat)/如果当前是文件的起始位置而且为重复播放状态 m_ActiveMovie.Run(); CDialog:OnTimer(nIDEvent); 5为使播放器具有Repeat功能,需在头文件MediaPlayerDlg.h 加入控制变量BOOL isRepeat;类型可为Private。同时修改OnInitDialog()函数: BOOL CMediaPlayerDlg:OnInitDialog() CDialog:OnInitDialog(); isRepeat=FALSE; 4.运行界面5用户手册 点击然后就可以从电脑里面添加想听到的歌曲,接下来按下就可以听到歌曲。按就可以暂停,按就可以停止,结束,可以使播放重复。 和分别作用与调节音量。按就可以退出播放器第二篇浏览器SEExplorer(Simple Exam_Explorer)1 内容设计一个浏览器SEExplorer,具有如下功能:a 具有一URL输入显示栏,在输入相应的网站URL回车后,显示浏览相关的网页;b 可完成将指定网页下载存盘,并可指定存盘位置;c 可完成源码显示网页源代码、综合效果显示的相互转换;d 可将指定的网页中的图片存贮在指定位置。2 要求a 应用面象对象方法进行系统设计,应用VC编程;b 界面新颖,交互方便,响应正确。 3. 程序设计框架与步骤1首先在VC 6.0的主窗口中选择菜单“File/New”,新建一个工程,使用“MFC AppWizard(exe)”向导,工程名为“SimpleIE”,然后单击“OK”按钮。2接下来会有6个向导步骤。第一步选择“Single document”(单文档界面)支持,语言选择“中文”,其余按默认值,单击“Next”按钮。3在接下来的4个步骤(即:Step 2 of 6到Step 5 of 6)中,一律保持默认值,直接单击“Next”按钮进入到下一步即可。4在第6步(即:Step 6 of 6)中,请在类列表中选中“CSimpleIEView”类,再从“Base class”下拉列表框中选择“CFormView”,这表示可以在程序界面的窗口中加入控件。最后单击“Finish”按钮,直到系统生成该工程所必需的文件结束,此时,也就完成了该程序的基本框架。5在VC 6.0的主窗口左边选择资源选项卡,双击其中的Dialog文件夹,再双击其下的IDD_SimpleIE_FORM项,则此对话框出现在对话框编辑器中。删除对话框上的静态文本,然后在对话框上单击鼠标右键,从弹出的快捷菜单中选择“Insert ActiveX Control”命令,在弹出的“Select ActiveX Control”对话框中,从列表框中选择“Microsoft Web浏览器”控件,单击“OK”按钮,将该控件加入到对话框中。进入ClassWizard,选择Member Variable选项卡,然后选择Class Name列表框中的CSimpleIEView类,在ID列表中找到ID_EXPLORER1,为它增加一个成员变量“m_SimpleIE”(注意:系统提示在增加控件后,保存工程中的所有文件)。6再在对话框上加入三个控件,静态文本“地址:”、EDIT_BOX控件(为其添加成员变量m_URL)、一个按钮(在其属性对话框中,将Caption属性设为“链接(L)”,选择“Styles”选项卡,将“Default button”复选框选中)。7进入ClassWizard,选择Message Maps选项卡,再在Object Ids列表框中选择IDC_BUTTON1,选择Message列表框中的BN_CLICKED。单击“Add Function”按钮,增加一个函数,使用系统的默认函数名“OnButton1”,单击“OK”。点击“Edit Code”按钮,为此函数加入如下代码(注意字母的大小写):UpdateData(true);m_SimpleIE.Navigate(m_URL,NULL, NULL, NULL, NULL);8保存工程,编译并运行。在编辑框中直接输入网址并回车,你熟悉的网页将出现在你的面前,如图2所示。第三篇 计算器1 内容设计一个具备基本计算能力的计算器。2 要求a 应用软件工程方法,完成本次设计;b 应用VC进行程序设计;c 界面新颖,交互方便,响应正确;d 具备+、-、*、/、开方,复位等运算;e 编写有关本程序的使用手册。3程序设计框架和步骤(1) 选择FileNew菜单命令,并在弹出的新建对话框中单击Project标签。(2) 选择MFC AppWizard(exe),并在Project Name编辑框中输入Calculartor作为工程名称。单击OK按钮,出现Stephen1对话框。(3) 选择Dialog based选项,使应用程序基于对话框,单击Next按钮,出现Steph2对话框。(4) 接受缺省选项,单击Next按钮,出现Steph4对话框,在这一步单击Finish按钮,即完成Calculator应用程序的所有选择。随后出现工程信息对话框,单击“确定”完成应用程序框架的创建。(5) 在工程工作区单击Resource View标签显示应用程序的资源。单击Dialog旁边的“+”,再单击IDD_CALCULATOR_DIALOG并根据表中的定义编辑对话框资源,编辑后的对话框如图所示控件属性设置控件属性设置按钮标识符(ID)标题(Caption)IDC_00按钮标识符(ID)标题(Caption)IDC_SQRTSqrt按钮标识符(ID)标题(Caption)IDC_11按钮标识符(ID)标题(Caption)IDC_RECIPROCAL1/X按钮标识符(ID)标题(Caption)IDC_22按钮标识符(ID)标题(Caption)IDC_EQUAL=按钮标识符(ID)标题(Caption)IDC_33按钮标识符(ID)标题(Caption)IDC_DIVID/按钮标识符(ID)标题(Caption)IDC_44按钮标识符(ID)标题(Caption)IDC_MUTIPLY*按钮标识符(ID)标题(Caption)IDC_55按钮标识符(ID)标题(Caption)IDC_MINUS-按钮标识符(ID)标题(Caption)IDC_66按钮标识符(ID)标题(Caption)IDC_ADD+按钮标识符(ID)标题(Caption)IDC_77按钮标识符(ID)标题(Caption)IDC_POINT.按钮标识符(ID)标题(Caption)IDC_88按钮标识符(ID)标题(Caption)IDC_SIGN+/-按钮标识符(ID)标题(Caption)IDC_99编辑框标识符(ID)标题(Style)IDC_DIPLAY只读(Reade Only)按钮标识符(ID)标题(Caption)IDC_CLEARC添加消息处理函数: 首先利用ClassWizard为编辑框控件增加Cstring型成员变量m_result用于结果显示,然后根据表使用ClassWizar为对话框CcalculatorDlg增加消息处理函数,Classwizard会自动完成有关的函数声明。添加成员处理函数与成员变量:向CalculatorDlg.h头函数中添加的函数与声明变量,如下所示。Float m_operand; /存储当前输入的操作数Float m_accum; /存储当前的计算处理结果Bool m_bCoff; /标识当前输入是否是小数Float m_coff; /小数输入时的系数Operator m_operator; /enum型变量用以标识当前运算符CalcError m_errorState; /enum型变量用以标识当前运算状态Bool m_bOperandAvail; /标识当前输入是否是新输入数字Void Calculate(); /处理计算Void UpdateDisplay(); /处理显示添加完成各个功能的代码void CCalculatorDlg:AdvButton0()/按下0键时的处理函数m_StrBegin= m_StrBegin+0;if (!m_IsCheckPoint)m_DspEdit.OnDisplay(m_StrBegin+.);else m_DspEdit.OnDisplay(m_StrBegin);void CCalculatorDlg:AdvButton1()m_StrBegin = m_StrBegin+1;if (!m_IsCheckPoint)m_DspEdit.OnDisplay(m_StrBegin+.);else m_DspEdit.OnDisplay(m_StrBegin);void CCalculatorDlg:AdvButton2()m_StrBegin = m_StrBegin+2;if (!m_IsCheckPoint)m_DspEdit.OnDisplay(m_StrBegin+.);else m_DspEdit.OnDisplay(m_StrBegin);void CCalculatorDlg:AdvButton3()m_StrBegin= m_StrBegin+3;if (!m_IsCheckPoint)m_DspEdit.OnDisplay(m_StrBegin+.);else m_DspEdit.OnDisplay(m_StrBegin);void CCalculatorDlg:AdvButton4()m_StrBegin=m_StrBegin+4;if (!m_IsCheckPoint)m_DspEdit.OnDisplay(m_StrBegin+.);else m_DspEdit.OnDisplay(m_StrBegin);void CCalculatorDlg:AdvButton5()m_StrBegin= m_StrBegin+5;if (!m_IsCheckPoint)m_DspEdit.OnDisplay(m_StrBegin+.);else m_DspEdit.OnDisplay(m_StrBegin);void CCalculatorDlg:AdvButton6()m_StrBegin= m_StrBegin+6;if (!m_IsCheckPoint)m_DspEdit.OnDisplay(m_StrBegin+.);else m_DspEdit.OnDisplay(m_StrBegin);void CCalculatorDlg:AdvButton7()m_StrBegin= m_StrBegin+7;if (!m_IsCheckPoint)m_DspEdit.OnDisplay(m_StrBegin+.);else m_DspEdit.OnDisplay(m_StrBegin);void CCalculatorDlg:AdvButton8()m_StrBegin= m_StrBegin+8;if (!m_IsCheckPoint)m_DspEdit.OnDisplay(m_StrBegin+.);else m_DspEdit.OnDisplay(m_StrBegin);void CCalculatorDlg:AdvButton9()m_StrBegin= m_StrBegin+9;if (!m_IsCheckPoint)m_DspEdit.OnDisplay(m_StrBegin+.);else m_DspEdit.OnDisplay(m_StrBegin);void CCalculatorDlg:AdvButtonPoint() /按下.键时的处理函数if (!m_IsCheckPoint & m_StrBegin != )m_StrBegin= m_StrBegin+.;m_DspEdit.OnDisplay(m_StrBegin);m_IsCheckPoint = true;void CCalculatorDlg:AdvButtonAdd() Result();m_bit = 1;void CCalculatorDlg:AdvButtonSub() Result();m_bit = 2;void CCalculatorDlg:AdvButtonMul() Result();m_bit = 3;void CCalculatorDlg:AdvButtonDiv() Result();m_bit = 4;void CCalculatorDlg:AdvButtonClear() m_IsCheckPoint= false;m_StrBegin = ;m_begin = 0.0;m_end = 0.0;m_bit = 0;m_DspEdit.OnDisplay(0.);void CCalculatorDlg:AdvButtonSqrt() Result();m_bit = 5;void CCalculatorDlg:AdvButtonReverse() Result();m_bit = 6;void CCalculatorDlg:AdvButtonEqu() /按下=键时的处理函数Result();m_bit = 7;void CCalculatorDlg:Result()/用来处理按下符号键时的函数,是计算的核心函数 m_IsCheckPoint= false;m_begin=atof(m_StrBegin);switch(m_bit)case 1:/处理+号m_end += m_begin;break;case 2:/处理-号m_end -= m_begin;break;case 3:/处理*号,即乘法m_end *= m_begin;break;case 4:/处理/号,即除法if (m_begin=0)m_DspEdit.OnDisplay(除数不能为零!);return;m_end /= m_begin;break;case 5:/处理sqrt号,即开方if (m_end0)m_DspEdit.OnDisplay(函数输入无效!);return;m_end = sqrt(m_end);break;case 6:/处理1/x号,即求倒数m_end = 1/m_end;case 7:/处理=号break;、case 8:/处理sin号m_end = sin(m_end);break;case 9:/处理cos号m_end = cos(m_end);break;case 10:/处理tan号m_end = tan(m_end);break;case 11:/处理x2号,即平方m_end = m_end*m_end;break;case 12:/处理x3号,即立方m_end=m_end*m_end*m_end;break;case 13:/处理xy号,即求x的y次方m_end=pow(m_end,m_begin);break;case 14:/处理Exp号,即求e的x次方m_end = exp(m_end);break;case 15:/处理ln号if (m_end=0)m_DspEdit.OnDisplay(函数输入无效!);return;m_end = log(m_end);break;case 16:/处理log号if (m_endSelectObject(&Pen);pDC-Ellipse(5,5,Rect.right-5,Rect.bottom-5);double Radians;pDC-SetTextColor(RGB(255,0,0);for(i=1;iGetTextExtent(str,str.GetLength();Radians=(double)i*6.28/12.0;x=CenterX-(size.cx/2)+(int)(double)(CenterX-20)*sin(Radians);y=CenterY-(size.cy/2)-(int)(double)(CenterY-20)*cos(Radians);pDC-TextOut(x,y,str);Radians=(double)Time.GetHour()+(double)Time.GetMinute()/60.0+(double)Time.GetSecond()/3600.0;Radians *=6.28/12.0;/创建时钟指针画笔CPen HourPen(PS_SOLID,5,RGB(0,255,0);pDC-SelectObject(&HourPen);pDC-MoveTo(CenterX,CenterY);/绘制时钟指针pDC-LineTo(CenterX+(int)(double)(CenterX/3)*sin(Radians),CenterY-(int)(double)(CenterY/3)*cos(Radians);Radians=(double)Time.GetMinute()+(double)Time.GetSecond()/60.0;Radians *=6.28/60.0; /创建分钟画笔CPen MinutePen(PS_SOLID,3,RGB(0,0,255);pDC-SelectObject(&MinutePen);/绘制分钟画笔pDC-MoveTo(CenterX,CenterY);pDC-LineTo(CenterX+(int)(double)(CenterX*2)/3)*sin(Radians),CenterY-(int)(double)(CenterY*2/3)*cos(Radians);Radians=(double)Time.GetSecond();Radians *=6.28/60.0; /创建秒钟画笔CPen SecondPen(PS_SOLID,1,RGB(0,255,255);pDC-SelectObject(&SecondP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 交通基础设施建设项目经理劳动合同(智能交通)
- 融资租赁放款管理办法
- 八年级上册语文《唐诗五首》晨读晚背知识清单(一网打尽)
- 资金经理考核管理办法
- 订婚后财产管理办法
- 规范了药品管理办法
- 贵州博士后管理办法
- 紫光灯使用管理办法
- 资源境外投资管理办法
- 频率占用费管理办法
- 变电站消防培训课件
- 钢结构设计原理课件
- 校本课程《花样跳绳》过程性材料
- GB/T 43232-2023紧固件轴向应力超声测量方法
- 伪装迷彩施工方案
- 剪映:手机短视频制作-配套课件
- 飞蚊症护理的课件
- 金融工程.郑振龙(全套课件560P)
- 2023无人机技术概论
- 读书分享交流会《全球通史》课件
- 《照明线路安装与检修》一体化课件-第一章 职业感知与安全用电
评论
0/150
提交评论