当前位置:文档之家› 面向对象程序设计课设题目

面向对象程序设计课设题目

面向对象程序设计课设题目
面向对象程序设计课设题目

2012计算机科学与技术专业

面向对象课程设计题目

一设计要求

每个题目可以1人或至多两人,按题目要求完成程序设计及课程设计报告。

(若两人一个题目,需各自独立完成,题目相同者的课程设计报告不能完全相同。)二题目列表

三题目内容及要求

题目1 矩阵运算

内容及要求:

定义矩阵类,实现矩阵加法、减法、乘法、矩阵转置、求矩阵的逆矩阵等。

用程序实现验证n*n矩阵的如下定理:

A(BC)=(AB)C。

题目2 填XO游戏程序

内容及要求:

游戏规则和胜利条件:

棋盘共有5行5列:

选择难度(1):两个斜对角之一都为X或O,则玩家胜。一横行都为X或O则玩家胜。)一竖行都为X或O则玩家胜。

选择难度(2):两个斜对角之一都为X或O,则玩家胜。

选择难度(3):两个斜对角都为X或O,则玩家胜。

输入必须为一个两位整数,如11,代表棋盘的第一行第一列,输完后按回车键;

玩者下一步X或O,计算机也自动下一步X或O。

程序运行示例:

题目3 统计学生成绩

内容及要求:

要求编写一个“Student”类及用来存取文件的save()和load()函数,使用函数及运算符重载技术完成如下操作:

(1)计算每个学生的平均成绩,将数据存入文件stud.dat中并验证是否正确地存入了文件。(2)要求对“<<”和“>>”运算符进行重载。

(3)把学生姓名和平均成绩抽取出来,建立一个简明文件stud_mean.dat,并验证是否正确地存入了。

(4)从文件stud.dat按如下格式输出大于等于平均成绩的学生信息:

学号姓名算术语文平均

(5)将两门功课成绩都不及格的学生信息从文件中删除并另外存入文件bad.dat中。

(6)编写能检索文件中某个学生信息的子程序。如无此学生,输出“未查到”信息。

(7)使用多文件编程和菜单操作。

题目4 会议记录管理系统

内容及要求:

定义会议信息类class Conference

会议信息包括:会议编号,会议名称、部门名称、会议地点,会议日期,会议主持人,会议记录人,出席人员,会议摘要。会议信息以二进制形式存储在文件中。

(1) 添加会议记录

(2) 浏览所有会议记录信息

(3) 按不同字段(会议编号,会议名称等)查询会议记录

(4) 修改会议记录

(5) 删除会议记录

题目5 设计菜单选择趣味程序

内容及要求:

设计一个比较使用的菜单,通过菜单选择不同的功能。设计分两步:首先涉及一个含有多个菜单项的菜单演示程序,然后再为这些菜单项配上相应的功能。

出圈游戏一:

(1)设计一个SeqList类。

(2)在头文”head.h”中声明类,并使用默认的内联函数方式定义它们。

(3)使用类的数组来求解。

(4)用Joseph()函数求解出圈,使用函数game1()作为菜单项。

(5)在文件game1.cpp中实现Joseph和game1()函数。

出圈游戏二:

(1)使用上题中的SqList类.使用向量数组求解。

(2)重载Joseph()函数来求解出圈,使用函数game2()作为菜单项。

(3)在文件game2.cpp中实现Joseph()和game2()函数

求解方程:

(1)设计类FindRoot

将方程系数设计成属性,将方程的根x1,x2。以及用来作为判定条件的d(d=b*b-4*a*c) 均设计成类的属性

(2)设计构造函数

(3)设计求根成员函数Find().

(4)设计输出结果成员函数Display().

题目6 个人财政管理

内容及要求:

(1)完善程序,补充类中数据成员盈余(dlBalance)的计算和输出,要求每笔收入和支出都要重新统计当前情况下的盈余数目。

(2)程序中的收支情况按时间顺序排序存放,将其放入一个文件中,每次运行程序时首先打开这个文件,程序运行完毕时将更新的记录放回文件中。

(3)可以按时间的范围来检查账目,即在主菜单中增加检索的功能选项,输入时间范围即可打印出详细报表。

(4)可以修改、删除某笔收入或支出。

(5)增加程序监控功能,当输入时间发生错误(如月份超过12等)时,要求重新输入正确的时间;当结余的数目为负数时,打印出信息,警告已经透支。

题目7 求解有理数分式方程

内容及要求:

设计一个Rational(有理数)类,用来求解有理数分式方程。为它设计两个数据成员,一个作为分子,另一个作为分母。分母不能为0。有理数1/2可以使用这个类的对象r表示为r(1,2)。需要完成如下操作:

如果分子和分母友公约数,就应该进行化简;

有理数可以进行四则运算,需要重载运算符;

重载流运算符,可以直接输入分子和分母,以及作为整体输出,如:

cin>>r;

1/6 //输入

cou<

1/6 //输出

解有理数方程a/b x+c/d =e/f,用有理数表示为:

r1=a/b r2=b/c r3=e/f 则

x=(r3-r2)/r1

题目8 模拟21点扑克牌游戏

内容及要求:

模拟21点扑克牌游戏,玩家最多可以要5张牌,但如果牌的点数之和超过21,则自动出局;在不超过21点的情况下,玩家与庄家比牌的点数的大小,大者为赢家。

