文档库 最新最全的文档下载
当前位置:文档库 › n阶矩阵求逆矩阵(C++面向对象)

n阶矩阵求逆矩阵(C++面向对象)

n阶矩阵求逆矩阵(C++面向对象)
n阶矩阵求逆矩阵(C++面向对象)

课程设计报告

实验内容: n阶方阵求逆的实现

相关课程:信息系统开发语言(一)

学期: 2011-2012学年第2学期

学时学分: 68学时 4学分

专业班级:信管1022班

学号: 100312087 姓名:管小芬

指导老师:陈荣元

提交日期: 2012年06月21日

信息系统开发语言(一)课程设计

——n 阶方阵求逆的实现

一、课程设计目的

1、了解什么是矩阵及逆矩阵。

2、通过VC++6.0编写一个实现求矩阵逆矩阵的程序。

3、巩固和加深学生对算法课程基本知识的理解和掌握。

4、培养利用算法知识解决实际问题的能力。

5、掌握利用程序设计语言进行算法程序的开发、调试、测试.

6、掌握书写算法设计说明文档的能力。

7、提高综合运用算法、程序设计语言、数据结构知识的能力。 二、问题描述

给出任意一个维数大于1小于256的矩阵,通过程序求出其逆矩阵。

如????

??????=2221

20

1211

10

020100

a a a a a a a a a A ,存在矩阵B ,使得矩阵A 与B 的乘积为单位矩阵,则称矩阵B 为矩阵A 的逆矩阵。 三、问题分析

根据矩阵与逆矩阵的定义,即矩阵A 与矩阵B 相乘等于单位矩阵的思路,编辑程序。

为使问题更加简单明了化,现举除一个具体例子,便于理解,我们在求解数学题

目中,经常会遇到这一类的题目: 如求方阵A 的逆矩阵

??????????=2221

20

1211

10

020100a a a a a a a a a A

拿到这个题,我们首先应该是理解什么叫矩阵及逆矩阵,我们根据定义可知,一个矩阵如果存在逆矩阵,那么这个矩阵的秩一定不会小于该矩阵的维数,拿到一个题,要求一个逆矩阵的方法是很多的,比较常用的还是先把矩阵化为上三角或者下三角矩阵,,判断矩阵是否存在逆矩阵,然后,然后根据矩阵与逆矩阵之积等于单位矩阵从而得出逆矩阵,这是比较一般的思路,我们一下设计基本上也是以此为基础的。

四、算法分析、设计与描述 1.算法分析和设计

对于矩阵求逆,逆矩阵的定义是:对于n 阶方阵A ,若存在矩阵B ,使得

AB=BA=E ,则称A 为可逆矩阵,简称A 可逆,并称B 为A 的逆矩阵。A 存在逆矩阵的充要条件是|A|≠0。若用定义的方法求解,计算量大,当矩阵的阶数很大时很浪费时间,为了节省时间,通过查阅资料和上网搜索,决定采用高斯-约旦发来进行方阵的求逆操作。

对于矩阵的乘法,利用矩阵乘法定义即可实现,矩阵的乘法的定义是:若A 是一个m*n 阶矩阵,B 是一个n*p 阶矩阵,则AB=C 是一个m*p 阶矩阵,而C 中的每一个(i,j )元都等于A 的第i 行中的各元和B 的第j 列的各对应元之乘积的和。只要按照该定义就可以求出两个矩阵的乘积。 2.算法描述

a.高斯-约旦法求解逆矩阵的算法描述如下:

首先,对于 k 从 0 到 n - 1 作如下几步:

1)从第 k 行、第 k 列开始的右下角子阵中选取绝对值最大的元素,并记住次元素所在的行号和列号,在通过行交换和列交换将它交换到主元素位置上。这一步称为全选主元。

2)m(k, k) = 1 / m(k, k)

3)m(k, j) = m(k, j) * m(k, k),j = 0, 1, ..., n-1;j != k

4)m(i, j) = m(i, j) - m(i, k) * m(k, j),i, j = 0, 1, ..., n-1;i,

j != k

5)m(i, k) = -m(i, k) * m(k, k),i = 0, 1, ..., n-1;i != k 最后,根据在全选主元过程中所记录的行、列交换的信息进行恢复,恢复的原则如下:在全选主元过程中,先交换的行(列)后进行恢复;原来的行(列)交换用列(行)交换来恢复。2.算法描述(可插入流程图)

五、程序设计

1.程序设计的基本思路

该程序设计了一个类,用于存储用户数据的方阵阶数、用户输入的方阵数据以及方阵的逆矩阵数据。因为用户需要计算的方阵的阶数不定,因此采用了double 型指针动态开辟内存的方式来存储用户输入的方阵数据和逆矩阵数据。同时,该类定义了等方法,用来实现最成员变量的初始化,方阵求逆,矩阵相乘的操作。

程序运行开始,首先调用类的方法,在该方法中首先要求用户输入矩阵的阶数,并根据该阶数开辟内存空间,接着要求用户输入方阵的数据,输入完毕后,程序调用类的方法用以实现方阵的求逆,在求逆过程中,首先判断该矩阵是否存在逆矩阵,若存在则进行求逆,若不存在则给出提示并要求用户重新输入。求逆完成后存储结果并显示,同时程序调用类的方法对两个矩阵进行相乘操作,用来验证求逆结果是否正确。

该程序设计的主要难点和重点在于方阵的逆矩阵求解方法,通过复习矩阵的相关知识和查阅资料,决定采用高斯-约旦法来实现对方阵的求逆,为了计算的方便,数据也是采用一维数据而不是二维数据才存储。

矩阵类matrix的uml图如下:

2.程序代码及说明

#include

#include

using namespace std;

double **B; //保存矩阵A 与 E的组合矩阵

int N=0;

void Init()

//初始化B 但是还没有输入A的值

