一、题目:自然数的分解(基于对话框的Windows应用程序)
二、目的与要求
1. 目的:
培养学生综合利用C++语言进行程序设计的能力,培养学生利用MFC和Visual C++的可视化编程工具进行Windows程序设计和开发的能力。本课题要利用MFC在Visual C++中进行可视化编程,需要学生自学完成,所以可很好地培养学生的自学能力,并使学生对面向对象的程序设计方法有个初步认识。同时提高学生软件系统分析能力和程序文档建立、归纳总结的能力。
2. 基本要求:
(1)要求使用Visual C++中的MFC创建基于对话框的Windows应用程序;
(2)在VC++6.0环境中,学会查究错误、调试程序的方法,独立调试完成;
(3)掌握创建基于对话框的MFC应用程序的操作过程,明确程序是如何通过对话框与用户进行交互的。
三、设计方法和基本原理
1. 课题功能描述
自然数的分解,就是将大于1的自然数分解为素数的乘积和裴波那契数列的和。使用MFC,编写基于对话框的Windows应用程序,当用户输入一个自然数后,将其分解为素数的乘积和裴波那契数列的和,并显示出来。
2. 问题详细描述
自然数的分解是一个基于对话框的Windows应用程序。该程序包含两个对话框:主对话框和帮助对话框(由主对话框启动)。
在主对话框中,用户输入自然数,程序完成分解后,将结果显示出来。
帮助对话框中对本程序的使用方法进行说明,并由主对话框启动。
3. 问题的解决方案
根据问题描述,可以将问题解决分为三步:
1) 使用Visual C++中的MFC AppWizard创建基于对话框的应用程序。(特别提示:对AppWizard创建的应用程序,一定要先链接,然后再进行下面的操作。如果添加代码后进行编译,会因缺少临时文件tmp.pch而出错:“fatal error C1083: Cannot open precompiled header file: 'Debug/tmp.pch': No such file or directory”。所以创建项目后,马上进行链接。)
2) 使用Visual C++中的资源编辑器对程序中的对话框进行可视化编辑,实现程序所需的操作界面。照题目要求,设计友好方便的图形用户界面,以实现程序功能。
3) 使用Class Wizard编辑对话框所对应的对话框类,为对话框中的控件添加成员变量来操纵控件,为对话框中的控件建立消息映射和消息映射函数,最后编写函数代码实现其功能。
四、主要技术问题的描述
根据三的分析,主要问题在于:
整数分解唯一性定理:每个大于1的正整数a均可以分解成有限个素因数之积,并且若不计素因数的次序,其分解是唯一的(若正整数a有一因数b,而b又是素数,则称b为a的素因数)。将自然数n分解为素数的乘积时,n的素因数肯定在2~n范围内。
3) 将自然数分解为裴波那契数列的和,可参阅实验指导书。
4) 分解结果编辑框对应的变量类型为CString,分解的输出结果形式如下:45=3*3*5或13=1*13。数字到字符串的转换有两种方法
方法一:使用itoa函数,其函数声明为:char * itoa ( int value, char * buffer, int radix ).
其中的Parameters.
value :Value to be represented as a string.
buffer :Buffer where to store the resulting string.
radix :Numeral radix in which value has to be represented, between 2 and 36.
Return Value:A pointer to the string.
方法二:使用CEdit类的Format()函数。例如要将int型的变量m,n和字符数组s[30]中的内容,送入CString型的文本框控件对应的控件成员变量m_cresult,则可:
m_crerul.Format(“%d%s%d”,m,s,n);
来实现。
5) 可直接使用“+”运算符进行两个Cstring串对象的连接,例:
CString s1 = "This "; // Cascading concatenation
s1 += "is a "
CString s2 = "test";
CString message = s1 + "big " + s2;
五、创新要求
实现程序功能后,可进行创新设计:提高操作方便性,例如每次分解完成后,清除输入文本框中的内容并使其获得焦点。
(4) 本课题需提交的应用程序项目中的文件:对项目文件夹下面的Debug文件夹,只保留其中的可执行程序(.exe文件),将Debug文件夹中的其它文件删除;然后将项目文件夹中的所有文件压缩后作为程序文件上传到每个学生自己的文件夹中。
求助一下哪位大侠能帮忙贴下
万分感谢
十万火急,今天交.
二、目的与要求
1. 目的:
培养学生综合利用C++语言进行程序设计的能力,培养学生利用MFC和Visual C++的可视化编程工具进行Windows程序设计和开发的能力。本课题要利用MFC在Visual C++中进行可视化编程,需要学生自学完成,所以可很好地培养学生的自学能力,并使学生对面向对象的程序设计方法有个初步认识。同时提高学生软件系统分析能力和程序文档建立、归纳总结的能力。
2. 基本要求:
(1)要求使用Visual C++中的MFC创建基于对话框的Windows应用程序;
(2)在VC++6.0环境中,学会查究错误、调试程序的方法,独立调试完成;
(3)掌握创建基于对话框的MFC应用程序的操作过程,明确程序是如何通过对话框与用户进行交互的。
三、设计方法和基本原理
1. 课题功能描述
自然数的分解,就是将大于1的自然数分解为素数的乘积和裴波那契数列的和。使用MFC,编写基于对话框的Windows应用程序,当用户输入一个自然数后,将其分解为素数的乘积和裴波那契数列的和,并显示出来。
2. 问题详细描述
自然数的分解是一个基于对话框的Windows应用程序。该程序包含两个对话框:主对话框和帮助对话框(由主对话框启动)。
在主对话框中,用户输入自然数,程序完成分解后,将结果显示出来。
帮助对话框中对本程序的使用方法进行说明,并由主对话框启动。
3. 问题的解决方案
根据问题描述,可以将问题解决分为三步:
1) 使用Visual C++中的MFC AppWizard创建基于对话框的应用程序。(特别提示:对AppWizard创建的应用程序,一定要先链接,然后再进行下面的操作。如果添加代码后进行编译,会因缺少临时文件tmp.pch而出错:“fatal error C1083: Cannot open precompiled header file: 'Debug/tmp.pch': No such file or directory”。所以创建项目后,马上进行链接。)
2) 使用Visual C++中的资源编辑器对程序中的对话框进行可视化编辑,实现程序所需的操作界面。照题目要求,设计友好方便的图形用户界面,以实现程序功能。
3) 使用Class Wizard编辑对话框所对应的对话框类,为对话框中的控件添加成员变量来操纵控件,为对话框中的控件建立消息映射和消息映射函数,最后编写函数代码实现其功能。
四、主要技术问题的描述
根据三的分析,主要问题在于:
整数分解唯一性定理:每个大于1的正整数a均可以分解成有限个素因数之积,并且若不计素因数的次序,其分解是唯一的(若正整数a有一因数b,而b又是素数,则称b为a的素因数)。将自然数n分解为素数的乘积时,n的素因数肯定在2~n范围内。
3) 将自然数分解为裴波那契数列的和,可参阅实验指导书。
4) 分解结果编辑框对应的变量类型为CString,分解的输出结果形式如下:45=3*3*5或13=1*13。数字到字符串的转换有两种方法
方法一:使用itoa函数,其函数声明为:char * itoa ( int value, char * buffer, int radix ).
其中的Parameters.
value :Value to be represented as a string.
buffer :Buffer where to store the resulting string.
radix :Numeral radix in which value has to be represented, between 2 and 36.
Return Value:A pointer to the string.
方法二:使用CEdit类的Format()函数。例如要将int型的变量m,n和字符数组s[30]中的内容,送入CString型的文本框控件对应的控件成员变量m_cresult,则可:
m_crerul.Format(“%d%s%d”,m,s,n);
来实现。
5) 可直接使用“+”运算符进行两个Cstring串对象的连接,例:
CString s1 = "This "; // Cascading concatenation
s1 += "is a "
CString s2 = "test";
CString message = s1 + "big " + s2;
五、创新要求
实现程序功能后,可进行创新设计:提高操作方便性,例如每次分解完成后,清除输入文本框中的内容并使其获得焦点。
(4) 本课题需提交的应用程序项目中的文件:对项目文件夹下面的Debug文件夹,只保留其中的可执行程序(.exe文件),将Debug文件夹中的其它文件删除;然后将项目文件夹中的所有文件压缩后作为程序文件上传到每个学生自己的文件夹中。
求助一下哪位大侠能帮忙贴下
万分感谢
十万火急,今天交.