当前位置:文档之家› 《Java语言程序设计》(第3版)第6章

《Java语言程序设计》(第3版)第6章

《Java语言程序设计》(第3版)第6章
《Java语言程序设计》(第3版)第6章

第六章 Java图形与图像处理

【1】用绘制线段的方法输出一个红色的“王”字。

[解答]:代码如下:

import javax.swing.*;

import java.awt.*;

public class DrawWang extends JFrame {

public DrawWang(){

super("在窗体上绘制一个王字");

}

public void paint(Graphics g){

g.setColor(Color.red);

g.drawLine(10,50,100,50);

g.drawLine(10,100,100,100);

g.drawLine(10,150,100,150);

g.drawLine(60,50,60,150);

}

public static void main(String[] args) {

DrawWang dw = new DrawWang();

dw.setSize(150,200);

dw.setVisible(true);

}

}

运行效果如下:

【2】编写一个程序绘制8个同心圆,各园相差20个像素点。

[解答]:代码如下:

import javax.swing.*;

import java.awt.*;

public class EightCircle extends JFrame {

public EightCircle(){

super("在窗体上绘制八个同心圆");

public void paint(Graphics g){

g.setColor(Color.red);

g.drawOval(200,200,10,10);

g.drawOval(180,180,50,50);

g.drawOval(160,160,90,90);

g.drawOval(140,140,130,130);

g.drawOval(120,120,170,170);

g.drawOval(100,100,210,210);

g.drawOval(80,80,250,250);

g.drawOval(60,60,290,290);

}

public static void main(String[] args) {

EightCircle ec = new EightCircle();

ec.setSize(500,400);

ec.setVisible(true);

}

}

运行效果如下:

【3】编写一个程序绘制一把打开的折扇。[解答]:代码如下:

import javax.swing.*;

import java.awt.*;

public class T5 extends JFrame {

public T5(){

super("打开的折扇");

public void paint(Graphics g){

g.setColor(Color.red);

g.fillArc(50,50,300,300,15,150);

g.setColor(Color.BLUE);

g.fillArc(140,140,120,120,15,150);

g.setColor(Color.BLACK);

g.fillArc(180,180,40,40,15,150);

}

public static void main(String[] args) {

T5 ec = new T5();

ec.setSize(500,400);

ec.setVisible(true);

}

}

运行效果如下:

【4】简述Java的事件处理机制。什么是事件源?什么是监听者?在Java的图形用户界面中,谁可以充当事件源?谁可以充当监听者?

[解答]:java的事件处理机制就是,事件源允许监听器注册的事件对象,在事件发生的时候想相关的注册对象发送一个,事件对象,监听器便根据相关的信息来选择运行相关的代码。

事件源:英文名为event source,是指事件发生的地方,也就是引起事件的组件,按钮Button,文本组件等都可以当做事件源。比如说,你点击一个button,那么button就是事件源,要想使button对某些事件进行响应,你就需要注册特定的监听者。(具体请看第5章的事件处理)

监听者:英文名为event handler事件处理者,又叫监听器。具体的对监听的事件类,当它监听到event object产生的时候,它就调用相应的方法,进行处理。

在java中,AWT组件和swing组件都可以当做事件源;java.awt.event.*,里面各种类都可以为监听者。

【5】动作事件的事件源可以有哪些?如何响应动作事件?

[解答]:动作事件的事件源可以有:Button,JButton,MenuItem,等。

响应动作事件的过程一般为:

声明和实例化事件源,如:Button btn=new Button(“确定”);

注册监听:btn.addActionListener(this); //this指明是在当前类实现处理实现接口:public void actionPerformed(ActionEvent e){//具体代码};

【6】应用键盘事件编写一个推箱子的游戏程序。

[解答]:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Test6 extends JFrame implements KeyListener

{

key_move_Canvas drawing =new key_move_Canvas();

public Test6() //初始化方法,生成按钮,并设置监听器

{

super("");

setSize(500, 500);

setVisible(true);

setLayout(new FlowLayout());

add(drawing);

drawing.addKeyListener(this);//监听画布

drawing.requestFocus();//设置焦点(画布对象)

validate();

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

public void keyPressed(KeyEvent e) //设置键盘事件

{

if(e.getKeyCode()==KeyEvent.VK_UP)//向上的方向键

{

drawing.moveUp();

}

if(e.getKeyCode()==KeyEvent.VK_DOWN)

{

drawing.moveDown();

}

if(e.getKeyCode()==KeyEvent.VK_LEFT)

{

drawing.moveLeft();

}

if(e.getKeyCode()==KeyEvent.VK_RIGHT)

drawing.moveRight();

}

}

public void keyTyped(KeyEvent e) {}

public void keyReleased(KeyEvent e) {}

public static void main(String args[])

{

new Test6();

}

}

class key_move_Canvas extends Canvas

{

(红色图形块推着蓝色图形块一起移动)int x=360,y=180;

int m=200,n=200;

int step=10;

key_move_Canvas()

{

setSize(500,500);//未设置的画布大小为一个像素,因此需要设置大小

}

public void paint(Graphics g)

{

g.setColor(Color.black);

g.fillRect(x+2,y+2,32,32);

g.setColor(Color.red);

g.fillRect(x, y, 30, 30);

g.setColor(Color.black);

g.fillRect(m + 2, n + 2, 32, 32);

g.setColor(Color.blue);

g.fillRect(m, n, 30, 30);

}

public void moveUp()//方块向上移动

{

if(xm-30&&y==n+30)

{

if(n>-30)

{

n-=step;

y-=step;

}

else

{

n=getSize().height;

}

repaint();//重绘图形

}

else//没有遇到的时候

{

if (y >-30)

{

y -= step;

}

else

{

y = getSize().height +30;

}

repaint();//重绘图形

}

}

public void moveDown()//方块向下移动

{

if (x < m + 30 && x > m - 30 && y == n - 30) {

if (n < getSize().height)

{

n+=step;

y+= step;

}

else

{

n =- 30;

}

repaint();//重绘图形

}

else//方块没有相遇的时候

{

if (y < getSize().height)

{

y += step;

}

else

{

y = -60;

}

repaint();//重绘图形

}

}

public void moveLeft()//方块向左移动

{

if(x-30==m&&y>n-30&&y

{

if(m>-30)

{

m-=step;

x-=step;

}

else

{

m=getSize().width+step-30;

}

repaint();//重绘图形

}

else//没有遇到的时候

{

if(x>-30)

{

x-=step;

}

else

{

x=getSize().width+step;

}

repaint();//重绘图形

}

}

public void moveRight()//方块向右移动

{

if (x + 30 == m && y > n - 30 && y < n + 30) {

if (m < getSize().width)

{

m += step;

x += step;

}

else

{

m = 0;

}

repaint();//重绘图形

}

else//没有遇到的时候

{

if (x < getSize().width) {

x += step;

}

else

{

x = -30;

}

repaint();//重绘图形

} }

}

Windows程序设计题(含简答题答案)

Windows 程序设计》模拟题 单项选择题 1. 在 VC++ 中,项目文件的扩展名是( B )。 A ) exe B)dsp C ) dsw D ) cpp 2. 在 MFC 中,利用 ClassWizard 不能( D )。 A )建立新类 B )进行消息映射 C )增加类的成员变量 D )插入资源 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送( 3. C )消 息。 4. 5. A ) WM_CHAR B ) WM_HSCROLL C ) W M_VSC ROLL 更新菜单状态的消息是( C A ) WM_COMMAND )。 C ) UPDATE_COMMAND_UI 对于消息队列描述正确的是( A )在Windows 中只有一个消息系统, 据结构,用于临时存储消息。 D ) WM_CHANG E B ) UPDATE D) INVALIDATE 即系统消息队列。 消息队列是一个系统定义的数 B )系统可从消息队列将信息直接发给窗口。 另外,每个正在 Windows 下运行的应用程 序都有自己的消息队列。 C )系统消息队列中的每个消息最终都要被 USER 模块传送到应用程序的消息队列中去。 应用程序的消息对列中存储了程序的所有窗口的全部消息。 D )以上都正确 6. 在 MFC 中,所有的控件都是( B )类的派生类,都可以作为一个特殊的窗口来处理。 CView B ) CWnd C) 7. 使用 CWindow C) D ) CDialog GetDC () 获取的设备上下文在退出时,必须调用( A )释放设备上下文。 ReleaseDC() B ) delete() DeleteDC () D ) Detach () 8. 希望菜单无效,应该用 CCmdUI 类的( A )成员函数。 A ) Enable B ) SetRadio C ) SetCheck D ) SetText 9.希望菜单前出现一个“V”,应该用 CCmdUI 类的(C )成员函数。 A ) Enable B ) SetRadio C ) SetCheck D ) SetText 10.下面(A )不是MFC 设备环境类CDC 类的派生类。 A ) GDI B ) CPaintDC C) CClientDC D) CWindowDC 11.在MFC 中,所有的文档类都派生于( C ),所有的视图类都派生于( A )。 A) CView B) CWindow C) CDocument D) CFormView