程序设计要求:

(1)将大于10点的点数改为半点。

(2)高级玩家可以查看下一张牌,然后按要求输入密码,密码正确可以看牌,决定是否要牌。

(3)超级玩家可以查看庄家的所有牌面,并任意输入自己想要的牌,有赢无输。

(4)每次要完牌后可以重新设定赔率,只能加注。

题目9 计算算术运算表达式

内容及要求:

计算算术运算表达式。实现将括号内的数提出计算,再将结果并入愿字符串,每次只计算一个简单的式子,如对算式(3+22)*3而言,先计算式子3+22,得到结果25,再求25*3,得到最终结果75

要求:计算string所表示的算术运算表达式的值。

题目10 通信录

内容及要求:

(1)输入信息,建立文件;

(2)文件的存取和显示;

(3)删除记录;

(4)查询记录;

(5)整体性能;

(6)测试程序。

题目11 分数运算

内容及要求:

分数相加,两个分数分别是1/5和7/20,它们相加之后得11/20。方法是先求出两个分数分母的最小公倍数,通分后,再求两个分子的和,最后约简结果分数的分子和分母(如果两个分数相加的结果是4/8,则必须将其化简成最简分数的形式1//2),即用分子分母的最大公约数分别除分子和分母。试建立一个一个分数类Fract,来完成两个分数相加的功能。

(1)重载提取和插入运算符<<和>>,实现分数类对象的直接输入输出,即可以用cin 运算符从键盘输入具体的分数数据,同时将运算结果用cout输出。

(2)重载加法运算符+,完成两个或多个对象的加法,同时约简结果。

(3)重新用两种方法实现m,n的最大公约数的函数int gcd(int m,int n)。

题目12 彩票游戏

内容及要求:

该程序模拟体彩和福彩的投彩的开奖过程。

(1)进一步完善福彩部分,无论是开奖还是下注,福彩的6个号码都不能重复,请在程序中进行设置。

(1)福彩的中奖号码与其数字的顺序无关,重新设置中奖等级。

(3)进一步完善体彩部分,体彩的中奖等级分为特等奖(数字完全吻合),一等奖(6个连续数字吻合),二等奖(5个连续数字吻合),三等级(4个连续数字吻合),安慰奖(2个连续数字吻合)。

题目13 职工信息表

内容及要求:

设计职工信息表,并由此产生一个信息简表,并使用虚函数实现多态性,完成显示不同简表信息的任务。使用了继承的方法,编写最多能输入10个职工的信息表,再根据这个表产生一个职工信息简表,并利用多态性实现信息的输出。使用类和向量及菜单实现选择功能。为了允许用户交替选择1-5选项,必须对各种可能的输入进行处理。

设计的简单界面如下:

1.增加职工记录

2.生成信息简表

3.显示原始记录

4.显示简表记录

5.查找职工信息

6.结束程序运行

题目14 字符串类的设计

内容及要求:

定义字符串类(String),包含存放字符串的字符数组和字符串中字符的个数。

(1)字符串的输入与赋值;

(2)字符串的运算:连接、复制、查找、交换、求子串、比较;

(3)字符串的输出。

对字符串的输入和输出都用文件实现。

题目15 矩阵的旋转反射

内容及要求:

输入矩阵的行列,选择旋转方式,输出旋转后的矩阵。

(1)绕X轴旋转;

(2)绕Y轴旋转;

(3)绕原点旋转。

题目16 学生成绩管理

内容及要求:

设计一个实用的小型学生成绩管理程序。它有查询和检索等功能,并且能够对指定文件操作,也可以将多个文件组成一个文件。

(1)建立文件:可以使用默认文件名或指定文件名将记录存储文件。设置适当的标志位,作为对记录进

行操作的信息。写同名文件将覆盖原来文件的内容。

(2).增加学生记录:可在已有记录后面追加新的记录。可以随时增加新的记录,它们仅保存在向量数组中。可以将一个文件读入,追加在已有记录之后。采取文件追加方式时,在没有保存到文件之前,将继续保持文件追加状态,以便实现连续文件追加操作方式。如果没有记录存在,给出提示信息。

(3)新建学生信息文件:用来重新建立学生信息记录。如果已经有记录存在,可以覆盖原记录或者在原记录后面追加,也可以将原有记录信息保存到一个指定文件,然后重新建立记录。给出相应的提示信息。

(4)显示、删除、修改、查询记录。

题目17 复数计算器

内容及要求:

(1)所设计的复数计算器可以进行+ - * += -= *= ++ -- >= <= == !=运算符,其中>= <=是针对复数的模进行运算。

(2)设计输入重载函数,要求能接收从键盘输入a+bi形式的复数,在程序中可以识别出实部虚部并正确赋值。

(3) 设计计算器测试程序,对加减法进行测试,要求在两位数以内进行,对乘法进行测试,乘法要求为一位数的运算。

(4) 设计记录功能,可以记录下不同用户使用计算器的情况,记录以文件的形式保存在计算机内,开机时要求用户输入用户名,显示该名户以前的记录。用户记录用包括:做了多少次加减法、乘法、进行测试的次数,后3次的测试平均分等,在退出计算器程序时用心的用户记录代替原有的记录。

题目18 工资管理

内容及要求:

设计一个员工工资管理程序,有显示、储存、显示、修改和删除功能。

(1)定义类CSalary,在工资表的数据类中增加一个私有数据选项:工号,用字符数组的形式,从000001开始编号,该工号不能人工修改,是有计算机自动根据录入的先后赋值的,录入数据时的时候不必输入工号。

(2)可以选择显示的多种排序形式,如按姓名的顺序、工资总额的顺序、职务工资获奖金的顺序,显示超过一屏的显示范围要能分屏显示。

(3)可以查询某一范围内的数据,如工资总跟小于2000元的人的数据,介于1000~2000元的人的数据等,根据具体要求列出菜单供用户选择。

(4)可以根据工号或者姓名修改、删除数据,在修改、删除时先要确定用户确认,确认后再进行操作。

(5)每次显示时,将所有要显示数据的工资总额、职务工资总额、奖金总额一起计算显示。

题目19猜数字游戏

内容及要求:

猜数:用户从键盘输入4位不重复的数,来匹配计算机给出的4位随机数,若数字和位置均等同,表示用户赢了。每猜一次,计算机均给出提示信息(x,y),x表示数字,位置都匹配的个数,y表示数字匹配但位置不匹配的个数。

(1)设计有好的中文交互界面;

(2)按8888键,可以得到更详细的帮助信息,如:第1位数字正确等。

(3)按7777键后,可以查看计算机所给的4位数,但需要输入密码,密码自定。

(4)猜的结果以分数给出,每猜错一次扣40分,若猜对1个数,奖励20分。

(5)每次游戏结束后将分值存盘,文件名自定。

题目20股票交易系统

内容及要求:

(1)修改数据结构,增加现金成员,每只股票增加牌价;每个用户的数据库中同样也增加现金数目的成员。

(2)增加股票交易系统的接口程序,新增如下设计:

AddNewStock( ) 增加新股票

DeleteOldStock( ) 删除旧股票

HangUpStock( ) 挂起股票,停止交易

ModifyStock( ) 修改股票的名称、代码

以上修改均须输入密码,密码吻合后才能进入数据库进行修改,结果均存入Stock_File.dat中。

(3)将股票数据的处理由数组改为链表,可以处理多只股票的交易,链表以交易代码的序号进行排序,也可根据需要以股票的牌价进行排序。

四课程设计报告

1 题目内容及设计要求

2 总体方案设计

2.1 总体功能框图

2.2 类的设计说明

2.3 主要算法流程图

3 程序清单及注释

4 运行结果与分析

5 总结

6 参考文献

面向对象程序设计 复习资料

1.对象 (1)从概念层面讲,对象是某种拥有责任的抽象。 (2)从规格层面讲,对象是一系列可以被其他对象使用的公共接口。 (3)从语言实现层面讲,对象封装了代码和数据。 2.软件开发中的经典阶段:需求、分析、设计、规范、实现、测试、部署、维护。 3.设计7原则:开闭原则、里氏代换原则、依赖倒转原则、合成/聚合复用原则、 迪M特原则、接口隔离原则、单一职责原则。 4.面向对象的方法学:UML(统一建模语言)、RUP(统一软件开发过程)、XP(极限 编程)。 开发方法:Booch、Coad、OMT、UML、OOSE、Wirfs—Brock 5.OOA——运用面向对象方法进行需求分析。 OOD——运用面向对象方法进行系统设计。 OOP——运用面向对象方法进行程序设计。 6.OOA的基本任务:是运用面向对象的方法,对问题域和系统责任进行分析和理解,对其中的事物和它们之间的关系产生正确的认识,找出描述问题域及系统责任所需的类及对象,定义这些类和对象的属性和操作,以及它们之间所形成的结构、静态联系和动态联系。最终目的:是产生一个符合用户需求,并能够直接反映问题域和系统责任的OOA模型及其详细说明。 优点:(1)加强了对问题域和系统责任的理解。(2)改进与分析有关的各类人员之间的交流。(3)对需求的变化具有较强的适应性。(4)支持软件复用。 OOA的三大策略是:属性策略、方法策略、对象策略。 7.(1)封装:是指对象在其操作中隐藏属性。它是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装的目的是使对象的使用者和生产者分开,使对象的定义和实现分开。 例如:要从同事那里借钱,在商店购买食物,就不会抢夺同事的钱包,大翻一通,看看里 面是否有足够的钱。而应该询问他们是否可以借你一些钱,他们就会自己翻钱包。 以表示圆的一个对象作为封装的例子。圆的操作应能计算出半径、直径、周长和面积。假定选择存储直径,要访问直径的程序员都会选择存储直径属性,而不是通过“获取直径”的操作来访问。如果在软件的后续版本中要存储的是半径,就必须找出系统中直接访问直径的所有代码,并更正它们,有了封装,就不会有问题。 (2)继承:可以指定类从父类中获取一些特性,再添加它自己的独特特性。继承是类间的 基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承父类的属性和操作,也可以对父类中的操作重新定义其实现方法。 例如:在面向对象中,我们可以把洗衣机、电冰箱、微波炉、收音机看成是家用电气类的 子类,也可以说家用电器类是这些类的超类。家用电器类具有的属性OnOffSwitch和electricWire,具有turnOn()和turnOff()操作。因此,如果你知道某物是家用电器,那么就会立即知道它 具有家用电器类的属性和操作,这种关系就是继承。每个家用电器类的子类都继承了家用电器类的特征。同时,每个子类都增加了自己的属性和操作。 (3)多态:是指同一操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。例如:“画”操作,作用在“矩形”对象上,则在屏幕上画一个矩形;作用在“圆”对象上, 则在屏幕上画一个圆。也就是说,相同操作的消息发送给不同对象时,每个对象将根据自1 / 9

什么是面向对象程序设计

1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。

《面向对象编程思想》实验报告册剖析

《面向对象编程思想》实验报告 专业年级: 姓 学 名: 号: 指导教师: 开课时间: 中南林业科技大学理学院信计教研室 制

说明 随着计算机的发展,传统的面向过程的设计方法不能满足用户需求,需要一种可视化的,面向对象的程序设计语言,用于发开。本课程先介绍面向对象的基本概念,再介绍一种面向对象程序设计开发工具-POWERBUILDER,过程中整书贯穿了一个应用程序实例“教学管理系统”设计开发的全过程,讲完后,由学生上机实践。教学计划在进行24学时理论知识讲授的同时,穿插有16学时的上机实验。通过实验,使学生熟悉POWERBUILDER的使用,设置实验内容时,在完成基本训练的基础上,设计了应用性、综合性的实验内容,使学生通过实验提高综合分析问题、解决问题的能力。 信息与计算科学教研室

目录 目录...................................................................................................................................II 实验一实验二实验三PowerBuilder基本操作及应用程序对象的创建(2学时) (1) 数据库操作一(2学时) (4) 数据库操作二(2学时) (5) 实验四应用对象、窗口、控件操作一(2学时) (6) 实验五实验六数据窗口对象(2学时) (14) 菜单对象(2学时) (15)

实验一 《面向对象编程思想》实验报告 PowerBuilder基本操作及应用程序对象的创建(2学时) 一、实验目的 熟悉PowerBuilder 开发环境,掌握使用帮助查找信息的方法,掌握应用程序对象的创建方法,了解对象、属性、事件的基本概念,了解编写一般脚本的方法。 二、实验内容 PowerBuilder 的启动和退出,熟悉PowerBuilder 的桌面(Desktop),包括 菜单(Menu)、工具条(Toolbar)、工作区(Workspace)等;完成一些基本的程序编写;学习使用在线帮助系统。 三、实验步骤 1、打开PowerBuilder 主窗体,熟悉PowerBuilder 开发环境。 2、分别使用帮助主题窗口的“目录”和“索引”页查找messagebox 函数的使 用方法。 3、运行以下程序: int n for n=1000to0step–1 if mod(n,17)=0 then exit next 结果为: 四、思考题 1、PowerBuilder有哪些特点?

面向对象程序设计课程设计

《面向对象程序设计》课程设计 课程代码:*****(采用现行5位数字的课程代码) 课程名称:面向对象程序设计课程设计 设计周数:1周 学分:0.5学分 课程类别:必修课 一、课程设计的目的与任务 面向对象程序设计课程设计是计算机科学与技术、网络工程、信息管理与信息系统等专业集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。通过课程设计,学生可以将本课程所学知识点融会贯通,举一反三,加深实践与理解,提高学生综合运用所学知识的能力;另一方面,在参与一系列子项目的实践过程中,能使学生获得相关项目管理和团队合作等众多方面的实践经验。其目的在于加深对面向对象程序设计理论和基本知识的理解,通过对所选项目的分析、程序算法的设计、运行与调试过程的分析,使学生掌握基本的信息系统分析方法、设计方法和上机操作的各种技巧,对培养学生的逻辑思维能力、团队合作精神、创新能力、动手操作能力各方面素质有提供了良好的实践平台,为后续课程的学习打下一定的基础。 二、本课程设计的基本理论 本课程设计使用面向对象程序设计的方法解决实际问题,涵概了课程的所有重要知识点,如类与对象、继承与组合、虚函数与多态性等。 三、课程设计的形式与基本要求 形式:召开课程设计动员会,根据学生的学习水平和特长进行分组,每组选择指定课程设计的题目和内容。学生在规定的时间内,经过小组的协同工作和指导教师的辅导,完成所选课题的设计,最后由指导教师进行验收及评定。 基本要求:要求学生做好预习,认真分析设计过程中涉及到的算法,并确定所选课题的功能模块,详细描述各模块的具体内容;用流程图描述实现算法,根据算法进行代码的编写,最后进行反复上机调试修改,直到输出正确结果为止。 认真写好课程设计报告,根据每组学生的分工,各自写出对解决问题的详细分析、模块功能、调试结果,最后将课程设计报告上交给指导教师。 四、课程设计的内容 选题一:员工管理信息系统 (1)建立职工信息数据,包括职工编号、姓名、性别、工资、出生时间、部门、参加工作时间和年龄(必须计算得到)。

面向对象程序设计 C 复习题

一选择题(共 45题) 1.对类的构造函数和析构函数描述正确的是()。 A.构造函数可以重载,析构函数不能重载√ B.构造函数不能重载,析构函数可以重载 C.构造函数可以重载,析构函数也可以重载 D.构造函数不能重载,析构函数也不能重载 2.继承具有(),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。 A)规律性 B.传递性√ C.重复性 D.多样性 3.假设OneClass为一个类,则该类的复制初始化构造函数的声明语句为()。 (OneClass p); B. OneClass& (OneClass p ); C. OneClass(OneClass & p);√ D. OneClass (OneClass * p); 4.对于结构中定义的成员,其默认的访问权限为()。 B. protected D. static 5.下面对静态数据成员的描述中,不正确的是()。 A.静态数据成员可以在类体内进行初始化√ B.静态数据成员不可以在类体内进行初始化 C.静态数据成员能受private控制符的作用 D.静态数据成员调用前必须初始 6. C++中的类有两种用法:一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过()派生了新的类。 A.复用 B.继承√ C.封装 D.引用 7. 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a 的格式为()。 A. x(a) B. x[a] C. x->a D. √ 9. 对于一个类的构造函数,其函数名与类名( )。 A. 完全相同√ B. 基本相同 C. 不相同 D. 无关系 10. 一个类的构造函数通常被定义为该类的( )成员。 A. 公有√ B. 保护 C. 私有 D. 友元 11. 一个类的析构函数通常被定义为该类的( )成员。 A. 私有 B. 保护 C. 公有√ D. 友元 12. 一个类的静态数据成员所表示属性 ( )。 A. 是类的或对象的属性 B. 只是对象的属性 C. 只是类的属性√ D. 类和友元的属性 13.类的析构函数的作用是()。 A.一般成员函数 B.类的初始化 C.对象初始化D.删除对象之前的善后工作√ 14.下列对基类和派生类关系的描述中,错误的是()。 A.派生类是基类的具体化B.派生类是基类的子集√ C.派生类是基类定义的延续 D.派生类是基类的组合 15.下列对派生类的描述中,错误的是()。 A.一个派生类可以作为另一个派生类的基类 B.派生类至少有一个基类 C.派生类的缺省继承方式是private D.派生类只继承了基类的公有成员和保护成员√ 16.下列对继承的描述中,错误的是()。 A.析构函数不能被继承

