《面向对象程序设计》课程设计教学大?/p>
适用专业:计算机科学与技?/p>
课程周数?/p>
2
?/p>
一、大纲说?/p>
本大纲根据计算机科学与技术专业人才培养方案制订?/p>
(一)课程设计性质
课程设计是学生对课程所学知识的综合运用?/p>
它与课堂听讲?/p>
上机实验?/p>
课外练习?/p>
自学研究相辅相成,构成一个完整的课程教学体系?/p>
(二)主要先修课程和后续课程
1.
先修课程?/p>
?/p>
C
语言程序设计?/p>
2.
后续课程?/p>
?/p>
Java
程序设计?/p>
?/p>
《软件工程?/p>
二、课程设计目的及基本要求
本课程全面系统的学习面向对象程序设计的基本概念,基本语法和编程方法。正?/p>
理解掌握
C++
面向对象程序设计的基本特性:类,对象,继承与派生,多态,虚函数,
模板,流类库等。遵循软件过程的各个环节进行系统分析、设计、实现、集成、测试,
并相应给出软件规格说明书等制品,
了解当前常用的软件开发工?/p>
(Visual C++)
?/p>
要求?/p>
练掌握基?/p>
Win32 Console Application
的程序设计,培养解决实际问题的能力?/p>
三、课程设计内容及安排
1
、有理数运算
问题描述:有理数是一个可以化为一个分数的数,例如
2/3
?/p>
533/920
?/p>
-12/49
?/p>
是有理数,而就为无理数。在
C++
中,并没有预先定义有理数,需要时可以定义一个有
理数类,将有理数的分子和分母分别存放在两个整型变量中。对有理数的各种操作都可
以用重载运算符来实现?/p>
基本要求:定义并实现一个有理数类,通过重载运算?/p>
+
?/p>
-
?/p>
*
?/p>
/
对有理数进行?/p>
术运算,通过重载运算?/p>
==
实现判定两个有理数是否相等。写一个优化函数,它的作用
是使有理数约去公分母,也即是使保存的有理数分子和分母之间没有公约数(除去
1
?/p>
外)
。此外,还要定义一个将有理数转换为实数的函数,再加上构造函数和有理数输?/p>
函数?/p>
测试数据:在应用程序中,创建若干有理数对象,通过带参数的构造函数使得各?/p>
理数对象值各不相同,然后分别进行各类运算,输出运算结果,检验其正确性?/p>
实现提示?/p>
设有两个有理?/p>
a/b
?/p>
c/d
,则有:
?/p>
1
)有理数相加
分子
=a*d+b*c
;分?/p>
=b*d
?/p>
2
)有理数相减
分子
=a*d-b*c
;分?/p>
=b*d
?/p>
3
)有理数相乘
分子
=a*c
?/p>
分母
=b*d
?/p>
4
)有理数相除
分子
=a*d
?/p>
分母
=b*c
优化函数在创建有理数对象时应执行,在执行其它各种运算之后也需执行它,这样
可保证所存储的有理数随时都是最优的。对于判断两个有理数是否相等,由于在对有?/p>
数进行各种运算后都对其进行优化,
所以判定两个有理数是否相等只需判定它们两个?/p>
分子和分母分别相等即可?/p>
选做内容:重载插入(
<<
)和提取
?/p>
>>
)运算符?/p>
使得对有理数可以直接输入输出?