{

cout<<" 现在请该矩阵输入的维数 N"<

do{

cin>>N;

if(N<1)cout<<" 检查矩阵的维数是否正确!"<

}while(N<1);

B=new double *[N+1]; //B[0][n]不用

int i;

for(i=0;i<=N;++i)

B[i]=new double[2*N+1];//B[n][0]不用

int j;

for(i=0;i<=N;++i)

for(j=0;j<=2*N;++j)

B[i][j]=(j-i==N)?1:0;

}

void Ainit()

//输入原矩阵每一行的每一个数的值

{

cout<<"请输入原矩阵每一行的每一个数的值:"<

int i,j;

for(i=1;i<=N;++i)

{

cout<<"输入第 "<

for(j=1;j<=N;++j)

cin>>B[i][j];

}

cout<<"该矩阵为:"<

for(i=1;i<=N;++i)

{

for(j=1;j<=N;++j)

cout<

cout<

}

}

int To1(int i)

//在进行矩阵变成上三角是将第i行第i列的数变成1

//并且返回是否变换成功

//0---失败,也就是说改矩阵的秩不是N,并不能求出逆矩阵

//1---成功,返回后进行下一步程序

{

int j;

int ii=i;

double ij;

if(B[ii][ii]!=0) ij=B[ii][ii];

else

{

for(j=i+1;j<=N;++j)

if(B[j][i]!=0)

break;

if(j>N)return 0; //失败

for(;i<=2*N;++i) //将第j行的加到第ii行

B[ii][i]+=B[j][i];

ij=B[ii][ii];

}

for(i=ii;i<=2*N;++i)//将第ii行第ii列的变为1

B[ii][i]/=ij;

return 1; //成功返回

}

void To0(int i,int j)

//利用第i行第i列的数将第j行到第i行的第i列变为0