面向对象程序设计期末综合练习一(单选题)

22. 下列的符号常量定义中,错误的定义是()。 A. const M=10; B. const int M=20; C. const char ch; D. const bool mark=true; 40. 函数重载是指()。 A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C. 两个以上的函数名字不同,但形参的个数或类型相同 D. 两个以上的函数取相同的函数名,并且函数的返回类型相同 41. 以下关于函数模板叙述正确的是()。 A. 函数模板也是一个具体类型的函数 B. 函数模板的类型参数与函数的参数是同一个概念 C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数 D. 用函数模板定义的函数没有类型 42. 下列()的调用方式是引用调用。 A. 形参和实参都是变量 B.形参是指针,实参是地址值 C. 形参是引用,实参是变量 D.形参是变量,实参是地址值

43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。 A. 内联函数 B.重载函数 C.递归函数 D.函数模板 44. 函数原型语句正确的是()。 A. int Function(void a); B.void Function (int); C. int Function(a); D.void int(double a); 45. C++中函数返回值的类型是由()决定的。 A. return语句中表达式的类型 B.该函数定义时的类型 C.调用函数时的调用语句 D.系统根据结果 56. 采用重载函数的目的是()。 A. 实现共享 B. 减少空间 C. 提高速度 D. 使用方便,提高可读性 58. 以下叙述中正确的是( )。 A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值 B. 使用const定义的常量,其值在程序运行时是不可改变的 C. 在程序中使用内联函数使程序的可读性变差 D. 在定义函数时可以在形参表的任何位置给出缺省形参值 70. 用new运算符创建一个含10个元素的一维整型数组的正确语句是( )。 A. int *p=new a[10]; B. int *p=new float[10];

