软件项目实训-华氏温度与摄氏温度的转换.doc_第1页
软件项目实训-华氏温度与摄氏温度的转换.doc_第2页
软件项目实训-华氏温度与摄氏温度的转换.doc_第3页
软件项目实训-华氏温度与摄氏温度的转换.doc_第4页
软件项目实训-华氏温度与摄氏温度的转换.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实训报告电气信息学院实训报告课 程 名 称: 软件项目实训 实 训 题 目: 华氏温度与摄氏温度的转换 年级/专业/班: 学 生 姓 名: 夏雪峰 学 号: 实训成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5) 报告撰写质量(45)总 分(100)指导教师签名: 年 月 日实训时间6.11-6.24地点l4b308实训学时2周实训 目的 提高面向对象的可视化编程能力提高合作协调能力掌握visual c+可视化程序界面设计的基本方法实训内容 题目概述: 目前,随着社会的进步和发展,温度控制器的应用已越来越广泛,许多国家用的温度是华氏,一般传统的温度计只能测量和显示实时的摄氏或者华氏温度,功能单一。已经不能很好适应现代化工农业生产、生活的需要。基于以上的考虑,本设计制作两种温度的转换,其中华氏与摄氏温度是经常用到的。编程实现功能简介:本程序是通过输入华氏温度,经过程序计算来得出摄氏温度,或通过输入摄氏温度,经程序计算得出华氏温度。整个程序的框架是这样构建的:一边是摄氏温度的输入(输出)框,一边是华氏温度的输入(输出)框。理论上的运行过程是这样的:如果在摄氏温度框内输入一个数值,然后点击“转换”按钮,在另一边的华氏温度框内就会显示出对应的数值;如果在华氏温度框内输入一个数值,然后点击“转换”按钮,在另一边的摄氏温度框内就会显示出对应的数值。完成之后还需设计一个小应用,就是当温度达到一定程度的时候会有个消息框进行提示“请注意防暑或请注意保暖”!实训分工安排本程序由两人共同完成其中同学主要负责程序调试与编写等工作;同学主要负责资料收集和实训调试与内容功能的确定工作;实训要求 两人合作完成同一项目分工合作后汇总进行统一测试与更正使用visual c+6.0实现用户界面使用实训室及 主要设施设备 l4b305联想商用电脑d2527联想y460实 训 成 果 1 完成了此次实训内容,能够进行简单的温度转换以及能够提示防寒避暑等问题。2 完成了实训报告3在程序设计中遇到困难时,我和同学们一起讨论,解决问题,遇到实在是想不通的地方,通过老师的指点答疑,最终共同完成了程序。在整个过程中,也增进了我发现问题和解决问题的能力。 1 引言 1.1系统概述 本程序是通过输入华氏温度,经过程序计算来得出摄氏温度,或通过输入摄氏温度,经程序计算得出华氏温度。整个程序的框架是这样构建的:一边是摄氏温度的输入(输出)框,一边是华氏温度的输入(输出)框,其中输出框可以选取一个。理论上的运行过程是这样的:如果在摄氏温度框内输入一个数值,然后点击“转换”按钮,在另一边的华氏温度框内就会显示出对应的输出数值;如果在华氏温度框内输入一个数值,然后点击“转换”按钮,在另一边的摄氏温度框内就会显示出对应的输出数值,当两组数据转换完成之后还会设置一个清零按钮会清零所有输入数据。完成之后还需设计一个小应用,就是当温度达到一定程度的时候会有个消息框进行提示“请注意防暑或请注意保暖”!1.2 需求分析 目前,随着社会的进步和发展,温度控制器的应用已越来越广泛,许多国家用的温度是华氏,一般传统的温度计只能测量和显示实时的摄氏或者华氏温度,功能单一。已经不能很好适应现代化工农业生产、生活的需要。基于以上的考虑,本设计制作两种温度的转换,其中华氏与摄氏温度是经常用到的。1.3 运行环境 硬件::计算机(cpu 主频 1.81ghz、512mb内存)软件:windows xp 操作系统,visual c+6.0 是microsoft公司在1998年推出的基于windows 9x和windows nt的优秀集成开发环境。该环境为用户提供了良好的可视化编程环境,程序员可以里利用该开发环境轻松地访问c+源代码编辑器,资源编辑器和使用内部调试器,并且可以创建项目文件。visual c+6.0不仅包括编译器,而且它还包括许多有用组件,通过这些组件的协同工作,可以在visual c+6.0集成环境中轻松地完成创建源文件,编辑资源,以及对程序的编译,连接和调试等各项工作。vc+6.0是windows 95/98、xp或windows nt下的一个应用程序,本身对软硬件没有特殊要求。就是说它对环境的要求与windows 95/98、windows nt要求是一致的。硬件要求:一般在586以上的处理器、16mb以上内存、100mb以上的硬盘。软件要求:windows 95/98或windows nt3.51以上版本。vc+ 6.0系统可以在一张cd盘上,也可以在“visual studio( visual c+、visual foxpro)”等产品的第一张cd盘上。一般都有一个vc的自动安装程序,也可以执行vc6目录下的setup.exe,在安装包的提示下进行,对初学者可采用“典型安装”方式。在安装好vc 6.0系统后,有时根据需要添加或删除某些部件,可插入cd盘重新执行setup.exe安装程序,安装程序会检测当前系统安装vc6的足件,用户单击“添加删除”按钮后,在“安装维护”对话框中选定要添加的部件或撤消选定要删除的部件。与一般的应用软件一样,有以下两种启动方式:(1) 通过“开始”按钮,选择“程序”菜单,然后打开“microsoft visual studio 6.0中文版”子菜单中的“microsoft visual c+ 6.0 中文版”程序。(2) 用户也可以使用命令行启动vc。单击“开始”按钮后选择“运行”命令,在“运行”对话框中输入c:program filesmicrosoft visual studiovc98vc6.exe(按默认盘符和路径安装)即可。 2 概要设计2.1 设计思路 设置窗口布局消息映射函数程序编写编译调试验证总结2.2 模块功能介绍 本次课程设计主要分为三个模块(1) 华氏温度与摄氏温度的相互转换(2) 数值清零(3) 消息框的编辑2.3 模块结构图 2.4 程序流程图点击转换 点击转换 显示运算结果会出现相应的摄氏温度或者华氏温度以及消息提示框在编辑框内输入华氏温度或者摄氏温度运行程序清零 2.5 功能设计分工 本次课程设计我主要是进行资料的收集,功能的开发以及最后的调试。我先是查找有关的资料,在网上找到温度转换的相关实际应用与开发前景。找到microsoft visual c+ 6.0更加详细的说明教程。通过上网和书上查证得到华氏与摄氏温度转换的函数关系编程完成后进行导入到visual c+ 6.0完成函数映射,进行编译最后得到了想要的温度转换工具。但是陈老师说我们这个太过简单需要添加一些应用项目,所以我建议我的同伴添加一个消息框,当温度达到一定时提示我们“请注意防暑或请注意保暖”,本来我还想在添加一个图形来形象表示温度计,但是在网上和书上也没能找到关于温度的控件,所以不再尝试了!3详细设计3.1 窗体设计利用mfc appwinzard生成应用程序框架具体步骤如下:(1) 执行vc程序,选择新建命令,弹出对话框.单击工程标签,转到工程选项卡,选择mfc appwizard(exe)选项,然后在添加到工程文本框中输入“摄氏温度与华氏温度转换”文本框是指项目的本地路径如下图所示。(2) 单击按钮,弹出mfc appwinzard_step1对话框。选中单选按钮,如下图所示。(3) 单击完成按钮,则建立一个单文档应用框架,如下图所示。(4) 新建编辑框和按键键,如下图所示。(5)修改名称,点右键选择属性选项即可如下图所示。(6) 设置编辑框和按键键的属性,主要是消息映射函数设定,如下图所示。 (6) 设置功能模块的各个程序代码,点击ok按键就可以直接跳转到这个功能模块的程序代码,如下图所示。 (7) 功能模块的各个程序编完后,点击左上角的保存按键,等待执行程序3.2 功能模块程序 功能模块一温度相互转换程序和功能模块三消息框的程序在按键button1(转换)按键上: void ctemdlg:onbutton1() / todo: add your control notification handler code herethis-updatedata (1);if(m_a)m_c.format(%f,(m_a-32)/1.8);已知华氏求摄氏elsem_c.format(%f,(1.8*m_b+32);已知摄氏求华氏 if(m_b30&m_a=0) 消息框的设定messagebox(注意防暑, 消息框, mb_iconexclamation|mb_ok);else if(m_b86&m_b=0)messagebox(注意防暑, 消息框, mb_iconexclamation|mb_ok);else if(m_aupdatedata (0);功能模块二清零程序在button2(清零)按键上:void ctemdlg:onbutton2() / todo: add your control notification handler code herethis-updatedata (1); m_a=0; 对编辑框一清零 m_b=0; 对编辑框二清零this-updatedata (0);4 调试分析 (1) 在windows可视化界面中,消息映射函数十分重要,我就搞错了好几次两个温度的函数定义符号搞反了,每个按钮必须与与之对应的消息函数对应,同时,函数的变量也应该在mfc class wizard里设置准确,否则会影响最终的调试。(2) 在设置编辑框的变量时要注意与程序中的的变量名保持一致,这样才能保证键入的数值能正确显示在程序框中。在温度转换的过程中变量的名字搞错了几次,最后直接用a、b、c与之区别。(3) 本次设计中存在的缺陷就是没能在成品里面添加一个图形的温度计,这是因为我们没能找到相关的插件。5 测试 (1) 编辑保存后,进行过编译运行,即点击右上角的“感叹号”如下图所示。 (2) 然后就可以得到所需要的结果,当温度达到一定程度(低于30摄氏度或者高于10摄氏度)的时候会有个消息框进行提示“请注意防暑或请注意保暖”!如下图所示。 (3) 进行验证输入华氏温度99度,点击转换按钮就可以得到输出端的摄氏温度37.22222度和消息框“注意防暑” 如下图所示。 (4) 进行验证输入华氏温度45度,点击转换按钮就可以得到输出端的摄氏温度7.22222度和消息框“注意保暖” 如下图所示。 (5) 进行验证输入摄氏温度度,点击转换按钮就可以得到输出端的摄氏温度37.22222度和消息框“注意防暑” 如下图所示。 (6) 进行验证输入摄氏温度5度,点击转换按钮就可以得到输出端的摄氏温度41度和消息框“注意保暖” 如下图所示。 (7) 进行验证输入华氏温度65度,点击转换按钮就可以得到输出端的摄氏温度18.3333度且不会出现消息框。 心得与体会本课程设计主要是温度的转换,将华氏温度转换成摄氏温度,同时设计了一个小应用,就是当温度达到一定程度(低于30摄氏度或者高于10摄氏度)的时候会有个消息框进行提示“请注意防暑或请注意保暖”!通过温度转换程序的设计,使我对vc+ mfc有了一定了解,使用mfc类库可以大大简化程序的设计,为我们设计程序提供了很大的方便。我们通过查阅各种介绍mfc编程的书籍,最后学会了从利用mfc的应用程序向导(appwizard)创建一个应用程序,再到添加控件,再到消息函数的创建,再到控件代码的编辑,最后完成程序。在程序设计中遇到困难时,我和同学们一起讨论,解决问题,遇到实在是想不通的地方,通过老师的指点答疑,最终共同完成了程序。在整个过程中,也增进了我发现问题和解决问题的能力。虽然只是两种温度的转换但是原理基本一样,而且在功能的设计中接受老师的建议增加了消息提示框这一项目,使得本次课程设计更加完善最后要感谢老师对我们的指导,感谢所有对我们提供过帮助的同学。相信我在今后的学习工作中也会受益匪浅。指导教师评语指导教师签名:年 月 日 参考文献 1 宋金珂编著, vc+程序设计基础教程,清华大学出版社2 谭浩强.c语言程序设计.清华大学出版社3汪翔,袁辉.visual c+ 实践与提高(网络编程篇)m. 北京:中国铁道出版社,20014黄维通.visual c+ 面向对象与可视化程序设计m. 北京:清华大学出版社,20035谢希任.计算机网络(第4版)m. 北京:电子工业出版社,20056(美)w. richard stevens. tcp/ip详解卷1:协议m. 北京:机械工业出版社,20057北京现代富博科技有限公司,陈兵旗,孙明. 北京:visual c+实用图象处理专业教程m .清华大学出版社,2004、8 李晓黎编著.visual basic +sql server数据库应用系统开发与实例. 人民邮电出版社9 启明工作室编著.visual basic+access数据库应用系统开发与实例. 人民邮电出版社10 启明工作室编著.visual c+ + sql server数据库应用系统开发与实例. 人民邮电出版社附 录本次课程设计的核心程序代码 / temdlg.cpp : implementation file/#include stdafx.h#include tem.h#include temdlg.h#ifdef _debug#define new debug_new#undef this_filestatic char this_file = _file_;#endif/ caboutdlg dialog used for app aboutclass caboutdlg : public cdialogpublic:caboutdlg();/ dialog data/afx_data(caboutdlg)enum idd = idd_aboutbox ;/afx_data/ classwizard generated virtual function overrides/afx_virtual(caboutdlg)protected:virtual void dodataexchange(cdataexchange* pdx); / ddx/ddv support/afx_virtual/ implementationprotected:/afx_msg(caboutdlg)/afx_msgdeclare_message_map();caboutdlg:caboutdlg() : cdialog(caboutdlg:idd)/afx_data_init(caboutdlg)/afx_data_initvoid caboutdlg:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(caboutdlg)/afx_data_mapbegin_message_map(caboutdlg, cdialog)/afx_msg_map(caboutdlg)/ no message handlers/afx_msg_mapend_message_map()/ ctemdlg dialogctemdlg:ctemdlg(cwnd* pparent /*=null*/): cdialog(ctemdlg:idd, pparent)/afx_data_init(ctemdlg)m_a = 0.0;m_b = 0.0;m_c = _t();/afx_data_init/ note that loadicon does not require a subsequent destroyicon in win32m_hicon = afxgetapp()-loadicon(idr_mainframe);void ctemdlg:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx_data_map(ctemdlg)ddx_text(pdx, idc_edit1, m_a);ddx_text(pdx, idc_edit2, m_b);ddx_text(pdx, idc_edit3, m_c);/afx_data_mapbegin_message_map(ctemdlg, cdialog)/afx_msg_map(ctemdlg)on_wm_syscommand()on_wm_paint()on_wm_querydragicon()on_bn_clicked(idc_button1, onbutton1)on_bn_clicked(idc_button2, onbutton2)on_wm_create()on_wm_helpinfo()on_wm_killfocus()on_wm_contextmenu()/afx_msg_mapend_message_map()/ ctemdlg message handlersbool ctemdlg:oninitdialog()cdialog:oninitdialog();/ add about. menu item to system menu./ idm_aboutbox must be in the system command range.assert(idm_aboutbox & 0xfff0) = idm_aboutbox);assert(idm_aboutbox appendmenu(mf_separator);psysmenu-appendmenu(mf_string, idm_aboutbox, straboutmenu);/ set the icon for this dialog. the framework does this automatically/ when the applications main window is not a dialogseticon(m_hicon, true);/ set big iconseticon(m_hicon, false);/ set small icon/ todo: add extra initialization herereturn true; / return true unless you set the focus to a controlvoid ctemdlg:onsyscommand(uint nid, lparam lparam)if (nid & 0xfff0) = idm_aboutbox)caboutdlg dlgabout;dlgabout.domodal();elsecdialog:onsyscommand(nid, lparam);/ if you add a minimize button to your dialog, you will need the code below/ to draw the icon. for mfc applications using the document/view model,/ this is automatically done for you by the framework.void ctemdlg:onpaint() if (isiconic()cpaintdc dc(this); / device context for paintingsendmessage(wm_iconerasebkgnd, (wparam) dc.getsafehdc(), 0);/ center icon in client rectangleint cxicon = getsystemmetrics(sm_cxicon);int cyicon = getsystemmetrics(sm_cyicon);crect rect;getclientrect(&rect);int x = (rect.width() - cxicon + 1) / 2;int y = (rect.height() - cyicon + 1) / 2;/ draw the icondc.drawicon(x, y, m_hicon);elsecdialog:onpaint();/ the system calls this to obtain the cursor to display while the user drags/ the minimized window.hcursor ctemdlg:onquerydragicon()return (hcursor) m_hicon;void ctemdlg:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论