04747java语言程序设计(一)20120年01月试卷

全国2012年1月高等教育自学考试 Java语言程序设计(一)试题 课程代码:04747 一、单项选择题(本大题共10小题,每小题1分,共l0分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下面供选字符序列中,不属于 ...Java语言关键字的是( ) A.inner B.throw C.false D.throws 2.表达式“-1>>>1”的十进制值是( ) A.-2 B.231-1 C.-(231-1) D.232-1 3.Java语言中,在类定义时用final关键字修饰,是指这个类( ) A.子类必须实现父类未实现的方法 B.没有具体实现代码 C.必须要有实例 D.不能被继承 4.表达式"java程序设计".1ength()的值是( ) A. 0 B.12 C. 8 D.13 5.以下关于BorderLayout布局的叙述中,不正确 ...的是( ) A.把容器内的空间划分成5个区域 B.加入组件应该指明要放入的区域 C.是框架窗口的默认布局 D.一个位置可直接放多个组件 6.利用文件对话框打开或保存文件,在打开文件对话框之前,可用FileFilter类设置筛选条件,其所用的两个方法是( ) A.accept()和getSelectedFile() B.accept()和getDescription() C.accept()和setDescription() D.setDescription()和getDescription() 7.设已经有Graphics2D对象g2d,RoundRectangle2D对象rRect,绘制对象rRect的代码是( ) A.g2d.draw(rRect) B.g2d.drawRoundRect(rRect) C.rRect.draw() D.rRect.drawRoundRect() 8.以下关于线程互斥和同步的叙述中,正确的是( ) A.临界段是线程互斥使用资源的程序段 B.临界段能使线程使用其它线程的资源 浙04747# Java语言程序设计(一)试卷第1页(共12页)

windows程序设计之扫雷游戏经典之作

WIN32模拟WINDOWS XP扫雷 程序 课程设计目的与要求: 本课程设计是计算机科学与技术专业重要的实践性环节之一,是对本程学习后进行的一次全面而综合的练习。本次课程设计的目的与任务主要有: 1.巩固和加深学生对C和C++语言的基本知识的理解与掌握。 2.掌握C和C++语言编程和调试的基本技能 3.运用C和C++语言对程序的简单设计 4.掌握程序设计说明文档的能力与技巧 5.提高与运用C和C++语言解决能实际问题的能力 一、题目描述: 自行分析Windows XP系统自带扫雷游戏,查找规则并对主要功能进行模仿程序实现,对于实现过程中出现的bug进 行调试解决。 二、使用语言: C和C++ 语言 选用C++语言的原因,简而言之主要是因为C++的设计目标,就是要让C++既具有适合于系统程序设计的C语言所具 有的可适应性和高效性,又能在其程序组织结构方面具有像其 他的语言所支持的程序优势。这即是说,C++所提供的抽象机 制能够被应用于那些对效率和可适应性具有极高要求的程序设 计任务之中。

三、编译以及运行环境: 编译环境:Microsoft Visual C++ 6.0 运行环境:Windows XP或其他兼容兼容系统 四、题目分析: 经过对游戏的初步分析,扫雷游戏含有如下规则: 根据输入的信息,执行相应的挖雷,插旗,疑问标记,自动蔓延开挖等。挖雷过程由计时器计时,由一个计数器统计插旗后雷的剩余个数。如果选择了标记功能,那么单机右键会依次对未知点进行插旗,标记,取消插旗与标记。如果点滴到插旗的如果点击到了未插旗子的雷区,如果是雷,则判定游戏失败,之后对雷区的点击进行屏蔽,不予响应。如果是疑问标记则像正常区域对待。如何判断胜利,如果所有的雷都被插旗或者点击后剩余的雷区, 五、程序运行流程简介以及流程图: 点击程序按默认参数进行初始化,输入,表情对鼠标左右键点击进行变化响应,对于雷区内点击进行规律响应,对雷区点击后果进行统计,判断失败与成功,失败或者成功之后,对于雷区内的输入也就是点击进行屏蔽,对菜单游戏级别、重新开始游戏按钮响应。级别选择,重新游戏时时间归零、雷数显示刷新。如此重复规则,直到点击退出。 程序简要流程图:

Windows程序设计题(含简答题答案)

《Windows程序设计》模拟题 一.单项选择题 1、在VC++中,项目文件得扩展名就是(B)。 A)exe????B)dsp C)dsw???D)cpp 2、在MFC中,利用ClassWizard不能(D)。 A)建立新类??B)进行消息映射 C)增加类得成员变量?D)插入资源 3、当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。 A)WM_CHAR??B)WM_HSCROLL C)W M_VSCROLL???D)WM_CHANGE 4、更新菜单状态得消息就是(C )。 A)WM_MANDB)UPDATE C)UPDATE_MAND_UI D)INVALIDATE 5、对于消息队列描述正确得就是(D) A)在Windows中只有一个消息系统,即系统消息队列。消息队列就是一个系统定义得 数据结构,用于临时存储消息。 B)系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行得应用程序都有自己得消息队列。 C)系统消息队列中得每个消息最终都要被USER模块传送到应用程序得消息队列中去。 应用程序得消息对列中存储了程序得所有窗口得全部消息. D)以上都正确 6、在MFC中,所有得控件都就是(B)类得派生类,都可以作为一个特殊得窗口来处理。 A)CView??B)CWnd C)C Window???D)CDialog 7、使用GetDC()获取得设备上下文在退出时,必须调用(A)释放设备上下文. A)ReleaseDC()???B)delete() C)D eleteDC()???D)Detach() 8、希望菜单无效,应该用CCmdUI类得(A )成员函数。 ???B)SetRadio A)Enable?? ? C)SetCheck???D)SetText 9、希望菜单前出现一个“√",应该用CCmdUI类得(C)成员函数. A)Enable ???B)SetRadio C)SetCheck??D)SetText 10、下面(A)不就是MFC设备环境类CDC类得派生类. A)GDI ????B)CPaintDC C)CClientDC ??D)CWindowDC 11、在MFC中,所有得文档类都派生于(C),所有得视图类都派生于(A )。 A)CView B)CWindowC)CDocumentD)CFormView 12、采用C++进行绘图时,(B)用于指定图形得填充样式,(A)用于指定图形得边框样式.