《面向对象程序设计》答案

实验一熟悉VC++IDE开发环境 一、实验目的 1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。 2、掌握如何编辑、编译、连接和运行一个C++程序。 3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。 二、实验要求 1、分析下列程序运行的结果。 程序一: #include int add(int x,int y=8); void main() { int x=4; cout< void main() { int *p,i; i=5; p=&i; i=*p+10; cout<<"i="< void main(void) { int i=10; int &r=i; r++; cout<<"i="< void func(); int n=1; void main() { static int a; int b= -9; cout <<"a:"<

完成Java面向对象程序设计实验课的心得体会范文

Java面向对象程序设计实验课的心得体会经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。 学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。 Java思想:Java是一门面向对向语言,他定义一切都是对象面向对象,就是面对现实; 现实中的一切都是对象,他们有分类,就产生了“类”; 他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。

所以,面向对象的内部逻辑是分类。 面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等 原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。 面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。 我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对! 我的理解: 1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),

c面向对象课程设计报告

课程设计报告 课程名称面向对象程序设计 课题名称学生成绩管理系统 专业计算机科学与技术 班级计算机1001 学号2010030101 姓名 指导教师李珍辉陈淑红李杰军 2011年12 月28 日

湖南工程学院 课程设计任务书 课程名称面向对象程序设计 课题学生成绩管理系统 专业班级计算机1001 学生姓名 学号2010030101 指导老师李珍辉陈淑红李杰军 审批 任务书下达日期2011 年11 月15 日 任务完成日期2011 年12 月28 日

