《Java游戏程序设计教程》实验任务书
《Java语言程序设计》专业实习任务书(一)
《Java语言程序设计》专业实习任务(一)一、设计目的:本次设计是对教材前7章的总结。
在学习Java基本语法的基础上,利用面向对象的程序设计方法解决一些简单的问题。
设计的目的在于掌握Java的基本原理、设计方法和使用规则;能够运用面向对象方法分析问题,并利用所学知识合理地进行设计;熟练掌握Application的编写和运行过程;并能够进行简单的GUI设计。
二、设计题目:㈠程序改错。
根据题目要求调试下面的程序,分析错误原因并改正,直到运行正确,写出运行结果。
⒈输出40以内的素数,每行输出6个数。
public class Prime_1_1{public static void main(String[] args){final int MAX=40;int i,j,num;System.out.print(2+"\t");counter++;for(num=3;num<=MAX;num=num+2);{int k=3;while(num%k!=0&&k<num) k=k+2;if(k==num){ System.out.print(num+"\t");counter++;if(counter%6==0) System.out.println();}}}}⒉给对象u初始化(姓名:liqiang 性别:m),并显示该对象的数据成员值。
public class Hide_1_2{String name;char gender;public Hide_1_2(String name,char ch){name=name;gender=ch;}public showInfor(){System.out.println("Name: "+name);System.out.println("Gender: "+gender);}public static void main(String[] args){Hide_1_2 u= new Hide_1_2("liqiang",'m');u.showInfor();}}⒊调用Link类的方法完成两个字符串的连接和输出。
《Java程序设计》课内实验指导书
北京理工大学珠海学院计算机学院《Java程序设计》课内实验指导书撰写:赵卓君2015年6月目录实验一:Java基本语法 (4)实验二:面向对象编程 (5)实验三:异常 (9)实验四:util包和集合框架 (11)实验五:io包和输入输出 (14)实验六:GUI+JDBC编程 (16)实验七:多线程 (20)实验一:Java 基本语法一、 实验目的:熟悉Java 程序的结构,并能完成一些基本的算法操作。
熟悉Java 程序的if-else 、switch-case 语句、循环语句以及数组的用法。
二、 实验要求:1、 编写一个Java Application 程序,循环打印如下图所示图案:【提示】可以将一个整数看成是ASCII 码,转换为对应的字符。
如:(char)65 得到ASCII 码65对应的字符“A ”2、 编写一个Java 程序,接受用户输入的一个1~12之间的整数月份,利用switch 语句输出对应月份的天数。
(提示:在DOS 命令窗口里编译运行该程序,如图所示:)int month=Integer.parseInt(args[0]); //在程序中用该行代码获得输入的月份3、 定义一个包含10个整数的数组,求该数组中的最大值、最小值、平均值与总和。
运行时,在该处输入的月份提示:在DOS命令窗口里编译运行该程序,如图所示:运行时,在该处输入10个整数//获取命令行输入的10个整数int[] ary=new int[10];for (int i = 0; i<ary.length; i++)ary[i]=Integer.parseInt(args[i]);实验二:面向对象编程一、实验目的:熟练掌握类的创建与使用,理解封装与抽象的概念,理解信息隐藏以及4种访问控制修饰符的用法,熟练掌握构造方法的用法。
二、实验要求:1.问题描述➢狗生活在陆地上(是一种陆生动物),既是哺乳类的也是肉食性的。
课程设计《JAVA程序设计》任务书.
课程设计《JAVA程序设计》任务书.《 JA V A 程序设计》课程设计任务书一.课程设计基本信息课程名称:《JAVA 程序设计》课程设计学时:1周学分:1学分二.课程设计目的与要求1.教学目的:本课程是学习《 Java 程序设计》后的综合实践课,使学生能够比较深入的理解Java 语言的特征及体系;熟练的掌握并会运用Java 语言与面向对象程序设计的思想和方法设计应用程序解决应用问题,积累程序设计的实践经验,为培养软件技术高技能人才奠定基础。
本课程是培养计划中综合性较强的实践教学环节之一, 帮助学生掌握教学内容、培养学生运用知识解决应用问题的实际动手能力、提高学生综合素质有很重要的意义。
2.教学要求:本课程设计以设计一个或多个实际应用系统为目的,通过课程设计让学生较全面的掌握 Java 语法基础知识、面向对象程序设计方法, 尤其是基于Java 的应用程序设计的方法与技术, 能够运用 J2SE 平台,结合相应的数据库系统开发应用程序,理论联系实际,达到培养实践操作技能的目的。
学生要了解 Java 程序开发的一般过程,特别掌握系统分析与设计的基本方法,写出系统分析与设计报告,并能设计真实可用的应用系统。
三.课程设计内容与安排根据老师提供的设计题目, 写出系统分析与设计报告, 并建立原型系统。
题目可以由教师与学生根据实际情况商定,可参考的题目:图书借阅管理系统、产品管理系统、学生成绩管理、学生信息管理、人事管理、人力资源管理系统、物流信息管理系统等。
1.主要设计内容如下:(1系统设计:包括系统需求分析、总体设计和功能设计,必要时使用图表说明。
(2数据库设计与实现:包括数据库的需求分析、数据库的概念结构设计和数据库的逻辑设计。
(3系统各模块设计:包括用户界面及相应功能算法等程序设计。
2.教学安排总课时 30课时,其中需求分析与系统设计、数据库设计与实现、系统各模块实现所以及系统集成调试运行用时间建议各占15%,15%,40%,20%的课时, 学生可根据具体情况调整, 利用 10%的时间完成课程设计报告。
Java程序设计实训实验指导书 (2)
山东信息职业技术学院计算机工程系2012-2013学年第一学期《JAVA 程序设计实训》实验报告班级:学号:姓名:实验一开发简单的Java应用程序一、上机目标:开发“我行我素”购物管理系统:1.制作系统登录菜单2.制作系统主菜单3.制作客户信息管理菜单二、训练技能点1.熟悉用Eclipse编写Java程序2.会使用输出语句从控制台输出信息3.会进行代码排错三、实验内容阶段1:训练要点:使用Eclipse平台开发Java程序Java输出语句需求说明:从控制台输出一行信息:欢迎使用开心购物管理系统1.0版实现思路:创建一个Java项目:ShopManagementSystem创建一个文本文件:LoginMenu1.java编写程序框架编写输出语句编写注释代码:public class LoginMenu1{public static void main(String[ ] args){System.out.println(" ");}}阶段2:需求说明:从控制台输出多行信息代码:public class LoginMenu2 {public static void main(String[] args) {/*从控制台输出信息*/System.out.println("************************************\n");System.out.println( );System.out.println( );System.out.println("************************************");}}阶段3:训练要点:使用\n和\t控制输出格式需求说明:从控制台输出购物管理系统的登录菜单实现思路:创建文件:LoginMenu.java结合使用\n和\t控制菜单输出格式代码:空行public class LoginMenu {/** 显示系统登录菜单*/public static void main(String[] args) {System.out.println("\n\n\t\t\t欢迎使用我行我素购物管理系统 1.0版\n\n");System.out.println( );System.out.println( );System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");System.out.print("请选择,输入数字:");}}阶段4:需求说明:输出两个菜单1、系统主菜单MainMenu.java代码:2、客户信息管理菜单CustMMenu.java代码:阶段5:训练要点:代码排错技巧需求说明:纠正程序中的错误,使其输出“我喜欢Java程序”public class wrongcode {public static void Main() {/*打印输出一条信息system.out.println(我喜欢Java程序) }实验二变量、数据类型和运算符一、上机目标:升级“我行我素”购物管理系统,完成以下功能:•购物结算•打印购物小票•计算会员积分•模拟幸运抽奖•计算员工工资二、训练技能点:•会声明和使用变量•能熟练使用常用运算符•赋值运算符:=•算术运算符:+、- 、*、/、%三、实验内容阶段1:训练要点:运算符(*、=)、从控制台输出信息需求说明:根据购物清单及会员级别:1客户购买商品单价个数折扣1 T恤¥420.78 1 9.52 网球¥453 无2、以下表形式输出结果(不要求表格边框)客户消费金额1 张三?2 李四?实现思路:声明变量存放商品信息(单价、购物个数)根据不同折扣,分别计算消费金额使用“+”连接输出信息,使用\t控制输出格式代码:public class Pay1 {public static void main(String[] args) {double shirtPrice = 420.78; //T恤单价int shirtNo = 1; //购T恤件数double tennisPrice = 45; //网球单价int tennisNo = 3; //购网球个数double shirtMoney = ; //张三消费金额double tennisMoney = ; //李四消费金额System.out.println("客户\t" + "消费金额");System.out.println("张三\t" + shirtMoney);System.out.println( );}}阶段2:需求说明:张三(享8折)购物如右表所示,结算时支付1500元1商品单价个数T恤245 2网球鞋570 1网球拍320 12代码:阶段3:训练要点:运算符(%、/)需求说明:幸运抽奖:凡是4位会员卡号的各个位上的数字之和大于20,则为幸运客户,有精美Mp3送上,编程计算8349各位数字之和实现思路:结合使用“/”和“%”分解获得各位数字计算各位数字之和代码:阶段4:需求说明:商场为员工提供了基本工资(3000元)、物价津贴及房租津贴,其中物价津贴为基本工资的40%,房租津贴为基本工资的25%。
《Java游戏程序设计教程》实验任务书
《Java游戏程序设计教程》实验任务书————————————————————————————————作者:————————————————————————————————日期:ﻩ《Java游戏程序设计教程》实验任务书实验一弹跳小球游戏设计一实验目的通过设计和制作弹跳小球游戏来了解游戏程序的基本结构,理解游戏循环和双缓冲机制的基本原理,并掌握游戏运行框架的设计方法。
二实验内容学习和了解游戏基本框架的设计方法(参考教材第3章内容及相关代码),在此基础上设计弹跳小球游戏,实现小球在程序窗口边界反弹的效果。
要求实现如下功能:1. 创建游戏程序主窗体(GameFrame)和绘图面板(GamePanel);2.设计游戏循环,并通过线程来控制游戏运行的帧速率;3. 在游戏逻辑更新部分实现小球的运动逻辑,使得小球可以朝着窗口四周移动,并在边界处反弹。
4.在游戏绘制部分实现小球的图形绘制,并通过双缓冲机制消除屏幕闪烁。
三实验步骤1. 阅读实验要求,设计程序整体结构及各个类的功能。
2.启动java开发环境,新建游戏项目。
3.根据实验内容要求编写代码,以实现相应的功能。
4.书写实验报告,详细阐述代码编写的基本思想及主要过程。
四课时分配2课时五提交文档实验报告、源程序代码1.创建游戏程序主窗体(GameFrame)和绘图面板(GamePanel);//程序主窗体public GameFrame() {Frame app = newFrame("GameFrame");app.addWindowListener(newWindowAdapter(){ publicvoidwindowClosing(WindowEvent e) {System.exit(0);}});app.setLocation(100, 100);gamePaneldrawB = newgamePanel();app.add(drawB, BorderLayout.CENTER);app.pack();app.setVisible(true);drawB.gameStart();}//绘图面板publicgamePanel() {width=500;heigth=500;setBackground(Color.pink);setPreferredSize(newDimension(width,heigth));myball=new ball(this);mypad=new pad(this);this.setFocusable(true);this.requestFocus();this.addKeyListener(this);}2.设计游戏循环,并通过线程来控制游戏运行的帧速率;//线程publicvoid gameStart(){gamethread= newThread(this);gamethread.start();}//游戏循环,控制游戏运行的帧速度publicvoidrun() {long t1,t2,dt,sleepTime;longperiod=1000/FPS; //计算每一次循环需要的执行时间,单位毫秒t1=System.nanoTime(); //保存游戏循环执行前的系统时间,单位纳秒while(true){gameUpdate();gameRender();gamePaint();t2=System.nanoTime() ; //游戏循环执行后的系统时间,单位纳秒dt=(t2-t1)/1000000L; //本次循环实际花费的时间,并转换为毫秒sleepTime =period - dt;//计算本次循环剩余的时间,单位毫秒if(sleepTime<=0) //防止sleepTime值为负数sleepTime=2;try {Thread.sleep(sleepTime); //让线程休眠,由sleepTime值决定} catch (InterruptedException ex){}t1 =System.nanoTime();//重新获取当前系统时间 }}3.在游戏逻辑更新部分实现小球的运动逻辑,使得小球可以朝着窗口四周移动,并在边界处反弹。
《Java语言程序设计》专业实习任务书二
《Java语言程序设计》专业实习任务(二)一、设计目的:本次设计是对教材第7章~第17章的总结。
涉及到的主要知识点有:GUI设计、事件处理、I/O处理和JDBC。
设计的目的在于掌握Java的基本原理、设计方法和使用规则;利用Java提供的事务处理机制,合理选择类和类提供的方法,进行应用程序的初步设计。
二、设计题目:学生信息存放在数据库Student.mdb中,信息包括:学号、姓名、性别、年龄、专业。
系统包括查询、添加、删除、更新和退出系统五个功能。
主界面运行如下:1.功能描述①单击“查询”按钮,可以查询数据库中的学生信息,并将学生信息显示在JPanel中。
运行界面如下:②单击“增加”按钮,可以为数据库表中添加一条学生信息。
运行界面如下:③单击“删除”按钮,可以删除数据库表中的学生信息。
运行界面如下:⑷单击“更新”按钮,可以更新数据库表中指定学号的学生信息。
运行界面如下:要求:学号必须是数字字符串,长度不能大于10;姓名长度不能大于10,专业长度不能大于25。
⑸单击“退出系统”按钮,从整个应用系统中退出。
2.题目要求①根据题目要求建立数据库。
②完成程序段⑴~⒃的编写,使其系统各功能模块能够正常运行。
③回答问题①~⑧。
3.提示信息①Statement createStatement(int resultSetType,int resultSetConcurrency)throws SQLExceptionresultSetType:结果集类型,它是ResultSet.TYPE_FORWARD_ONL Y、ResultSet.TYPE_SCROLL_INSENSITIVE 或ResultSet.TYPE_SCROLL_SENSITIVE 之一;resultSetConcurrency:并发类型;它是ResultSet.CONCUR_READ_ONL Y 或ResultSet.CONCUR_UPDATABLE 之一;②update 语句:update 表名set 字段名=值,字段名=值,……where 条件4.程序清单①StudentManager.javapackage sms;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.Toolkit;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class StudentManager extends JFrame{private JLabel lbl1;private JButton selBtn,addBtn,delBtn,updBtn;private JButton exitBtn;private JPanel panel ;public StudentManager (){super("学生管理系统");// 定义出现的组件:由上而下,自左致右lbl1 = new JLabel("学生管理系统",JLabel.CENTER);lbl1.setFont(new Font("黑体",Font.BOLD,35));selBtn = new JButton("查询");addBtn = new JButton("添加");delBtn = new JButton("删除");updBtn = new JButton("更新");exitBtn=new JButton("退出系统");// 定义容器panel = new JPanel();//为容器设置布局,并将组件添加到容器中FlowLayout flow = new FlowLayout();panel.setLayout(flow);panel.add(selBtn);panel.add(addBtn);panel.add(delBtn);panel.add(updBtn);panel.add(exitBtn);//为按钮添加监听事件selBtn.addActionListener(new ButtonEvent());addBtn.addActionListener(new ButtonEvent());delBtn.addActionListener(new ButtonEvent());updBtn.addActionListener(new ButtonEvent());exitBtn.addActionListener(new ActionListener(){ //完成语句⑴:退出应用系统的功能});//为applet设置布局,并将组件添加到applet中GridLayout grid = new GridLayout(2,1);this.setLayout(grid);this.add(lbl1);this.add(panel);//设置applet的大小this.setSize(400,300);this.setVisible(true);//问题1:Toolkit的作用是什么?Toolkit tool = this.getToolkit();Dimension dim = tool.getScreenSize();this.setLocation(dim.width/3,dim.height/3);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);validate();}public static void main(String[] args){new StudentManager();}}②DatabaseConnection.javapackage sms;//完成语句⑵:导入该类中操作数据库的相关类包public class DatabaseConnection {public static Connection getConnection(String dataSource , String user , String password){ Connection conn = null;try {String driverName = "sun.jdbc.odbc.JdbcOdbcDriver";//完成语句⑶:加载数据库驱动} catch (ClassNotFoundException e) {e.printStackTrace();}try {//完成语句⑷:通过getConnection()方法的参数获取数据库连接赋给conn } catch (SQLException e) {e.printStackTrace();}return conn;}}③SelFrame.javapackage sms;import java.awt.BorderLayout;import java.awt.Color;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.FocusEvent;import java.awt.event.FocusListener;//完成语句⑸:导入该类中操作数据库的相关类包import javax.swing.*;public class SelFrame extends JFrame implements ActionListener,FocusListener { private Connection conn = null;private Statement stmt = null;private ResultSet rs = null;private int recordCount=0;JLabel lbl1 = null;JLabel lbl2 = null;JTextField tf1 = null;JTextField tf2 = null;JButton selBtn= null;JPanel p1 = null;JPanel p2 = null;JPanel p3 = null;JPanel resultPanel = null;JScrollPane scroll = null;JPanel split = null;JPanel[] p3_1=null;JTextField[] tf3_1 = null;JTextField[] tf4_1 = null;JTextField[] tf5_1 = null;JTextField[] tf6_1 = null;JTextField[] tf7_1 = null;public static int test=1;public SelFrame(){super("学生信息查询");//定义组件:从上到下,从左到右lbl1 = new JLabel("姓名:",10);lbl2 = new JLabel("专业:",10);tf1 = new JTextField(20);tf2 = new JTextField(20);selBtn=new JButton("查询");selBtn.addActionListener(this);JLabel lbl3 = new JLabel("学号",JLabel.CENTER);JLabel lbl4 = new JLabel("姓名",JLabel.CENTER);JLabel lbl5 = new JLabel("年龄",JLabel.CENTER);JLabel lbl6 = new JLabel("性别",JLabel.CENTER);JLabel lbl7 = new JLabel("专业",JLabel.CENTER);p1 = new JPanel (new FlowLayout());p1.add(lbl1);p1.add(tf1);p1.add(lbl2);p1.add(tf2);p2 = new JPanel (new GridLayout(2,1));p2.add(p1);p1.add(selBtn);p3 = new JPanel (new GridLayout(1,5));p3.add(lbl3);p3.add(lbl4);p3.add(lbl5);p3.add(lbl6);p3.add(lbl7);BorderLayout border = new BorderLayout();this.setLayout(border);this.add(p2,BorderLayout.NORTH);//完成语句⑹:当点击窗口的关闭按钮时只销毁该窗口,并不退出应用系统setSize(750,600);setLocation(150,50);setVisible(true);validate();}public void actionPerformed(ActionEvent e) {conn = DatabaseConnection.getConnection("jdbc:odbc:StudentDsn", "", "");try {String txt1,txt2,condition = "";txt1=tf1.getText();txt2=tf2.getText();if (txt1!=null && !txt1.equals(""))condition = " where sname like '%"+txt1+"%' ";if (txt2!=null && !txt2.equals(""))if (condition.equals(""))condition = " where major like '%"+txt2+"%' ";elsecondition =condition + " and major like '%"+txt2+"%' ";String sql = "select * from stu " + condition;stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONL Y); //完成语句⑺:提交sql语句,并将返回的记录集放在rs中//完成语句⑻:获取记录集中的记录条数,放在整形变量recordCount中GridLayout gl=new GridLayout(recordCount,1);if (resultPanel!=null){resultPanel.removeAll();//问题2:该语句的功能是什么?else{resultPanel = new JPanel(gl);//问题3:该条语句什么时候执行?}//问题2:test变量的作用是什么?if(test==1){scroll = new JScrollPane(resultPanel);split = new JPanel(new BorderLayout());split.add(p3,BorderLayout.NORTH);split.add(scroll,BorderLayout.CENTER);this.add(split,BorderLayout.CENTER);test++;}p3_1 = new JPanel[recordCount];tf3_1 = new JTextField[recordCount];tf4_1 = new JTextField[recordCount];tf5_1 = new JTextField[recordCount];tf6_1 = new JTextField[recordCount];tf7_1 = new JTextField[recordCount];rs.beforeFirst();//问题4:该条语句可不可以用rs.first()代替?为什么?int i = 0;while(rs.next()){tf3_1[i] = new JTextField(rs.getString(1));tf4_1[i] = new JTextField(rs.getString(2));tf5_1[i] = new JTextField(rs.getString(3));tf6_1[i] = new JTextField((rs.getString(4).equals("M"))?"男":"女");tf7_1[i] = new JTextField(rs.getString(5));tf3_1[i].setHorizontalAlignment(JTextField.CENTER);tf4_1[i].setHorizontalAlignment(JTextField.CENTER);tf5_1[i].setHorizontalAlignment(JTextField.CENTER);tf6_1[i].setHorizontalAlignment(JTextField.CENTER);tf7_1[i].setHorizontalAlignment(JTextField.CENTER);tf3_1[i].setEditable(false);tf4_1[i].setEditable(false);tf5_1[i].setEditable(false);tf6_1[i].setEditable(false);tf7_1[i].setEditable(false);//完成语句⑼:为文本框们添加监听器p3_1[i] = new JPanel (new GridLayout(1,5));p3_1[i].add(tf3_1[i]);p3_1[i].add(tf4_1[i]);p3_1[i].add(tf5_1[i]);p3_1[i].add(tf6_1[i]);p3_1[i].add(tf7_1[i]);resultPanel.add(p3_1[i]);i++;resultPanel.repaint();//问题5:该条语句可不可以取消?为什么?this.validate();//问题6:该条语句可不可以取消?为什么?} catch (SQLException e1) {e1.printStackTrace();}finally{//完成语句⑽:关闭数据库操作时占用的各种资源}public void focusGained(FocusEvent e) {//完成语句⑾:当文本框获得焦点时,文本框为红色}public void focusLost(FocusEvent e) {//完成语句⑿:当文本框失去焦点时,文本框为白色}}④AddFrame.javapackage sms;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Connection;import java.sql.SQLException;import java.sql.Statement;import javax.swing.Box;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JRadioButton;import javax.swing.JTextField;public class AddFrame extends JFrame implements ActionListener{private Connection conn;private Statement stmt;JLabel lbl1 = null;JLabel lbl2 = null;JLabel lbl3 = null;JLabel lbl4 = null;JLabel lbl5 = null;JTextField tf1 = null;JTextField tf2 = null;JTextField tf4 = null;JTextField tf5 = null;JRadioButton man = null;JRadioButton woman = null;ButtonGroup sex = null;JButton addBtn = null;JPanel p1 = null;Box baseBox,boxV1,boxV2,boxH1;public AddFrame(){super("添加学生信息");//定义组件:从上到下,从左到右lbl1 = new JLabel("学号:");lbl2 = new JLabel("姓名:");lbl3 = new JLabel("性别:");lbl4 = new JLabel("年龄:");lbl5 = new JLabel("专业:");tf1 = new JTextField(20);tf2 = new JTextField(20);tf4 = new JTextField(20);tf5 = new JTextField(20);man = new JRadioButton("男",true);woman = new JRadioButton("女");sex = new ButtonGroup();sex.add(man);sex.add(woman);addBtn=new JButton("添加");addBtn.addActionListener(this);boxV1 = Box.createVerticalBox();boxV1.add(lbl1);boxV1.add(Box.createVerticalStrut(8));boxV1.add(lbl2);boxV1.add(Box.createVerticalStrut(8));boxV1.add(lbl3);boxV1.add(Box.createVerticalStrut(8));boxV1.add(lbl4);boxV1.add(Box.createVerticalStrut(8));boxV1.add(lbl5);boxH1 = Box.createHorizontalBox();boxH1.add(man);boxH1.add(Box.createHorizontalStrut(10));boxH1.add(woman);boxV2 = Box.createVerticalBox();boxV2.add(tf1);boxV2.add(Box.createVerticalStrut(8));boxV2.add(tf2);boxV2.add(Box.createVerticalStrut(8));boxV2.add(boxH1);boxV2.add(Box.createVerticalStrut(8));boxV2.add(tf4);boxV2.add(Box.createVerticalStrut(8));boxV2.add(tf5);baseBox = Box.createHorizontalBox();baseBox.add(boxV1);baseBox.add(Box.createHorizontalStrut(10));baseBox.add(boxV2);p1 = new JPanel (new FlowLayout());p1.add(baseBox);p1.add(addBtn);this.add(p1);this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setSize(300,250);Toolkit tool = this.getToolkit();Dimension dim = tool.getScreenSize();this.setLocation(dim.width/3+50,dim.height/3+50);setVisible(true);validate();}public void actionPerformed(ActionEvent e) {//完成语句⒀:获取数据库连接try {String txt1,txt2,txt3,txt4,txt5,sql;txt1=tf1.getText().trim();txt2=tf2.getText().trim();if(man.isSelected())txt3="M";else txt3="F";txt4=tf4.getText().trim();txt5=tf5.getText().trim();sql = "insert into stu(sno,sname,age,sex,major) values (";if (txt1.length()<=10 && Util.isNotEmpty(txt1) && Util.isDigits(txt1)){sql = sql + "'"+txt1+"','";if (txt2.length()<=10 && Util.isNotEmpty(txt2)){sql = sql + txt2+"',";if (txt4.length()<=2 && Util.isNotEmpty(txt4) && Util.isDigits(txt4)){sql = sql + Integer.parseInt(txt4)+",'";sql = sql + txt3+"','";if(txt5.length()<=25 && Util.isNotEmpty(txt5))sql = sql + txt5+"'";else{JOptionPane.showMessageDialog(this, "专业输入有误:0<长度<=25!");return ;}}else{//完成语句⒁:弹出消息对话框,内容是:年龄输入有误:0<长度<=2且是数字字符!return ;}}else {JOptionPane.showMessageDialog(this, "姓名输入有误:0<长度<=10!");return ;}}else {JOptionPane.showMessageDialog(this, "学号输入有误:0<长度<=10且是数字字符!");return ;}sql = sql + ")";int cnt = 0;//完成语句⒂:创建提交sql语句的对象,并将sql语句的执行结果赋给整型变量cnt。
《Java程序设计》课程实验指导书2
《Java程序设计》课程实验指导书2《Java程序设计》课程实验指导书合肥学院计算机系实验⼀ Java开发环境的安装与配置,熟悉Java程序结构⼀、实验⽬的:1. 掌握JDK的安装步骤。
2. 理解环境变量PATH, CLASSPATH的作⽤,以及它们的设置⽅法。
3. 熟悉Editplus(或TextPad,JCreator)编辑环境,编写简单的Application程序和Applet程序,并编译和执⾏。
⼆、实验内容:熟悉JDK的安装和配置,学习如何编写并运⾏简单的Application程序和Applet程序(能输出⼀条简单的问候信息);三、实验要求:1. 能正确地安装JDK2. 熟悉环境变量PATH, CLASSPATH设置⽅法,熟悉编辑环境3. 调试程序、编译,运⾏后得到正确的结果4. 写出实验报告,要求记录编译和执⾏Java程序当中的系统错误信息提⽰,并给出解决办法。
四、实验步骤:1.从/doc/9ac8d1619b6648d7c1c74618.html 上下载最新版本的JDK,并安装。
2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执⾏。
3.在Editplus(或JCreator ,Textpad)环境下编写⼀个HelloWorld.jav a程序,(1)在主⽅法static public void main(String[ ] args)中调⽤System.out.println()⽅法,使程序输出⼀条问候信息;(2) 编译运⾏程序,观察运⾏情况和输出结果。
(使⽤JDK环境,调⽤javac.exe和java.exe编译和执⾏程序)4.在Editplus(或JCreator ,Textpad)环境下编写⼀个HelloWorldApplet.java程序。
(1)在public void paint(Graphics g)⽅法中调⽤g.drawString()⽅法,使程序输出⼀条问候信息;(2) 编译运⾏程序,观察运⾏情况和输出结果。
Java语言程序设计实训课程设计任务书
《Java语言程序设计实训》课程设计任务书一、课程设计的目的《Java语言程序设计实训》课程设计是计算机科学与技术专业及相关专业的集中实践性环节之一,是学习完《Java语言程序设计》后进行的一次全面的综合练习,其目的在于加深对面向过程程序设计的理解,提高解决实际问题的能力,为后续课程、毕业设计以及今后从事设计工作打下良好的基础。
二、课程设计内容及要求用JA V A语言环境制作一个学生管理系统。
包括添加、删除、查询等功能。
要求学生根据题目的基本要求,设计结构良好的界面并完成课程设计说明书。
1.课程设计任务设计一个学生信息管理系统,主要功能包括学生信息的输入、显示、删除、查询、统计等。
具体要求如下:(1)学生信息的格式:学号6位字符姓名8位字符计算机实数高等数学实数英语实数(2)学生信息文件student.txt的格式:每行一位学生,学生的3项数据之间用一个制表符分隔,例如:100001 zhang 88.0 75.0 93.0100002 wang 76.0 85.0 58.0(3)主菜单:学生信息管理系统主菜单== == == == == == == == == == == == == == == == ==1:添加学生记录2:显示学生记录3:删除学生记录4:查询学生记录5:统计学生记录0:退出系统请选择其中各选项的功能:添加学生记录:输入并保存学生信息显示学生记录:出现“显示学生信息子菜单”,供操作者选择删除学生记录:显示现有的学生信息,让操作者输入要删除学生的学号,将其删除后再次显示其余的学生信息查询学生记录:出现“查询学生信息子菜单”,供操作者选择统计学生记录:统计并显示优、良、中、及格、不及格的人数与比例,以及总人数、及格率、最高分、最低分、平均分。
(4)显示学生信息子菜单:显示学生信息子菜单== == == == == == == == == == == == == == == == ==1:按学号序显示2:按姓名序显示3:按成绩序显示0:退出显示请选择:其中各选项的功能:按学号序显示:按学号字典序显示所有学生信息按姓名序显示:按姓名字典序显示所有学生信息按成绩序显示:按成绩高分到低分显示所有学生信息(5)查询学生信息子菜单:查询学生信息子菜单== == == == == == == == == == == == == == == == ==1:按学号序显示2:按姓名序显示3:按成绩序显示0:退出显示请按姓名序显示选择:其中各选项的功能:按学号查询:按键盘输入的学号查找并显示学生信息按姓名查询:按键盘输入的姓名查找并显示学生信息按成绩查询:按键盘输入的分数范围查找并显示学生信息2.基本要求(1)完成问题陈述中提到的所有需求功能。
《Java程序设计》任务书
《Java程序设计》实训任务书一一、课题名称:选择语句的使用二、设计目的1、通过理论知识与实际需求相结合,编程解决一些日常中实际的问题,培养初步的独立分析和设计能力。
2、了解应用程序设计解决实际问题的具体过程和实现方法,掌握应用Java 语言进行程序设计的基本规范;3、初步掌握系统开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
4、重点掌握Java语言的程序编写、算法设计和程序调试方法;5、掌握本实训中所重点涉及的选择结构相关知识,熟练使用if嵌套语句和switch语句。
三、设计任务分别使用if嵌套语句和switch多分支选择语句实现:通过键盘输入一个学生的一门课成绩等级,判断其所在的分数段。
即等级用A、B、C、D、E等表示,A代表的分数段为90分以上,B代表的分数段为80~89,C代表的分数段为70~79,D代表的分数段为60~69,E代表不及格,其它字符表示输入错误。
四、设计要求1、分析程序(建模);2、画出程序流程图;3、界面友好(良好的人机互交);4、完成设计说明书(A4)。
五、运行环境1、Windows XP系统2、JDK 6.0(Java开发工具包)、Netbeans IDE 1.7.2(Netbeans集成开发环境)《Java程序设计》实训任务书二一、课题名称:打印输出特殊的图形二、设计目的1、通过理论知识与实际需求相结合,编程解决一些日常中实际的问题,培养初步的独立分析和设计能力。
2、了解应用程序设计解决实际问题的具体过程和实现方法,掌握应用Java 语言进行程序设计的基本规范;3、初步掌握系统开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
4、重点掌握Java语言的程序编写、算法设计和程序调试方法;5、掌握本实训中所重点涉及的循环结构相关知识,找出图形中元素的排列规律,熟练使用循环嵌套语句。
三、设计任务编写程序,分别打印出如下两个所示的图形。
四、设计要求1、分析程序(建模);2、界面友好(良好的人机互交);3、完成设计说明书(A4)。
《Java程序设计》实验指导书1
《Java程序设计》实验指导书(一)1.实验目的(1)安装JDK和文本编辑器并配置好开发环境;(2)熟悉命令行工具及帮助文档的使用;(3)简单应用程序的编辑、编译和运行。
(4)简单小应用程序的开发熟练掌握JDK的安装和环境的配置;熟悉Docs文档使用;能编写简单的Java应用程序和小应用程序;能使用简单的输出语句。
2.实验练习实验1:练习应用程序的开发步骤一:将JSDK安装在D盘根目录下,安装好后,配置环境变量path和classpath;步骤二:利用java –version; set 等命令检查配置是否成功;步骤三:打开记事本,输入下面程序,并保存为HelloWorld.java文件;class HelloWorld {public static void main (String args[]) {System.out.println(“Hello,world!”);}}步骤四:在Dos窗口中利用javac命令将HelloWorld.java文件编译成.class文件;步骤五:利用java解释执行.class文件,查看执行结果。
练习1)输入下面程序,保存为whosaywhat.java文件,在DOS下编译执行java whosaywhatMary “Good Afternoon!”看输出结果。
class whosaywhat{public static void main (String args[]){if (args.length<2){System.out.println("请输入两个参数,一个是人名,一个是说的话:");System.exit(0);}String s1=args[0];String s2=args[1];System.out.println(s1+"说:“"+s2+"”");}}2)输入下面的程序,保存为usetree.java文件,在DOS下编译执行看输出结果。
04748《JAVA语言程序设计》实验指导书
三、实验任务与时间安排
《Java 语言程序设计》具体实践课时安排如下: 模块 实验序号 1 Java 语言 程序设计 2 3 4 5 知识点 实践课时 4 4 8 4 8 32 备注
Java 的开发环境和基本语法 Java 中的类和接口 Java 的图形界面编程 Java 的多线程编程 数据库编程
合计Βιβλιοθήκη -1-目录
前言................................................................................................................................................................... - 1 一、上机实验目的................................................................................................................................... - 1 二、实验基本内容................................................................................................................................... - 1 三、实验任务与时间安排....................................................................................................................... - 1 目 录...........................
JAVA实训任务书
《Java程序设计》实训任务书一、实训目的和要求:1.目的Java语言程序设计实训是Java语言程序设计课程教学的重要组成部分。
本课程通过提供一个实训练习的机会,巩固、提高个人的基本编程能力,同时通过训练编写程序的方式,提高分析问题和解决问题的能力,为后续课程的学习打下良好的基础。
2.要求根据所选题目分析将要实现的具体功能,以及程序功能实现的具体设计思路或框架,要求学生在课外完成流程图的设计,然后根据流程图写出实训代码。
3.创新要求在基本要求达到后,可进行创新设计。
4.完成实训报告、提交所有的程序。
二、实训班级、时间、地点与指导老师安排班级:软件182、184班地点:院机房、教室时间:第14~15周指导老师:周杨萍三、实训报告实训报告内容包括:(1)实训的目的;(2)实训的题目和所有程序清单、效果截图;(3)实训的心得体会(不少于500字,严禁从网上摘抄、下载)。
按要求上交所有的电子文档和纸质文档。
实训报告递交时间:第15周星期五前。
四、实训内容(1)定义一个名为Vehicles 的交通工具类。
该类中包含String类型的成员属性brand 商标和color 颜色,还包含成员方法run行驶(在控制台显示“我已经开动了!”)和showInfo显示信息(在控制台显示商标和颜色),并编写构造方法初始化其成员属性。
编写Car 小汽车类继承于Vehicles类,增加int型成员属性seats 座位,还增加成员方法showCar,在控制台显示小汽车的信息,并编写构造方法。
编写Truck 卡车类,继承于Vehicles类,增加float型成员属性load 载重,还增加成员方法showTruck,在控制台显示卡车的信息,并编写构造方法。
在main方法中测试以上各类。
(2)假设人民币对美元的兑换比例是7:1,定义一个类,成员变量有:类常量RMB_TO_DOLLAR和DOLLAR_TO_RMB,表示兑换比例。
成员方法有:public static double getDollar(double rmb) 把人民币换算成美元(换算结果保留两位小数) public static double getRMB(double dollar) 把美元换算成人民币(换算结果保留两位小数)要求:从控制台输入要兑换的美元(dollar)和人民币(rmb),求该(dollar)美元能兑换成多少人民币,该(rmb)人民币能兑换成多少美元。
《Java程序设计》实验指导书
《Java程序设计》实验指导书实验一Java开发环境的安装与配置一.实验目的1.掌握JDK的安装步骤(有条件的话可以在Linux系统下安装)。
2.理解环境变量PA TH, CLASSPA TH的作用,以及它们的设置方法(Win98和Win2000/XP、Win7、Win8下的设置方法有所区别)。
3.熟悉记事本(或JCreator)编辑环境,编写简单的Application程序,并编译和解释执行。
4.记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。
二.实验内容1.下载最新版本的JDK,并安装。
2.设置环境变量PA TH, CLASSPA TH, 使得Java程序能正确编译和执行。
3.在记事本(或JCreator)环境下编写一个HelloWorld.java程序,在DOS提示符下编译并执行这个程序。
4.编写一个类A,它位于包a中,保存到A.java中,再编写一个类B,它位于包b中,保存到B.java中。
在类B中实例化类A的一个对象。
分别编译类A和类B。
5.实验时,在计算机中建立分别如下目录:D:\学号\src和D:\学号\class,分别用来放置Java源文件和编译后的字节码文件(注:每位同学分别用自己的学号建立目录)。
三.思考题1.什么是JVM,它的作用是什么?2.如何理解PA TH和CLASSPA TH,,如何设置它们。
实验二类的封装、继承、多态一.实验目的1. 复习、理解OOP的三大特征——封装、继承和多态。
2. 学会使用Java编写简单的类。
理解类的属性和方法。
3.掌握关键字private, protected, public的作用,掌握静态类,内部类的概念。
4. 掌握多态的概念。
二.实验内容1.分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求:A.Point2D有两个整型成员变量x, y (分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x, y的初始化。
《Java程序设计》课程实验指导书
《Java程序设计》课程实验指导书实验一 Java运行环境,Java程序的编辑、编译与运行一、实验目的:学会Java语言程序开发工具及运行平台J2SDK的下载与安装方法;熟悉J2SDK命令的使用。
学会使用编辑器编辑Java程序,并对程序进行编译、纠错、和运行,了解Java Applecation程序和Java Applet程序的执行方法。
For personal use only in study and research; not for commercial use二、实验内容:1、登录到网站,查找免费的Java语言程序开发工具及运行平台JDK。
选择适当的版本并下载,然后安装。
2、使用以下JDK命令,掌握这些命令的使用方法:For personal use only in study and research; not for commercial useJavac:Java语言编译器Java:Java语言应用程序启动器appletviewer :Java Applet小程序运行和调试器For personal use only in study and research; not for commercial use3、选择一个文本编辑工具(如:记事本),输入一个Application程序,然后进行编译运行:4、输入一个Applet程序,编辑、编译并使用appletviewer运行。
三、实验内容类型:验证型For personal use only in study and research; not for commercial use四、实验学时:2学时五、实验步骤:1.登录到网站,下载JDK,然后(以缺省方式)安装,记住你的安装目录(假定你的安装目录是:c:\XAAAX)。
2.设置环境变量(以WindowsXP为例,Windows2000类似):右键点击“我的电脑”,选择“属性”,选择“高级”,选择“环境变量”:若环境变量(不区分大小写)path和classpath已存在,则选中该变量后使用“编辑”功能,对于classpath将下列内容加入变量的开头(注意:其中c:\XAAAX表示你的JDK的安装目录,要与你的目录名(即文件夹名)一致):.;c:\ XAAAX \lib\tools.jar;c:\ XAAAX \lib\dt.jar;对于path将下列内容加入变量的开头:.;c:\ XAAAX \bin;c:\ XAAAX ;若环境变量(不区分大小写)path和classpath不存在,则使用“新建”功能,对于classpath 输入:.;c:\ XAAAX \lib\tools.jar;c:\ XAAAX \lib\dt.jar;对于path输入:.;c: XAAAX \bin;c:\ XAAAX;按“确定”退出后,环境变量就设置好了。
《java程序设计》实验指导书(完整).
实验一 Java实验环境的建立一、实验目的1.掌握Java编程环境的搭建过程;2.掌握Jcreator pro软件的使用方法;3.能使用Java doc文档。
二、实验内容1.下载并安装JDK1.6,配置JDK环境变量;2.下载Javadoc压缩包并解压在JDK安装路径下;3.下载Jcreator pro 4.0并安装和配置使用环境;4.使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。
①Java application程序代码如下:public class HelloJava{public static void main(String args[]){System.out.println("Hello Java!");}}②Java applet程序代码如下:import java.awt.*;public class Hello extends java.applet.Applet{public void paint(Graphics g){g.drawString("Hello!",30,30);}}三、试验要求1、预习试验内容并写出上机报告。
2、实验中出现的问题及实验体会。
实验二 Java语言程序设计训练一、实验目的:1.输入、输出操作实现原理和方法2.掌握程序流程控制的实现方法3.掌握数组的定义和操作方法二、实验内容1.计算 Result=1!+2!+3!+ (10)public class TestJieC{public static void main(String arg[]){long result=1;for(int i=1;i<=10;i++){ result=i*result;result+=result;}System.out.println(" "+result);}}2.计算1---50之间所有素数的和。
JAVA实训任务书
《Java程序设计》实训任务书一、实训目的和要求:1.目的Java语言程序设计实训是Java语言程序设计课程教学的重要组成部分。
本课程通过提供一个实训练习的机会,巩固、提高个人的基本编程能力,同时通过训练编写程序的方式,提高分析问题和解决问题的能力,为后续课程的学习打下良好的基础。
2.要求根据所选题目分析将要实现的具体功能,以及程序功能实现的具体设计思路或框架,要求学生在课外完成流程图的设计,然后根据流程图写出实训代码。
3.创新要求在基本要求达到后,可进行创新设计。
4.完成实训报告、提交所有的程序。
二、实训班级、时间、地点与指导老师安排班级:软件182、184班地点:院机房、教室时间:第14~15周指导老师:周杨萍三、实训报告实训报告内容包括:(1)实训的目的;(2)实训的题目和所有程序清单、效果截图;(3)实训的心得体会(不少于500字,严禁从网上摘抄、下载)。
按要求上交所有的电子文档和纸质文档。
实训报告递交时间:第15周星期五前。
四、实训内容(1)定义一个名为Vehicles 的交通工具类。
该类中包含String类型的成员属性brand 商标和color 颜色,还包含成员方法run行驶(在控制台显示“我已经开动了!”)和showInfo显示信息(在控制台显示商标和颜色),并编写构造方法初始化其成员属性。
编写Car 小汽车类继承于Vehicles类,增加int型成员属性seats 座位,还增加成员方法showCar,在控制台显示小汽车的信息,并编写构造方法。
编写Truck 卡车类,继承于Vehicles类,增加float型成员属性load 载重,还增加成员方法showTruck,在控制台显示卡车的信息,并编写构造方法。
在main方法中测试以上各类。
(2)假设人民币对美元的兑换比例是7:1,定义一个类,成员变量有:类常量RMB_TO_DOLLAR和DOLLAR_TO_RMB,表示兑换比例。
成员方法有:public static double getDollar(double rmb) 把人民币换算成美元(换算结果保留两位小数) public static double getRMB(double dollar) 把美元换算成人民币(换算结果保留两位小数)要求:从控制台输入要兑换的美元(dollar)和人民币(rmb),求该(dollar)美元能兑换成多少人民币,该(rmb)人民币能兑换成多少美元。
《Java语言程序的设计实验指导书》实验指导书
《Java语言程序的设计实验指导书》实验指导书《Java语言程序设计实验指导书》实验指导书高川翔2012年2月一、实验的地位、作用Java语言程序设计实验作为课程实践性环节之一,是教学过程中必不可少的重要容。
通过计算机实验和案例分析,使学生加深理解、验证巩固课堂教学容;增强高级语言程序设计的感性认识;掌握程序设计的基本方法;培养学生理论与实践相结合的能力。
二、实验开设对象本实验开设对象为《Java语言程序设计》课程的学习者(信息与计算科学专业本科生),实验为必修容。
三、基本原理及课程简介Java语言程序设计是必修基础课程。
本课程以BlueJ为工具,主要介绍面向对象的程序设计方法,Java面向对象程序设计语言和面向对象程序设计工具。
使学生掌握面向对象的思想方法,是后续专业课程的基础。
四、指导教师原则上由Java语言程序设计讲授教师负责,由年轻教师担任主要的实验指导教师,实验室人员配合指导。
指导教师应在每次实验前讲清实验目的、基本原理、实验要求等,指导学生在规定的时间完成相关课程实验。
五、实验设备配置每人配置1台电脑,安装有JDK,以及Blue J、Eclipse或者JBuilder。
六、考核与报告1.实验后,学生将实验结果等容写出实验报告,符合实验教学的要求,并得到指导教师的认可。
2.指导教师对每份实验报告进行审阅、评分。
3.该实验程依附于理论课,实验课的成绩记入课程平时成绩,占总成绩的25%实验一Java运行环境的安装、配置与运行一、实验课时3课时。
二、实验目的1.掌握下载并安装 JDK 软件包的方法。
2.掌握在BlueJ环境下编写、编译与运行 Java 程序的方法。
3.了解 Java 语言的概貌。
4.了解设置环境变量,命令行编译java程序的方法。
三、实验容和要求容:1.安装 JDK 软件包和BlueJ开发环境并进行配置。
(1)配置JDK运行环境:a)配置windows的path环境变量。
将安装的J2SDK(注意:必须安装J2SDK)的bin文件夹的完整路径添加到path系统变量中,如图3-4所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.手动控制蛇的移动,按下方向键时让蛇朝对应的方向移动,否则静止不动;
}
if((location.y<0)||(location.y>bound.y-diameter)) {
dy=-dy;
}
}
4.在游戏绘制部分实现小球的图形绘制,并通过双缓冲机制消除屏幕闪烁。
//消除屏幕闪烁
publicvoidgamePaint() {
Graphics g;
try{
g=this.getGraphics();
if(g!=null&&im!=null){
g.drawImage(im, 0,0,null);
}
g.dispose();
}catch(Exception e){
}
}
//小球图形绘制
publicvoidgameRender(){
if(im==null){
im=createImage(width,heigth);
if(sleepTime<=0)//防止sleepTime值为负数
sleepTime=2;
try{
Thread.sleep(sleepTime);//让线程休眠,由sleepTime值决定
}catch(InterruptedExceptionex){ }
t1 =System.nanoTime();//重新获取当前系统时间
System.exit(0);
}
});
app.setLocation(100, 100);
gamePaneldrawB =newgamePanel();
app.add(drawB,BorderLayout.CENTER);
app.pack();
app.setVisible(true);
drawB.gameStart();
while(true){
gameUpdate();
gameRender();
gamePaint();
t2=System.nanoTime() ;//游戏循环执行后的系统时间,单位纳秒
dt=(t2-t1)/1000000L;//本次循环实际花费的时间,并转换为毫秒
sleepTime=period- dt;//计算本次循环剩余的时间,单位毫秒
《Java游戏程序设计教程》实验任务书
———————————————————————————————— 作者:
———————————————————————————————— 日期:
ﻩ
《Java游戏程序设计教程》实验任务书
实验一 弹跳小球游戏设计
一 实验目的
通过设计和制作弹跳小球游戏来了解游戏程序的基本结构,理解游戏循环和双缓冲机制的基本原理,并掌握游戏运行框架的设计方法。
gamethread.start();
}
//游戏循环,控制游戏运行的帧速度
publicvoidrun() {
longt1,t2,dt,sleepTime;
longperiod=1000/FPS;//计算每一次循环需要的执行时间,单位毫秒
t1=System.nanoTime();//保存游戏循环执行前的系统时间,单位纳秒
}
实验二贪食蛇游戏设计
一 实验目的
通过设计和制作贪食蛇游戏来理解游戏程序的运行机制,同时学习运用java的事件处理机制来改变游戏状态和传递控制命令。
二 实验内容
学习和了解贪食蛇游戏的基本设计思想(参考教材4.4节内容及相关代码),在此基础上进行改进,要求实现如下功能:
1.当窗口最小化或被遮挡时暂停游戏;
}
//绘图面板
publicgamePanel() {
width=500;
heigth=500;
setBackground(Color.pink);
setPreferredSize(newDimension(width,heigth));
myball=newball(this);
mypad=newpad(this);
}
}
3.在游戏逻辑更新部分实现小球的运动逻辑,使得小球可以朝着窗口四周移动,并在边界处反弹。
publicvoidmove() {
location.x+=dx;
location.y+=dy;
if((location.x>bound.x-diameter) ||(location.x<0)){
dx= -dx;
4. 在游戏绘制部分实现小球的图形绘制,并通过双缓冲机制消除屏幕闪烁。
三 实验步骤
1.阅读实验要求,设计程序整体结构及各个类的功能。
2.启动java开发环境,新建游戏项目。
3.根据实验内容要求编写代码,以实现相应的功能。
4.书写实验报告,详细阐述代码编写的基本思想及主要过程。
四 课时分配
2课时
五 提交文档
实验报告、源程序代码
1.创建游戏程序主窗体(GameFrame)和绘图面板(GamePanel);
//程序主窗体
publicGameFrame() {
Frameapp=newFrame("GameFrame");
app.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
if(im==null){
System.out.println("imis null");
}else{
dbg=im.getGraphics();
}
}
dbg.setColor(Color.pink);
dbg.fillRect(0, 0,width,heigth);
myball.draw(dbg);
mypad.draw(dbg);
this.setFocusable(true);
this.requestFocus();
this.addKeyListener(this);
}
2.设计游戏循环,并通过线程来控制游戏运行的帧速率;
//线程
pubead=newThread(this);
二 实验内容
学习和了解游戏基本框架的设计方法(参考教材第3章内容及相关代码),在此基础上设计弹跳小球游戏,实现小球在程序窗口边界反弹的效果。要求实现如下功能:
1.创建游戏程序主窗体(GameFrame)和绘图面板(GamePanel);
2.设计游戏循环,并通过线程来控制游戏运行的帧速率;
3.在游戏逻辑更新部分实现小球的运动逻辑,使得小球可以朝着窗口四周移动,并在边界处反弹。