《面向对象程序设计》课程设计
编程工具:可以用VC++6.0C++ BuilderVisual Studio 2005。推荐用Visual Studio 2005
要求:
1、使用面向对象方法进行课程设计。要求使用对象/类,继承,多态性等技术
2、程序设计语言使用C++
3、程序的界面、逻辑功能和数据的存储进可能的分开
4学习编程的单机游戏、完成课程设计报告报告记录设计的过程。课程设计报告的内容应当包括以下内容:要完成的功能;设计的具体描述;设计的源代码执行的结果等功能。根据结合自己的实际情况,酌情选择相关的功能,并完成设计。课程设计报告样例请参考附件。
题目:在控制台程序或图形界面程序中任意一个作为课程设计题目,设计过程中要求独立完成,不能再网上COPY代码,题目在附件里
控制台程序
2.自定义一个示意性的复数类型complex,其中含有若干个成员函数,使用该类可以完成复数的加法以及对复数的输出。请完成类定义,并编制主函数,说明complex类对象,对定义的各成员函数进行调用。
class complex{
    double real                //复数实部
    double imag                //复数虚部
public:
    complex()                //无参构造函数
    complex(double r, double i)    //2参构造函数
    complex addCom(complex c2)    //调用者对象与对象c2相加,返回complex类对象
    void outCom ()            //输出调用者对象的有关数据(各分量)   
}
进一步,在类中添加对复数进行其他基本运算(如,复数减、乘、除、取模等)的相应成员函数,并通过主函数处的调用来验证各函数的使用正确性。
3.利用虚函数手段,按照3种不同的计算方法来求出Fibonacci数列的第n项(的具体项值)并输出。具体地说,可通过在基类baseCla及其派生类fib1Clafib2Clafib3Cla中说明如下的同一个虚函数virtual double fib(int n),来实现求Fibonacci数列第n项值并返回的3种不同求解方法。
4.设计一个类CStudent,类中包含一个学生的基本数据如下:
编号,姓名,性别,年龄,数学成绩,计算机成绩,外语成绩。
并假设编号为整数,且从1号往后连续编码;姓名为字符串,性别为字符。如:
1 LiPing m 18 89 98 94
请采用binary文件形式,并使用随机读写处理方式,对自定义CStudent类的对象数据进行存
储与读写处理(即是说,总按具有连续编码的编号num为“序”来对文件中的各对象数据进行随机读写处理)。并设计该类的成员函数,而且对输出运算符“<<”进行重载,使该运算符能够完成将一个学生的信息输出到屏幕上。要求成员函数完成以下功能:
(1) 从键盘输入一个学生的有关信息,并将它们存入到数据文件中(按编号来确定写出位置)。
(2) 按编号对学生信息进行检索并将检索结果显示在屏幕上。
(3) 按姓名对学生信息进行检索并将检索结果显示在屏幕上。
(4) 计算某编号学生的总成绩与平均成绩。
(5) 列出所有总成绩超过n分的性别为s同学的有关信息(n,s由用户从键盘输入)。
思考:可进一步对上述程序进行扩充,如,添加学生基本数据(籍贯,专业,班级,其他各门成绩,奖惩记录等),并添加所需要的其他相关处理函数(如可通过咨询教案办公室管理人员后确立),进而将其编制成为一个简单而实用的小型学籍与成绩管理软件。
5.编写程序实现一个简单的电话记录簿,要求记录的个人信息包括:姓名,单位,家庭电话,移动电话。具体功能如下:
1.创建信息链表并以磁盘文件保存。
2.读取磁盘文件并显示输出所有人的移动电话。
3.按姓名或单位查询家庭电话。
4.通过姓名和单位确定个人,修改其电话信息并存盘。
图形界面程序
1.实现一个计算器
参考Windows的计算器应用程序。
2设计一个通信录
参考Outlook通信录,或自行设计。
3.实现以下绘图程序
要求:
(1)程序中包含菜单项和工具栏;
(2)先选择菜单项或单击工具栏上的命令按钮,然后在窗体空白区域单击鼠标后,绘制相应菜单项或命令按钮指定的图形、文字。
扩充:
1 能够选择、移动、删除、拷贝、剪切图元
2 完成图形文件的保存、打开、打印
4.用你熟悉的一种可视化编程语言实现以下汉诺塔演示程序。
5.单机版俄罗斯方块
游戏规则:在方块从屏幕上方落下来时,玩家可以移动和旋转窗口内落下的方块,巧妙地安排布置,达到充分利用屏幕空间的目的。每当屏幕的一整行被方块积木排满时,作为奖赏,整行从屏幕上消失,剩余的积木依次往下降一行。当积木堆积达到屏幕顶端的时候,游戏结束。
扩充:多人联机游戏。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。