一、设计内容与设计要求 1.课程设计目的: 面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。 2.课题题目 1)公司库存管理系统 2)高校学籍管理系统 3)高校工资管理系统 4)高校人事管理系统 5)通讯录程序设计 6)学生成绩管理系统 7) 图书管理系统 8)文本编辑器的设计与实现 9)学生考勤管理系统 10)公司人员管理系统 3.设计要求: ⑴设计课题题目:每位同学根据自己学号除以10所得的余数加1选择相 应题号的课题。随意换题者不记成绩。 ⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括 系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。②完 成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模 块图)。③完成系统详细设计:包括数据库需求分析;数据库概念结构设计(E -R图);数据库逻辑结构设计;类层次图;界面设计与各功能模块实现。④系 统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修 改和调整。⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出 每一步的操作步骤。⑥关键源程序(带注释)

面向对象编程练习题库-test

面向对象编程练习题 专题1 初识Java 一、填空题 1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是()、()、()。 2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置Path为()、classpath为()。3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。4.如果Java源文件中有多个类,那么只能有一个类是()类。 二、选择题 1.作为Java应用程序入口的main方法,其声明格式是() A.public static int main(String args[]) B.public static void main(String args[]) C.public void main(String args[]) D.public int main(String args[]) 2.下面命令正确的是() A.java AppFirst.java B.java AppFirst C.java appfirst.class D.javac AppFirst 3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为() A.java FirstApplet B.javac FirstApplet.java C.appletviewer FirstApplet.java D.appletviewer FirstApplet.html 4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。 A.bin B.jre C.include D.doc 5.Java语言是一种语言。 A.机器B.汇编C.面向过程的D.面向对象的 6、Java程序的最基本组成单位是( )。 A.函数B.过程C.变量D.类 7. main()方法的返回值类型是()。 A.boolean B.int C. void D.static 8. 下面哪个单词是Java语言的关键字()A.False B.FOR C.For D.for 9. 、线程是Java的()机制。 A.检查B.解释执行C.并行D.并发