Java语言程序设计课后习题答案

Java语言程序设计(郑莉) 第二章习题答案 1.什么是对象、类,它们之间的联系 答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。 2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象!3)两者的关系:对象是类的具体实例.。 2.什么是面向对象的程序设计方法它有那些基本特征 答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。 它的特征:抽象,封装,继承,多态。 3(无用) 4.请解释类属性、实例属性及其区别。 答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。 5.请解释类方法、实例属性及其区别。 答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。 类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。 区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法; 6.类的访问控制符有哪几种具体含义及其区别。 答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。 区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。 7类成员的访问控制符有哪几种他们对类成员分别有哪些访问限制的作用 答:类成员的访问控制符有 public,private,protecte及无修饰符. public(公有的):用public修饰的成分表示公有的,也就是它可以被其他任何对象访问(前提是对累成员所在的类访问有访问权限). Private(保护的):类中限定为private的成员只能被这个类本身 访问,在类外不可见。 proteced(保护的)用该关键字修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。 无修饰符(默认的):public,private,protected这个三个限定符不是必须写的。如果不写,则表明是“friendly”,相应的成分可以被所在保重的各类访问。 8简述构造方法的特点答:构造方法主要有以下特点: (1)构造方法的方法名与类名相同; (2)构造方法没有返回类型(修饰符void也不能有);(3)构造方法通常被声明为公有的(public); (4)构造方法可以有任意多个参数; (5)构造方法的主要作用是完成对象的初始化工作; (6)构造方法不能在程序中显式的调用; (7)在生成一个对象时,系统会自动调用该类的构造方法为新生成的对象初始化。 9如果在类声明中声明了构造方法,系统是否还提供默认的构造方法 答: 用户在进行类声明时,如果没有声明任何构造方法,系统会赋给此类一个默认(无参)的构造方法。但是,只要用户声明了构造方法,即使没有声明无参的构造方法,系统也不会再赋默认的构造方法。 10:声明Patient类表示在门诊室中的病人。此类对象应包括name(astring)\sex(achar)、age(an integer)、weight(a float0、allergies(a boolean). 声明存取及修改方法。在一个单独的累中,声明测试方法,并生成两个patient的例子: Atient april=new Patient(); (“zhangli”) (‘f’);; (330; ; (true); 那么:”+()); ”+()); ”+()); (“weught: ”+());\ ”+()); 声明并测试toString()方法显示一个病人的aga、sex、name及allergies属性。 答: public class Patient { private String name; private char sex; private int age; private float weight; private boolean allergies; public void setname(String a) { name=a; } public void setsex(char b) { sex=b; }

windows程序设计学习笔记(一)

Windows程序设计学习笔记 2015年10月4日 一、宽字符wide-character 1、wchar_t: char的双字节(Unicode) 定义:typedef unsigned short wchar_t 示例:wchar_t c=’A’; wchar_t *pw=L”hello!”; //L(代表long)告诉编译器按宽字符保存,即每个字符占两个字节 wchar_t a[]=L”hello!”; 2、宽字符库函数 wcslen( ):计算宽字串符的长度 如:wchar_t *pw=L”hello!”; iLength=wcslen(pw); //字符串长度是6 二、windows头文件类型 1、CHAR和WCHAR typedef char CHAR; //8位 typedef wchar_t WCHAR; //16位变量前面可加wc以说明是一个宽字符 2、字符串指针 (1)8位字符串指针 tpyedef CHAR *PCHAR, *LPCH, *PCH, *NPSTR, *LPSTR, *PSTR; tpyedef CONST CHAR *LPCCH, *PCCH, *LPCSTR, *PCSTR; 前缀N和L表示“near”和“long”,指的是16位windows中两种大小不同的指针,在Win32中near和long指针没有区别 (2)16位字符串指针 tpyedef WCHAR *PWCHAR, *LPWCH, *PWCH, *NWPSTR, *LPWSTR, *PWSTR; tpyedef CONST WCHAR *LPCWCH, *PCWCH, *LPCWSTR, *PCWSTR; 3、WINAPI 定义:#define WINPAI _stdcall 该语句指定了一个调用约定,包括如何生成机器代码以在堆栈中放置函数调用的参数三、Hello程序 /*------------------------------------- HELLO.C--windows下显示Hello,world! 作者:lw 时间:2015年国庆 -------------------------------------*/ #include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT("HelloWin"); HWND hwnd; MSG msg; WNDCLASS wndclass; wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc;

Windows程序设计题(含简答题标准答案)

《Windows程序设计》模拟题 一.单项选择题 1. 在VC++中,项目文件的扩展名是(B)。 A)exe ????B)dsp C)d sw?????D)cpp 2.在MFC中,利用ClassWizard不能(D )。 A)建立新类?????B)进行消息映射 C)增加类的成员变量?D)插入资源 3. 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。 A)WM_CHAR ?B)WM_HSCROLL C)WM_VSCROLL???D)WM_CHANGE 4. 更新菜单状态的消息是(C)。 A)WM_COMMANDB)UPDATE C)UPDATE_COMMAND_UI D)INVALIDATE 5.对于消息队列描述正确的是( D ) A)在Windows中只有一个消息系统,即系统消息队列。消息队列是一个系统定义的数据结构,用于临时存储消息。 B)系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行的应用程 序都有自己的消息队列。 C)系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。应用程序的消息对列中存储了程序的所有窗口的全部消息。 D)以上都正确 6. 在MFC中,所有的控件都是(B )类的派生类,都可以作为一个特殊的窗口来处理。 ?B)CWnd A)CView ??? C)C Window ???D)CDialog 7.使用GetDC()获取的设备上下文在退出时,必须调用(A)释放设备上下文。 A)ReleaseDC()???B)delete() C)D eleteDC() ?D)Detach() 8. 希望菜单无效,应该用CCmdUI类的(A )成员函数。 A)Enable ???B)SetRadio C)S etCheck ??D)SetText 9. 希望菜单前出现一个“√”,应该用CCmdUI类的(C)成员函数。 A)Enable??B)SetRadio C)SetCheck????D)SetText 10. 下面(A)不是MFC设备环境类CDC类的派生类。 A)GDI??????B)CPaintDC C)C ClientDC ???D)CWindowDC 11. 在MFC中,所有的文档类都派生于(C),所有的视图类都派生于(A )。 A)CViewB)CWindowC)CDocument D)CFormView 12. 采用C++进行绘图时,(B )用于指定图形的填充样式,(A)用于指定图形的边框样式。 A)画笔B)画刷C)区域D)位图