{

if(i==j)return;

int ii=i,jj=j;

double ij;

int n=(i

//在下面是 j+=n

//n用来检验是求上三角,还是下三角

//-1-------i

//1------i>j 也就是将上三角变为0

for(;j!=i;j+=n)

for(ii=i,ij=B[j][i];ii<=2*N;++ii)

B[j][ii]-=ij*B[i][ii];

}

void Print()

{

int i,j;

int n=N*2;

cout<

for(i=1;i<=N;i++)

{

for(j=N+1;j<=n;++j)

cout<

cout<

}

}

//int To1(int i)

//在进行矩阵变成上三角是将第i行第i列的数变成1

//void To0(int i,int j)

//利用第i行第i列的数将第j行到第i行的第i列变为0

void main()

{

Init(); //初始化B 但是还没有输入A的值

Ainit(); //输入原矩阵每一行的每一个数的值

int i;

int flag=1;

for(i=1;i

{

if(To1(i))

To0(i,N);

else

{

cout<<"改矩阵的秩小于 N ,没有逆矩阵"<

flag=0;break;

}

}

for(i=N;i>=1&&flag==1;--i)

{

if(To1(i))

To0(i,0);

else

{

cout<<"改矩阵的秩小于 N ,没有逆矩阵"<

flag=0;break;

}

}

if(flag==1)Print();

cin>>i;

}

六、程序运行、调试和结果分析

1.程序运行中出现的问题及调试手段(包括异常处理)

在运行过程中是出现过很多问题的,错误也是非常之多的,就是各种不能运行,先就针对错误比较突出的一些问题进行分析,错误一的提示: fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory 执行 cl.exe 时出错.根据英文提示,才发现原来在设置代码时我按照以前编辑程序的经验预定义了一个头文件“stdafx.h”,当我把头文件“stdafx.h”省去

再次运行时,该错误就已经解决。

错误二的提示: warning C4508: 'main' : function should return a value; 'void' return type assumed

对于这个问题,是不应该犯的错误,这个错误的错误源在于编辑代码的最后一个阶段,并没有注意到int定义的函数是有返回值的而void定义的函数才没有返

回值,于是我将int改成了void,此处错误就解决了。

具体错误代码如下:

int main()

{

//定义一个矩阵类

matrix m;

//调用该类的set_data方法,来对其内部成员变量赋值

m.set_data();

//对输入的矩阵求逆,如果求逆失败,说明输入的矩阵不存在逆矩阵,则要求用户重//新输入

while(m.InverseMatrix()==1)

m.set_data();

//求逆成功后,计算两个矩阵的乘积是否为单位矩阵,用以验证求解的正确性

m.Cheng();

}

错误三的提示:error C2143: syntax error : missing ';' before '}' 类似于错误三的错误是非常多的,这在编辑程序时是最容易出错,也是最容易被遗忘的。在编辑程序时,我们必须要有严谨认真的态度,防止类似于错误二和错误三的情况发生。

还有一个很奇怪的现象就是连接是显示的是0个错误,但是检测却出现了一个

错误,但是却可以运行,比如图一所示:

图一

图二

这个问题经过仔细研究后,发现在在图二中如果选择的是:“是”的话,则运行不了,如果选择“否”就可以正常运行,并出现以上情况,出现以上情况的原因是这个文件夹是我很早以前建立的,做这个实验的时候我并没有重新建立文件夹,而是利用了以前做实验时,建好的文件,直接修改了文件里面的程序,直接进行调试、检测以及运行,只要重新建立文件,就可以解决以上问题了,重新建立文件夹后,运行情况如图三

图三

2.程序运行结果分析(多组数据测试)运行中的第一种情况如图四:

图四

当输入的维数为0时,显示的文字为:逆矩阵为空,两矩阵相乘结果也为空,这是如下程序的运行结果

matrix::matrix()

{

//将矩阵阶数初始化为0,并将两个指针指向NULL。

row=0;

in_buffer=NULL;

out_buffer=NULL;

}

matrix::~matrix()

{

//如果指针依然指向内存,则将指针指向的内存释放掉,并将指针指向

NULL

if (in_buffer)

{

delete []in_buffer;

in_buffer=NULL;

}

if (out_buffer)

{

delete []out_buffer;

out_buffer=NULL;

}

}

运行中的第二种情况:

此矩阵没有逆矩阵,是因为该矩阵的秩不等于该矩阵的维数2,设该矩阵用A表示,也就是该矩阵的lAl=0,这是如下代码中的结果,在矩阵中,矩阵的秩小于

改矩阵的维数,该矩阵是没有逆矩阵的,这有矩阵逆矩阵的定义就知道了。代码如下:

for (k=0;k

{

double max=0;

//全选主元

//寻找最大元素

for (i=k;i

{

for (j=k;j

{

//寻找最大值

if (fabs(*(out_buffer+i*row+j))>max)

{

max=*(out_buffer+i*row+j);

is[k]=i;

js[k]=j;

}

}

}

//如果最大值为0,则不存在逆矩阵,要求用户重新输入

if (0==max)

{

cout<<"该矩阵不存在逆矩阵,请重新输入"<

return 1;

}

运行中的第三种情况:

由程序设定以及逆矩阵的性质可知,以上输入的矩阵是符合要求的,故输入后可以得到逆矩阵,经过多次试验可知,只要维数大于1小于256,且符合矩阵逆矩阵的定义,根据以上程序都是可以执行的。

七、总结与体会

我只能说C++这门课真的是太高深莫测了,你还能再复杂一点吗?可是更让我觉得意外的是以前一直以为学C++知识为了开发软件应用软件什么的,没想到连我最喜欢的数学都可以这样来解决啊!

我上课其实基本是还是蛮认真的,但是拿到题目却是愕然的呀!

原以为是很简单的东西没想到细究起来其实这么复杂,所有我深深的明白没有浅显的知识,只有浅显的理解啊。

知识还是要一步一个脚印的扎稳啊,不能半知半解,要不然其实很不懂没什么区别!经过这次试验我深深明白,上课听老师讲讲是远远不够的,一天24个小时,我们有8个小时在睡觉,8个小时在上课,那么决定我们生命长度以及宽度的就是那课余的8小时,所以,课后的时间我们应该好好利用,用心的学习,达到不懂到懂,懂到精的境界!不要小看任何事,任何简单的背后都会有不简单。

在学习C++以前,我认为C++只是在C语言的基础上的一种延伸,认为只要学过C语言,就可以用C语言的那种设计思想来学习C++、设计C++程序。正是由于抱了这种错误的思想,使我在一开始学习C++的时候遇到了很大的困难,我没有办法体会面向对象的设计思想,我在学习这门课的时候老是想着实现这个函数功能的具体过程,而没太注意对象分类的重要性。

随着课程学习的深入,我感觉到了利用类和对象、继承、封装等一系列知识可以把我们程序中很多繁杂、重复的部分省略掉,还可以解决一些利用面向过程的设计思想无法解决的问题,我自己也试着编写一些小的C++程序,当然在这个过程中遇到了很多困难,其中调试带来的困难让我无法忘记,在调试程序的同时,我也总结出来了一些调试的小技巧,让我在C语言课程设计中也受用匪浅。

在学习这门课的过程中,我感受到了自己亲自动手编程序、调程序的重要性,我们要熟悉C++的语法、体会调试的思想,最好的一个手段就是自己动手编程、调试,这会比我们一味的看书效果好得多。

另外,我还感觉到要编一个程序出来。严谨认真的态度是非常重要的,没有一个严谨认真的态度,是做不成什么事情的,很多时候,我们出现的问题不是我们不懂,而是我们的粗心大意导致了我们的错误连篇,出现错误的时候我们就必须检查和纠正,这也是非常费时费力的,所以无论是在工作中还是在学习中,我们都必须抱着认真严谨的态度来面对任何事,只有这样才可以事半功倍。同时我也认识到同学之间的相互帮助以及同学之间的相互促进使非常重要的,在为这个论文设计奋战了几天几夜之后,在查找程序几处提示错误的时候,自己怎么都找不到错误在哪

《面向对象程序设计C 》期末试卷及标准答案

《面向对象程序设计C++》期末考试试卷(B) 一、单项选择题(每小题2分,共40分) 1、关于C++与C语言关系的描述中,()是错误的。 A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的 C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的 2、已知:int m=10; 下列表示引用的方法中,()是正确的。 A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m; 3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*'); 4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。 A.函数的返回值类型B.参数的类型C.函数名称D.参数个数 5、下列有关C++类的说法中,不正确的是()。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有成员 C.在类中,如果不做特别说明,所有成员的访问权限均为私有的 D.在类中,如果不做特别说明,所有成员的访问权限均为公用的 6、已知X类,则当程序执行到语句X array[3];时,调用了()次构造函数。 A.0 B.1 C.2 D.3 7、有关析构函数的说法,不正确的是()。 A.析构函数有且仅有一个 B.析构函数和构造函数一样可以有形参 C.析构函数的功能是在系统释放对象之前作一些内存清理工作 D.析构函数无任何函数类型

c面向对象程序设计试题和答案(经典题目)

一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”<

(A)指针(B)引用(C)枚举(D)结构 3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。 (A)share (B)public (C)private (D)protected 4、关于构造函数,下列说法不正确的是()。 (A)构造函数名字和类名相同 (B)构造函数在创建对象时自动执行 (C)构造函数无任何函数返回类型 (D)构造函数有且只有一个 5、派生类可以访问其基类的()。 (A)公有成员(B)保护成员 (C)私有派生(D)公有和保护成员 6、下列关于运算符重载的描述中,错误的是()。 (A)运算符重载不可以改变操作数的个数 (B)运算符重载不可以改变运算符的功能 (C)运算符重载不可以改变结合方向 (D)运算符重载不可以改变运算优先级 7、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是() (A)面向过程(B)面向对象(C)安全性(D)复用性 8、对于类中定义的成员,其隐含访问权限为()。 A.public B.protected C.private D.static 9、下面有关重载函数的说法中正确的是() (A)重载函数必须具有不同的返回值类型;(B)重载函数形参个数必须不同; (C)重载函数必须有不同的形参列表(D)重载函数名可以不同; 10、有如下的对类“CSample”的说明,其中()是错误的。 class CSample { A.int a=23; B.CSample(); public: C.CSample(int val); D.~ CSample(); 11、在int a=3,int *p=&a;中,*p的值是( ) A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 12、每个类()构造函数。 (A)只能有一个(B)只可有公有的

面向对象程序设计实验指导书讲解

面向对象程序设计实验指导书 实验一、C++开发环境应用入门(2学时)(选做) 1、实验目的 (1)了解C++开发工具的特点 (2)熟悉C++开发环境 (3)学习用C++编写标准的C++程序 2、实验任务 使用C++来建立一个非图形化的标准C++程序,编译、运行下例程序: #include void main(void) { cout<<”Hello!\n”; cout<<”Welcome to C++!\n”; } 3、实验步骤 (1)启动Visual C++或C++Builder开发环境 (2)创建一个项目 A)单击File菜单中的New选项,显示示新建对话框 B)选择Console Wizard(C++Builder) 或Win32 Console Application(VC++)。 C)选择项目所在路径及输入项目的名称 D)依次按‘下一步’直至完成为止。 (3)至此,C++Builder已经建立好工程相关的文件(请不要随意更改其自动生成的文件),在生成的main函数中写入必要的内容即可。 (4)对于VC,请继续下面的步骤: A)建立C++源程序文件 a)选选菜单命令Project|Add to Project|New,弹出New对话框 b)在New对话框的Files选项卡中选择C++ Source File,并填入文件名称,单击OK按钮,完成 新建C++源程序文件 B)编辑C++源程序文件 a)在文件编辑窗口中输入代码 b)完成后,选择菜单File|Save保存这个文件 C)建立并运行可执行程序 a)选择菜单命令Build,建立可执行程序 如果你正确输入了源程序,此时便成功地生成了可执行程序。 如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源 程序进行修改后,重新选择菜单命令Build建立可执行程序。 b)选择菜单命令Run,运行程序,观察屏幕显示内容。 D)关闭工作空间 选择菜单命令File|Colse WorkSpace关闭工作空间。

第3章 面向对象程序设计基础

第3章面向对象程序设计基础

第3章面向对象程序设计基础 【1】什么是Java程序使用的类?什么是类库? 答:类是将一类事物的特性描述出来,然后如果用这个类来定义对象,则该对象就拥有了这个类所描述的所有特性。 在Java系统中,系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合称为一个包,所有包合称为类库。 【2】如何定义方法?在面向对象程序设计中方法有什么作用? 答:方法的定义由两部分组成:方法声明和方法体。 方法的声明如下: 返回值类型方法名(参数类型形式参数1,参数类型形式参数2…){ 程序代码; 返回值; } 在面向对象程序设计中,方法的作用是完成对类和对象属性操作。 【3】简述构造方法的功能和特点。下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。 void Student(int no,String name) {

studentNo=no; studentName=name; return no; } 答:构造方法的功能是:构造方法是一个特殊的方法,主要用于初始化新创建的对象; 特点:构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。 错误之处:(1)构造方法Student()前不能加void,(2)不能用return语句,(3)类名Student 首字母S改成小写s. 【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写Java程序创建student类的对象及测试其方法的功能。 class Student { String id; String name; String sex; int age; void talk(){

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

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

实验一 Java开发环境的安装与配置 一、实验目的: 1. 掌握JDK、Eclipse的安装步骤。 2. 理解环境变量PATH, CLASSPATH的作用,以及Eclipse的配置。 3. 熟悉Eclipse的编辑、编译与调试环境,编写简单的Application程序 编译执行并完成调试。 二、实验内容: 熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序 (能输出一条简单的问候信息); 三、实验要求: 1. 能正确地安装JDK 2. 熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3. 调试程序、编译,运行后得到正确的结果 四、实验步骤: 1.从https://www.wendangku.net/doc/5711701247.html,/technetwork/java/index.html上下载最新版本的JDK,并安装。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.在Eclipse环境下编写一个HelloWorld.java程序, (1)在主方法static public void main(String[ ] args)中调用System. out.println()方法,使程序输出一条问候信息; (2) 编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用 javac.exe和java.exe编译和执行程序)

实验二 Java语言基础 一、实验目的: 熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。 二、实验内容: 1.编写Java Application程序,输出1900年到2000年之间的所有润年。 (闰年的判断条件:能被4整除且不能被100整除,或能被400整除); 2.金字塔:Pyramid.java 在屏幕上显示一个由星型符号“*”组成的金字塔图案,示例如下: * *** ***** ******* 要求:金字塔高度h,可以由用户设置。 三、实验要求: 1. 正确使用Java语言的选择语句,循环语句; 2. 调试程序、编译,运行后得到正确的结果 3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提成 示,并给出解决办法。 四、实验步骤: 1.编写主类; 2.在static public void main(String[ ] args)方法中加入实现要求功能 的代码,主要步骤如下: (第一题)从1900到2000循环,按照闰年的判断条件是则输出1900年到2000年之间的所有润年。 (第二题)允许用户设置金字塔高度。 4. 编译运行程序,观察输出结果是否正确。

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

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

面向对象程序设计C自学考试课程复习题

(07837)《面向对象程序设计C++》复习题 一、单选题 1.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( D ) A. 公有类型 B. 私有类型 C. 保护类型 D. 友元类型 2.下列关于多态性的描述,错误的是( C ) A. C++语言的多态性分为编译时的多态性和运行时的多态性 B. 编译时的多态性可通过函数重载实现 C. 运行时的多态性可通过模板和虚函数实现 D. 实现运行时多态性的机制称为动态绑定 3.在C++语言中,数据封装要解决的问题是( D ) A. 数据的规范化 B. 便于数据转换 C. 避免数据丢失 D. 防止不同模块之间数据的非法访问 4.使用private修饰的成员变量,以下说法正确的是( A ) A. 只能由本类中的函数使用,不能被外面的程序所访问。 B. 可以由本类中的函数使用,也可以被外面的程序所访问。 C. 只能由本类和派生类中的函数使用。 D. 可以在主函数中使用。 5.对类的构造函数和析构函数描述正确的是( A ) A. 构造函数可以重载,析构函数不能重载 B. 构造函数不能重载,析构函数可以重载 C. 构造函数可以重载,析构函数也可以重载 D. 构造函数不能重载,析构函数也不能重载 6.下面对静态数据成员的描述中,正确的是( A ) A. 静态数据成员是类的所有对象共享的数据 B. 类的每个对象都有自己的静态数据成员 C. 类的不同对象有不同的静态数据成员值 D. 静态数据成员不能通过类的对象调用 7.在VC++语言类体系中,不能被派生类继承的有( B ) A. 转换函数 B. 构造函数 C. 虚函数 D. 静态成员函数 8.下面关于句柄正确的说法是( A ) A. 句柄是一个标识Windows资源和设备等对象的变量。 B. 句柄是用户程序自定义的数据类型。 C. 用户程序使用句柄时不需要定义。 D. 句柄仅仅是一个抽象的概念,程序中不能使用句柄。 9.下面关于动态链接库正确的说法是( B ) A. 动态链接库提供的函数,在编译阶段能够连接到应用程序中。 B. 动态链接库提供的函数,在运行阶段能够连接到应用程序中。 C. 动态链接库本身不能单独设计、编译和调试。 D. 动态链接库的使用使得程序缺乏灵活性。 10.下面关于MFC应用程序中InitInstance函数正确的说法是( D ) A. 该函数由用户定义。

面向对象程序设计(C )实验指导书

《面向对象程序设计(C++)》课程实验指导书 安阳工学院计算机科学与信息工程学院 软件工程教研室 2018.9

编号: 课程总学时: 64 实验学时: 32 课程总学分: 3.5 实验学分: 先修课程:C语言程序设计 适用专业:计算机科学与技术,网络工程,软件工程 一、本课程实验的主要目的与任务 《面向对象程序设计(C++)》是计算机专业学生的一门专业基础课。C++是一种高效而又实用的程序设计语言,它既可以进行过程化程序设计,也可以进行面向对象程序设计,因此成为了编程人员最广泛使用的工具。主要任务是介绍C++语言中的数据类型,运算,语句结构及其程序设计的基本方法。使学生掌握一门高级程序设计语言,了解面向对象程序设计的基本概念与方法,进而学会利用C++语言学会解决一般应用问题,从而掌握面向对象程序设计的基本知识和基本技能。并为后续的专业课程奠定程序设计基础。 实验1 C++基础 一、实验目的 1.加强学生掌握C++的基本知识点; 2.加强学生掌握I/O流; 3 加强学生进一步理解函数的用法; 4 理解引用的概念及应用。 三、实验内容 1.用函数返回值实现统计A类学生和B类学生个数,平均分大于等于80的为A类,其余 为B类。 四. 实验指导 1.参考程序: #include int main() { cout<<”My name is Jone\n”。 cout<<”the ID is”。 cout<<2。 cout< #include //要用到格式控制符 void main()

面向对象程序设计试题

《面向对象程序设计》试题(补考) (闭卷考试) 班级:学号:姓名: 1. 单项选择题(每小题3分,共60分) 1)C++语言对C语言做了很多改进。C++语言相对于C语言的最根本的变化是 ( )。 A.增加了一些新的运算符 B.允许函数重载,并允许设置缺省参数 C.规定函数说明符必须用原型 D.引进了类和对象的概念 2)下列描述中,不属于面向对象思想主要特征的是( )。 A.封装性B.跨平台性 C.继承性D.多态性 3)每个C++程序中都必须有且仅有一个( )。 A. 类 B. 预处理命令 C. 主函数 D. 语句 4)sizeof(float)是( )。 A. 一个双精度型表达式 B. 一个整型表达式 C. 一种函数调用 D. 一个不合法的表达式 5)设有int x=11;,则表达式(x++*2/3)的值是( )。 A. 7 B. 8 C. 11 D. 12 6)在下面的二维数组定义中,正确的是( )。 A. int a[5][]; B. int a[][5]; C. int a[][3]={{1,3,5},{2}}; D. int a[](10);

7)设有程序代码: int k=10; while(k=0) k=k-1; 则下面描述中正确的是( )。 A. 循环执行10次 B. 无限循环 C. 循环体语句一次也不执行 D. 循环体语句执行一次 8)对表达式for(表达式1; ; 表达式3)可理解为( )。 A. for(表达式1; 0; 表达式3) B. for(表达式1; 1; 表达式3) C. for(表达式1 ; 表达式3;) D. for( ; ; 表达式3) 9)下面的哪个选项不能作为函数的返回类型? ( )。 A.void B.int C.new D.long 10)有如下说明: int a[ ]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a; 则下面哪一个表达式的值为9 ( )。 A. *p+9 B. *(p+8) C. (*p += 9) D. p+8 11)有如下函数定义: void func(int a, int &b) {a++; b++;} 若执行代码段: int x=0, y=1; func(x, y); 则变量x和y值分别是( )。 A.0和1 B.1和1 C.0和2 D.1和2 12)下列写法正确的是( )。 A. int *p = 15; B. const int a; a=15; C. int& b; D. int b = 15; int* a = &b; 13)下列选项中,与实现运行时多态性无关的是( )。 A.重载函数B.虚函数C.指针D.引用 14)拷贝构造函数的参数一般是( )。 A. 某对象名 B. 某对象成员名 C. 某对象的引用名 D. 指向对象的指针名 15)对类的构造函数和析构函数描述正确的是( )。 A.构造函数可以重载,析构函数不能重载

