资源预览内容
第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
第9页 / 共26页
第10页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
课 程 设 计 任 务 书学院 信息科学与工程 专业 电子信息科学与技术学生姓名 学号设计题目 1.分数类的设计与实现 2.生命游戏 1.分数类的设计与实现建立用于完成分数形式运算的类 RationalNumber。编写一个测试该类的程序。用整数变量表示类的私有数据(即分子和分母) 。给类提供一个能够对所声明的对象初始化的构造函数。为了能够在不提供初始化值的情况下也能对对象初始化,构造函数中应该包含默认的值。构造函数还应该以最简分数的形式存储数据,即 2/4 应该在对象中存储成分子为 1、分母为 2 的形式。公有成员函数应该有以下功能:1.两个有理数相加,以最简形式保存结果;2.两个有理数相减,以最简形式保存结果;3.两个有理数相乘,以最简形式保存结果;4.两个有理数相除,以最简形式保存结果;5.以 a/b 的形式输出有理数(a 是分子,b 是分母) ;6.以浮点形式输出有理数。2.生命游戏生命游戏其实是一个零玩家游戏。它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。1.如果一个细胞周围有 3 个细胞为生(一个细胞周围共有 8 个细胞) ,则该细胞为生(即该细胞若原先为死,则转为生,若原先为生,则保持不变) 。 2.如果一个细胞周围有 2 个细胞为生,则该细胞的生死状态保持不变; 3.其它情况下,该细胞为死(即该细胞若原先为生,则转为死,若原先为死,则保持不变)进度安排:第 17 周:分析题目,查阅课题相关资料,进行类设计、算法设计;第 18 周:上机调试程序,程序测试与分析,撰写课程设计报告,准备答辩。指导教师(签字):年 月 日学院院长(签字)年 月 日目 录PART I.11 需求分析 .12 算法基本原理 .12.1 加法 .12.2 减法 .22.3 乘法 .22.4 除法 .23 类设计 .24 详细设计 .34.1 类的接口设计 .34.2 类的实现 .44.3 主函数设计 .95 运行结果与分析 .105.1 程序运行结果 .105.2 运行结果分析 .12PART II .126 基于 MFC 的图形界面程序开发 .126.1 基于 MFC 的图形界面程序设计 .12(1)界面设计 .12(2)代码设计 .146.2 测试程序 .226.3 MFC 程序编写总结 .237 参考文献 .240PART I1 需求分析(1) 有理数可分为整数和分数也可分为三种,一;正数,二;0,三;负数。除了无限不循环小数以外的实数统称有理数。在数学上有理数的运用相当广泛,所以一款简易的有理数计算器可以大大节约时间,而且不会因为人为误差导致计算结果出错。(2) 依照它们的序列,有理数具有一个序拓扑。有理数是实数的(稠密)子集,因此它同时具有一个子空间拓扑。采用度量,有理数构成一个度量空间,这是它的第三个拓扑。幸运的是,所有三个拓扑一致并将有理数转化到一个拓扑域。有理数是非局部紧致空间的一个重要的实例。这个空间也是完全不连通的。有理数不构成完备的度量空间;实数是它的完备集。(3)程序测试数据选择若干种有代表性的数据来进行测试,通过临界数据的测试来判断系统的正确性。2 算法基本原理2.1 加法有理数的加法与小学的加法大有不同,小学的加法不涉及到符号的问题,而有理数的加法运算总是涉及到两个问题:一是确定结果的符号;二是求结果的绝对值。 在进行有理数加法运算时,首先判断两个加数的符号:是同号还是异号,是否有 0。从而确定用那一条法则。在应用过程中,一定要牢记先符号,后绝对值 ,熟练以后就不会出错了。 多个有理数的加法,可以从左向右计算,也可以用加法的运算定律计算。法则1同号相加,取相同符号,并把绝对值相加。2绝对值不等的异号加减,取绝对值较大的加数符号,并用较大的绝对值减去较小的绝对值。互为相反数的两个数相加得 0。3一个数同 0 相加,仍得这个数。定律.同号相加,取相同符号,并把绝对值相加。.绝对值不相等的异号两数加减,取绝对值较大的符号,并用较大的绝对值减去较小的绝对值。互为相反数的两个数相加得 0。1.一个数同 0 相加,仍得这个数。.相反数相加结果一定得 0。2.2 减法有理数减法法则:减去一个数,等于加上这个数的相反数。其中:两变:减法运算变加法运算,减数变成它的相反数。一不变:被减数不变。可以表示成: ab=a+(b) 。2.3 乘法1.两数相乘,同号为正,异号为负,并把绝对值相乘。例;(-5)(-3)=15 (-6 )4=-242.任何数字同 0 相乘,都得 0. 例;01=03.几个不等于 0 的数字相乘,积的符号由负因数的个数决定。当负因数有奇数个数时,积为负;当负因数有偶数个数时,积为正。并把其绝对值相乘。例;(-10)-5(-0.1) (-6)=积为正数,而(-4 )(-7 )(-25)=积为负数4.几个数相乘,有一个因数为 0 时,积为 0. 例;3(-2)0=0 5.乘积为 1 的两个有理数互为倒数(reciprocal) 。例如,3 与1/3,3/8 与8/3。2.4 除法1.除以一个数等于乘以这个数的倒数。 (注意:0 没有倒数)2.两数相除,同号为正,异号为负,并把绝对值相除。3.0 除以任何一个不等于 0 的数,都等于 0。4.0 在任何条件下都不能做除数。3 类设计从上面的算法分析可以看到,本设计面临的计算问题的关键是设计一个有理数运算类。这个类必须能将用户给定的 2 个整数表达成有理数,同时必须进行合法性检测。同时需要为类设计 4 个方法,分别来运算加法,减法,乘法和除法,为了使有理数运算看起来更符合自然,所以必须利用 C+的重载技术,来对相应的 4 种运算符进行重载,并且还需要设计一个方法来满足有理数分数形式和小数形式的转换。要从用户输入创建一个有理数,为类设计了一个带有默认参数的构造函数来满足需求。根据以上的分析,设计出CRationalNumber 类。如图 3.1 所示。2图 3.1 CRationalNumber 类 UML 图形表示4 详细设计整个程序分为三个独立的文档,RationalNumber.h 文件中为有理数类 CRationalNumber的申明,RationalNumber.cpp 文件中包括有理数类的成员函数实现文件;main.cpp 文件包括程序的入口函数和测试数据。4.1 类的接口设计/RationalNumber.h 文件,实现类的声明class CRationalNumber public:CRationalNumber (int nt=0,int dt=1); /带
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号