《Java语言程序设计基础教程》习题解答

《Java语言程序设计基础教程》练习思考题参考答案

第1章Java程序设计概述 1.9 练习思考题 1、Java运行平台包括三个版本,请选择正确的三项:() A. J2EE B. J2ME C. J2SE D. J2E 解答:A,B,C 2、Java JDK中反编译工具是:() A. javac B. java C. jdb D. javap 解答:D 3、public static void main方法的参数描述是:() A. String args[] B. String[] args C. Strings args[] D. String args 解答:A,B 4、在Java中,关于CLASSPATH环境变量的说法不正确的是:() A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B. 编译器用它来搜索各自的类文件。 C. CLASSPATH是一个目录列表。 D. 解释器用它来搜索各自的类文件。 解答:A 5、编译Java Application源文件将产生相应的字节码文件,扩展名为() A. .java B. .class C. .html D. .exe 解答:B 6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。 7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。 8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。 9、开发与运行Java程序需要经过哪些主要步骤和过程? 10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的? 11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。

windows程序设计

消息驱动运行中发生的各种事件(鼠标键盘输入,各种状态的改变等),以消息的形式通知Windows系统Windows系统接收消息,提交给发生事件的应用程序应用程序的窗口处理函数负责处理响应收到的消息处理完成后继续等待下一个消息API application programming Interface SDK software Development kit 事件是用户对计算机操作的动作或程序中某个对象的状态发生的变化,每个事件对应一个消息,即每个事件发生的效果是产生消息消息是描述事件发生的信息事件驱动程序执行的顺序不是事先规定的,而是由事件的发生来控制在程序执行过程中,当某个对象的状态发生变化,或有外部输入等情况发生,则产生相应的事件当事件产生时,系统会发出特定的消息编写程序时可以对这些消息做出反应,也可以不做出;若要做出反应(即响应消息),则把响应此消息的程序写在与此消息相关联的函数中在程序执行时,一旦产生了一个消息,会调用与此消息相关联的函数窗口是Windows应用程序基本的操作单位,是应用程序与用户之间交互的接口,也是系统管理应用程序的基本单位消息传输事件发生,产生消息消息保存到消息队列分配给应用程序消息队列消息循环提取消息窗口函数响应消息MFC Microsoft foundation class MFC应用程序框架提供了一般应用程序需要的全部面向对象软件组件的集成集合MFC程序结构基于框架窗口的应用程序(早期的MFC)程序运行管理、窗口及数据管理分开两部分,与SDK程序类似基于文档/视图的应用程序单文档应用程序(重点)程序运行管理、窗口管理、交互管理、数据管理分开基于对话框的应用程序程序运行管理、对话框管理分开目前的MFC应用程序都采用文档/视图结构,把原来窗口框架类的工作分开窗口框架类管理窗框视图类(即视窗类)管理数据显示、接收用户输入文档类负责数据管理文档视图架构的思想数据嵌入文档中,利用文档的架构管理文档与视图通信,使数据在视图中显示视图显示数据,并与用户交互视图放入窗口中文档模板类对象管理上述对象协调工作CDocument是负责管理数据的类应用程序中的文档类是这个类的派生类作用数据管理程序员应将用户的实际数据对象内嵌在自己的文档类中需要与自己的视图类通信在程序中实现CDocument的派生类,以便嵌入数据对象,并改写成员函数实现对数据的处理用于派生应用程序的视图类CView 作用处理与用户的交互显示文档类中的数据接收用户输入(例如鼠标操作)通常要改写视图类的成员函数OnDraw或OnPrint,实现数据显示框架自动调用OnDraw函数WM_PAINT消息OnPaint()OnDraw() 菜单及响应利用菜单编辑器修改IDR_MAINFRAME 菜单资源在相应的类中为新菜单项映射消息COMMAND单击或用快捷键选中时生产UPDATE_COMMAND_UI上一级菜单显示前生产用于控制菜单状态编写新菜单项的消息处理函数快捷键在菜单项标题后面加“(&字母)”菜单动态为要添加的菜单项定义一个宏(例如ID_MENU1)用CWnd::GetMenu( )获得指向菜单条的指针(如果在子菜单上添加,应用CMenu::GetSubMenu()获得该菜单的指针)为菜单项手工映射消息处理函数在适当的地方调用InsertMenu或AppendMenu添加菜单项调用CWnd::DrawMenuBar()函数重画菜单动态删除菜单项与上面类似(使用DeleteMenu函数)动态创建菜单项用函数BOOL CreateMenu( );获得新菜单句柄,再用此句柄当作AppendMenu函数的第2个参数(需进行(UTIN)强制类型转换)通常用于创建弹出式菜单的顶级(不需映射消息)快捷菜单建立菜单如果菜单已经存在,且功能齐全,只需确定弹出方式即可也可以另加一个菜单资源,此法可使菜单条中不显示快捷菜单关联类(对于新加菜单)把此菜单资源关联到视图类上选中此菜单资源的情况下打开类向导,选视图类影射消息并编写消息处理函数选择弹出方式可在视图类的WM_CONTEXTMENU消息(鼠标右键单击客户区时产生)处理函数中弹出Windows系统有一个存放消息的队列每个应用程序也有一个消息队列Windows系统先将收到的消息存放在系统队列中,然后再分发到相应的应用程序队列中应用程序则从自身的队列中获取消息并进行处理类的消息响应一个类要响应多种消息对于每一种消息最重要的是知道是哪个消息:消息的标识(ID 身份证)这个消息对应的响应函数是什么(函数的起始地址)解决的办法建立一个结构体数组(消息映射表)一行(一个数组元素)是一个消息的信息每行至少包含消息的标识(ID)指向响应函数的指针消息的响应当收到消息后,根据消息ID在表中查找,找到后调用对应的消息处理函数消息路由当一个类收到消息后,先在自己的消息映射表中搜索,搜索到就执行相应的消息处理函数,然后结束消息处理过程未搜到,则到上一层基类中搜索,依此类推如果都未搜到,则交给系统默认的窗口处理函数去处理消息种类窗口消息命令消息控件通知消息实现消息映射消息映射的要点为每个要响应的消息建立一个处理函数为每个能够响应消息的类建立一个结构类型的数组(消息映射表)并填写这个数组编写每个消息处