《C面向对象程序设计》谭浩强版复习总结

第一章C++ 基础 endl 换行并刷新输出流 setw(n) 设置字段位数为n hex,oct,dec 十六进制,八进制,十进制表示 setfill 定义填充字符 setprecision 定义浮点数的精度 left,right 左对齐,右对齐 showpoint 强制显示小数点以及全部尾部0 C++通过给常量命名的方式定义常量: const<数据类型名><常量名>=<表达式> 用const定义的标识符常量时,一定要对其初始化。在说明时进行初始化是对这种常量置值的唯一方法,不能用赋值运算符对这种常量进行赋值。 函数声明的一般形式为 函数类型函数名(参数表) 函数模板的定义 template 函数定义 例子:template T max(T a,T b){ return(a>b)? a:b; } 定义函数模板时可以使用多个类型参数,每个类型参数前面只需加上关键字typename或class,用逗号分隔: template

例子:template T1 max(T1 a,T2 b){ return (a>b) ? a : (T1)b; } 有默认参数的函数:实参与形参的结合是从左至右进行的,因此指定默认值的参数必须放在形参列表中的最右端 引用 定义对变量起另外一个名字(别名alias),这个名字称为该变量的引用。 <类型> &<引用变量名> = <原变量名>; 其中原变量名必须是一个已定义过的变量。如: int max ; int &refmax=max; refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。 对引用类型的变量,说明以下几点: 1、引用在定义的时候要初始化 2、对引用的操作就是对被引用的变量的操作。 3、引用类型变量的初始化值不能是一个常数。 4、一旦引用被声明,它就不能再指向其它的变量。 5、对引用的初始化,可以用一个变量名,也可以用另一个引用。 6、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。 当&m的前面有类型符时(如int &m),它必然是对引用的声明;如果前面无类型符(如cout<<&m),则是取变量的地址。 7、对常量(用const声明)的引用使用如下方式: int i=5; const int &a=i;