面向对象程序设计(答案)

学号:姓名: 第三章面向对象程序设计作业 一、判断题 1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。对 2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。对 3、接口中的成员变量全部为常量,方法为抽象方法。对 4、抽象类可以有构造方法,可以直接实例化。错 5、对static方法的调用可以不需要类实例。对 6、包含抽象方法的类一定是抽象类。对 7、方法中的形参可以和方法所属类的属性同名。对 8、接口无构造器,不能有实例,也不能定义常量。错 9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。对 10、Java应用程序的入口main方法只有一种定义法。对 二、选择题 1、下列答案正确的是(A ) A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为public B) 在同一个Java源文件中只能包含一个类,并被声明为public C) 在同一个Java源文件中可以包含多个类,都可以被声明为public D) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default 2、Java实现动态多态性是通过( B )实现的。 A) 重载B) 覆盖 C) 接口D) 抽象类 3、下列哪一个是正确的方法重载描述( A ) A) 重载方法的参数类型必须不同 B) 重载方法的参数名称必须不同 C) 返回值类型必须不同 D) 修饰词必须不同 4、final关键字不可以用来修饰( D ) A) 类B) 成员方法 C) 域D) 接口 5、接口的所有成员方法都具有( B )属性 A) private, final B) public, abstract C) static, protected D) static 6、Java的封装性是通过(A )实现的 A) 访问控制B) 设计内部类 C) 静态域和静态方法D) 包 7、下列接口或类不属于.*包的是( D ) A) Collection B)Vector C) Map D) Integer 8、下述哪一组方法,是一个类中方法重载的正确写法( A ) A) int addValue( int a, int b ){return a+b;}

面向对象程序设计的基本思想

课题:面向对象程序设计的基本思想 (一)教学设计思想与理论依据: 《算法与程序设计》模块的教学强调通过该模块的学习,学生应该体验客 观世界的计算机对象化表征和算法思维,掌握几种基本算法;能运用面向对 象的方法,设计解决简单问题的算法,并能初步使用一种面向对象的程序设 计语言,编制程序实现算法解决该问题。 (二)教学内容分析 教材以广东教育出版社出版的信息技术(选修一)《算法与程序设计》第五章第一节内容为结构框架,本节主要介绍面向对象思想产生的必然性和面向对象思想的机制,以及通过对同一个问题采取面向过程和面向对象两种不同思想解决的区别,让学生感受到面向对象程序设计的优越性。 (三)学生情况分析: 学生已学完教材前四章内容,基本掌握了传统的面向过程结构化程序设计方法,有一定的程序设计基础。 (四)教学策略与模式: 采用讲解、任务驱动、实践和学生自主学习相结合的教学方式 (五)教学资源: 硬件:多媒体电脑教室,投影仪,广播系统 软件:学生机安装vb6.0 (六)教学目标: 知识与技能 1.了解面向对象程序设计的基本思想和面向对象思想的由来,并能够举例说 明现实世界与面向对象系统之间的对应关系。 2.了解面向对象程序设计的优越性并初步理解其实现的机制。 过程与方法 经历分析、调试解决同一问题的两种不同实现思想的程序,初步理解面向对象程序设计的优势及面向过程程序设计的缺陷。 情感态度和价值观 (1)关注传统结构化程序设计存在的问题。 (2)产生学习面向对象程序设计技术的愿望。 (3)关注面向对象技术是当前程序设计的重要发展方向。 (七)重点难点 教学重点 (1)传统结构化程序设计存在的问题 (2)面向对象程序设计所具有的优点。 教学难点 (1)面向对象思想的产生。 (2)传统结构化程序设计与面向对象程序设计的基本点比较。 (3)实现面向对象程序设计的基本机制。 教学过程:

《面向对象程序设计》实验指导书(实验二)

实验二类与对象㈡——对象初始化、对象数据与指针 一、实验目的 1.理解构造函数、析构函数的意义及作用,掌握构造函数、析构函数的定义及调用时间,熟悉构造函数的种类; 2.理解this指针及使用方法,熟悉对象数组、对象指针、对象引用的定义及使用方法,熟悉对象作为函数参数的使用方法; 3.熟悉类与对象的应用及编程。 二、实验学时 课内实验:2课时课外练习:2课时 三本实验涉及的新知识 ㈠构造函数与析构函数 在C++中,提供了两个特殊的成员函数,即构造函数和析构函数。 构造函数用于对象的初始化,即在定义一个类对象时,计算机在给对象分配相应的存储单元的同时,为对象的数据成员赋初值。 析构执行的是与构造函数相反的操作,用于撤销对象的同时释放对象所占用的内存空间。 1.构造函数 ⑴构造函数的定义 格式: 类名(形参表) { 构造函数体} ⑵构造函数的调用 构造函数的调用是在定义对象时调用的。 格式:类名对象名(实参表); 类名对象名=构造函数名(实参表); ⑶说明 ①构造函数必须与类同名。 ②构造函数没有返回值,但不能在构造函数前加void类型符(其他没有返回值的成员函数必须加类型符void)。 ③在实际应用中,在定义类时通常应定义一至多个构造函数(重载),以对各数据成员进行初始化;如果不给出构造函数,系统将自定义一个构造函数。 ④构造函数可以可以带参数,也可不带任何参数(称无参构选函数),还可以使用缺省参数。 ⑤不能象普通成员函数一样单独调用。 2.析构函数 ⑴析构函数的定义 格式: ~类名(void) { 析构函数体} ⑵析构函数的调用 析构函数是在撤销对象时自动调用的。 ⑶说明

《面向对象程序设计》高起专习题三答案

《面向对象程序设计》高起专习题三答案 一、单项选择题(本大题共25小题,每小题2分,共50分) 1、用“>>”运算符从键盘输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。 A、空格或逗号 B、逗号或回车 C、逗号或分号 D、空格或回车 2、C++中声明常量的关键字是( A )。 A、const B、extern C、public D、enum 3、以下叙述中正确的是( B ) A、使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值 B、使用const定义的常量名有类型之分,其值在程序运行时是不可改变的 C、在程序中使用内置函数使程序的可读性变差 D、在定义函数时可以在形参表的任何位置给出缺省形参值 4、下列的符号常变量定义中,错误的定义是( C )。 A、const M=10; B、const int M=20; C、const char ch; D、const bool mark=true; 5、函数原型语句正确的是( B )。 A、int Function(void a) B、void Function (int); C、int Function(a); D、void int(double a); 6、在关键字private后面定义的成员为类的( A )成员。 A、私有 B、公用 C、保护 D、任何 7、在一个类的定义中,包含有( C )成员的定义。 A、数据 B、函数 C、数据和函数 D、数据或函数 8、在类作用域中能够通过直接使用该类的( D )成员名进行访问。 A、私有 B、公用 C、保护 D、任何 9、在关键字public后面定义的成员为类的( B )成员。 A、私有 B、公用 C、保护 D、任何 10、类中定义的成员默认为( B )访问属性。 A、public B、private C、protected D、friend 11、每个类( C )构造函数。

面向对象程序设计课后答案(完整版)

第二章2-4 #include using namespace std; Add(int a,int b); int main() { int x,y,sum; cout<<"please input x and y:"; cin>>x>>y; sum = add(x,y); cout < using namespace std; int main() {

int *p,*init; int countp=0; int countn=0; p = new int[20]; init = p; for(int i=0;i<20;i++) { cin>>*p; p++; } p = p-20; for( i=0;i<20;i++) { if(*p>0) countp++; if(*p<0) countn++; cout<<*p<<" "; p++; } cout<<"正数有:"< //#include using namespace std; void checkagescore(string name,int age) { if (name == "exit") throw name; if(age<0||age>50) throw age;

面向对象程序设计课程设计报告同学通讯录管理程序

目录 1.设计题目 (1) 2.设计目的和内容 (1) 2.1设计目的 (1) 2.2设计内容 (1) 3.基本功能描述 (1) 4.设计思路 (1) 5.软件设计 (2) 5.1设计步骤 (2) 5.2界面设计 (3) 5.3关键功能的实现 (3) 5.3.1添加记录 (3) 5.3.2删除记录 (4) 5.3.3选中记录 (4) 5.3.4确认修改 (4) 5.3.5保存记录 (4) 5.3.6退出 (4) 6.结论与心得体会 (4) 7.参考文献 (4) 8.附录 (5) 8.1调试报告及测试结果 (5)