java语言程序设计课后习题答案

习题2 3.使用“= =”对相同内容的字符串进行比较,看会产生什么样的结果。 答:首先创建一个字符串变量有两种方式:String str = new String("abc"); String str = "abc"; 使用“= =”会因为创建的形式不同而产生不同的结果: String str1 = "abc"; String str2 = "abc"; =str2); ; public class Exercise51{ public static void main(String[] args) throws IOException{ "请输入一个整数:"); InputStreamReader isStream=new InputStreamReader; BufferedReader bfReader=new BufferedReader(isStream); String input=(); int length=()-1; int n=new Integer(input).intValue(); while(length>=0){ int divisor=(int) (10,length); length=length-1; int output=n/divisor; n=n%divisor; ","); } } } 法二:(建议使用) public class Exercise5{ public static void main(String[] args){ int n=1678; int unit; int decimal; int hundred; int thousand; thousand=n/1000%10; hundred=n/100%10; decimal=n/10%10; unit=n%10; "1678包含的数字分别是: "+thousand+','+hundred+','+decimal+', '+unit); } } ;

Windows程序设计复习资料(完整答案)

一、单项选择题: 1.WinMain()函数的工作。 WinMain()函数是Windows程序的入口点 在WinMain中进行:注册窗体类、建立窗体、显示窗体、更新窗体、建立消息循环2.非MFC的Windows程序中,不是处理WM_PAINT消息的时候怎样获得客户区的设备环境句柄。 BeginPaint ----------EndPaint GetDC---------------ReleaseDC(成对出现) 利用GetDC()函数获取设备环境句柄 3.句柄的含义。 句柄是一个(通常为32位的)无符号整数(unsigned int),它代表一个内核对象内核对象在应用层的表示 4.在MM_TEXT映射模式下,什么情况下客户坐标和逻辑坐标可能不同。 当窗口客户区有滚动条时客户坐标和逻辑坐标可能不同 5.Windows程序的控制流程。 Windows程序没有固定的控制流程,事件驱动程序控制流程 6.事件驱动、消息驱动的概念。 事件驱动程序设计是一种全新的程序设计方法,它不是由事件的顺序来控制,而是由事件的发生来控制,而这种事件的发生是随机的、不确定的,并没有预定的顺序,这样就允许程序的的用户用各种合理的顺序来安排程序的流程。 消息是事件到达Windows内部后的称呼 7.对话框、控件的作用。 对话框是程序与用户之间进行交互,接收用户输入、并把数据显示出来的一个窗口; 控件是用户可与之交互以输入或操作数据的对象。控件通常出现在对话框中或工具栏上。 8.MFC中怎样处理WM_PAINT消息。 在OnDraw()函数中处理该消息 9.GetMessage()函数在什么情况下返回0,从而导致消息循环终止,程序结束。 在接收到WM_QUIT消息时返回0 10.Windows中,应用程序的输出是怎样进行的。 通过设备描述表DC(Device Context)来进行应用程序与物理设备之间的交互11.MFC中,大多数类的基类都是什么。 CObject类 12.一个MFC应用程序必须有且只能有一个从哪个类派生的全局应用程序对象,此对象在运行时刻控制应用程序中所有其他对象的活动。 CWinApp类 13.每次当窗口客户区需要重新绘制时,应用程序框架怎么处理。 发送WM_PAINT消息,调用OnDraw()函数进行重绘 14.CDC类的作用。 CDC是设备描述表类的基类,除了一般的窗口显示外,还用于基于桌面的全屏幕绘制和非屏幕显示的打印机输出。 15.当程序中某个函数改变了数据而需要重新绘制客户区时,OnDraw()函数不会被自动调