c+面向对象程序设计试题和答案题目

系名___ ___ ___ ___ 班级___ ___ ___ ___姓名___ ___ ___ ___学号___ ___ ___ ___ 密 封 线 内 不 答 题 一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”<

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

《面向对象程序设计》实验指导书 实验一 Java开发环境 一、实验目的: 1、熟悉JAVA开发环境(JBUILDER/JDK) 2、认识Java程序结构。 二、实验内容: 1、配置JDK,编译调试HelloWorld程序。 2、熟悉JAVA开发工具,编译调试HelloWorld程序。 三、实验要求: 1、HelloWorld程序输出一条简单的问候信息; 2、实验报告中对程序结构做出详细的解释; 3、实验报告中给出配置JDK的步骤。 四、实验学时、性质:2学时、验证性 五、实验步骤: 1、进入Java编程环境; 2、新建一个Java文件,命名为HelloWorld.java; 3、定义主方法public static void main(String[ ] args);调用System.out.println()方法,使 程序输出一条问候信息; 4、编译运行程序,观察运行情况和输出结果。(如果使用JDK环境,调用javac.exe 和java.exe编译和执行程序) 实验二类与对象 一、实验目的: 1、掌握类的定义与成员的封装。 2、掌握对象的创建,对象属性的访问和方法的调用。 3、掌握包的使用。 二、实验内容: 1、自定义一个学生类。 2、导入并访问其他同学定义的学生类。 三、实验要求:

2、实验报告中记录访问不同属性时编译器的反馈并分析原因。 四、实验学时、性质:3学时、验证性 五、实验步骤: 1、创建一个Java包,以自己的英文名字命名。 2、定义一个学生类,包含三个属性学号、姓名和性别,访问修饰符分别是private、无修饰符和public修饰符。 3、在另一个类中创建学生类的对象,分别设置三个属性的值,观察实验结果。 4、导入同学定义的学生类。分别访问三个属性,观察实验结果。 实验三数据类型与数组 一、实验目的: 1、掌握数据类型与数组的定义、初始化与使用。 二、实验内容: 1、查看自己名字的UNICODE编码。 2、转置二维矩阵。 三、实验要求: 1、使用已知给定的数值初始化一个5X5的二维数组。 2、每次打印都应该按照从上到下从左到右的顺序。 3、实验报告给出完整代码。 四、实验学时、性质:3学时、验证性 五、实验步骤: 1、编写程序将自己姓名的汉字转化为UNICODE编码,并打印。 2、用任意的23个整数初始化一个5X5的二维int类型数组,并逐行打印。 3、交换沿对角线上对称的元素,并打印转置后的矩阵。 实验四流程控制 一、实验目的: 1、掌握分支、循环语句的使用。 二、实验内容: 1、用循环语句打印一个99乘法表。 2、判断回文数(逆序排列后得到的数和原数相同)。 三、实验要求: 1、打印的乘法表应该呈现阶梯状。 2、给定一个1-99999之间的数,程序可以判断它的位数,并判断是否是回文数。

C面向对象程序设计教程第版陈维兴林小茶课后习题答案及解析

