西南交通大学2012年面向对象程序设计(专业版 )Microsoft Word 文档
C++面向对象程序设计2011-2012学年第二学期
{
os<<(char*)str;
return os;
}
//实现MyClass类
//参数有缺省值的,缺省值只能在声明中指定,如这里的pData的缺省值是NULL
ostream& operator<<(ostream& os, const MyString& str); //定向输出
class MyString {
public:
MyString(const char* pData = NULL); // 普通构造函数
MyString(const MyString &); // 拷贝构造函数
mpData = new char[strlen(pData)+1];
strcpy(mpData, pData);
}
}
// 拷贝构造函数
MyString::MyString(const MyString & rhs)
{
mpData=new char[strlen(rhs.mpData)+1];
MyString::MyString(const char* pData)
{
if ( pData == NULL ) {
mpData = new char[1];
strcpy(mpData, ""); //或mpData[0]='\0';
} else {
~ MyString(); // 析构函数
2012年3月全国计算机等级考试《二级VisualBasic语言程序设计》真题及答案
2012年3月全国计算机等级考试《二级VisualBasic语言程序设计》真题及答案2012年3月全国计算机等级考试二级笔试试卷Visual Basic 语言程序设计(考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)下列各题A )、B )、C )、D )四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是A )循环队列是队列的一种链式存储结构B )循环队列是队列的一种顺序存储结构C )循环队列是非线性结构D )循环队列是一种逻辑结构(2)下列叙述中正确的是A )栈是一种先进先出的线性表B )队列是一种后进先出的线性表C )栈与队列都是非线性结构D )以上三种说法都不对(3)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为A )16B )10C )6D )4(4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A )外模式B )内模式C )概念模式D )逻辑模式(5)在满足实体完整性约束的条件下A )一个关系中应该有一个或多个候选关键字B )一个关系中只能有一个候选关键字C )一个关系中必须有多个候选关键字D )一个关系中可以没有候选关键字(6)有三个关系R 、S 和T 如下:R ST 则由关系R 和S 得到关系T 的操作是A )自然连接B )并C )交D )差(7)软件生命周期中的活动不包括A )市场调研B )需求分析C )软件测试D )软件维护(8)下面不属于需求分析阶段任务的是A )确定软件系统的功能需求B )确定软件系统的性能需求C )需求规格说明书评审 A B Ca 1 2b 2 1c 3 1 A B C a 1 2d 2 1 A B C b 2 1 c 3 1整理:陈远跃D)制定软件集成测试计划(9)在黑盒测试方法中,设计测试用例的主要根据是A)程序内部逻辑B)程序外部功能C)程序数据结构D)程序流程图(10)在软件设计中不适用的工具是A)系统结构图B)PAD图C)数据流图(DFD图)D)程序流程图(11)以下合法的VB变量名是D)x*y A)case B)name10 C)t-name(12)设x是小于10的非负数。
面向对象程序设计方法
普通高等教育“十二五”规划教材
6.1 面向对象程序设计方法
6.1.5 类和对象可视化设计方法 1.基类 基类是Visual FoxPro内部预先定义的类,在 “新建类”对话框的“派生于”下拉列表框中包含 了全部基类,例如表单,表单控件工具栏中所有的 控件也是基类。 基类可作为用户自定义类的基础,用户可以在 此基础上创建新类,并增添自己需要的新功能。由 基类可以创建对象,对象将继承该类的功能。每一 个对象都会对特定事件作出响应,对一些最小事件 (基本事件)的响应,各类是共同的。
Visual FoxPro支持面向对象程序设计(ObjectOriented Programming),面向对象程序设计所追求的目
标是将现实世界的问题求解尽可能简单化,采用符合人类
处理问题的思维方式。它用“对象”表现事物,用“事件” 表示处理事物的动作,用“方法”表现处理事物的过程,
用“消息”传递对象与对象之间的相互联系。
Visual FoxPro 程序设计
普通高等教育“十二五”规划教材
6.1 面向对象程序设计方法
3.Visual FoxPro中类的类型 Visual FoxPro中类可以分为容器类和控件类。 (1)容器类 容器类可以容纳别的对象,这些对象可以是容器类对象, 也可以是控制类对象,并且允许访问这些对象。例如,表单类 是一个容器,它可以放入命令按钮控件、复选框控件等一组控 件类,并将这些类作为一个整体进行操作。容器类提供了一种 将多个对象按需要进行组合的功能。容器类中的对象还可以是 容器类的,这就形成了容器类对象的嵌套。
Microsoft
主编 杜春敏
中国水利水电出版社
普通高等教育“十二五”规划教材
第6章 面向对象的程序设计
C#2012程序设计实践教程C#面向对象基础
52
上述代码中,通过 new BookType()实例化 BookType 类,booktype1 和 booktype2 分 别表示类的 两个实例对 象,分别为 这两个对象 的 typeName 字段赋值,最后通 过 Console.WriteLine()向控制台中输出 typeName 字段的值。在输出图书类型时,上面的两 种方式都是正确的,第一种方式是通过占位符来输出的,第二种方式是直接输出。 运行 Program.cs 文件,控制台的输出结果如下。
第 3 章 C#面向对象基础
C#是一种安全的、稳定的、简单的、优雅的、由 C 和 C++衍生出来的面向对象编程 语言。面向对象编程是一种功能强大的程序设计方法,它以“数据控制访问代码”为主 要原则,围绕数据来组织程序。在面向对象编程中,最基础的内容就是类。本章将对类 进行详细的介绍,包括类的声明和使用、对象的创建和使用、构造函数和析构函数、成 员变量以及面向对象编程的三大特性等内容。 本章学习要点: “ “ “ “ “ “ “ 掌握类和对象的创建 掌握构造函数和析构函数 掌握类中的字段、常量、属性和方法 熟悉类的三大特性和实现 了解 base 关键字的使用 熟悉 sealed 关键字的使用 掌握 abstract 和 static 的使用
表 3-1
第 3 章
类的可访问修饰符 说明 同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类及 类中的成员 只有同一类或结构中的代码可以访问该类及类中的成员 只有同一类或结构或者此类的派生类中的代码才可以访问该类及类中的成员 类的默认访问类型。同一程序集中的任何代码都可以访问该类或成员,但其他程 序集中的代码不可以
static void Main(string[] args) { BookType booktype1 = new BookType(); //创建第一个对象 booktype1.typeName = "校园小说"; //指定字段的值 BookType booktype2 = new BookType(); //创建第二个对象 booktype2.typeName = "旅游杂志"; //指定字段的值 Console.WriteLine("第一本图书类型:{0}", booktype1.TypeName); Console.WriteLine("第二本图书类型:" + booktype2.TypeName); Console.ReadLine(); }
面向对象期中考试试卷(2012)
西南交通大学2011-2012学年第(2)学期考试课程代码 0471004 课程名称 面向对象程序设计 考试时间90分钟阅卷教师签字:答题说明:① 考试形式:闭卷;② 考试时间:90分钟; ③ 全部答案请写在答题卷上,试题卷上作答无效。
④ 假设所有程序代码中的头文件和命名空间都已经具备。
一、填空题(每空1分,共10分)1. 运算符重载函数既可以定义为类的友元函数,也可以定义为类的 【1】 函数。
2. 含有纯虚函数的类称为 【2】 。
3. 面向对象的三大机制是:是封装、 【3】 和多态 。
4. 在C++程序中,动态申请存储空间是采用 【4】 ,释放存储空间采用 【5】 。
5. 对于【6】继承方式,基类中访问属性为public 成员和【7】成员在子类中的访问属性都是private 。
6. 后置++运算符被重载为友元函数时,其参数的个数为 【8】 个。
7. 在C++中,当定义一个class 时,成员的默认访问权限是【9】,而struct 中成员的默认访问权限是【10】。
.二、单项选择题(每空2分,共24分)1. C++语言建立类族是通过 ( )(A )类的嵌套 (B ) 类的继承 (C ) 虚函数 (D ) 抽象类 2. 关于new 运算符的下列描述中,下面那一项 ( )是错的。
(A ) 它可以用来动态创建对象和对象数组;(B ) 使用它创建的对象或对象数组可以使用运算符delete 删除; (C ) 使用它创建对象时要调用构造函数; (D ) 使用它创建对象数组时必须指定初始值。
3. 有如下两个类定义class XX {private:double x1; protected:double x2;班 级 学 号 姓 名密封装订线密封装订线 密封装订线public: double x3;};class YY: protected XX{ private: double y1;protected: double y2;public: double y3;};在类YY中受保护成员的数量是()(A)1 (B) 2 (C) 3 (D) 44.在C++中,以下不能重载的运算符是( ) 。
面向对象程序设计实验指导书(2012级适用)
辽东学院自编教材《面向对象程序设计》实验指导书王昕编(信息管理及电子商务专业用)信息技术学院2014年6月目录实验一 JDK的安装和配置及帮助文档的使用 (1)实验二基本数据类型和控制语句的使用 (3)实验三类与对象的使用 (6)实验四继承和接口的使用 (9)实验五 JAVA基本类库的使用 (15)实验六 GUI编程 (19)实验七多线程 (22)实验八输入输出流 (24)实验九网络编程 (26)实验一JDK的安装和配置及帮助文档的使用实验类型:验证型实验课时: 2 指导教师:时间:201 年月日课次:第节教学周次:第周实验分室:实验台号:实验员:一、实验目的1.JDK下载、安装与开发环境设置2.学习编写第一个Java 程序二、实验内容和要求1.JDK的安装及配置1)下载JDK 1.7或更高版本及其帮助文档。
2)执行安装文件并按提示进行安装。
3)设置环境变量,使用鼠标右击“我的电脑”->属性->高级->环境变量系统变量->新建->变量名:JA V A_HOME 变量值:为JDK的安装目录,例如c:\jdk1.7 系统变量->新建->变量名:CLASSPATH 变量值:.;%JA V A_HOME%\lib,注意路径中最前面的.代表当前路径,一定要加上。
修改系统变量Path,在其值的后面加上:%JA V A_HOME%\bin;2.编写JA V A程序1)使用文本编辑器(例如记事本)编写如下代码,并保存为文件:Hello.java(注意:Java区分大小写)。
public class Hello{public static void main (String args[ ]){System.out.println("你好,很高兴学习Java");}}编译运行:在DOS环境下进入Hello1.java文件所在的路径,然后输入下列命令进行编译:javac Hello.java输入下列命令运行程序:java Hello2) 使用文本编辑器(例如记事本)编写如下代码,并保存为文件FirstApplet.java:import java.applet.*;import java.awt.*;public class FirstApplet extends Applet{ public void paint(Graphics g){ g.setColor(Color.red);g.drawString("我一边喝着咖啡,一边学Java呢",5,30);g.setColor(Color.blue);g.drawString("我学得很认真",10,50);}}编译此文件,再编写一个静态网页文件命名为applet.html,内容如下所示:<html><body><applet code= FirstApplet .class height=100 width=300></applet></body></html>最后在命令提示符下执行appletviewer applet.html。
西安交通大学《面向对象程序设计》作业考核试题
西安交通大学《面向对象程序设计》作业考核试题一、单选题1.??C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是()。
A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型[正确]D. 引进了类和对象的概念??????满分:2??分2.??如果一个类至少有一个纯虚函数,那么该类称为().。
[正确]A. 抽象类B. 虚基类C. 派生类D. 以上都不对??????满分:2??分3.??假定AB为一个类,则执行“AB r1=r2;”语句时将自动调用该类的( )。
A. 无参构造函数B. 带参构造函数C. 赋值重载函数[正确]D. 拷贝构造函数??????满分:2??分4.??带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化()。
A. 与虚基类下面的派生类个数有关B. 多次C. 二次[正确]D. 一次??????满分:2??分5.??派生类的构造函数的成员初始化列表中,不能包含()。
A. 基类的构造函数;B. 派生类中子对象的初始化;[正确]C. 基类的子对象初始化;D. 派生类中一般数据成员的初始化;??????满分:2??分6.??由C++目标文件连接而成的可执行文件的缺省扩展名为()。
A. cpp[正确]B. exeC. objD. lik??????满分:2??分7.??以下叙述中正确的是()A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值[正确]B. 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C. 在程序中使用内置函数使程序的可读性变差D. 在定义函数时可以在形参表的任何位置给出缺省形参值??????满分:2??分8.??下列不是C++基本数据类型的是()。
A. int[正确]B. stringC. charD. void??????满分:2??分9.??下列函数中,()不能重载。
面向对象程序设计
5.1.1
类定义
对一个用户自定义的类,要为类取一个名字,并指 明类中包含哪些变量和方法以及相应的类型、实现 等,这称为类的定义。类定义语句的一般形式为:
[修饰符]class 类名 [extends 父类名] [implements 接口名表] { 成员变量声明 // 类体 方法成员声明 }
(1)构造方法名与类名相同。
(2)构造方法不返回任何值,也没有返回类型。 (3)每一个类可以有零个或多个构造方法。 (4)构造方法在创建对象时自动执行,一般不能显式地直接 调用。
【例5.6】分别计算长、宽分别为20、10和6、 3的 两个长方形面积。本程序用构造方法来初始化长方 形的大小。
对象名.数据成员名 对象名.成员方法名() // 方法名带圆括号
运算符“.”在这里称为成员运算符,在对象名和成 员名)之间起到连接的作用,指明是哪个对象的哪个 成员。 例如:设已经定义了例5.2中的Rectangle类,可以 用如下的方法来引用对象的成员:
Rectangle r = new Rectangle(); // 定义类的对象 r.length,r.width // 引用对象的数据成员 r.area() // 引用对象的成员方法
final double PI = 3.1416; final double G = 9.18;
因为final变量不能改变,没有必要在每个对象中进 行存储,可以将final变量声明为静态的,以节省存 储空间。
例如: static final double PI = 3.1416;
西南交大c 实验答案范文
实验__1__实验报告教学班级:20 学生学号:学生姓名:实验日期:2012.3.15实验地点:7308 (机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.通过运行示例程序了解程序开发过程;二、实验任务1.新建源程序文件,编辑以下程序,编译,链接,得出运行结果,并保存程序:#include <iostream>using namespace std;void main( ){ cout<<'a'<<endl;cout<<'\141'<<endl;cout<<'\x61'<<endl;}2.新建源程序文件,编辑以下程序,编译,链接,运行,输入36和64,得出运行结果,并保存程序:#include <iostream>using namespace std;int main(){ float num1,num2,sum;cout << "Enter first number: ";cin >> num1;cout << "Enter second number: ";cin >> num2;sum=num1+num2;cout << "The sum is " << sum << endl;}三、实验结果1.aaa2.100实验__2__实验报告教学班级:20 学生学号:学生姓名:实验日期:2012.3.22 实验地点:7308 (机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.简单输入和输出语句的练习。
2012年计算机二级考试Java面向对象的程序设计学习教程
第 6 章对象、类、包和接口在前面几章中,我们对Java的简单数据类型、数组、运算符和表达式以及流控制方法作了详细的介绍。
从现在开始,我们要深入到面向对象的编程技术,深入到Java最吸引人的地方。
本章中,我们首先讲述面向对象程序设计的基本概念及特点,然后讨论Java中的类、对象、包和接口,最后进行小结,给出一个完整的Java 文件的格式。
6.1 面向对象的程序设计面向过程的程序设计方法从解决问题的每一个步骤入手,它适合于解决比较小的简单问题。
C语言采用面向过程的程序设计模型,但是由于C本身几乎没有支持代码重用的语言结构,并且缺乏统一的接口,使得当程序的规模达到一定程度时,程序员很难控制其复杂性。
面向对象的程序设计方法则按照现实世界的特点来管理复杂的事物,把它们抽象为对象,具有自己的状态和行为,通过对消息的反应来完成一定的任务。
6.1.1 对象、类和消息一个对象就是变量和相关的方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为,下图表示了一个对象的特征:一个对象的变量构成这个对象的核心,包围在它外面的方法使这个对象和其它对象分离开来。
例如:我们可以把汽车抽象为一个对象,用变量来表示它当前的状态,如速度、油量、型号、所处的位置等,它的行为则可以有加速、刹车、换挡等。
我们操纵汽车时,不用去考虑汽车内部各个零件如何运作的细节,而只需根据汽车可能的行为使用相应的方法即可。
实际上,面向对象的程序设计实现了对对象的封装,使我们不必关心对象的行为是如何实现的这样一些细节。
通过对对象的封装,实现了模块化和信息隐藏,有利于程序的可移植性和安全性,同时也利于对复杂对象的管理。
对象之间必须要进行交互来实现复杂的行为。
例如,要使汽车加速,必须发给它一个消息,告诉它进行何种动作(这里是加速)以及实现这种动作所需的参数(这里是需要达到的速度等)。
对象A 对象B间的消息传递过程。
一个消息包含三个方面的内容:●消息的接收者●接收对象应采用的方法●方法所需要的参数。
第2学期西南交大面向对象程序设计主观题作业
第2学期西南交大面向对象程序设计主观题作业第一次作业二、主观题(共9道小题)22、在C++中,当用class定义一个类时,数据成员与成员函数得默认访问权限就是【30】 ,而struct中成员得默认访问权限就是【31】参考答案:30) 私有(或者private) 31)公有(或者public)23、编写程序声明类Student,有数据成员姓名、学号、成绩,定义函数成员用于返回各数据成员信息,定义对象数组,实现10个学生得分数录入及平均分计算。
参考答案:#includeclass Student{public:float getScore();private:char name[10];long num;float score;};类得成员函数得定义与主函数部分自己完成24、类得继承就是面向对象程序设计中得重要机制,继承方式有三种,分别就是: 【1】、【2】与【3】。
参考答案:1)公有继承2)私有继承 3)受保护继承25、带有纯虚函数得类就是【4】。
参考答案:4) 抽象类26、在C++程序中,动态建立与删除堆对象就是采用【5】与【6】这两个运算符来实现得。
参考答案:5) new 6) delete27、假定AB为一个类, 则执行"AB a[9];" 语句时, 系统自动调用该类构造函数得次数为【7】、参考答案:7) 928、当一个类对象被创建时,系统将自动调用该类得构造函数,而【8】函数就是在对象得生存期即将结束得时刻由系统自动调用得。
参考答案:8) 析构29、类中具有相似功能得不同函数使用同一个名称来实现,这称为【9】。
面向对象得多态性可以分为四类,分别就是:参数多态、强制多态、【10】与【11】。
参考答案:9) 多态 10) 重载 11)包含30、C++程序也需要有主函数得入口,必须而且只能就是一个名为得函数【12】参考答案:12)main第二次作业二、主观题(共15道小题)9、参考答案:13) -b-sqrt(b*b-4*a*c)10、参考答案:14) fabs(b*b-a*c)11、参考答案:15) 1 16) 7 17) 3 18) 0 19) 8 20) 612、参考答案:21) 10 22) 3 23) 10 24) 9 25) 1 13、面向对象得程序设计有四大特征,就是【26】、【27】、【28】、【29】。
面向对象程序设计及WINDOWS编程实验指导书43页word文档
面向对象程序设计及WINDOWS编程实验指导书(java程序设计)2019.2目录第一部分JA V A集成开发环境 (2)第二部分Java程序设计实验项目 (10)实验一熟悉Java程序开发环境 (10)实验二Java基本数据类型及运算 (12)实验三流程控制语句 (14)实验四面向对象程序设计初步 (16)实验五类与对象的设计 (18)实验六类的继承 (22)实验七抽象类和接口 (24)实验八数组 (27)实验九异常处理 (28)实验十流式输入输出处理 (30)实验十一线程 (32)实验十二用户图形界面GUI标准组件及事件处理 (33)实验十三Applet的编写 (35)实验十三Java网络编程技术 (38)实验十五JDBC 数据库编程 (40)注:带*为选做实验第一部分 JAVA集成开发环境Java不仅提供了一个丰富的语言和运行环境,而且还提供了一个免费的Java开发工具集(JavaDevelopersKits,简称JDK)。
编程人员和最终用户可以利用这些工具来开发java程序或调用Java内容。
通常我们以JDK(Sun所开发的一套Java开发工具)的版本来定义Java的版本。
JDK1.0版于1996年初公开,JDK1.1版于2019年初公开,JDK1.2版于2019年底公开。
基于市场行销的考量,Sun在JDK1.2版公开后旋即将Java改名为「Java2」,将JDK改名为「Java2SoftwareDevelopmentKit(以下简称J2SDK)」。
J2SDK(原称JDK)1.3于2000年4月公开,此版本仍称做「Java2」。
目前J2SDK1.4.2版已经发布并投入使用中,目前Java1.5测试版已发布。
Java2出现后,将分成Java2PlatformEnterpriseEdition(简称J2EE)、Java2PlatformStandardEdition(简称J2SE)、Java2PlatformMicroEdition(简称J2ME)。
西南交通大学2012年面向对象程序设计
西南交通大学2012年面向对象程序设计试题及答案开发环境为VC++6。
0,运行结果有截图,若发现错误欢迎指正。
实验一、C++程序开发环境及c++简单程序设计.题目1、简单c++程序任务:按提示的操作步骤输入下面的代码,编译连接并执行.源程序代码:#include"iostream。
h"void main(){ cout〈<"Hello!\n";cout<<"Welcome to c++!”〈<endl;cout<<"This is my first c++ program”〈〈endl;}运行结果:题目2、编写程序,从标准输入读入一个数,把它转化为英文单词输出,如输入123,这是输出“one two three”.源程序代码:#include〈iostream〉using namespace std;void main(){ char ch;cout 〈<”请输入数字用来转化为英文单词:";while(1){ cin〉>ch;if(ch==’\n’) break;switch(ch—48){case 0:cout<〈”zero ”; break;case 1:cout <〈"one ”;break;case 2:cout 〈〈"two ”;break;case 3:cout <<"three ”;break;case 4:cout <<"four "; break;case 5:cout 〈<"five ";break;case 6:cout 〈〈”six ”;break;case 7:cout <〈"seven ”;break;case 8:cout 〈〈”eight ";break;case 9:cout 〈<”nine ”;break;}}运行结果:题目3、循环结构程序设计任务把一张一元纸币换成一分、二分和五分的硬币,假如每一种至少一枚,文友多少种换法,编程将各种换法显示出来.源程序代码:#include〈iostream>using namespace std;void main(){int i,j,k,x=0;cout<〈"一角”〈<"两角"<〈”三角"<<endl;for(i=1;i<=93;i++)for(k=1;k<=47;k++)for(j=1;j〈=19;j++)if(i+2*k+5*j==100){x++;cout<〈i〈<”"〈<j<<”"〈<k〈<" "<<endl;} cout<〈”换法的总数为:”〈〈x〈〈endl;}运行结果:(由于种数太多截图不方便所以只截了最后的部分!)实验二、函数题目1、内联函数任务(1)定义内敛函数max(),求两个整数中的最大值,然后在main()函数中惊醒调用(2)定义内联函数inline—fun()和一般函数common—fun(),使整型参数值加1,然后在main()函数中惊醒调用;源程序代码:#include〈iostream>using namespace std;inline int max(int x,int y);inline int inline_fun(int x);int common_fun(int x);void main()int x=4,y=5;cout<<x〈〈",”〈<y〈〈"中最大的是:"<<max(x,y)<〈endl;cout<〈x〈<”加1后为:"〈<inline_fun(x)<<endl;cout〈〈y<〈"加1后为:”<<common_fun(y)〈〈endl;}inline int max(int x,int y){ if(x>y) return x;else return y;}inline int inline_fun(int x){ return ++x;}int common_fun(int x){return ++x;}运行结果:题目2、函数参数的传递机制、重载函数任务(1)编写重载函数max1()可分别求2个整数、3个整数、2个双精度和3双精度数的最大值。
2012面向对象技术课程设计任务书
2012面向对象技术课程设计任务书D《面向对象技术》课程设计任务书一、任务总体安排:二、《面向对象技术》设计课程设计目的与要求1.目的:1)复习、巩固C++语言的基础知识,进一步加深对C++语言的理解和掌握。
2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力;3)培养学生在项目开发中团队合作精神、创新意识及能力。
2.要求:1)、必须采用面向对象的程序设计方法,程序要上机调试通过,并按按时上交设计报告及源文件。
2)、针对课程设计的选题,进行系统功能模块分析,实现相应功能,学生可以增加额外的功能,使程序更加完善、合理。
如上图要求实现以下功能:1) 职工工资信息的添加、查询,等功能。
2)职工工资信息应至少包括:姓名,工资金额,职工类型(教师,实验员,行政)等功能。
1.职工信息管理系统主要界面如下:如上图要求实现以下功能1) 职工信息的添加、查询,显示,修改等功能。
2)职工信息应至少包括:职工姓名、工作证号、身份证号、出生日期、家庭住址、联系电话、工资数等。
4. 通讯录如上图要求实现以下功能1) 联系人信息的添加、查询,显示,修改等功能。
2)联系人的信息至少包括:电话、住址、EMAI、QQ 号、邮编等。
5. 学生成绩管理系统主要界面如下:按上图要求实现相应的功能6. 其它选题难度相当的其它题目。
三、设计时间安排具体安排如下:第一阶段:1.班级分组,选定课题,小组成员分工,划分模块、编制源程序。
第二阶段:编程调试阶段包括:绘制流程图,编制源程序,上机调试,修改程序,完善系统等。
第三阶段:撰写、上交课程设计报告(1份/人)。
四、考核内容和方式1.设计成绩考核办法(共100分):(1) 完成选题程序的基本功能(40分),功能比较完善(10分)。
(2) 按要求书写课程设计报告(50分)。
2.总评成绩课程设计成绩评定:按优秀、良好、中等、及格、不及格五级评定。
面向对象程序设计(C )课程设计任务书及题目
上海电机学院课程设计任务书指导教师(签名):王中华系主任(签名):2014年5月20日年月日附:课程设计题目1.有理数运算问题描述2有理数是一个可以化为一个分数的数,例如2/3,533/920,-12/49都是有理数,而就为无理数。
在C++中,并没有预先定义有理数,需要时可以定义一个有理数类,将有理数的分子和分母分别存放在两个整型变量中。
对有理数的各种操作都可以用重载运算符来实现。
基本要求定义并实现一个有理数类,通过重载运算符+、-、*、/对有理数进行算术运算,通过重载运算符==实现判定两个有理数是否相等。
写一个优化函数,它的作用是使有理数约去公分母,也即是使保存的有理数分子和分母之间没有公约数(除去1以外)。
此外,还要定义一个将有理数转换为实数的函数,再加上构造函数和有理数输出函数。
测试数据在应用程序中,创建若干有理数对象,通过带参数的构造函数使得各有理数对象值各不相同,然后分别进行各类运算,输出运算结果,检验其正确性。
实现提示设有两个有理数a/b和c/d,则有:(1)有理数相加分子=a*d+b*c;分母=b*d(2)有理数相减分子=a*d-b*c;分母=b*d(3)有理数相乘分子=a*c;分母=b*d(4)有理数相除分子=a*d;分母=b*c优化函数在创建有理数对象时应执行,在执行其它各种运算之后也需执行它,这样可保证所存储的有理数随时都是最优的。
对于判断两个有理数是否相等,由于在对有理数进行各种运算后都对其进行优化,所以判定两个有理数是否相等只需判定它们两个的分子和分母分别相等即可。
选做内容重载插入(<<)和提取(>>)运算符,使得对有理数可以直接输入输出。
设有理数输入格式为:整数1 整数2 //整数1为分子,整数2为分母有理数输出格式为:分子/分母2.通讯录管理问题描述编写一个简单的通讯录管理程序。
通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西南交通大学2012年面向对象程序设计试题及答案开发环境为VC++6.0,运行结果有截图,若发现错误欢迎指正。
实验一、C++程序开发环境及c++简单程序设计。
题目1、简单c++程序任务:按提示的操作步骤输入下面的代码,编译连接并执行。
源程序代码:#include"iostream.h"void main(){ cout<<"Hello!\n";cout<<"Welcome to c++!"<<endl;cout<<"This is my first c++ program"<<endl;}运行结果:题目2、编写程序,从标准输入读入一个数,把它转化为英文单词输出,如输入123,这是输出“one two three”。
源程序代码:#include<iostream>using namespace std;void main(){ char ch;cout <<"请输入数字用来转化为英文单词:";while(1){ cin>>ch;if(ch=='\n') break;switch(ch-48){case 0:cout<<"zero "; break;case 1:cout <<"one "; break;case 2:cout <<"two "; break;case 3:cout <<"three ";break;case 4:cout <<"four "; break;case 5:cout <<"five "; break;case 6:cout <<"six "; break;case 7:cout <<"seven ";break;case 8:cout <<"eight ";break;case 9:cout <<"nine "; break;}}运行结果:题目3、循环结构程序设计任务把一张一元纸币换成一分、二分和五分的硬币,假如每一种至少一枚,文友多少种换法,编程将各种换法显示出来。
源程序代码:#include<iostream>using namespace std;void main(){int i,j,k,x=0;cout<<"一角"<<"两角"<<"三角"<<endl;for(i=1;i<=93;i++)for(k=1;k<=47;k++)for(j=1;j<=19;j++)if(i+2*k+5*j==100){x++;cout<<i<<" "<<j<<" "<<k<<" "<<endl;}cout<<"换法的总数为:"<<x<<endl;}运行结果:(由于种数太多截图不方便所以只截了最后的部分!)实验二、函数题目1、内联函数任务(1)定义内敛函数max(),求两个整数中的最大值,然后在main()函数中惊醒调用(2)定义内联函数inline-fun()和一般函数common-fun(),使整型参数值加1,然后在main()函数中惊醒调用;源程序代码:#include<iostream>using namespace std;inline int max(int x,int y);inline int inline_fun(int x);int common_fun(int x);void main()int x=4,y=5;cout<<x<<","<<y<<"中最大的是:"<<max(x,y)<<endl;cout<<x<<"加1后为:"<<inline_fun(x)<<endl;cout<<y<<"加1后为:"<<common_fun(y)<<endl;}inline int max(int x,int y){ if(x>y) return x;else return y;}inline int inline_fun(int x){ return ++x;}int common_fun(int x){ return ++x;}运行结果:题目2、函数参数的传递机制、重载函数任务(1)编写重载函数max1()可分别求2个整数、3个整数、2个双精度和3双精度数的最大值。
(2)定义两个名称都为sum()的函数,第一个函数支持整型数组,第二个函数支持浮点型数组,求数组元素的和。
源程序代码:#include<iostream>using namespace std;int max1(int x,int y){ if(x>y) return x;else return y;}int max1(int x,int y,int z){if(x>max1(y,z)) return x;else return max1(y,z);}double max1(double x,double y){ if(x>y) return x;else return y;}double max1(double x,double y,double z){ if(x>max1(y,z) ) return x;else return max1(y,z);}int sum(int *p,int n){ int i=0,s=0;for(;i<n;i++)s+=p[i];return s;}double sum(double *p,int n){int i; double s=0;for(i=0;i<n;i++)s+=p[i];return s;}void main(){ int a=1,b=2,c=3; double x=4.5, y=6.7, z=8.9;int p[5]={1,2,3,4,5}; double q[5]={4.5 ,6.7,8.9,2.4,1.2};cout<<a<<","<<b<<"的最大值为:"<<max1(a,b)<<endl;cout<<a<<","<<b<<","<<c<<"的最大值为:"<<max1(a,b,c)<<endl;cout<<x<<","<<y<<"的最大值为:"<<max1(x,y)<<endl;cout<<x<<","<<y<<","<<"的最大值为:"<<max1(x,y,z)<<endl;cout<<"int 型p数组元素的和为:"<<sum(p,5)<<endl;cout<<"double 型数组q的元素和为:"<<sum(q,5)<<endl;}运行结果:题目3、带默认参数的函数任务定义函数volume(),计算立体的体积,要求在主函数中以5中不同的形式调用此函数。
源程序代码:#include<iostream>using namespace std;double volume(double x=1,double y=2,double z=3);void main(){double x=4,y=5,c=6;cout<<volume()<<endl;cout<<volume(4)<<endl;cout<<volume(4,5)<<endl;cout<<volume(5,6)<<endl;cout<<volume(4,5,6)<<endl;}double volume(double x,double y,double z)//注意这里不可以再带默认的参数!!!{cout<<"以"<<x<<","<<y<<","<<z<<"为棱的长方体的体积为:";return x*y*z;}运行结果:实验三、类于对象题目1、私有成员的访问任务下面的程序中用ERROR标明的语句有错误,在不删除和增加代码行的情况下,改正错误的语句,使其正确运行。
错误代码及改正方法:#include<iostream>using namespace std;class Aa{public :Aa(int i=0){ a=i; cout<<"Constructor"<<a<<endl;}~Aa() { cout<<"Destructor"<<a<<endl;}void print(){ cout<<a<<endl;}private :int a;};int main(){Aa a1(1),a2(2);a1.print();cout<<a2.a<<endl;//ERROR将该行代码中访问了a2的私有属性,改为a2.print();return 0;}改正后的运行结果:题目2、构造函数、拷贝构造函数任务(1)调试下列程序源程序代码:#include <iostream>using namespace std;class Topint{public:Topint(int x,int y) { X=x;Y=y;}Topint(Topint &p);~Topint () { cout<<"destructor is called \n";}int getx() { return X;}int gety() { return Y;}private :int X,Y;};Topint::Topint(Topint &p){X=p.X; Y=p.Y;cout<<"Copy -initialization Cnstructor is called\n";}int main(){Topint p1(4,9);Topint p2(p1);Topint p3=p2;cout<<"p3=("<<p3.getx()<<","<<p3.gety()<<")\n";return 0;}运行结果:问题:(1)在该程序中将Topint类的带有两个参数的构造函数进行修改,在函数体内添加下述语句:cout<<"Constructor is Called.\n"。