Windows程序设计题

《Windows程序设计》模拟题 一.单项选择题 1. 在VC++中,项目文件的扩展名是(B)。 A)exe B)dsp C)dsw D)cpp 2. 在MFC中,利用ClassWizard不能(D)。 A)建立新类B)进行消息映射 C)增加类的成员变量D)插入资源 3. 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。 A)WM_CHAR B)WM_HSCROLL C)WM_VSCROLL D)WM_CHANGE 4. 更新菜单状态的消息是( C )。 A)WM_COMMAND B)UPDATE C)UPDATE_COMMAND_UI D)INVALIDATE 5. 对于消息队列描述正确的是( D ) A)在Windows中只有一个消息系统,即系统消息队列。消息队列是一个系统定义的数据结构,用于临时存储消息。 B)系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行的应用程序都有自己的消息队列。 C)系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。 应用程序的消息对列中存储了程序的所有窗口的全部消息。 D)以上都正确 6. 在MFC中,所有的控件都是(B)类的派生类,都可以作为一个特殊的窗口来处理。 A)CView B)CWnd C)CWindow D)CDialog 7. 使用GetDC()获取的设备上下文在退出时,必须调用(A)释放设备上下文。 A)ReleaseDC() B)delete() C)DeleteDC() D)Detach() 8. 希望菜单无效,应该用CCmdUI类的(A)成员函数。 A)Enable B)SetRadio C)SetCheck D)SetText 9. 希望菜单前出现一个“√”,应该用CCmdUI类的(C)成员函数。 A)Enable B)SetRadio C)SetCheck D)SetText 10. 下面(A)不是MFC设备环境类CDC类的派生类。 A)GDI B)CPaintDC C)CClientDC D)CWindowDC 11. 在MFC中,所有的文档类都派生于(C),所有的视图类都派生于(A)。 A)CView B)CWindow C)CDocument D)CFormView 12. 采用C++进行绘图时,(B)用于指定图形的填充样式,(A)用于指定图形的边框样式。