C++面向对象程序设计教程课后题答案 1.1 什么是面向对象程序设计? 面向对象程序设计是一种新的程序设计范型.这种范型的主要特征是: 程序=对象+消息 面向对象程序的基本元素是对象。 主要结构特点是: 第一,程序一般由类的定义和类的使用两部分组成; 第二,程序中的一切操作都是通过向对象发送消息来实现的。 1.2 什么是对象?什么是类?对象与类之间的关系是什么? 对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。 类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。 类和对象之间的关系是抽象和具体的关系。类是多个对象进行综合抽象的结果,一个对象是类的一个实例。 1.3 现实世界中的对象有哪些特征?请举例说明。 现实世界中的对象具有以下特征: 1) 每一个对象必须有一个名字以区别于其他对象; 2) 用属性来描述对象的某些特征; 3) 有一组操作,每组操作决定对象的一种行为;

4) 对象的行为可以分为两类:一类是作用于自身的行为,另一类是作用于其他对象的行为。 例如一个教师是一个对象。每个教师对象有自己的名字来和别的教师区别。教师具有编号,姓名,年龄,职称,专业等属性。教师拥有走路,吃饭,授课等行为操作。走路,吃饭是作用于自身的行为,授课是作用于其他对象的行为。 1.4 什么是消息?消息具有什么性质? 一个对象向另一个对象发出的请求成为“消息”。 消息具有以下3个性质: 1) 同一个对象可以接收不同形式的多个消息,做出不同的相应; 2) 相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的; 3) 对消息的响应并不是必须的,对象可以响应消息,也可以不响应。 1.5 什么是抽象和封装?请举例说明。 抽象是将有关事物的共性归纳、集中的过程。 例如:把所有具有大学生学籍的人归为一类,成为“大学生”,这就是一个抽象。 封装是指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐藏对象的内部细节。 例如:每一台洗衣机都有出厂日期、机器编号等属性,也有启动、暂停、选择等操作。人们在使用洗衣机的时候只需要按下对应的按钮,而不用关心具体的内部实现。这就是封装。 1.6 什么是继承?请举例说明。 继承就是允许派生类使用基类的数据和操作,同时,派生类还可以增加新的操作和数据。

面向对象程序设计(C++) 实验指导书

实验 1 类和对象 1.1实验目的和要求 (1) 理解类和对象的概念,掌握声明类和定义对象的方法。 (2) 掌握构造函数和析构函数的实现方法。 (3) 初步掌握使用类和对象编制C++程序。 (4) 掌握对象数组、对象指针和string类的使用方法。 (5) 掌握使用对象、对象指针和对象引用作为函数参数的方法。 (6) 掌握类对象作为成员的使用方法。 (7) 掌握静态数据成员和静态成员函数的使用方法。 (8) 理解友元的概念和掌握友元的使用方法。 1.2实验内容和步骤 1.输入下列程序 //test4-1.cpp #include using namespace std; class Coordinate { public: Coordinate(int x1,int y1) { x=x1; y=y1; } Coordinate(Coordinate &p); ~Coordinate() { cout<<”Destructor is calleded\n”;} int getx() {return x;} int gety() {return y;} private: int x,y; }; Coordinate::Coordinate(Coordinate &p) { x=p.x; y=p.y; cout<<”copy-initialization Constructou is called\n”; } int main() { Coordinate p1(3,4); Coordinate p2(p1);

Coordinate p3=p2; cout<<”p3=(“<

C面向对象程序设计知识点汇集

C#面向对象程序设计知识点汇集 第一章:C#入门 1.namespace关键字 namespace即命名空间,是定义命名空间的关键字,命名空间包含类,是类的组织方式。namespace 命名空间名 { …//类的定义 } 2.using关键字 using关键字用于导入命名空间 using命名空间名; 3.class关键字 class即类,是定义类的关键字。C#中必须用类来组织程序的变量和方法。 4.Main()方法 C#程序必须且只能包含一个Main()方法,它是程序的入口点。 static void Main(string[] args){} static void Main(){} static int Main(string[] args){} static int Main(){} 5.行输出方法 语句“Console.WriteLine("Hello .NET!");”的功能是向显示屏输出双引号之间的字符串。语句“Console.ReadLine();”的功能是输入一个字符串 6.C#程序结构 C#程序的组成要素如下: 1) 命名空间:命名空间包含一个或多个类。 2) 类。 3) 方法:方法必须包含在某一个类中,作为类的一个成员,每个程序有且仅有一个Main()方法。 4) 语句:语句是C#应用程序中执行操作的命令。C#中的语句必须用分号“;”结束。 5) 关键字:关键字也叫保留字,是对C#有特定意义的字符串。 6) 大括号:在C#中,括号“{”和“}”是一种范围标志,表示代码层次的一种方式。7.C#程序书写格式 1)缩进 2) 字母大小写 C#是大小写敏感的语言,它把同一字母的大小写当作两个不同的字符对待。 3) 程序注释 (1) 单行注释,以双斜线“//”开始,一直到本行尾部,均为注释内容。 (2) 多行注释,以“/*”开始,以“*/”结束,可以注释多行,也可以注释一行代码中间的一部分,比较灵活。 (3) 文档注释,使用“///”,若有多行文档注释,每一行都用“///”开头。 8.Console类 Console类是System命名空间中预定义的一个类,用于实现控制台的基本输入输出。

《面向对象程序设计C 》期末考试试卷

《面向对象程序设计C++》期末考试试卷 一、选择题(每小题3分,共48分。) 01、下列关于C++函数的叙述中,正确的是( C )。 A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明 D)函数不能自己调用自己 02、下列关于类和对象的叙述中,错误的是( A )。 A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系 03、在C++中,用于实现运行时多态性的是( D )。 A)内联函数 B)重载函数 C)模板函数D)虚函数 04、下列关于运算符重载的叙述中,正确的是( B )。 A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载 C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参 05、对于语句 cout<

C面向对象程序设计课程设计报告

《C++面向对象程序设计》课程设计报告题目:分数计算器设置 班级: K0312415 专业:计算机科学与技术 学号: 姓名:周林 指导教师: 小组成员:周林,张齐满 二O一三年 10 月 15 日