8.2关键源代码 (10) 8.2.1 Student类 (10) 8.2.2全局 (10) 8.2.3List Control初始化 (10) 8.2.4添加记录 (11) 8.2.5删除记录 (11) 8.2.6选中记录 (12) 8.2.7修改记录 (12) 8.2.8保存记录 (13) 8.2.9退出程序 (13)

1.设计题目 同学通讯录管理程序 2.设计目的和内容 2.1设计目的 1)学习Visual C++的MFC开发程序的步骤。. 2)综合运用所学的类、继承和多态的知识。 3)进一步掌握程序的调试方法。 2.2设计内容 1)利用MFC的向导,创建基于对话框的应用程序,添加按钮、编辑框等控件; 2)设计通讯录的数据结构(如:以数组或者动态链表)和相应的类; 3)完成对通讯录中记录的增加、修改、删除和显示; 4)将通讯录存入文本文件。 3.基本功能描述 可以实现学生信息(姓名、学号、系别、邮箱、电话)的添加、显示、选中修改、删除选中和保存并退出程序的功能。 4.设计思路 1)创建基于对话框的MFC应用程序,添加控件:5个Edit Control、6个Button、1 个List Control; 2)在5个Edit Control分别输入相应信息,点击“添加记录”Button可在List Control 中显示相应信息,同时清空五个Edit Control以便下一个学生信息的输入; 3)点中List Control选中已有一组学生信息,点击“删除记录”Button可删除该组 信息; 4)点中List Control选中已有一组学生信息,点击“选择该列”Button将该列信息 返回到5个Edit Control。修改完成后点击“确认修改”Button,对List Control 中选中列完成修改; 5)点击“确认保存”将信息保存到文本文档; 6)点击“退出”退出程序。 7)可在D盘查看保存的信息。

面向对象程序设计笔记

undeclared identifier “未声明的标识符” (1) 十进制整数:在一个整型常量后面加一个字母 l 或 L,则认为是 long int 型常量? (2) 八进制整数?在常数的开头加一个数字 0,就表示这是以八进制数形 式表示的常数? (3)十六进制整数?在常数的开头加一个数字0和一个英文字母X(或x), 就表示这是以十六进制数形式表示的常数? 2. 浮点数的表示方法 如果在实数的数字之后加字母 F 或f,表示此数为单精度浮点数,如1234F,-43f,占 4 个字节?如果加字母 L 或 l,表示此数为长双精度数(long double), 在Visual C++ 6.0 中占 8 个字节. (2) 指数形式(即浮点形式):用字母 e 表示其后的数是以 10 为底的幂,如 e12 表示 1012? 1.普通的字符常量:用单撇号括起来的一个字符就是字符型常量如′a′,′ #′,′%′,′D′都是合法的字符常量,在内存中占一个字节?“cout<<′\n′; ”将输出一个换行,其作用与“cout<

《面向对象程序设计cpp》课程设计指导书

《面向对象程序设计》课程设计指导书

一、课程设计目的 通过本课程设计,培养上机动手能力,使学生巩固《面向对象程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关。 二、课程设计题目 0、人事管理系统 1、物业管理系统 2、客房管理系统 3、学生管理系统 4、民航订票系统 5、商场销售管理系统 6、通讯录 7、图书馆管理系统 8、商场(工厂)库存管理系统 9、“一二九”合唱评委打分系统 学生课设选题根据学号的尾数确定。(例学号为17号的学生做7号题目) 三、课程设计任务 1、任务:在两周内独立正确完成至少1道题目。 2、学生完成课设后,向指导老师提出答辩申请。答辩时要检查的内容为: (1) 课程设计纸质文档; (2) 课程设计源代码及其运行结果; (3) 老师提出相关问题,学生对问题进行作答。 3、时间: 指导:第十六,十七周。 答辩时间:第十七周 四、课程设计考核方式 课程设计成绩评定的依据有设计文档资料、具体实现设计方案的程序及课程设计考勤登记表,其中平时成绩占总成绩的30%。

优(90分以上):按要求完成,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确,其中有总体设计思想的论述,有正确的流程图,程序完全实现设计方案,设计方案先进,软件可靠性好,能很好的回答老师所提出的问题; 良(80 - 90分):按要求完成,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确;有完全实现设计方案的软件,设计方案较先进,能较好的回答老师所提出的问题; 中(70 - 80分):按要求完成,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案正确,能基本回答老师所提出的问题; 及格(60 - 70分):按要求完成,有完整的符合标准的文档,有基本实现设计方案的软件,但不能完全运行,设计方案基本正确,不能完全回答老师所提出的问题; 不及格(60分以下):不能完成程序,没有完整的符合标准的文档,软件没有基本实现设计方案,设计方案不正确,不能回答老师所提出的问题。 五、提交的资料 1、软件 软件需提供源程序,并能正常运行。 注:对于程序中未能实现的部分需要加以说明。 对于程序中所参考的部分代码需要加以声明,并说明出处。 2、文档 (1)设计文档的格式尽量按照《中华人民共和国国家标准UDC 681. 3计算机软件产品开发文件编制指南GB 8567-88》的标准书写。 (2)内容(以下仅提供参考) 1、需求分析; 2、类设计及说明; 3、定义的函数主要功能说明; 4、主要算法说明:举例说明1、2个比较有特点的算法; 5、系统总框图; 6、存在的问题与不足及对策;

相关主题
文本预览
相关文档 最新文档