java程序设计报告
《程序语言综合课程设计》
设计报告
学 院: 信息工程学院
专业班级: 软件092班
学 号: 16号
姓 名: 徐三江
指导老师: 贺智明、杨书新
完成时间:
目 录
题目一 java模拟计算器 ........................... 4
1.1题目简介 ...................................... 4
1.2 设计的内容、要求和目标 ........................ 4
1.3 总体设计 ...................................... 5
1.3.1系统总体框架设计 .............................. 5
1.3.2系统功能模块 ............................. 5
1.3.3详细设计 ...................................... 5
1.4 详细设计及实现 ................................ 7
1.4.1 操作界面设计 ................................. 7
1.4.2 类成员变量及方法设计 ......................... 7
1.4.3 源代码分析 ................................... 9
1.5 系统运行及使用说明 ........................... 11
题目二 学生管理系统 ............................ 13
2.1 题目简介 ..................................... 13
2.2 设计的内容、要求和目标 ....................... 13
2.3 总体设计 ..................................... 14
2.3.1 系统总体框架设 .............................. 14
2.3.2 系统功能模块 ................................ 14
2.3.3详细设计 ..................................... 15
2.4 详细设计及实现 ............................... 15
2.4.1 操作界面设计 ................................ 15
2.4.2 类成员变量及方法设计 ........................ 17
2.4.3 数据库设计 .................................. 19
2.4.4 源代码分析 .................................. 22
2.5 系统运行及使用说明 ........................... 24
题目三 java超级玛丽游戏 ........................ 27
3.1 题目简介 ..................................... 27
3.2 设计的内容、要求和目标 ....................... 27
3.3 总体设计 ..................................... 28
3.3.1总设计模块的划分 ............................. 28
3.3.2 游戏主界面模块 .............................. 28
3.3.3 游戏控制模块 ................................ 29
3.3.4 详细设计 ................................... 29
3.4 详细设计及实现 ............................... 30
3.4.1 操作界面设计 ................................ 30
3.4.2 类成员变量及方法设计 ........................ 31
3.4.3 类与类的关系 ................................ 34
3.4.4 类,类成员,类方法作用 ...................... 34
3.4.5 部分源代码分析 .............................. 36
3.5 系统运行及使用说明 ........................... 39
总 结 ........................................... 42
题目一 java模拟计算器
1.1题目简介
利用java语言设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算。本计算器不仅可进行简单的四则运算(加、减、乘、除),还可进行开根号,求sin、cos、tan、cot、lg、ln等运算。除了具有普通的计算功能外,菜单栏中还具有查看使用说明等功能。
1.2 设计的内容、要求和目标
设计内容:
设计一个GUI简易计算器,用户可以通过鼠标一次输入参加计算
的数值,进行加减乘除,求正弦,余弦,正切,对数等混合运算,并且要求有菜单,帮助项中有帮助文档子项,子项中包有一个树形结构的窗口,包含设计和输入数据的步骤,设计说明,规则说明,布局结构等。
设计要求:
要求所设计GUI界面计算器是一个使用方便的程序,能实现基本的加减乘除功能,以及sin,cos,tan,log等算术运算;同时实现退格、清零等运算,包含菜单项,帮助项有窗口。
设计目标:
完成一个简单的计算机程序,用户可以利用鼠标点击数值或者是操作符完成计算的输入,计算的结果被显示在窗口的上部的文本框中。并且按清空键可以清空文本框中的所有信息,还有backspace键可以实现退格功能。菜单的帮助项包含设计说明,规则说明,布局结构。
1.3 总体设计
1.3.1系统总体框架设计
图1-1 总体框架图
1.3.2系统功能模块
图1-2 功能模块图
1.3.3详细设计
(1) 主类:Calculator类负责创建计算器的主窗口,该类含有方法,计算器从该类开始执行。Calculator类的对象,分别是:Jpanel、JTextArea、JButton、JMenubar、Menu、Item对象。Calculator类创建的窗口以及其中的主要成员如
图1-3.所示。
图1-3 Calculator窗口及主要成员对象
(2)jtreee类的创建主要是生成一个树形菜单的使用说明。
图1-4 帮助文档窗口图
1.4 详细设计及实现
1.4.1 操作界面设计
本界面用JFrame,JTextArea,JMenuBar,JPanel,窗口大小采用
setsize(300,400),设置高度300,宽度400。文字采用setForeground
(color.black),setFont(“宋体”,Font.BLOD,16)设置字体颜色为黑色,字体为宋体,加粗,字体大小16磅。控件布局JFrame用于放计算器的名字。JMenuBar放菜单包含文件,编辑,帮助,JTextArea放置North用于接收所要输入的数据和所需执行的操作,用Jpanel放置在Center域JButton控制所需的数据和操作。
1.4.2 类成员变量及方法设计
计算机程序N-S流程图
图1-5 计算器流程图
类的关系图如图所示:
类的成员变量关系
1.jbutton是JButton型。每个JButton类创建“数字按钮和运算按钮”,数字按钮从0-9,运算按钮依次为“+”“-”“×”“÷”.每个“按钮”都注册有ActionEvent事件监视器。
2. 小数点操作、退格操作、等号操作、清零操作、sin、cos、tan、lg、ln、π、根号 是Jbutton创建的按钮对象,其上的名字依次为:“.”、“←”、“=”、“CE”“sin”、“cos”、“tan”、 “lg”、和“X^2”。这些按钮都注册有ActionEvent事件监视器。
方法
1. Calculator创建的窗口是由JMenubar、JTextArea和JButton三个面actionPerformed(ActionEvent)方法进行相应的操作。
2.jtree,负责完成生成树形菜单。 3. .main(String)方法是计算器程序运行的入口方法.
类的方法及作用入下表:
板的ActionEvent事件监听器,当用户单击这些按钮时,窗口将执行
表1-1类的方法作用表
1.4.3 源代码分析
Calculator类:
设置面板的位置以及面板内字体的大小和颜色
c.add(tf,"North");
tf.setFont(new Font("宋体", Font.BOLD,16)); tf.setForeground(Color.BLACK);
JPanel pnl=new JPanel();
c.add(pnl,"Center");
设置菜单栏的菜单选项
String menustr[]={"文件","编辑","帮助"};
设置面板的布局
pnl.setLayout(new GridLayout(6,5,8,8));
jButton1=new JButton("1");
jButton1.setLayout(null);
jButton1.setBounds(10,20,40,60);
jButton1.setForeground(Color.BLACK);
jButton1.setFont(new Font("宋体", Font.BOLD,16)); jButton1.addActionListener(this); pnl.add(jButton1); 类的触发事件:
public void actionPerformed(ActionEvent event) 调用系统函数:
if(toknizer=="sin") {
if(j==0){wen=1;}
b[j]=Double.parseDouble(s); wen=Math.sin(b[j]);
ben=Double.toString(wen); tf.setText(ben); } jtree类:
设置树的根节点以及节点的包含关系
root.add (child1); root.add (child2); root.add (child3);
child1.add (child11);child1.add (child12);
child2.add (child21);child2.add (child22);
DefaultTreeModel model = new DefaultTreeModel (root);
JTree example = new JTree (model);
example.addTreeSelectionListener( this);
JPanel panel = new JPanel();
panel.setLayout (new BoxLayout (panel, BoxLayout.X_AXIS));
panel.setPreferredSize (new Dimension (600, 400)); //panel.add (new JScrollPane (example1));
1.5 系统运行及使用说明
运行程序后显示界面如下,可在计算器面板上按键
图1-6 主界面图
数据运算:
图1-7 运算图
帮助文档中的操作:
图1-8帮助文档图
该程序是一个图形界面的java的逻辑算术测试器,使用人员能快捷简单地进行操作。随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。适用java语言编写算术测试,可以实现简单的预算功能。设计应用了java基本版本,它包含建立java应用程序或者时Applet所需的应用程序编程接口API,系统环境为window2003以上版本。
题目二 学生管理系统
2.1 题目简介
用java语言设计一个基于GUI界面的单机版学生管理系统,实现学生基本信息的录入,查询,修改,删除,同时可以对学生所在学院,专业,班级信息进行添加,查询,修改,删除。本系统是通过java+Mysql实现的。
2.2 设计的内容、要求和目标
设计内容:
用java语言设计一个基于GUI界面的单机版学生管理系统,实现学生基本信息的录入,查询,修改,删除,同时可以对学生所在学院,专业,班级信息进行添加,查询,修改,删除。 设计要求:
1. 界面要求:必须先要有一个登录用的用户信息表,包含“用户名和密码”两项信息。
2. 功能要求:系统里必须包括学生信息录入、修改、删除、查询等功能,还有学院信息录入、修改、删除、查询,专业信息录入,修改、删除、查询,班级信息录入、修改、删除、查询。 输入时学院代码用下拉框选择,必须是学院信息表里存在的学院名称,保存到数据库中时存学院的代码。输入专业代码和学院代码用下拉框选择,必须是专业信息和学院信息表里存在的专业名称和学院名称,保存到数据库中时分别存专业和学院的代码。输入班级、专业和学院用下拉框选择,必须是班级专业信息和学院信息表里存在的专业名称和学院名称,保存到数据库中时分别存班级、专业和学院代码。 设计目标:
使用JDBC驱动程序将前台浏览器与后台数据库(本系统用的是Mysql)结合位为一体。利用Mysql语句接口来调用数据库,以存取或更新数据库中的数据,实现学生信息录入、修改、删除、查询,还有学院信息录入、修改、删除、查询,专业信息录入,修改、删除、查询,班级信息录入、修改、删除、查询功能。
2.3 总体设计
2.3.1 系统总体框架设
图2-1 总体框架图
2.3.2 系统功能模块
图2-2 系统功能模块图
2.3.3详细设计
(1) LoginFrame类是生成一个系统登入界面。LoginFrame类的对象分别是JLabel,ImageIcon,JTextField,JPasswordField,JButton对象。LoginFrame类连接Mysql数据库,在Mysql数据库中创建表Admin,用户登入需输入正确的用户名和用户密码。
(2) Frm_Main类是创建一个学生注册,查询,修改,删除的界面。Frm_Main类的对象分别是JFrame,Container,JMenuBar,JMenuItem,JButton ,ToolBarButton,JTextField,JComboBox。Frm_Main类连接Mysql数据库,在Mysql数据库中创建表student表,用户可以在该表中注册,注册,查询,修改,删除学生。同时该界面还有下拉框,可以选相应的学院,专业,班级。
(3) FacultyFrame类是创建一个学院添加,查询,修改,删除的界面。FacultyFrame类的对象分别是JFrame,Container,JMenuBar,JLabel,JTextField,JComboBox,JButton。FacultyFrame类连接Mysql数据库。在Mysql数据库中创建faculty表,用户可以在该表中注册,注册,查询,修改,删除学院。同时该界面还有下拉框,可以选相应的学院。
(4) SpecialtyFrame类是创建一个专业添加,查询,修改,删除的界面。SpecialtyFrame类的对象分别是JFrame,Container,JMenuBar,JLabel,JTextField,JComboBox,JButton。SpecialtyFrame类连接Mysql数据库。在Mysql数据库中创建specialty表,用户可以在该表中注册,注册,查询,修改,删除专业信息。同时该界面还有下拉框,可以选相应的专业。
(5) ClassFrame类是创建一个专业添加,查询,修改,删除的界面。ClassFrame类的对象分别是JFrame,Container,JMenuBar,JLabel,JTextField,JComboBox,JButton。SpecialtyFrame类连接Mysql数据库。在Mysql数据库中创建grade表,用户可以在该表中注册,注册,查询,修改,删除专业信息。同时该界面还有下拉框,可以选相应的班级。
(6) jtree类是对该学生信息系统的相关说明。分别对学生管理系统的布局,方法进行相关的说明。
2.4 详细设计及实现
2.4.1 操作界面设计
1.登入界面设计:
本登入界面用JPanel,窗口布局用网格布局。窗口大小采用setsize(400,330),设置高度400,宽度330,窗口插入图片123.jpg,窗口中含有两个标签:用户名,用户密码。标签采用setForeground(color,red),设置标签字体颜色为红色。 2. 学生窗口界面设计:
学生窗口布局采用流式布局。窗口大小setsize(400,400),设置高度400,宽度400。文字标签setFont(new Font("宋体",Font.BOLD,12));设置字体为宋体,加粗,大小12磅。控件布局JFrame用于放窗口的名字。JMenuBar放置按钮菜单选项,包括查询、添加、删除、修改、提交修改、提交添加、确认删除、退出按钮。可以对各项选项进行相应的操作。JMenu下的JField文本和JLabel分别设置它们的位置,及它们JField的大小。 3. 学院窗口界面设计:
学生窗口布局采用流式布局。窗口大小setsize(150,20),设置高度150,宽度20。文字标签setFont(new Font("宋体",Font.BOLD,12));设置字体为宋体,加粗,大小12磅。控件布局JFrame用于放窗口的名字。toolBar放置按钮菜单选项,包括查询、添加、删除、修改、提交修改、提交添加、确认删除、退出按钮。可以对各项选项进行相应的操作。JMenu下的JField文本和JLabel分别设置它们的位置,及它们JField的大小。 4. 专业窗口界面设计:
学生窗口布局采用流式布局。窗口大小setsize(400,250),设置高度400,宽度250。文字标签setFont(new Font("宋体",Font.BOLD,12));设置字体为宋体,加粗,大小12磅。控件布局JFrame用于放窗口的名字。toolBar放置按钮菜单选项,包括查询、添加、删除、修改、提交修改、提交添加、确认删除、退出按钮。可以对各项选项进行相应的操作。JMenu下的JField文本和JLabel分别设置它们的位置,及它们JField的大小。 5. 班级窗口界面设计:
学生窗口布局采用流式布局。窗口大小setsize(400,250),设置高度400,宽度250。文字标签setFont(new Font("宋体",Font.BOLD,12));设置字体为宋体,加粗,大小12磅。控件布局JFrame用于放窗口的名字。toolBar放置按钮菜单选项,包括查询、添加、删除、修改、提交修改、提交添加、确认删除、退
出按钮。可以对各项选项进行相应的操作。JMenu下的JField文本和JLabel分别设置它们的位置,及它们JField的大小。
2.4.2 类成员变量及方法设计
学生管理系统N-S流程图:
图2-3 学生管理系统流程图
类与类成员关系图:
图2-4类与类成员关系图
类,类的方法及类的作用如下表:
表2-1 类,类的方法及类的作用表
2.4.3 数据库设计
1. 创建登入表: CREATE TABLE `admin` (
`username` varchar(20) NOT NULL,
`pwd` varchar(20) CHARACTER SET latin1 DEFAULT NULL, PRIMARY KEY (`username`) )
表2-2 Admin表
2. 创建学生信息表:
CREATE TABLE `student` ( `xueid` char(20) NOT NULL, `name` char(20) DEFAULT NULL, `sex` char(4) DEFAULT NULL, `nation` char(4) DEFAULT NULL, `ID` char(2) DEFAULT NULL, `C_ID` char(8) DEFAULT NULL,
`S_ID` char(10) DEFAULT NULL, `age` char(8) DEFAULT NULL, `mail` char(20) DEFAULT NULL, `telp` char(11) DEFAULT NULL, PRIMARY KEY (`xueid`) )
表2-3 student表
3. 创建学院信息表
CREATE TABLE `faculty` ( `ID` char(2) NOT NULL,
`NAME` char(30) DEFAULT NULL, PRIMARY KEY (`ID`)
表2-4 faculty表
4. 创建专业信息表
CREATE TABLE `specialty` ( `S_ID` char(10) NOT NULL,
`S_NAME` char(30) DEFAULT NULL, `ID` char(2) DEFAULT NULL, PRIMARY KEY (`S_ID`) )
表2-5 specialty表
5. 创建班级信息表
CREATE TABLE `grade` ( `C_ID` char(8) NOT NULL,
`C_NAME` char(30) DEFAULT NULL, `C_DATE` char(10) DEFAULT NULL, `S_ID` char(10) DEFAULT NULL, `ID` char(2) DEFAULT NULL, PRIMARY KEY (`C_ID`) )
表2-6 grade表
6.数据库中各表之间的关系
图2-5 各表之间关系图
2.4.4 源代码分析
1.系统主要的类: 登入窗口的类:
public class LoginFrame extends JFrame
主类:public class Frm_Main implements ActionListener 班级信息类:public class ClassFrame implements ActionListener 学员信息类:
public class FacultyFrame implements ActionListener 帮助文档类:
public class jtree implements TreeSelectionListener 专业信息类:
public class SpecialtyFrame implements ActionListener
2. 主要方法分析:
设置文本框的位置和文本框的大小:
S_NAMEL.setLocation(20,110);
S_NAMEL.setSize(150,20); c.add(S_NAMEL);
S_NAMET.setLocation(90,110); S_NAMET.setSize(200,20);
c.add(S_NAMET);
处理异常类及方法 try{
Class.forName("com.mysql.jdbc.Driver"); conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=111111");
Statement stmt = (Statement)
conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rss1 = null;
String sql="select * from faculty ";
rs = stmt.executeQuery(sql);
while (rs.next()){
f.addItem(rs.getString("NAME")); }
rs.close();
}catch(ClassNotFoundException e){ System.err.println(e); }catch(SQLException e){ System.err.println(e);
}
处理监听事件的方法:
public void actionPerformed(ActionEvent e) 主函数的运行:
public static void main(String[] args)
连接数据库相关语句:
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, user, pswd);
stmt = conn.createStatement();
组件的声明:
public JMenuBar menuBar; public JMenu mainMenu1; public JMenu mainMenu2;
public JMenu mainMenu3;
public JFrame frame; public Container c;
public JMenuBar menuBar;
JButton toolBarButton[] = new JButton[8]; public JToolBar toolBar; Object ID=new String();
String S_ID = new String(); String S_NAME = new String();
Connection con; ResultSet rs; Statement st;
public JLabel S_IDL = new JLabel("专业代码:");
public JLabel IDL = new JLabel("学院名称:");
public JLabel S_NAMEL = new JLabel("专业名称:"); public JTextField S_IDT = new JTextField(); private JComboBox f = new JComboBox();
public JTextField S_NAMET = new JTextField();
2.5 系统运行及使用说明
运行程序后系统界面如下: 登入界面图:
图2-6 登入界面图
学生信息管理系统图:
图2-7 学生管理系统图
学院管理系统图:
图2-8 学院管理系统图
专业管理系统图:
图2-9 专业管理系统图
班级管理系统图:
图2-10 班级管理系统图
该程序是一个图形界面的学生信息管理系统,使用人员能快捷简单地进行操作。随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。适用java语言编写算术测试,可以实现简单的预算功能。设计应用了
java基本版本,它包含建立java应用程序或者时Applet所需的应用程序编程接口API,系统环境为window2003以上版本,连接Mysql数据库。
题目三 java超级玛丽游戏
3.1 题目简介
本游戏是利用java语言通过Myeclipse软件编写一个手机版“超级玛丽”
游戏,此游戏操作简单、界面美观、功能较齐全。整个游戏分为功能模块和类模块,实现了游戏的通关,退出等。
3.2 设计的内容、要求和目标
设计内容:
超级玛丽的设计与实现,主要分为以下两个模块:游戏主界面模块游戏控制模块。在此实现游戏的主界面模块,游戏控制模块。并且实现了开始,英雄榜,介绍,帮助,制作组,退出等功能。
设计要求:
实现一个简单的超级玛丽游戏程序,包括三个界面: 1.开机动画界面。 2.游戏主界面。 3.游戏控制界面。
同时游戏要求要有开机动画,游戏界面美观,具备基本游戏功能,排行榜,提供游戏规则说明,游戏英雄榜,开始等。
设计目标:
开机动画主界面模块:
开机后,界面显示游戏的制作者和制作者的班级。制作者和制作者班级必须
以打字效果来显示。 游戏主界面模块:
游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形区域界面、游戏的选择更新界面、新生方块的预览、游戏开始按钮、暂停游戏按钮、退出游戏按钮以及游戏排行榜按钮。从很大程度上决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观,爽心悦目。 游戏控制模块:
这个模块是游戏的中心环节,主要完成控制游戏的开始、暂停、退出等功能。
为了能够给玩家一个很好的游戏环境,这部分应该做到易懂、易操作。
3.3 总体设计
3.3.1总设计模块的划分
根据游戏所要实现的功能,整个游戏分为三个模块进行具体的设计,如图3-1所示。
图3-1 总体设计模块图
3.3.2 游戏主界面模块
游戏界面主框架主要包括游戏图形区域界面、游戏的开始按钮、英雄榜、游戏介绍、游戏退出、游戏帮助、游戏制作组按钮,如图3-2所示。
图3-2 游戏主界面模块图
3.3.3 游戏控制模块
游戏控制模块主要通过手机的按钮来控制游戏的开始、游戏的暂停、游戏
的退出这三个功能。在这个模块中,需要给各个按钮或文本框加入代码,来对上述的功能加以进一步的实现。
游戏控制模块的主要框架如图3-3所示。
图3-3 游戏控制模块的框架图
游戏开始控制:单击“游戏开始”按钮,游戏画布即有移动的玛丽出现,游戏正式开始。
游戏暂停控制:单击“暂停游戏”按钮,游戏暂停;再单击,游戏继续。 游戏退出控制:单击“退出游戏”按钮,退出该游戏。
3.3.4 详细设计
(1) GameEnemy类是创建游戏中不同怪物并且根据不同怪物的类型实现不同的逻辑的类,类的对象:GameImage,GameMap,Sprite,Image。
(2) MyGameCanvas类是游戏画布类,是游戏主界面的画布类。类的对象:MIDlet,GameImage,GameMap,GameMusic,GamePlayer,Image。
(3) GameFlash类的游戏动画的实现的类。实现游戏中玛丽,金币,石头的移动偏移量。类的对象:GameImage ,GameMap,Sprite,Image。
(4) GameImage类的处理图片的类。类的对象:Image。
(5) GameMap类是游戏中画面类和游戏通关类。类的对象:Image,GameImage,TiledLayer。
(6) GameMusic类是播放游戏中背景音乐的类。类的对象:Player。
(7) GamePlayer类是判断主角移动和主角在某种状态碰到怪物死亡的类。类的对象:GameImage,GameMusic,GameMap,GameEnemy,GameFlash,Image,Sprite。 (8) MIDlet类是游戏的主类。
(9) Player类是开机动画移动的类。类的对象:Image,MIDlet。
3.4 详细设计及实现
3.4.1 操作界面设计
阐述软件的运行及用户操作的界面方案,包括窗口大小、控件布局、文字颜色、字体及操作逻辑等。。。。。。 1. 开机动画界面
开机动画界面放入Image[11]即放入图片的数量,使用try判断图片的异常情况,实现图片的跳跃效果。new Thread(this)使用线程是开机动画开始运行,Thread.sleep(200)在这里为下一张图片需要0.2秒才会出现,count==10开机动画停留10秒。g.setColor(255,255,255)设置窗口的背景色。 2. 游戏主界面
游戏主界面实现了动画效果。包括游戏图形区域界面、游戏的开始按钮、英雄榜、游戏介绍、游戏退出、游戏帮助、游戏制作组按钮,游戏介绍菜单介绍了游戏相关信息。游戏帮助菜单介绍了游戏的相关规则。游戏制作组菜单介绍了游戏制作的相关信息。英雄榜记录了游戏的高分记录。
this.setFullScreenMode(true),W = this.getWidth(),H = this.getHeight()。设置了界面的高度,宽度分别手机屏幕的高度和宽度。menu.setLoopCount(-1)设置菜单项可以重复轮转。g.setColor设置屏幕的颜色,g.fillRect设置窗口的大小。 3. 游戏控制界面
游戏控制界面放置了游戏的通关的背景图片。设置了游戏的各部分坐标,同时设置了游戏控制界面的地图。
map_peng01_w,map_peng01_h,map_peng02_w,map_peng02_h设置了地图高度和宽度。final byte one = 0,tow = 1设置了地图的宽度。TiledLayer
til_back01,til_peng01,til_zhebi01,til_back02,til_peng02,til_zhebi02设置了地图各关的背景。
3.4.2 类成员变量及方法设计
1.N-S流程图
开机动画流程图如下:
图3-4 开机动画流程图
游戏主界面流程图如下:
图3-5 游戏主界面功能图
游戏控制界面流程图如下:
图3-5 游戏主界面功能图
3.4.3 类与类的关系
图3-6 类与类之间关系图
3.4.4 类,类成员,类方法作用
表3-1
类,类成员,类方法作用表
3.4.5 部分源代码分析
检测碰撞点
public boolean sp_mogu01_DZ_coll(int tilarrr[][]) {
int sp_mogu01_kuai_x = (sp_mogu01.getX()+地图移动量
X+mogu01_W/2)/map.kuaisiz;
int sp_mogu01_kuai_y =
(sp_mogu01.getY()+mogu01_H)/map.kuaisiz; int coll_kuai = 1;
if(!sp_mogu01_arrout) { try {
coll_kuai =
tilarrr[sp_mogu01_kuai_y][sp_mogu01_kuai_x]; } catch (RuntimeException e) { sp_mogu01_arrout = true; }
}
游戏结束方法 protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
游戏暂停方法
protected void pauseApp() {
}
游戏开始方法
protected void startApp() throws MIDletStateChangeException { p = new Player(this);
display = Display.getDisplay(this); display.setCurrent(p);
} 移动方法
public void move() {
display.setCurrent(new MyGameCanvas(this));
}
时间到则主角死亡判断源码 if(gametime01%25==0)gametime02--; if(gametime01
x_mali_state = kill; kill_state = U;
sfkillstate = true; z = 0;
mid_kill = miclei.musiclong("kill"); miclei.musicstart(mid_kill); 通过关的画布
public void piant(Graphics g) {
switch (guan) { case one: } }
til_back01.paint(g); til_peng01.paint(g); break;
til_back02.paint(g); til_peng02.paint(g); break;
case tow:
金币移动量设计 case jinbi:
sp_jinbi.nextFrame(); switch (DIR) { case U:
jibimove++;
if(jibimove>=4)DIR = D; break; case D:
jibimove--;
if(jibimove
sp_jinbi.setVisible(false); jibimove = 0;
sfxiaoshi = true; }
break; }
break;
3.5 系统运行及使用说明
运行程序后系统界面如下: 开机动画图:
游戏主界面图:
图3-7 开机动画界面图
图3-8 游戏主界面图
游戏控制界面图:
介绍菜单图:
图3-9 游戏控制界面图 图3-10介绍菜单图
40
帮助菜单图:
制作组菜单图:
图3-11 帮助菜单图 图3-12 制作组菜单图
41
该程序是一个手机版超级玛丽游戏,使用人员能快捷简单地进行操作。随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。本游戏是由java me语言编写的,可以游戏功能。设计应用了java基本版本,它包含建立java应用程序或者时Applet所需的应用程序编程接口API,系统环境为window2003以上版本。
总 结
通过这次课程设计,我对上学期所学的JAVA语言程序设计有一个更深刻的了解,将所学的知识应用于实践,由于所学知识有限,为了使计算器,管理系统,超级玛丽游戏能够能够实现自己预先的构想,我们这组通过上网找代码和去图书馆借书找程序,比较画好的流程图及功能模块,不断阅读修改代码使程序达到预期所要实现的目标,完成课程设计后,可以感觉到自己对Java程序的又有了新的认识。
在做Java设计之前也有做过其他的课程设计,大多规模很小。在数据库、各种应用软件和游戏中,我仍觉得对游戏的设计有极大的热情。因为其各个模块间的联系十分紧密,代码重复执行率高,当经过无数次的调试、修改后,能最终看到成品,有无比自豪的心情。大学期间做过图书馆管理程序等简单的数据库管理系统的课程设计,思想大致相似,变化范围有限,没有太多自己可发挥的余地。大家作品的最终结果都离不开同一个模式。相比一些数据库软件,游戏的设计有很多人情色彩和艺术思想的发挥,正式商业的软件的人性化界面和各个游戏间迥异的结构每每会让人有去开发的冲动。综合运用以前所学习的知识,设计一个JAVA手机游戏,并能实现以下的功能:游戏声音的控制、游戏等级的控制、最高分的记录、游戏暂停、游戏重新开始、游戏的结束。总之,通过本次的课程设计,使我平时学到的理论知识得到了很好地升华,理论与实际得到一次很好的结合,为我今后参加工作打下了坚实的基础,使我受益匪浅。
42