一、课程设计问题描述 分数计算器设计是高等学校教务管理的重要组成部分,其内容较多,为了简化计论, 要求设计的管理系统能够完成以下功能: (1)定义整数类和分数类。其中,包括构造函数、析构函数、显示函数等。 (2)输入/输出:对流提取和流插入运算符进行重载。 (3)计算功能:可进行分数的加、减、乘和除法运算。 (4)化简功能:将分数化简为最简分数。 (5)异常处理功能:分数中分母不能为零。 (6)菜单功能:每种功能的操作都是在菜单中进行相应选择。 二、课程设计目的和要求: 经过一个学期的《C++面向对象程序设计》课程的学习,已经有了一定地程序设计基础,但是要学好C++面向对象程序设计这门课程,不仅要认真阅读课本知识和从事课堂学习,更重要的是要进行上机实践,通过上机实践才能增强和巩固知识。 三、系统设计(算法分析) 1、系统由5功能,可分别执分数的.加法运算,减法运算,.乘法运算和除法运算,还可以将分数化简。 1.加法运算可计算两个分数相加。 2.减法运算可计算两个分数相减。 3.乘法运算可计算两个分数相乘。 4.除法运算可计算两个分数相除。 5.化简运算可计算一个分数化简。 2、流程图

3、分数计算器设置各函数的功能和实现的相关功能由对应的函数来实现。 (1)函数jia() (2)函数jian() (3)函数cheng()实现分数乘法运算。 (4)函数chu()实现分数除法运算。 (5)函数shuchu()实现分数的输出和化简。 四、程序源代码 pp : Defines the entry point for the console application.

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

《面向对象程序设计》实验指导书 熊利祥编 武汉理工大学华夏学院 2015年1月

前言 一、实验课目的 通过本课程的学习培养学生对计算机软件开发语言及工具的综合能力。主要介绍Java 软件开发工具及编辑工具的使用方法、语言的语法及Java类的定义和使用、使用Java进行网络和多媒体编程的方法。通过本课程学习和上机实践,使学生掌握使用Java进行程序设计的基本技术与方法、具备软件开发的基础能力,为今后从事软件开发和应用打下基础。 二、实验要求: 1.课前预习 ①认真阅读实验指导书,了解实验内容; ②认真阅读有关实验的理论知识; ③读懂程序代码。 2.实验过程 ①按时到达实验室; ②认真听取老师对实验内容及实验要求的讲解; ③认真进行实验的每一步,观察程序代码与仿真结果是否相符; ④将实验过程中程序代码和仿真结果提交给老师审查; ⑤做完实验后,整理实验设备,关闭实验开发板电源、电脑电源后方可离开。 3.实验报告 ①按要求认真填写实验报告书; ②认真分析实验结果; ③按时将实验报告交给老师批阅。 三、实验学生守则 1.保持室内整洁,不准随地吐痰、不准乱丢杂物、不准大声喧哗、不准吸烟、不准吃东西; 2.爱护公务,不得在实验桌及墙壁上书写刻画,不得擅自删除电脑里面的文件; 3.安全用电,严禁触及任何带电体的裸露部分,严禁带电接线和拆线; 4.任何规章或不按老师要求操作造成仪器设备损坏须论价赔偿。

目录 实验一JDK与Eclipse开发环境………………………………………………………… 实验二类的继承与多态实验………………………………………………………… 实验三GUI图形界面设计实验……………………………………………………………实验四网络编程实验………………………………………………………………………

面向对象程序设计实验教材

实验1J a v a语言基础 一、实验目的 1.了解J D K的安装与使用、熟悉Ja v a的运行环境。 2.掌握编写与运行Ja va Ap pl ica t io n程序的方法。 3. 掌握编写与运行Ja va Ap ple t程序的方法。 4熟练掌握J ava中的数据类型、运算符、表达式及流程控 制语句。 5掌握数组的定义、建立及其使用方法。 6. 熟悉Ja v a一般程序的结构。 7通过以上内容,掌握Ja va 语言的编程规则。 二、实验要求 1.安装并设置J a va S DK 软件包。 2.编写一个Ja va 应用程序,在屏幕上输出”he ll o,ja v a!”。3.编写一个Ja va 小应用程序,在屏幕上输出”h el lo,ja v a!”。4.掌握运行J av a 程序的步骤。 5.浏览S DK 自带的Ap pl et 应用小程序。 6.编写一个声明J a va 不同数据类型变量的程序。 7.编写一个使用运算符、表达式、变量的程序。 8.编写表达式语句、复合语句的程序。 9.编写使用不同选择结构的程序。 10.编写使用不同循环结构结构的程序。 11.编写一个使用Ja va 数组的程序。 三、实验内容 (一)SDK 的下载与安装 1.机器要求 J a va 对机器运行要求不高。下面给出的是基于Wi nd ow s 平台的机器要求。 硬件要求:CP U P II以上,64M 内存,1O OM 硬盘空间即可。 软件要求:Wi nd ows98/Me/X P/NT/2000,I E 5 以上。2.下载SD K 为了建立基于SD K 的Ja va 运行环境,需要先下载Su n 的免费SD K 软件包。SD K 包含了一整套开发工具,其中包含对编程最有用的是Ja va 编译器、A p pl et 查看器和J a va 解释器。 在浏览器中输入ht t p://ja va.s un.co m/,在页面的 “Do wn lo ad J2S E v 1.4.2_01 ”栏可以选择下载J2SE v 1.4.2_01 SD K 软件包。有两种选择:一种是在线安装“Wi n do ws I n st al la ti on”;一种是离线安装“W i nd ow s Of fl in e I n st al la ti on”。 3.安装SD K 运行下载的“j2sdk-1_4_2_01-w in dow s-i586.ex e”软件

相关文档
相关文档 最新文档