自考Java语言程序设计一试题及答案解析

2015年10月高等教育自学考试全国统一命题考试 Java语言程序设计(一) 试卷 (课程代码04747) 本试卷共13页,满分100分.考试时间150分钟。 考生答题注意事项: 1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸. 2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑. 3.第二部分为非选择题。必须注明大、小题号.使用0.5毫米黑色字迹签字笔作答. 4.合理安排答题空间.超出答题区域无效。 第一部分选择题 一、单项选择题(本大题共10小题.每小题1分.共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的。请将其选出并将“答题卡”的相应代码涂黑。未涂、错涂或多涂均无分. 1.以下字符组合中,不能作为Java整型常量的是 A.037 B.0x3ADG C.7000 D.0x3abcL 2.以下程序代码的输出结果是 3.设有数组定义,则x.length的值为 A.2 B.3 C.4 D.5 4. 设有字符串String s=〝ABCDEFGABC〞;,则表达式s.indexOf(〝A〞,7)的值是 A.7 B.6 C.3 D.0 5.以下关于Swing与AWT之间关系的叙述中,正确的是 A.Swing是AWT的提高和扩展 B.在写GUl程序时,AWT和Swing不能同时使用 C.AWT和Swing在不同的平台上都有相同的表示 D.AWT中有一些类是从Swing中的一些继承的 6.以下供选择的类中,其子类能用来创建框架窗口的是 A.JWindow B.JFrame C.JDialog D.JAudio 7.某程序定义了一个子类,并要让它实现多线程,以下正确的步骤是 A.继承Thread类,在类内定义run( )方法,声明和创建线程对象,并让该对象调用 start( )方法。 B.继承Thread类,在类内定义run( )方法,声明线程对象,并让该对象调用start( ) 方法。 c.声明实现Runnable接口,在类内实现run( )方法,声明线程对象,创建线程,并

Windows编程基础-期末考试试卷头期末-A卷答案

北华航天工业学院2013—2014学年第二学期 Windows编程基础课程考试卷(A、B) 考核形式:开卷闭卷班级:姓名:学号: 一、填空题(每空1分,共10分) 1. 用户可以通过项目工作区窗口的ResourceView 视图来查看资源。 2. 一个单文档的MFC 应用程序框架一般包括5个类:应用程序类、框架窗口类、 视图类、文档类和文档模板类。 3. 改变菜单项文本是使用CCmdUI 类的SetText 成员函数。 4. 滚动条类CScrollBar的成员函数规定了滚动条的操作。设置滚动条的范围使用SetRange 函数,设置滚动块的位置使用SetScrollPos 函数,获取滚动块的当前位置使用GetScrollPos 函数。 5. 对话框默认标识符前缀是IDD 。 二、选择题(每空2分,共40分) 1.MFC类库中的类按层次关系可知,CStatic的直接父类为(B )。 A、CObject B、CWnd C、CCmdTarget D、CFrameWnd 2. 以下控件中,( C )没有Caption属性。 A、按钮 B、群组框 C、编辑控件 D、静态控件 3. 列表框ClistBox类的成员函数( A )用来向列表框增加列表项,成员函数( C )用来清除列表项所有项目,成员函数( F )用来返回列表框的列表项的总数。 A、AddString B、DeleteString C、ResetContent D、FindString E、GetCurSel F、GetCount 4. 假定AB为一个类,则执行“”AB a(4),b(3),*p[2];”语句时,自动调用该类构造函数的次数为( A )。 A、2 B、3 C、4 D、5 5.在类外定义类的成员函数时,应当使用( B )来标识该函数为特定类的成员。A、:B、::C、-> D、this

Windows程序设计(第五版)源代码A(chap08)

chap08-Beeper1 /*----------------------------------------- BEEPER1.C -- Timer Demo Program No. 1 (c) Charles Petzold, 1998 -----------------------------------------*/ #include #define ID_TIMER 1 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT ("Beeper1") ; HWND hwnd ; MSG msg ; WNDCLASS wndclass ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = NULL ; wndclass.lpszClassName = szAppName ; if (!RegisterClass (&wndclass)) { MessageBox (NULL, TEXT ("Program requires Windows NT!"), szAppName, MB_ICONERROR) ; return 0 ; } hwnd = CreateWindow (szAppName, TEXT ("Beeper1 Timer Demo"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL) ;

《Java语言程序设计(一)》(课程代码04747)汇编

《Java语言程序设计(一)》(课程代码04747) 第一大题:单项选择题 1、下列字符组合不能作为Java整型常量的是( ) ? A.078 ? B.0x3ACB ? C.5000 ? D.0x3ABC 参考答案:A 2、以下程序代码的输出结果是( ) int x = 10; while (x > 7) { System.out.print("*"); x--;} ? A.** ? B.*** ? C.* ? D.**** 参考答案:B 3、设类U声明,及对象u和v的定义如下: class U{ int x, int y; U(int a, int b){x= a; y = b;} void copy(U a){ x = a.x; y = a.y;} } U u = new U(1, 2), v = new U(2, 3); 在以下供选择的代码中,可能引起系统回收内存的是( ) ? A.u.x=v.y;u.y=v.x

? B.u=v ? C.u.copy ? D.v.copy(u) 参考答案:B 4、设有以下代码: String s l="123"; String s2="123"; String s3=new String("123"); 则表达式s1==s2和s1==s3的值分别是( ) ? A.true,true ? B.false,false ? C.true,false ? D.false,true 参考答案:C 5、以下关于AWT与Swing之间关系的叙述,正确的是( ) ? A.Swing是AWT的提高和扩展 ? B.在写GUI程序时,AWT和Swing不能同时使用? C.AWT和Swing在不同的平台上都有相同的表示? D.AWT中的类是从Swing继承的 参考答案:A 6、在以下Swing组件中,能为它指定布局管理器的是( ) ? A.JScrollBar对象 ? B.JMenuBar对象 ? C.JComboBox对象

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