实验四 类和对象
常用实验设计类型和方法
•随机化分组步骤
1. 将N个实验单位从1到N编号。如动物可按体重大小、 患者可按就诊顺序。
2. 取随机数字,随机数字的位数一般要求与N相同。
3. 将读取的N个随机数字按分组要求划分区段。
即:根据随机数所在区间决定实验单位应接受的处 理。例如,按二位随机数分两组时,可规定随机数 00~49为第1组,50~99为第2组;分三组时,01~33为第1 组,34~66为第2组,67~99为第3组,余类推。同理,如 按2:1的比例分两组,则01-66为第1组,67-99为第2组。 另外,分两组时,亦可按随机数的奇、偶决定组别。
检验效能
检验效能(power of a test),又称把握度(power), 记作1-β,指当两个(或几个)总体存在差异时,经假 设检验能够发现该差异的可能性大小。
● 1 与 、 、 、N 有关。
● 假设检验为“阴性”结论(P>0.05)时, 不能
简单地下“处理无效”的结论,而应该检查一下
简单随机化分组方法不能保证分组后各组例数相等, 但当受试对象总例数较多时(如N>200),两组例数相 差悬殊的概率较小。尽管如此,在正式试验前最好先检 查一下随机分配表(即分组过程及结果表)中各组例数 是否大致相当。如果发现相差悬殊(如100例分两组,A 组15例,B组85例),可以重新制定随机化分配表。
实验设计的作用主要是减小误差、提高实验的 效率。因此,从统计方面说,根据误差的来源, 在设计时必需遵守三个基本统计学原则,即对 照(control)原则、随机化(randomization) 原则及重复(replication)原则。重复和对照 也是观察性研究必须遵循的原则,唯有随机化 分组是实验性研究的显著特征。
java实验指导书
实验一java开发环境及语言基础
实验目的
(1)确保正确配置java开发环境。
(2)了解javac和java命令的使用。
(3)熟悉java中的运算符。
(4)掌握条件语句和循环语句的使用。
(5)掌握通过命令行参数接受数据。
(6)掌握用Scanner类接受数据。
实验内容
(1)在控制台中输入java命令,查看输入结果。
(2)编写一个java程序,计算半径为3.0的圆周长和面积并输出结果。
(3)求a+aa+aaa+...+a...a(n个)的和,其中a为1~9之间的整数。例如,当a=3、n=4时,求3+33+333+3333的和。
(4)给定一个正整数m,统计其位数,分别打印每一位数字,再按照逆序打印出各位数字。(5)用Scanner类方法输入三角形三边求三角形面积。
实验要求
(1)JDK的安装及配置。
(2)在DOS及eclipse下编辑、编译运行第一个java程序:hello world。
(3)求圆周长和面积用方法实现,主函数调用。
(4)从命令行输入1~9之间的整数a,当所求的和大与106时,输出相应的a值及所求的和值。
(5)用Scanner类的方法输入正整数m,m的值不应该超过99999,否则给出错误信息。应引入包:import java.util.Scanner,然后在需要的方法中实例化对象:Scanner sc = new Scanner(System.in),最后调用对象的next方法,如int n=nextInt(),接受整数。
实验二数组
实验目的
(1)掌握数组的定义和使用方法。
(2)熟悉数组的排序、查找的方法。
面向对象程序设计实验报告
面向对象程序设计实验报告姓名:
学号:
班级:
专业:
学院:
实验三函数的应用
一、实验目的:
掌握函数的定义和调用方法;练习重载函数使用;练习函数模板的使用;练习使用系统函数。
二、实验步骤
编写函数float Convert(float TempFer),参数的返回值都为float类型,实现算法C=(F-32)*5/9,在main()函数中实现输入、输出。
分别编写四个同名函数max1,实现函数重载,在main()函数中测试函数功能。
使用函数模板实现求任意类型数的最大值,针对不同的参数个数,编写两个同名函数模板max1,其参数个数不同,实现函数重载,在main()函数中测试函数的功能。
在main()函数中提示输入两个整数x,y,使用cin语句得到x,y的值,调用pow(x,y)函数计算x的y次幂的结果,再显示出来。
编写递归函数int fib(int n),在主程序中输入n的值,调用fib函数计算Fibonacci级数。公式为fib(n)=fib(n-1)+fib(n-2),n>2;fib(1)=fib(2)=1。使用if语句判断函数的出口,在程序中用cout语句输出提示信息。
三、实验内容及部分代码:
1)编写一个函数把华氏温度转换为摄氏温度,转换公式为:C=(F-32)*5/9。
#include
h>
float Convert(float TempFer)
{
float C,F;
F=TempFer;
C=(F-32)*5/9; return C; }
main()
{float C,F; cin>>F>>endl;
化学实验分类
化学实验分类
以下就是小编给大家整理的有关化学实验分类,仅供大家参考。
化学实验可以按照不同的分类标准进行分类,以下是一些常见的分类方式:
1.按实验目的分类:化学实验可以分为制备实验、性质实验、分离实验、鉴定实验和测定实验等。
2.按实验内容分类:化学实验可以分为无机化学实验、有机化学实验、分析化学实验、物理化学实验等。
3.按实验方法分类:化学实验可以分为定性实验、定量实验、结构分析实验等。
4.按实验规模分类:化学实验可以分为微型实验、半微量实验、常规实验等。
5.按实验仪器分类:化学实验可以分为试管实验、烧
瓶实验、漏斗实验、坩埚实验等。
以上是一些常见的化学实验分类方式,不同的分类方式可以帮助我们更好地理解和掌握化学实验的特点和方法。
实验5-类和对象
实验5 类和对象
程序填空
1.
本题分值:10
题目描述:仔细阅读下列求两个点之间距离的程序,程序的输出结果是50,根据程序的输出结果在划线处填入正确语句。
代码:
#include<iostream>
#include<cmath>
using namespace std;
class point
{
public:
point(float a,float b) { x=a; y=b; }
float Distance(point &p)
{
float dx=__(1)__;
float dy=__(2)__;
return (float)sqrt(dx*dx+dy*dy);
}
private:
float x,y;
};
int main()
{
point p1(2,3),p2(32,43);
cout<<__(3)__<<endl;
return 0;
}
答案:
(1) p.x-x
(2) p.y-y
(3) p1.Distance(p2)
2.
本题分值:10
题目描述:设计一个矩阵类CRectangle,该类中的私有成员变量存放Rectangle的长和宽,并设置它们的默认值为1,通过成员函数set()来设定长和宽的值,并确保长宽都在(0,50)
范围之内,求其周长Perimeter并显示输出。以下是完成此项工作的程序,请将未完成的部分填入,使之完整。
代码:
#include<iostream>
using namespace std;
class CRectangle
{
public:
实验报告
实验四类,对象和接口一.实验目的
(1)掌握类的声明,对象的创建以及方法的定义和调用。(2)掌握打包机制。
(3)掌握类的继承。
(4)掌握类接口的使用。
二、实验方案
(1)
//Father.java;
package tom.jiafei;
public class Father
{
int height;
protected int money;
public int weight;
public Father(int m)
{
money=m;
}
protected int getMoney()
{
return money;
}
void setMoney(int newMoney)
{
money=newMoney;
}
}
//Jerry.java:
import tom.jiafei.Father;
public class Jerry extends Father
{
public Jerry()
{
super(20);
}
public static void main(String args[])
{
Jerry jerry=new Jerry();
jerry.weight=200;
jerry.money=800;
int m=jerry.getMoney();
System.out.println("m="+m);
}
}
(2)
interface ShowMessage
{
void 显示商标(String s);
}
class TV implements ShowMessage
{
public void 显示商标(String s)
{
System.out.println(s);
实验题目
实验一 Java语言概述
【实验目的】
1.掌握开发Java应用程序的三个步骤:编写源文件、编译源文件和运行应用程序。
2.熟悉Java应用程序的基本结构,并能联合编译应用程序所需要的类。
文件保存要求:在D:盘新建文件夹“学号”,在“D:\ 学号”下新建文件夹“timu1”。题目1的文件保存在“timu1”中,以下依次类推。
【题目1】
1、实验要求:编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。
2、程序模板:请按模板要求,将【代码】替换为Java程序代码。
3、实验后的练习
a.编译器怎样提示丢失大括号的错误。
b.编译器怎样提示语句丢失分号的错误。
c.编译器怎样提示将System写成system这一错误。
d.编译器怎样提示将String写成string这一错误。
【题目2】
1、实验要求:编写3个源文件:、、,每个源文件只有一个类。含有应用程序的主类(含有main方法),并使用了Teacher和Student类。将3个源文件保存到同一目录,D:\timu2,然后编译。
2、程序模板:请按模板要求,将【代码】替换为Java程序代码。
3、实验后的练习
a.将编译通过后,不断地修改源文件中的【代码2】。比如,在命令行窗口输出“我是语文老师”或“我是数学老师”。要求每次修改源文件后,单独编译,然后直接运行应用程序(不要再编译)。
b.如果需要编译某个目录下的全部Java源文件,如D:\1001目录,可以使用如下命令:
D:\1001>javac *.java
java面向对象 实验四 类和对象编程(面向对象特征)
学号姓名
实验序号实验四实验名称类和对象编程—面向对象
特征
实验
地点
实验日期
实验内容
1.设计3个类,分别学生类Student,本科生类Undergaduate,研究生类Postgraduate,学生类包含一些基本属性,如姓名、所学课程、课程成绩等,具有一个空方法getGrade();本科生类Undergaduate与研究生类Postgraduate继承学生类Student,都覆盖了父类的getGrade()方法,用于通过分数计算成绩的等级,计算方法不同,研究生的标准要比本科生的标准高一些,如下表所示。要求对属性进行适当封装,通过方法来访问。
表课程成绩等级
本科生标准研究生标准
80-
-100
优秀90—
100
优秀
70--80良好80—90良好
60--70一般70—80一般
50--60及格60—70及格
50以下不及
格
60以下不及
格
编写测试类,在测试类里创建Undergaduate与
Postgraduate对象,计算他们的成绩,并输出他们的
个人信息。
实验过程及步骤根据实验要求编写程序如下:
class Student {
private String name;
private String course;
private int score;
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
教育实验的基本类型及步骤
教育实验的基本类型
为了在教育研究中正确运用实验研究法并促进实验法的发展,必须对教育实验作出科学合理的分类。掌握不同的分类标准,确定教育实验类型、特点、操作程序、适用范围和条件是搞好教育实验的一个重要前提。
(一)实验室实验与自然实验根据实验进行的场所,可分为实验室实验和自然实验。
1.实验室研究实验室实验指研究者根据研究的需要于经过专门设计的、人工高度控制的环境中进行的实验。这类实验的优点是能把实验中的各种变量严格分离出来,并给予确切的操作与控制,提高研究结论的准确性和可靠性。
2.自然实验自然实验也叫现场实验,是在实际的教育情境中进行的实验。
(二)确认性实验、探索性实验与验证性实验
1.确认性实验
这类实验的目标主要在于借助实验搜集事实材料,确认所研究的对象是否具有研究假说内容的基本特征,并推动教育实践的发展,也叫试探性实验。研究问题来自实际,所以具有直接的实践意义。实验强调的是研究的应用价值,在事实基础上概况经验性规律,追求最大限度的有效性。这类实验在现场情境下进行,在研究方法上带有很大的试探性,操作程序不太规范。因此,内在、外在效度均不高。
2.探索性实验
这类实验包括有预测作用的超前实验。它是以认识某种教育现象或受教育者个性发展规律为目标,通过揭示与研究对象有关的因果关系及问题的解决,来尝
试创建某种理论体系,所以具有较强的创新性。探索性实验主要研究教育理论体系中的根本性问题,有重要的理论意义和实践指导意义。此类实验以专门研究人员为主进行。
3.验证性实验
它是以验证已取得的实验成果为目标,对已经取得的认识成果用再实践的经验来检验、修正和完善。这类实验具有明显的重复性,是在不同环境条件下反复进行的,不仅对实验条件有明确分析,而且实验方案具有可操作性,关注实验结果应用的普遍性,追求实验较高的外在效度。
JAVA实验报告
学生实验报告
课程名称:面向对象程序语言(Java)年级:
专业:
学号:
姓名:
指导教师:
实验地点:
学年至学年度第学期
1.目录
实验一初识Java——“一个简单的应用程序”实验二基本数据类型与数组——“输出希腊字母表”实验三分支与循环语句——“猜数字游戏”
实验四类与对象——“机动车”
实验五类与对象——“家中的电视”
实验六类与对象——“共饮同井水”
实验七类与对象——“求方程的根”
实验八子类与继承——“中国人、北京人和美国人”实验九子类与继承——“银行计算利息”实验十子类与继承——“公司支出的总薪水”
实验十一接口与实现——“评价成绩”
实验十二内部类与异常类——“检查危险品”实验十三常用实用类——“检索简历”
实验十四组件及时间处理——“计算三角形的面积”实验十五
实验十六
实验(一)初识Java——“一个简单的应用程序”
实验时间:2017年02月21日
实验目的
本实验的目的是让学生掌握开发Java应用程序的三个步骤:编写源文件、编译源文件和运行应用程序
实验要求
编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,欢迎学习Java”和“We are students”。
实验内容
public class Hello {
public static void main (String args[ ]) {
System.out.println("你好,很高兴学习Java"); //命令行窗口输出"你好,很高兴学习Java"
A a=new A();
a.fA();
}
}
class A {
void fA() {
实验四C#面向对象程序基础
实验四C#面向对象程序基础(一)
一、实验目的
1.理解C#语言是如何体现面向对象编程基本思想。
2.掌握类对象的定义。
3.了解类的封装方法,以及如何创建类和对象。
4.了解成员变量和成员方法的特性。
5.掌握静态成员的用法。
6.加深理解面向对象编程的概念,如类、对象、实例化等;
二、实验要求
1. 分析程序,上机验证结果。
2. 写出程序,并调试程序,要给出测试数据和实验结果。
3. 整理上机步骤,总结经验和体会。
4. 完成实验日志和上交程序。
三、作业提交
1. 建立以自己名字命名的文件夹,文件夹中包含两个文件夹,名字各为:实验成果,
实验流程。
2. 实验成果文件夹中保存实验过程中的解决方案、项目等文件。
3.实验流程中存放撰写实验流程的word文档。
四、实验内容
题目一:
定义一个圆类,计算圆的面积和周长,并应用该类。
题目二:求n!的值,用递归的方法求n!(n>=0)。】
实验步骤:
1)定义递归方法fac,计算整数n的阶乘,方法中需要递归调用自身。
2)在Main方法中读入整数n的值。
3)在Main方法中调用fac方法,求出整数n的阶乘。
4)Main方法中输出计算结果。
题目三:给三个整数排序并求其和及平均值
定义一个方法,给三个整数按从小到大的顺序排序并求其和及平均值。其中,三个待求整数及排序后的结果由引用参数传递;其和由输出参数传递;平均值由返回值返回。在Main()方法中实现三个待求整数的输入及结果的输出。
实验步骤:
1)定义方法Sort,给三个整数按从小到大的顺序排序并求其和及平均值。其中,三个待求整数及排序后的结果由引用参数传递,其和由输出参数传递,平均值由返回值返回。2)在Main方法中读入待求的三个正整数。
实验四 Java语言面向对象基础编程
实验四 Java语言面向对象基础编程
一、实验目的
1.理解Java语言是如何体现面向对象编程基本思想,
2.了解类的封装方法,以及如何创建类和对象,
3.了解成员变量和成员方法的特性。
二、实验内容
1.类的定义、封装和对象创建的使用。编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如下:
(1)Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。另外,Trangle类还具有一个boolean 型的属性,该属性用来判断三个属能否构成一个三角形。
(2)Lader类具有类型double的上底、下底、高、面积属性,具有求面积的功能。(3)Circle类具有类型为double的半径、周长和面积属性,具有求周长、面积的功能。
package exercise;
class Trangle{
double sideA,sideB,sideC,area,length;
boolean boo;
//带三个参数的构造函数
public Trangle(double a,double b,double c) {
sideA=a;//参数a,b,c 分别赋值给sideA,sideB,sideC
sideB=b;
sideC=c;
if(sideA+sideB>sideC&&sideA+sideC>sideB&&sideB+sideC>sideA)
{//a,b,c 构成三角形的条件表达式
实验四类和对象定义
实验四类和对象定义
一、实验类型
设计型
二、实验目的
1、实验目的
(1) 掌握类的声明、定义和使用方法。
(2) 掌握对象的定义和使用方法。
(3) 掌握具有不同访问属性的类中成员的使用方法。
三、上机准备
1、实验室安装VC++软件。
2、类的基本概念、对象的基本概念。
四、实验内容与步骤
1、在中,定义一个矩形(Rect)类,包括矩形的左上角坐标(X1,Y1),矩形右下角坐标(X2,Y2)四个数据成员;包括计算矩形面积(getArea),计算矩形周长(getPerimeter),设置矩形数据成员(setRect)和输出矩形数据成员(print)四个成员函数。数据成员为私有成员,成员函数为公有成员且在类说明内定义实现。在main()函数中建立Rect类对象并进行测试。
提示与分析:
(1) 分析类中数据成员的类型并定义对应的变量,如double X1,X2,Y1,Y2;
(2) 分析成员函数的函数原型,即返回值及其类型以及相关参数,如:
double getArea();
double getPerimeter();
void setRect(double,double ,double,double);
void print();
(3) 思考成员函数的函数体实现代码。
计算矩形面积和周长的方法:
Area=fabs(X2-X1)*fabs(Y2-Y1);
Perimeter=(fabs(X2-X1)+fabs(Y2-Y1))*2;
(4) 根据要求设定类成员的访问权限,如成员函数为公有成员(public),数据成员为私有成员(private)。
8面向对象JAVA实验四类与对象
实验目的:理解面向对象系统的类与对象概念,并利用它们实现抽象与封装等面向对象的基
本特征。进一步掌握 Java 对这些特征的程序开发技术。
实验内容:
1.将示例程序 C4_1.java 改写为 Applicationt 程序。
import java.applet.Applet;
import java.awt.Graphics;
x=x+3.2;y=y+1.2;
System.out.println("x="+x+"\ty="+y);
}
static double add1(double y1,double y2)
{ double z;
z=y1+y2+2.9;
return z;
}
public static void main(String[ ] args)
//构造方法
setter.ShowDog(g,25,120); } } 3. 将示例程序 c4_16.java 改写为 Applet 程序。 public class C4_16 { public static void main(String[ ] args)
{ double a=2,b=3; double z1=Math.pow(a,b); //引用 Math 类的 pow 方法求 a 的 b 次方 double z2=Math.sqrt(9); //引用 Math 类的 sqrt 方法求 9 的平方根 System.out.print("z1="+z1); System.out.println("\tz2="+z2);
实验研究的类型与实验设计
一、实验研究的类型
实验研究根据标准的不同分为不同的类型。例如根据实0设计的不同,分为标准实验和非标准实验;根据实脸研究场所的不同.分为实骏室实验和实地实验;根据社会科学的特殊研究需要而创造的双盲实验等等。
(一)标准实验和非标准实验
标准实验和非标准实验是针对实0的规范程度以及对实验条件的控制能力而做的区分。一个完备的标准的实验应当具备以下要素:两个或多个相同的组;前侧和后侧;封闭的实验环境,实验刺激的控制和操纵等。一般来讲,具备这些因素的实验称做标准实验。
然而,社会科学的实验不间于自然科学的实验,也不同于心理学的实验,而是具有自身的特点。这些特点往往使得设置一个标准的社会科学实验比较困难,社会科学研究的性质、对象和内容往往在许多方面限制了严格的实验设计在现实杜会中的应用。
顾名思义,非标准实验指的是并不其备标准实验所要求的所有条件,为了研究的需要而进行的必要的省略或者特殊设计的实验。例如在社会科学实验设计中常用的单次研究设计(one - shot,study)、单组前后测设计((one一group pret,卜posttest design).睁态组间比较(static一group comparison)等实验方法都属于非标准实获,但是这些实验方法对于不同性质的实脸却能够发挥各自不同的作用。
标准实验和非标准实验代表着实验规范程度的两个极端,在实际的实验研究中,完全的标准与非标准都是很难做到的。标准实验往往体现出某种弹性(尤其在社会科学实验中);非标准实验必然以标准实验为依据,在设计和操作上向标准实骏靠拢,因而有时也将其称为“准实验”.指类似于、接近于标准实验的意思。在具体的实验中是倾向于标准实验还是倾向于标准实验.完全取决于研究的性质、研究的目的和研究的精度要求。
《可视化建模与UML》实验1-5指导教案.
可视化建模与UML
实
验
指
导
井大电信学院
2015.03
目录
实验一常用建模软件 (3)
实验二需求定义与陈述 (4)
实验三用例建模 (8)
实验四类图(与对象图)建模 (10)
实验五UML静态模型分析 (11)
实验六交互建模(顺序图与协作图) (14)
实验七行为建模(状态图和活动图) (16)
实验八* 构件图和部署图建模 (20)
实验九* 交互概述图 (22)
实验十* 设计建模实例与分析 (27)
实验十一* 数据库建模实例与分析 (29)
实验一常用建模软件的使用
【实验目的】
1.熟悉常用UML建模工具。
2.熟练掌握Rational Rose的基本操作
3.掌握UML规则和相关机制。
4.掌握UML的可见性规则和构造型的作用。
【实验性质】
验证性实验
【实验环境要求】
Pentium II以上微机,Windows2000以上操作系统,Rational Rose2003,Microsoft Visio,网络。
【实验内容和步骤】
一、安装Rational Rose2003或其它任意一种UML建模工具。本项内容实验者根据情况选择并在实验课外完成。
二、练习使用建模工具建立各种UML图形,并对图形进行相应编辑和修改。认识各种UML关系及可见性符号,并用工具表示出来。
【分析与讨论】
1.总结UML在软件工程中的作用以及使用UML建模的必要性。
2.比较不同建模工具。
【实验导读】
关于Rational Rose2003的安装。Rational Rose的安装比较麻烦,通过安装Rational Rose2003,并在安装过程中,发现一些问题,解决和理解它。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学长只能帮你到这了
要想学习好,努力少不了
C++面向对象程序设计实验指导书
实验四
cout<<"卖出总重量为:"<<a*b<<endl; n=n-a*b; if(n<0) cout<<"---------库存不够啦,请先购进-------"<<endl; else cout<<"现在库存总重量为:"<<n<<endl; } void main() { int x,y=1; cout<<"请输入原有库存总量"<<endl; cin>>x; store p(x); while(y) { cout<<" 请 选 择 操 作 类 型 :0--> 退 出 "<<" "<<"1--> 购 进 "<<" "<<endl; cin>>y; switch(y) { case 0:break; case 1:p.in();break; case 2:p.out();break; } } }
学长只能帮你到这了
要想学习好,努力少不了
C++面向对象程序设计实验指导书
实验四
name[nLen] = '\0'; nTotalObj++; } CStudent::~CStudent() { delete[] name; nTotalObj--; } void CStudent::SetAge(int age) { this->age = age; } void main() { CStudent stu1("张三",25); CStudent str2("李四",26); cout<<"CStudent::nTotalObj="<<CStudent::nTotalObj<<endl; }
#include <iostream.h> #include <string.h> class CStudent { public: CStudent(char *n, int a); ~CStudent(); static void SetAge(int age); int count(int b){ b=nTotalObj ;return b;} private: char *name; int age; static int nTotalObj; }; int CStudent::nTotalObj = 0; CStudent::CStudent(char *n, int a) :age(a) { int nLen = strlen(n); name = new char[nLen+1]; strcpy(name,n);
学长只能帮你到这了
}; CTeacher::CTeacher(char *tn, int ta) :age(ta) { int nLen = strlen(tn); name = new char[nLen+1]; strcpy(name,tn); name[nLen] = '\0'; } CTeacher::~CTeacher() { delete[] name; }
学长只能帮你到这了
要想学习好,努力少不了
C++面向对象程序设计实验指导书
实验四
}
问题一:以上程序有两大错误,试指出来,并改正之(要求主函数和类 Date 的数据成员属 性不可以改动)?
1 Date::Date(int y,int m,int d)函数中是不能允许直接地更改常对象的数据成员 答: ○
3.来自百度文库解下面的程序,并在 VC++6.0 下运行查看结果,回答程序后面的问题。
#include "iostream.h" class Date { private: const int year; const int month; const int day; public: Date(int y,int m,int d); void showdate() const; }; Date::Date(int y,int m,int d):year(y),month(m),day(d) { } void Date::showdate()const { cout<<year<<"/"<<month<<"/"<<day<<endl; } void main() { const Date obj(2007,10,30); obj.showdate();
#include <iostream.h> #include <string.h> class CStudent { public: CStudent(char *n, int a); ~CStudent();
要想学习好,努力少不了
C++面向对象程序设计实验指导书
实验四
private: char *name; int age; }; CStudent::CStudent(char *n, int a) :age(a) { int nLen = strlen(n); name = new char[nLen+1]; strcpy(name,n); name[nLen] = '\0'; } CStudent::~CStudent() { delete[] name; } class CTeacher { public: CTeacher(char *tn, int ta); ~CTeacher(); void SetStuAge(int a); private: char *name; int age; CStudent stu;
要想学习好,努力少不了
C++面向对象程序设计实验指导书
实验四
实验四 类和对象—对象传递与静态成员
4.1 实验目的
1.理解静态成员(静态数据成员、静态成员函数)的作用与使用; 2.理解友元(友元函数、友元类)的作用于使用; 3.理解常类型的使用。
4.2 实验内容 4.2.1 程序阅读
1.理解下面的程序,并在 VC++6.0 下运行查看结果,回答程序后面的问题。
1 构造函数CStudent::CStudent(char *n, int a) 答:○
:age(a)参数的初始化错误应该是CTeacher::CTeacher(char *tn, int ta,char *a1,int a2):age(ta),stu(a1,a2),同时把CTeacher这个函数的参数也该成相应CTeacher(char *tn, int ta,char *a1,int a2),主函数的调用,参数传递也是。 2 void CTeacher::SetStuAge(int a){ stu.age = a;}这个函数不能直接访问类的私 ○ 有成员,把stu中的age改成公有成员即可。
的。改成Date::Date(int y,int m,int d):year(y),month(m),day(d)。 2 obj.showdate();, ○ 不允许常对象调用普通的成员函数。 在成员函数后面加上const 变成常成员函数即可。
4.2.2 程序设计
1.某商店经销一种货物。货物成箱购进,成箱卖出,购进和卖出时以重量为单位,各箱的 重量不一样,因此,商店需要记录下目录库存的总重量。试用 C++模拟商店货物购进和卖出 的情况。 #include<iostream.h> class store { int n; public: store(int); void in(); void out(); }; store::store(int k=0) { n=k; } void store::in() { int a,b; cout<<"请输入购进的规格和数量"<<endl<<"规格(kg):"; cin>>a; cout<<"数量(箱):"; cin>>b; cout<<"购进总重量为:"<<a*b<<endl; n=n+a*b; cout<<"现在库存总重量为:"<<n<<endl; } void store::out() { int a,b; cout<<"请输入卖出的规格和数量"<<endl<<"规格(kg):"; cin>>a; cout<<"数量(箱):"; cin>>b;
要想学习好,努力少不了
C++面向对象程序设计实验指导书
实验四
void CTeacher::SetStuAge(int a) { stu.age = a; } void main() { CStudent stu("张三",25); CTeacher tea("李四",26); }
问题一:以上程序有两大错误,试指出来,并改正之?
学长只能帮你到这了
数即可:。。。。static int count(int b){ b=nTotalObj ;return b;} 。。。。cout<<"CStudent::nTotalObj="<<CStudent::count(0)<<endl;
2.理解下面的程序,并在 VC++6.0 下运行查看结果,回答程序后面的问题。
问题一:以上程序编译能通过吗,为什么? 答:不能通过,this->age = age;这一句访问了类中的私有成员;最后一行中不能直接 访问类中的私有成员。最后一句中不能直接访问私有静态成员。 问题二:成员变量 nTotalObj 在程序中起什么作用,它是如何实现的? 答:起到计数的作用。根据创建了多少个对象来计数。创建一个对象就计数一个。 问题三:如果规定该程序的主函数和类 CStudent 中的成员变量的属性不允许改变,应该如 何改正该程序? 答:this->age = age;改成 age=age,在类中再创建一个函数,把计数结果传回主函
"<<"2--> 卖 出
学长只能帮你到这了